> For the complete documentation index, see [llms.txt](https://docs.voiceb.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.voiceb.ai/understanding-status-and-outcomes-in-voiceb.md).

# Understanding Status & Outcomes in VoiceB

Understanding Status & Outcomes in VoiceB

By Alex Bisbe. Last update: October 2026

VoiceB classifies every call into a **Status** and an **Outcome**. Together, they define *lead quality*, *intent*, and the *next operational step*. This structure powers reporting, billing, routing, and your downstream integrations (Salesforce, HubSpot, Webhooks).

Outcomes are organized into four levels (**L1 to L4**) that reflect how far a call progressed in the sales journey:

| Level | Outcome(s)                               | What it means                                      | Billing    |
| ----- | ---------------------------------------- | -------------------------------------------------- | ---------- |
| L1    | Invalid (Not Interested, Voicemail, ...) | No sales opportunity                               | Not billed |
| L2    | Talk to Agent (Qualified Transfer)       | Qualified, a human takes over                      | Billed     |
| L3    | Sold                                     | Qualified, interested, personal data collected     | Billed     |
| L4    | Closed                                   | Purchase or signature confirmed, sold autonomously | Billed     |

***

### 1. Status Categories

Each call receives one of two high-level statuses:

<div align="left" data-with-frame="true"><figure><img src="https://2950912279-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FggIr2RvhGm49D4vbjurT%2Fuploads%2FW3MExL24SzsDikI9ZDai%2Fimage.png?alt=media&amp;token=b9ef7597-6caf-4021-86ba-4c31344fc9cd" alt="" width="97"><figcaption></figcaption></figure></div>

**✅ Valid** The AI Agent reached a real person, the conversation had intent, and the lead fits your commercial scope.

**❌ Invalid** The call didn't result in a commercially meaningful conversation. No sales opportunity is created.

***

### 2. Outcomes for INVALID Status (L1, not billed)

Invalid leads are automatically filtered out. These calls **do not count** toward sales metrics and are **not billed**. Typical examples: the person is not interested for any reason, or the lead or phone number is invalid.

<div align="left" data-with-frame="true"><figure><img src="https://2950912279-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FggIr2RvhGm49D4vbjurT%2Fuploads%2FZCiqvz42Wg8BaCGlmDY9%2Fimage.png?alt=media&amp;token=5c56753c-6261-46fb-9a69-f80ec4ecfcbd" alt="" width="129"><figcaption></figcaption></figure></div>

#### 1. Not Interested

The lead is not a target, not interested in the offer, or explicitly rejects the product. Examples:

* "I'm not interested."
* "This is not for me."
* Wrong product segment.
* Wrong target audience.

#### 2. Voicemail

The AI reached a voicemail system. No conversation took place.

#### 3. Dropped

The call never reached an actual discussion of the product or service, regardless of how long it lasted. Typical cases:

* Hang-ups
* Accidental dials
* Early disconnections

#### 4. Customer Care

The call is valid but **out of sales scope**. The caller is an existing customer seeking support, billing, technical help, or account management — not a new purchase or sales interaction. No sales qualification or conversion is possible, so the call is marked Invalid for commercial KPIs.

<div data-with-frame="true"><figure><img src="https://2950912279-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FggIr2RvhGm49D4vbjurT%2Fuploads%2FjKmdPiJgSX8ZuwOKqvrv%2Fimage.png?alt=media&amp;token=aaf24965-ce35-4cf4-88dd-a0226fe8bde2" alt=""><figcaption></figcaption></figure></div>

#### 5. Busy

The caller's line was busy or engaged at the time of the call. No conversation took place.

#### 6. Unreachable

The call connected but was never answered. The number exists but no one picked up.

#### 7. Not Found

The phone number dialed was invalid or could not be found. The call could not be connected.

#### 8. Failed

A technical or system error prevented the call from connecting. This is an infrastructure-level outcome, not a commercial one. Failed calls should be monitored for patterns — a spike may indicate a telephony configuration issue.

#### 9. Pending

The call was still in progress at the moment the CSV export was generated. Pending is a **snapshot state**, not a final outcome. If you see Pending calls in an export, re-export after a few minutes to retrieve the final outcome once the call has completed.

***

### 3. Outcomes for VALID Status (L2 to L4, billed)

Valid leads indicate a real opportunity. VoiceB uses three outcomes inside Valid, each one representing a deeper level of progress: **Talk to Agent (L2)**, **Sold (L3)** and **Closed (L4)**. All three are billed.

<div align="left" data-with-frame="true"><figure><img src="https://2950912279-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FggIr2RvhGm49D4vbjurT%2Fuploads%2FrMvFq8ZHTWq7qKZlusuu%2Fimage.png?alt=media&amp;token=76762479-b8d2-497d-9a33-5165d20993b6" alt="" width="238"><figcaption></figcaption></figure></div>

#### 1. Talk to Agent — L2 (Qualified Transfer)

The lead meets your qualifying criteria and, after qualification, wants (or needs) to talk to a human agent. An **appointment booked** also falls here. Typical situations:

* The customer asks to speak with a human after being qualified.
* An appointment is booked with a sales representative.
* Complex cases needing agent validation.
* The customer is interested but does not provide all required data.
* The AI cannot finalize the process due to business rules.

This outcome means **valid lead, warm intent**. It is billed.

#### 2. Sold — L3

The customer is qualified and interested, and has **provided the personal data required to move forward**. The next step is a conversation with a human agent for the closing. This is a strong commercial outcome, and it is billed.

Sold is triggered when:

* The AI successfully pitches the offer.
* The customer accepts.
* The required personal data is collected (at minimum: the fields configured as mandatory for your process).
* Acceptance is not reversed later in the call.

#### 3. Closed — L4

The sale is complete. **Closed** means there is a **verbal or API confirmation that the purchase or signature has been completed**, and the sale was done autonomously, with no further human step required. It is the highest outcome level, and it is billed.

{% hint style="info" %}
**Sold vs. Closed:** with Sold, the data is collected but a human still has to close the deal. With Closed, the purchase or signature is already confirmed.
{% endhint %}

A call becomes Closed in one of two ways:

{% tabs %}
{% tab title="During the call (verbal)" %}
The customer explicitly confirms during the conversation that the payment has been made or the contract has been signed. VoiceB detects this and sets the outcome to Closed automatically.
{% endtab %}

{% tab title="After the call (API)" %}
Often the closure happens after the call ends: a payment is taken, a contract is signed, or the deal is marked as won in your CRM. In that case your system can confirm it to VoiceB through the public API, so third-party systems can mark the call as Closed.

```http
POST /api/v1/calls/close
Authorization: Bearer vb_live_<your_token>
Content-Type: application/json

{ "callId": "<call guid>" }
```

Response:

```json
{ "callId": "<call guid>", "result": "closed" }
```

**Getting your API token:** an organization admin can generate it in your organization **Settings → API access**. The token is shown **only once** when generated, so copy it and store it securely. You can have several tokens and revoke any of them at any time.

{% hint style="warning" %}
Use this endpoint from your backend only. Never include the token in frontend or client-side code.
{% endhint %}

Good to know:

* The call must belong to your organization. Otherwise the API returns `404`.
* Calls that already have a lead are updated; if the call has no lead yet, one is created.
* The request is **idempotent**: closing an already Closed call returns `200` and does not trigger integrations again.
* Closed is final: later call analysis will not downgrade it.
* Pending retries for that contact are cancelled, so a closed deal is never redialed.
* Your CRM integrations (Salesforce, HubSpot, Webhooks) run as usual, subject to each integration's outcome filter.
  {% endtab %}
  {% endtabs %}

***

### 4. Transferred (Real-Time Handoff)

Both **Sold** and **Talk to Agent** can carry an additional label: **Transferred**.

<div align="left" data-with-frame="true"><figure><img src="https://2950912279-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FggIr2RvhGm49D4vbjurT%2Fuploads%2Fza3WVco62csLjaedqIEO%2Fimage.png?alt=media&amp;token=693d20bf-5dc5-4fbb-96e1-9813a3535cc3" alt="" width="220"><figcaption></figcaption></figure></div>

This appears only when real-time call transfer is enabled for your account. It indicates that the call was successfully routed to a live agent during the conversation.

Examples:

* Valid → Talk to Agent → Transferred
* Valid → Sold → Transferred (only if your flow includes a verification step)

***

### 5. Why Status & Outcomes Matter

This classification enables:

* **Accurate KPIs** (conversion, agent handoff rate, sales rate)
* **Precise billing models** (L1 is never billed; L2, L3 and L4 are billed)
* **Lead routing** (real-time transfers, CRM pushes, HubSpot/Salesforce sync)
* **Operational clarity** (support, sales teams, QA)

Data from both Status and Outcomes is synced via Salesforce, HubSpot, Webhooks, and Custom CRM Connectors.

***

### Summary Table

| Level | Status    | Outcome        | Meaning                                                            | Billing    |
| ----- | --------- | -------------- | ------------------------------------------------------------------ | ---------- |
| L1    | ❌ Invalid | Not Interested | No intent, wrong target, rejected offer                            | Not billed |
| L1    | ❌ Invalid | Dropped        | Never reached a discussion of the product                          | Not billed |
| L1    | ❌ Invalid | Voicemail      | Reached voicemail                                                  | Not billed |
| L1    | ❌ Invalid | Customer Care  | Out of sales scope                                                 | Not billed |
| L1    | ❌ Invalid | Busy           | Caller's line was busy/engaged                                     | Not billed |
| L1    | ❌ Invalid | Unreachable    | Number valid but never answered                                    | Not billed |
| L1    | ❌ Invalid | Not Found      | Phone number invalid or not found                                  | Not billed |
| L1    | ❌ Invalid | Failed         | Technical error, call could not connect                            | Not billed |
| L1    | ❌ Invalid | Pending        | Call still in progress during CSV export                           | Not billed |
| L2    | ✅ Valid   | Talk to Agent  | Qualified lead wanting a human, or appointment booked              | Billed     |
| L3    | ✅ Valid   | Sold           | Qualified and interested, personal data provided, human closes     | Billed     |
| L4    | ✅ Valid   | Closed         | Purchase or signature confirmed (verbal or API), sold autonomously | Billed     |

***

### Tags (Custom Outcomes)

VoiceB also supports Tags — a fully customizable second classification layer applied automatically by the AI after understanding the full conversation.

<figure><img src="https://2950912279-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FggIr2RvhGm49D4vbjurT%2Fuploads%2F1qV0QqmZAjQhmQ6hU1je%2FScreenshot%202026-02-26%20at%2011.27.48.png?alt=media&amp;token=2eeacdc1-03f7-4379-81f4-c80ea40079f4" alt=""><figcaption></figcaption></figure>

While Status explains if a call was successful and Outcome explains what happened, Tags explain what the call means for your business. Use them to classify calls by product interest, customer type, or intent, enrich your CRM, and route leads with greater precision — without affecting existing reporting.

<figure><img src="https://2950912279-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FggIr2RvhGm49D4vbjurT%2Fuploads%2FAGaeoHp7EO34R5ucnXwm%2FScreenshot%202026-02-26%20at%2011.26.47.png?alt=media&amp;token=ae0994e9-4dc4-42c1-863c-08f4fe2656dc" alt=""><figcaption></figcaption></figure>

⚠️ **Exception:** a Tag can be explicitly configured, in any campaign type, to override the Outcome Engine and force a Sold/Valid classification for business reporting purposes. This is intentional platform behavior, not the default — outside of an explicit tag-to-outcome override, Tags do not affect Status/Outcome.

👉 Learn more about Tags and how to configure them [here](https://docs.voiceb.ai/tags-custom-ai-classification-for-calls-and-leads).

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.voiceb.ai/understanding-status-and-outcomes-in-voiceb.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
