> 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).