> Source: https://docs.virtuo.in/vio/agents/analysis-actions-fulfilment
> Score every Vio call for sentiment and goal-met, transfer live calls to a human, and POST a call.completed webhook with the summary to your CRM.
# Analysis, actions & fulfilment
**These three tabs decide what happens to a Vio call's outcome: Analysis scores sentiment and whether the call met its goal, Actions can hand the live call to a human, and Fulfilment POSTs the finished call to your own systems.** Together they turn a phone conversation into structured data you can act on.
## Analysis — score every call
Turn on **Analyze every call** and Vio reads each finished call for two things:
- **Sentiment** — how the caller felt overall.
- **Goal met** — if you provide a **success criteria** rubric (a short description of what a successful call looks like), Vio judges whether the call **met its goal**, returning *goal met* or *not met* plus a short **reason**.
Results appear on the individual call in [**Call logs**](/vio/call-logs), so you can filter your day's calls by sentiment or by whether they hit their goal.
## Actions — transfer to a human
On the **Actions** tab, toggle on **Transfer to a human** and the agent can hand a live call to a person. Set:
- A **target phone number** in **E.164** format (e.g. `+919876543210`).
- An optional **"when to transfer"** instruction telling the agent the conditions to hand off — for example when the caller asks for a human or the topic is out of scope.
Transfer requires your carrier to support call transfer. If your number can't transfer, the agent can instead [**schedule a callback**](/vio/agents/tools) as a fallback.
## Fulfilment — results go to your webhook
**This moved.** The per-agent "Results webhook URL" that used to live on this tab has been replaced by **workspace-level webhooks**, set up once under **Settings → Webhooks**. The Fulfilment tab now just points you there.
Register an HTTPS endpoint once and it receives events from **every agent you own** — each event says which agent it came from, so one endpoint covers your whole workspace instead of a URL pasted into each agent.
Subscribe to **`call.completed`** and you get, the moment a call ends: the call metadata, the AI **summary**, the **extracted variables**, and the **analysis** (sentiment, goal-met) — everything you need to drop the call into a CRM, a sheet, or an automation in Zapier / Make / n8n.
What the workspace-level version adds over the old per-agent field:
- **A signed request** you can verify, so you know the payload is genuinely from us.
- **Automatic retries** with backoff when your server is briefly down.
- **A delivery log** you can inspect, rather than guessing whether an event was sent.
- **A verification ping** at registration, so a typo'd hostname fails loudly there and then instead of silently swallowing a month of events.
**→ [Set up webhooks](/vio/api/webhooks)** for the payload shape, the signature check, and worked verification code in Node, Python and PHP.
If you configured a per-agent results webhook before this changed, it is no longer in use — re-register the URL under **Settings → Webhooks** to start receiving events again.
## How the three fit together
| Tab | Turns on | Output lands in |
|---|---|---|
| **Analysis** | Sentiment + goal-met scoring | [**Call logs**](/vio/call-logs) and the webhook `analysis{}` |
| **Actions** | Live transfer to a human | The call itself (during the call) |
| **Fulfilment** | Nothing per-agent — set up once in **Settings → Webhooks** | Your CRM / sheet / automation, via `call.completed` |
## Frequently asked
**Q. What do I put in the success criteria rubric?**
A one- or two-line description of what a successful call looks like for this agent — for example "Caller shared budget and agreed to a site visit." Vio uses it to judge goal met / not met and writes a short reason.
**Q. When does the `call.completed` webhook fire?**
When the call ends. Vio POSTs a single `call.completed` event containing the metadata, AI summary, extracted variables, and analysis — to every endpoint in your workspace subscribed to it. Register one under **Settings → Webhooks**; see [Webhooks](/vio/api/webhooks).
**Q. Does the agent need anything special to transfer a call?**
Your carrier must support call transfer. Set the target number in E.164 format, and optionally tell the agent when to hand off.
**Q. Where else can I see sentiment and goal-met without a webhook?**
On each call in [**Call logs**](/vio/call-logs). The webhook is only needed to push the data into your own systems.
## Next
Tune per-agent call behaviour in [**Advanced settings**](/vio/agents/advanced), or review completed calls in [**Call logs**](/vio/call-logs).