> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Read the Sales Conversation Intelligence surface

> Revenue-ops guide to sales conversation intelligence — the post-call analyzer that reports rep talk-time share, competitor mentions, extracted next steps, and a per-call deal-risk score, then rolls the results up across calls into an at-risk deal list per contact. How to turn it on, how to read the API rollup, and when to use it instead of support QA.

# Sales Conversation Intelligence

Sales Conversation Intelligence answers one question: **how did each voice call go for the deal, and which deals need attention this week?** It is the revenue-ops counterpart to support QA — where support-side conversation intelligence asks "was the customer helped well?", this surface asks "did this call move the deal forward?"

For every voice call completed while the feature is enabled, Orbit computes a per-call sales-intelligence result and stores it on the call's record. The Insights API then rolls those per-call results up over a configurable window into the numbers a sales manager reads: average rep talk-time share, a deal-risk band distribution, the competitor names buyers keep raising, and an at-risk deal list grouped by contact.

## What each call is scored on

Every analyzed call carries four measurements plus a transparent risk score. All of them are computed from data Orbit already produces — the speaker-diarised transcript, the post-call summary — no extra speech service is involved:

* **Talk ratio.** The share of attributed floor time the rep held, computed from the diarised transcript's speaker segments. Attributed time excludes segments whose speaker role could not be resolved, so a music-on-hold stretch or an unlabelled diarisation never distorts the split. When no segment could be attributed to either side, the call reports its ratio as unavailable rather than inventing a number.
* **Competitor mentions.** A case-insensitive, whole-phrase scan of the transcript against your workspace's tracker list — the competitor and rival-product names you configure. Each hit reports the term and its mention count.
* **Next steps.** The concrete commitments and follow-ups the call produced ("send the revised quote", "book the security review"), taken from the post-call analysis that already runs on the call. A call that ended with no agreed next step is itself a deal signal. Up to six next steps are kept per call.
* **Deal-risk score.** A 0–100 score with a `low` / `medium` / `high` band, built from the signals above. Every point the score adds carries a written reason ("negative customer sentiment detected", "3 competitor mentions on the call", "no next steps identified"), so a rep or manager can always see *why* a call is flagged — it is a coaching aid, not a black box. Factors: negative or disengaged sentiment, a rep monologue (the rep holding roughly three-quarters or more of the attributed talk time), competitor mentions, and a missing next step.

These four read together. Talk ratio and next steps describe how the call ran; competitor mentions and the risk score describe where the deal stands.

## Turning it on

The feature is **opt-in and off by default** — a workspace that has not enabled it gets no extra analysis on its calls. Enablement is workspace-wide, not per queue or per inbound route: once on, the analyzer runs as part of the post-call analysis chain on every completed, analyzed voice call, alongside the other post-call analyzers that already run there. There is no per-call sampling and nothing to configure per queue — only completed, transcribed calls are analyzed.

Enable it and set your competitor trackers with a single call:

```bash theme={null}
curl -X PUT "https://api.orbit.devotel.io/api/v1/insights/sales-conversation-intelligence/config" \
  -H "X-API-Key: dv_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true, "competitor_trackers": ["AcmeVoice", "RingCentral", "Five9"]}'
```

Each field is optional in the request — a field you omit keeps its current value. Tracker rules:

* Up to **50 tracker terms**, each at most **80 characters**.
* Terms match case-insensitively on whole words or phrases — a `Gong` tracker does not fire on "gonged".
* If you never set a list, the workspace starts with a sensible default list of CCaaS/CPaaS and sales-engagement category names. Setting `competitor_trackers` replaces that list wholesale — send the full list you want active.

Because the tracker list lives on a summary endpoint, you can change the terms at any time with no redeploy and no touch to call routing.

## Reading the rollout

Query the rollup for your lookback window — `days` accepts 1–90 and defaults to 30 (the same default the console uses):

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/insights/sales-conversation-intelligence?days=30" \
  -H "X-API-Key: dv_live_sk_your_key_here"
```

Response `200 OK`, trimmed:

```json theme={null}
{
  "data": {
    "from": "2026-09-11T00:00:00.000Z",
    "to": "2026-10-11T00:00:00.000Z",
    "calls_analyzed": 84,
    "avg_rep_talk_ratio": 0.42,
    "risk_band_distribution": { "low": 61, "medium": 17, "high": 6 },
    "top_competitor_mentions": [
      { "term": "AcmeVoice", "count": 9 }
    ],
    "at_risk_deals": [
      {
        "contact_id": "cnt_01JC2Z9X4T",
        "calls_count": 3,
        "avg_risk_score": 72,
        "latest_risk_band": "high",
        "latest_next_steps": ["Book a follow-up demo for the procurement team"],
        "latest_analyzed_at": "2026-10-10T14:02:00.000Z"
      }
    ]
  },
  "meta": { "request_id": "req_01HZQX4E7JQ4M2E2H2DM9XE5FJ", "timestamp": "2026-10-11T12:00:00.000Z" }
}
```

| Field | What it is |
| - | - |
| `calls_analyzed` | voice calls scored in the window (bounded — see Limits) |
| `avg_rep_talk_ratio` | mean rep talk-time share in `[0,1]` across calls where speaker attribution succeeded; `null` when none did — an unattributed call is excluded, not averaged as zero |
| `risk_band_distribution` | call counts per band — the health snapshot of the window |
| `top_competitor_mentions` | tracker terms ranked by total mentions in the window (up to 10) |
| `at_risk_deals` | per-contact rollup, highest average risk first (up to 25) — calls grouped by the contact they belong to, carrying the call count, mean risk score, the most recent call's risk band and next steps, and when it was last analyzed |

Read `at_risk_deals` as the working list: each row is one contact whose recent calls are trending risky, with the next steps from the latest call already extracted so a manager can act without replaying audio. Cross-reference the contact in your CRM from the Inbox CRM-context panel — same `contact_id`, no export needed.

## API surface

Three endpoints, all scoped to the caller's workspace:

| Endpoint | Purpose |
| - | - |
| `GET /api/v1/insights/sales-conversation-intelligence?days=` | the rolled-up summary above |
| `GET /api/v1/insights/sales-conversation-intelligence/config` | current `enabled` flag + tracker list (returns the defaults for a workspace that never configured, so a settings form always renders a stable shape) |
| `PUT /api/v1/insights/sales-conversation-intelligence/config` | enable/disable and/or replace the tracker list — each field optional, omitted fields keep their current value |

Full request/response contract, parameter and field table: [Get sales conversation intelligence summary](/api-reference/endpoints/insights).

## Which tool answers which question

Sales conversation intelligence overlaps three sibling surfaces by name only — each answers a different question:

| If you need… | Use |
| - | - |
| "How are my deals progressing, and which contacts are going cold?" | **This surface** — per-call deal risk and the per-contact at-risk rollup |
| "Was this support conversation handled well, and how is sentiment trending across channels?" | [Conversation Intelligence](/guides/conversation-intelligence) — support QA across SMS, WhatsApp, email, and voice, plus the [on-demand re-run](/guides/conversation-intelligence-re-run) for one stale thread |
| "What are customers contacting us about, and is it rising?" | [Topic Intelligence](/guides/insights-topic-intelligence) — contact-reason mining across every channel |
| "What's the quality score of an individual call for coaching calibration?" | Voice quality autoscore / per-call QA on the call record |

The rule of thumb: support tools read the *conversation*; this surface reads the *deal*.

## Limits

What the shipped service defines — no more, no less:

* **Voice calls only**, and only completed calls that carry a transcript and speaker-diarised segments. Messaging conversations do not appear; the topic and sentiment surfaces cover those.
* **Language coverage** matches whatever languages your transcription is configured for — competitor matching and talk-ratio run over the produced transcript, so coverage follows your speech-to-text configuration rather than a fixed list.
* **No minimum call length gate.** A very short call scores on the evidence it has; expect a short call with no extracted commitments to read as riskier because of it.
* **No extra retention window beyond the call record itself.** The rollup reads calls within your chosen `days` window, and the per-call result lives on the call record for as long as the call data does — it inherits the call log's retention, it does not add one.
* **Volume bounds:** each summary request scans at most the 5,000 most recently analyzed calls in the window; the at-risk list surfaces at most 25 contacts, and the competitor list at most 10 terms. Tracker config is capped at 50 terms of at most 80 characters each, and a call keeps at most 6 extracted next steps.
* **Talk-ratio coverage:** calls whose speakers could not be attributed (for example a diarisation with generic speaker labels) report no ratio and are excluded from the average — the surface never fabricates a split.

## See also

* [API reference — sales conversation intelligence endpoints](/api-reference/endpoints/insights) — full request/response contract.
* [Conversation Intelligence](/guides/conversation-intelligence) — the support-QA aggregate across channels.
* [Topic Intelligence](/guides/insights-topic-intelligence) — cross-channel contact-reason mining.
* [Insights dashboards](/guides/insights-dashboards) — the catalog of every other Insights surface.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.