# Facts learned on a call

What a caller says can outlive the call. When a call ends, Connect writes durable facts about the person and the business into Memory, and the next conversation reads them — on any channel, not only the phone. What is refused matters as much: a form of address is never taken as a name, and a call that was never a conversation contributes nothing at all.

- **Status:** Available
- **Audience:** both
- **Channels:** phone
- **In the app:** #/memory, #/calls
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/phone/call-facts/

## What comes out of the end of a call

`end_call` runs the same work whichever engine held the call: a summary, a lead where one is warranted, memory, and any follow-up that was promised. Facts are the part that changes future behaviour rather than future reading — a summary tells a person what happened, a fact tells Connect what is true.

**A durable statement about the person** — Their role, the site they buy for, the language they prefer, a standing preference about being contacted. These belong on the person and travel with them.
**A durable statement about the business** — Something the caller told you about your own operation — a delivery window that does not work, a product they were told about that you no longer sell.
**A standing instruction** — A direction that should shape future conversations, not a note about this one.
**Nothing** — Most calls. A call that resolved a question and ended has no durable fact in it, and manufacturing one fills Memory with noise that costs prompt characters on every future call.

## What is refused

Extraction from speech is where bad data enters a system, because speech recognition produces confident nonsense and a model will key a fact to whatever noun it was given. The guards are specific:

- **A form of address is never a name.** *Sir*, *madam*, *ji*, *anna* and their equivalents are protected markers. They pass through summariser output, lead capture, person upsert and `connect_memory.remember`, and they are stripped at every one of those doors and at every door a name is read back out through.
- **A name-keyed fact whose key is not a name is refused** as `fact_rejected` — a suffix, a pronoun, or the words "the caller". A fact filed under "the caller" is a fact about nobody, and it will be read back to the wrong person eventually.
- **A call that was never a conversation produces nothing.** A call with fewer than two caller lines and fewer than five caller words is not sent to the summariser at all. Ten one-turn rows once carried an invented afternoon at a sales desk, produced entirely by a model asked to summarise silence.

> **Careful** A refusal is not a silent drop. `fact_rejected` and the name guards are recorded, so a line that is generating a lot of them is telling you something about the audio quality or the script rather than about Memory.

## How a fact reaches the next conversation

Facts are not stored per channel. A person who told the voice they only want contact after four o'clock has said it to Connect, and the next email is written knowing it. The phone is where the sentence was heard; the relationship is what remembers it.

On the way back into a call, facts arrive through the brief. `voice_engine.brief()` renders the persona, the line's purpose, the contact's facts and standing instructions, knowledge, the hard rules and the supervisor's guidance — once per call, not per turn. That is where the budgets bite: knowledge is capped at four facts and 2,000 characters, memory at 700, the contact block at 600.

Those caps are the reason to be sparing. Memory is not a filing cabinet that grows for free — everything in it competes for the same 700 characters, and characters are first-token time on every call. A workspace with forty facts about one person will find that the four that matter are not reliably the four that fit.

## Correcting something a call got wrong

Facts are editable records, not transcript excerpts. Correcting one changes what future conversations are told; it does not rewrite the call, and the transcript still says what was said. That separation is deliberate — the call is evidence and the fact is a belief, and only one of them should be editable.

If a fact keeps coming back after correction, the source is usually the call script rather than the extraction: a voice that asks the same question every time will keep hearing the same answer and offering it again. A standing instruction is the durable way to say "stop asking this".

## Questions

### Does everything said on a call become a fact?

No, and that is the design rather than a limitation. Most calls produce none. The threshold is whether the statement should change a future conversation; if it only describes this one, the summary and the transcript already hold it.

### Will a fact learned on the phone show up in an email reply?

Yes, if it is about the person or the business rather than about that call. Memory belongs to the relationship, and the reply is written with the same facts the voice would have been given. That is the point of learning it once.

### Why was a fact about "sir" or "the caller" thrown away?

Because it is keyed to something that is not a person. A form of address is a protected marker and is refused at every door a name passes through, and a fact keyed to "the caller" is `fact_rejected`. Both would otherwise be read back to the wrong human at some point.

## Related

- [Memory in Connect](https://connectbyjbrh.com/docs/memory/)
- [The call brief](https://connectbyjbrh.com/docs/phone/call-context/)
- [Names heard on a call](https://connectbyjbrh.com/docs/phone/names-on-calls/)
- [Calls that were never a conversation](https://connectbyjbrh.com/docs/phone/not-a-conversation/)
- [Structured business memory instead of a longer prompt](https://connectbyjbrh.com/research/structured-business-memory/)
- [Why the machine proposes a merge and a person disposes](https://connectbyjbrh.com/research/one-person-many-channels/)

## What this page is based on

- Connect phone source pack — `docs-source/sources/PHONE.md` §10, names and follow-up integrity
- Connect phone source pack — `docs-source/sources/PHONE.md` §3, §7 and §9, the brief, its budgets and the summariser floor
- Connect capability registry — `docs-source/facts.py` (`MEASURED` prompt budgets, `CANONICAL_TERMS`)
