Connect by JBRH Open Connect

Call outcomes and dispositions

Two columns answer two different questions. outcome is the engine's verdict on what the call was — line_off, after_hours, no_answer, not_reached and the conversational endings — written when the call closes. disposition is a person's verdict, written whenever somebody says so, and nothing the provider sends later can overwrite it.

Status
Available What this means
Audience
both
Channels
phone
In the app
#/calls, #/data
Last verified
Product version
6.3.2

The outcomes that have fixed words#

OutcomeWhat happenedLead created?
line_offThe line was switched off, or inbound permission was off. The caller heard the closed-line sentenceNo
after_hoursThe call fell outside the line's window, in the line's timezoneNo
no_answerThe phone rang and nobody picked upNo
not_reachedIt never rang at all — the dial, the dispatch or the worker failedNo
A conversationSomebody spoke to Connect and the call ended normallyPossibly, if there was something to capture

The first four are refusals or non-events, and _capture_lead creates nothing from any of them. That rule is stricter than it looks: a busy outbound list can produce hundreds of rows that are technically calls and contain no information, and a pipeline that treated them as contacts would be measuring dialling rather than interest.

no_answer and not_reached are the pair most often conflated, and they point at different problems entirely — one at the list being called, the other at the machinery doing the calling. Calls that were never a conversation takes that distinction apart properly.

Disposition belongs to a person#

Disposition is not a second guess at the outcome. It is the business's own reading: whether the call mattered, what it was really about, what should happen next. It is written by a human, at whatever moment they decide, and it is never written by the engine or by a provider callback.

That separation is structural rather than stylistic. Carriers deliver status callbacks after a conversation is over — sometimes minutes after — and if the two shared a column, the machine's late write would win by arriving last. Keeping them apart lets a late webhook update duration, provider status and cost without touching a colleague's judgement.

Where outcomes surface#

The Phone screen
Rows grouped by what they were, so refusals do not pad the count of conversations.
Line health
Repeated not_reached results past the failure threshold inside the health window raise a Needs You item, because they indicate the line rather than the callers.
Follow-up drains
An outcome decides whether a promise was kept. A call-back that never rang has not been made, whatever the attempt count says.
The #/data grid
Calls are one of the thirteen sheets, so outcome is filterable and exportable alongside every other field.
Cost
Every outcome is charged, including refusals — briefly, from the call's own duration when no usage was reported.

Counting calls honestly#

  1. Exclude line_off and after_hours from any measure of demand you handled — then count them separately as demand you refused.

    Result Two numbers that mean different things, instead of one that means neither.

  2. Split the remaining failures into no_answer and not_reached.

    Result The first is about who you are calling; the second is an engineering problem with a Needs You item behind it.

  3. Compare the conversation count against the carrier's own completed calls for the same window.

    Result A gap is a missing row, which is a routing or verification defect rather than a reporting quirk.

The engine's outcome is the honest denominator for all of this, which is why it is kept out of a person's reach. If a colleague could edit it to reflect what a call felt like, the one column that reliably describes the wire would stop describing it.

Questions#

Can I add my own outcome values?

The outcome vocabulary belongs to the engine and is deliberately small, so that it means the same thing in every workspace and in every report. A business's own categories belong in disposition, which exists for exactly that.

Does an outcome ever change after the call?

It is written when the call closes and reflects what happened on the wire. Provider callbacks arriving afterwards can update the fields they legitimately own — duration, provider status, cost — which is a different thing from rewriting the verdict.

Why is a refused call charged at all?

Because the call happened: the line answered, a sentence was spoken and the carrier billed for the seconds. A call that reports no model usage is charged from its own duration at the published per-minute rate rather than recorded as free, which keeps the ledger consistent with the carrier's.