Call summaries
A summary is written once, in the background, after the call row has already been closed and the cost booked. Calls with fewer than two caller lines and fewer than five caller words are never sent to the summariser at all, because a model given almost nothing invents the rest. What a summary may contain is filtered on the way out — a form of address is never a name.
The ending does not wait for it#
Ending a call used to mean running the summary and the quality review — two model calls — inside a single 20-second request. When they did not finish, the request timed out and the log recorded "end not recorded" for an ending the engine had, in fact, recorded. The failure was entirely in the reporting, which is the worst kind: nothing was broken and everything looked broken.
finish(defer=True) closes the row, books the cost, marks facts.digest = pending and answers immediately. A background task then runs the digest once. So a summary that has not appeared yet is a pending digest, not a lost call, and the row it belongs to is already complete and already paid for.
When Connect refuses to summarise#
| Condition | What happens | Why |
|---|---|---|
| Two or more caller lines and five or more caller words | A summary is written | There is enough conversation to describe |
| Fewer than two caller lines and fewer than five caller words | No summary at all | Ten one-turn rows once produced an invented afternoon at the sales desk |
The call was never a conversation (no_answer, not_reached) | No summary and no lead | Nothing was said to summarise |
A refused line (line_off, after_hours) | No summary | The only words spoken were Connect's own refusal |
The second row is the one worth internalising. A summariser handed a single "hello?" does not return an empty summary — it returns a plausible one, because that is what a language model does with an underspecified prompt. The guard is a floor on input, not a check on output, because output-checking that class of invention is not reliable.
What a summary may say#
A summary describes the call: what the caller wanted, what was agreed, what was promised, what remains open. It is grounded in the turns of that call, and everything downstream of it — the lead, the memory, the follow-up — inherits its constraints rather than relaxing them.
- Names
- Every door a name passes through is guarded: summariser output, lead capture, person upsert and memory writes all run through
clean_nameandscrub_names, andname_rejectedrefuses a form of address. "Sir" is not a name, and neither is "the caller". - Facts
fact_rejectedrefuses a name-keyed fact whose key is a suffix, a pronoun or "the caller", so the memory does not acquire an entry about nobody.- Promises
- A promise recorded in the summary has to correspond to something scheduled. Where it does not, the finding is
promised_unbookedrather than a quiet omission. - Times
- A follow-up time comes from the caller's own time-bearing words, or from a time the voice said aloud that the caller agreed to. A
whenthat matches neither is refused outright.
Using summaries without re-reading calls#
The summary is what makes a month of calls reviewable at all. It appears on the call, feeds the person's timeline, and is what the relationship view shows when it lists this conversation among everything else that person has done across channels. A lead created from a call carries the same grounding, which is why a call that was never a conversation creates no lead: there is nothing to ground one in.
When a summary and the transcript disagree, the transcript wins. The summary is a model's reading of the call, marked as such; the turns are what was said.
Questions#
A call ended twenty minutes ago and has no summary. Is it lost?
No. The row was closed and the cost booked at the moment the call ended; the digest runs separately and once. Check whether the call had enough caller speech to be summarised at all — a one-word call is deliberately never sent to the summariser.
Can I edit a summary?
The summary is the engine's account of the call. A person's own verdict belongs in the call's disposition, which is a separate column precisely so that a human judgement and a machine's account can coexist without one overwriting the other.
Does the summary include what the supervisor told the voice mid-call?
No. Guidance goes into the system prompt and nowhere else — not the spoken reply, not the transcript, and so not the summary. What the guidance caused the voice to say is in the turns, which is the honest version of that record.