# Leads captured from a call

A call that was a conversation can create a Person and a lead; a call that was never a conversation never does. `_capture_lead` refuses `no_answer` — it rang and nobody picked up — and `not_reached`, where it never rang at all. When a lead is created, the record carries `phone_key` from the first ring, so the next call from that number finds the same person.

- **Status:** Available
- **Audience:** both
- **Channels:** phone
- **In the app:** #/relationships, #/calls
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/phone/lead-from-call/

## When a call becomes a relationship

Lead capture runs at the end of the call, alongside the summary, the facts and any follow-up. It asks a narrow question: is there a human here who is not already in the workspace's relationships, and did the call give enough to identify them? A stranger who rang, explained what they wanted and left a way to be reached is a lead. Someone who is already a Person is not — they get the call on their timeline instead.

The number is the anchor. Every inbound call arrives with one, which makes phone the one channel where identity is available before a word is spoken — and `identify_caller` resolves it before the greeting so the brief knows who is calling.

## When it deliberately creates nothing

A call that was never a conversation has its own word for it, and the distinction inside that word matters:

**`no_answer`** — The phone rang and nobody picked up. There is a real number and a real attempt, and no human said anything.
**`not_reached`** — It never rang at all — the dial, the dispatch or the worker failed. Nothing reached the far end, and the far end may be perfectly fine.

Neither creates a lead. The reasoning is worth stating because the opposite behaviour is so tempting: a record created from an unanswered call has a number and nothing else, no name, no need and no reason to exist, and a pipeline full of them makes every count meaningless. A workspace that measures how many people rang this week wants the answer to be people, not attempts.

The summariser has a floor of its own that reinforces this: a call with fewer than two caller lines and fewer than five caller words is not summarised, because a model asked to summarise near-silence invents something. Ten one-turn rows once carried a fabricated afternoon at a sales desk.

## What the record carries from the first ring

A contact created by lead capture carries `phone_key` — the normalised form of the number, in the shape identity resolution looks it up by — from the moment it is created.

That sounds like housekeeping and is not. On the host, 23 of 25 contacts once had no `phone_key` at all. Each of them was created by a real call from a real number, and each of them was invisible to the next call from that same number: the caller rang back, was not recognised, was greeted as a stranger and produced a second record. The fix is to write the key at creation rather than to repair it later.

> **Note** A number that already resolves to two rows is resolved to the **oldest**. Choosing the oldest keeps the history attached to the record that has the most of it, and it is deterministic — the same number resolves the same way on every call, rather than following whichever row was touched last.

## The name on the lead

Names heard on a call pass through the same guards everywhere they are written or read: summariser output, lead capture, the person upsert and Memory. A form of address is never taken as a name. A name-keyed fact that is a suffix, a pronoun or "the caller" is refused.

A lead with no confident name is still a lead — a number and a stated need is enough to work with, and the name arrives on the next contact. A lead named *Sir* is worse than a lead named nothing, because somebody will eventually greet them that way in writing.

## A lead is not a prospect

These are different records with different origins, and the corpus keeps the words apart. A **Person** is a human in the workspace's relationships, and a call from a stranger creates one. A **Prospect** is an organisation or person discovered by research, with no relationship yet.

The practical difference on the phone side is evidence. A lead from a call has a number that demonstrably worked — somebody answered on it. Prospect research never guesses a contact address; where an address is not evidenced it is absent, not inferred.

## Questions

### Somebody rang, we did not pick up, and there is no record of them. Is that a bug?

There is a call record; there is no lead. `no_answer` deliberately creates nothing in the relationships, because a record made from a ring with no conversation carries a number and nothing else. The call is on the call list with its outcome, and you can create the Person from it yourself.

### Why did a returning caller come back as a new person?

Almost always a missing `phone_key` on the earlier record — historically the common cause. Records created now carry it from the start. Where two rows already exist for one number, resolution picks the oldest, so merging into the older record is the repair that matches what future calls will do.

### Does an outbound call create a lead too?

It can, if the call reached a person who is not yet in the relationships and the conversation identified them. The same two refusals apply: an outbound that rang out or never rang creates nothing.

## Related

- [Calls that were never a conversation](https://connectbyjbrh.com/docs/phone/not-a-conversation/)
- [Identifying the caller](https://connectbyjbrh.com/docs/phone/caller-identity/)
- [A returning caller](https://connectbyjbrh.com/docs/phone/returning-caller/)
- [Relationships in Connect](https://connectbyjbrh.com/docs/relationships/)
- [Telling a new prospect from an existing customer](https://connectbyjbrh.com/research/prospect-identity-resolution/)
- [Facts learned on a call](https://connectbyjbrh.com/docs/phone/call-facts/)

## What this page is based on

- Connect phone source pack — `docs-source/sources/PHONE.md` §9 and §10, not-a-conversation and lead capture
- Connect phone source pack — `docs-source/sources/PHONE.md` §10, names and identity resolution
- Connect capability registry — `docs-source/facts.py` (`CANONICAL_TERMS`, `FORBIDDEN_CLAIMS`)
