Your second brain
for closing deals.
Speak after a showing. Forward an email. Pull up a client. Lumi captures the soft signals, fills the brief, and feeds Claude — automatically.
- Voice → CRM, auto. No forms.
- Works offline. Syncs when you're back.
- Free for agents in EU · LatAm · MENA.
10-min read · Updated April 2026
Lumi · Wednesday
Good morning, Niki.
Two showings · three leads need a nudge.
Showing · Passeig de Gràcia 84
I haven't written call notes
in six months. CRM is sharper than ever.
Hand-written call notes are a lossy compression algorithm — agents capture maybe 30% of what mattered in a 14-minute call, and the soft signals (tone shifts, repeated unprompted mentions) get dropped first because they're hardest to write down. The agents who've handed this to AI aren't losing accuracy. They're gaining the 70% of signal hand-notes never captured.
outcome: Sunday batched — Foz 11 + Cascais 12:30
(was Saturday solo Foz; husband added)
next_step: Send fresh garden photo by Wed EOD
objections: 2 unhandled (Cascais price, garden size)
group: husband co-equal · mother + sister
influencing
soft signals (4):
· schools/kindergarten unprompted ×2
· price flexibility hinted ("but…")
· garden = hard constraint (slower voice)
· husband decision-co-equal, not inviteeFive fields. Twelve seconds to read. Four soft signals that would have died with the call if a human were taking notes.
Five fields. No prose. No paragraphs.
The schema is the contract between Claude and the agent. Each field is constrained to one sentence or a short array — that constraint is what makes the brief readable in 12 seconds, not 12 minutes.
Five steps. Hangup to CRM in 90 seconds.
The end-to-end pipeline from the moment the call ends to the moment the structured brief lives in the CRM. Each step has a fixed latency budget; the agent is never on the critical path.
- 01
Recording is consented and routed within the legal stack.
Two-party-consent jurisdictions (most of EU, parts of LatAm) require an audible disclosure at call start — "this call is recorded for our notes" — and an opt-out path. The protocol's first action is enforcing this disclosure: a 4-second pre-roll the agent's softphone or call-recording stack must include. Skip this step and the whole pipeline is illegal in the agent's jurisdiction.
- 02
Whisper transcribes — locally or via API — within 30 seconds of hangup.
A 14-minute call transcribes in ~25 seconds via Whisper API ($0.0025/call). For privacy-strict practices, local Whisper.cpp on a Mac mini does it in ~90 seconds. Either way: by the time the agent has walked back to their desk, the transcript exists. Do not let the queue back up — async transcripts that surface 4 hours later get ignored.
- 03
Claude extracts the 5 fields in one structured-output call.
Single Claude call: transcript + existing CRM brief + metadata in. JSON object with the 5 fields out. Use Sonnet — Haiku misses subtler soft signals, and the cost difference ($0.012 vs $0.003 per call) is irrelevant against the value of the soft signals captured. Strict JSON-mode for tooling.
- 04
Updates merge into the CRM. Soft signals append, never overwrite.
The brief is mutable for outcome and next_step (newest call wins). Objections, decision_group_update, and especially soft_signals append rather than replace — the goal is a growing, layered understanding of the client across all calls, not a snapshot of the latest one. Old soft signals fade in the UI after 6 months, but they're never deleted.
- 05
The agent reviews the 5 fields, never the transcript.
The whole point: the transcript is for the AI; the 5 fields are for the agent. Storing the full transcript is fine for compliance, but the agent's UI shows only the structured update. Auditing the transcript word-by-word defeats the time saving — and after 4 weeks of accuracy verification, agents stop bothering. Trust the schema.
Three failure modes the schema rejects.
Without strict prompt rules, Claude regresses toward conversational prose. Each of these would pass a casual review — and each one breaks the 12-second readability that justifies the schema.
outcome: Had a productive call about the Foz property, discussed scheduling and family considerations.
"Productive" and "discussed" tell you nothing. A week later this is useless. The whole point of the schema is to force specificity that survives memory decay.
soft_signals: I think Marina is more interested in Cascais than she's letting on. She's probably going to push back on price.
Inferred conclusions, not signals. Schema requires factual capture: "raised Cascais unprompted, framed by mother's suggestion" — let the agent draw the conclusion when reading. Pre-baked conclusions get trusted too easily and skew judgement.
summary: Marina wants to see Foz on Sunday now, also Cascais. Husband and mother involved. Concerned about garden size.
Collapses everything into one paragraph — exactly the manual note-taking the schema replaces. Without the 5 separate fields, the agent has to re-read and reparse on every glance. The schema is not aesthetic; it's load-reducing.
The transcript input.
A real (anonymised) excerpt of a 14-minute call transcript. The full transcript is ~3,000 words; this excerpt shows the dense first 90 seconds where most of the deal-moving action happens.
# ── call log input (truncated transcript) ────── client: "Marina Costa" call_duration: "14m 22s" initiated_by: "agent" time_of_day: "Tuesday 18:45" transcript_excerpt: AGENT: "Hi Marina, just confirming Saturday 11am for the Foz visit?" MARINA: "Yes — but I wanted to ask, the garden in the listing photos looks quite small. Is that representative?" AGENT: "It's about 90 square metres — the angle in the photos compresses it. I'll send a fresh shot." MARINA: "Okay. And one more thing — my husband couldn't make Saturday, do you have anything Sunday?" AGENT: "Sunday morning works. 10am?" MARINA: "Hmm, can we do 11? He has a work call." AGENT: "11 Sunday works. I'll move it." MARINA: "Actually, before you do — can we look at the Cascais one as well that day? My mother saw it in the feed and she wants me to consider it. I think it's beyond budget but…" AGENT: "Both Sunday — I'll batch it. Cascais at 12:30?" MARINA: "Perfect. And about the schools — is the kindergarten in Foz walking distance? My sister mentioned it's a bit further than it looks." ... [continues another 11 minutes]
What to feed Claude.
The system prompt that turns a Whisper transcript into the structured CRM update. Use Sonnet for soft-signal nuance — Haiku misses tone-shifts and repeated unprompted mentions.
You are a senior real-estate agent's
call-log analyst.
INPUT
You receive: the full Whisper transcript of
a phone call (8-30 minutes typically), the
client's existing CRM brief, and metadata
(call duration, time of day, who initiated).
OUTPUT
A structured object with EXACTLY 5 fields:
outcome: <one sentence — what
actually happened in this
call. Not what was
discussed; what changed.>
next_step: <one sentence — the
specific next action with
a date or trigger. Empty
if none was committed.>
objections: <array of 0-3 strings —
each a specific objection
raised, with the agent's
response if any.>
decision_group_update:
<one sentence — anything
new about who's involved
in the decision (spouse,
parents, partner, lawyer)
and their stance.>
soft_signals: <array of 0-5 strings —
tone shifts, unprompted
asides, things mentioned
twice, anything that
reveals a constraint or
preference not in the
brief.>
RULES (non-negotiable)
1. Outcome is past tense, factual. Not
"discussed pricing" — "agreed to revisit
€820k floor after spouse's reaction".
2. Next step has a date or a trigger.
"Send the floor plan by Thursday" — not
"follow up soon".
3. Objections are verbatim themes, not
inferred. If the client never explicitly
raised an objection, the array is empty.
4. Soft signals are gold — capture every
one. The same word said twice is a
signal. A pause before a number is a
signal. An unprompted aside about a
parent or a school is a signal.
5. NEVER include the agent's own commentary
("I think this means…"). Only what was
said and what changed.
ANTI-PATTERNS (never produce these)
- Outcome: "had a great call" / "good
conversation" — vague, useless.
- Next step: "stay in touch" / "follow up"
- Objections inferred from tone alone
- Multi-paragraph fields — each field is
one sentence or a short array.
The agent should read the 5 fields in 12
seconds and know exactly where the deal
stands and what to do next.Pipe Whisper transcripts in immediately after each call. Use structured-output JSON-mode for downstream tooling.
What Claude returns.
The structured object that lands in the CRM. Notice the soft_signals array — four signals captured from a single 14-minute call, three of which a human note-taker would have lost.
outcome:
Marina rescheduled Saturday viewing to Sunday
11am to include husband, added a Cascais
property at her mother's suggestion.
next_step:
Send fresh garden photo of Foz property
before Wednesday EOD; confirm both Sunday
viewings (Foz 11am, Cascais 12:30) by
Thursday.
objections:
- "Garden looks small in photos" → reassured
with 90m² figure, fresh photo committed.
- "Cascais property likely beyond budget"
raised by client herself — not yet
addressed; needs price-position before
Sunday.
decision_group_update:
Husband is on the viewing path — must be
present for major decisions (Sunday 11
needed because of his work call). Mother
is influencing list (suggested Cascais).
Sister mentioned as a local-market voice
(kindergarten walking distance).
soft_signals:
- Mentioned schools/kindergarten unprompted
twice (Foz). Family-stage planning more
advanced than form indicated.
- "Beyond budget but…" — suggests price
flexibility if right property; don't
discount Cascais on price alone.
- Voice softer/slower on garden question —
likely a hard constraint, not a casual
ask.
- Husband framed as decision co-equal, not
courtesy invite — viewings without him
will not produce decisions.Two-party-consent matters more than the AI.
The legal exposure of this protocol is not the AI extraction. It's the recording. Most of the EU (Germany, France, Italy, Spain, Portugal, plus all GDPR-covered jurisdictions) requires explicit two-party consent before recording. The disclosure must be audible, comprehensible, and given before substantive content. The opt-out — “please don't record this call” — must actually disable the recording.
LatAm and MENA are mixed. UAE, Saudi Arabia, and several LatAm jurisdictions are one-party (the agent recording their own call is sufficient consent), but the safer default everywhere is two-party. Configure your softphone or call-recording stack to insert a disclosure pre-roll automatically; don't rely on the agent to remember.
On data residency: keep transcripts and structured briefs in the same jurisdiction as the client's residence where possible. EU clients → EU-region S3 / Vertex / Anthropic EU endpoints. The $0.0025/call cost saving from cheaper US-region inference is not worth the GDPR headache.
Recording the call is step one.
Trusting the schema is step two.
Lumi is the app that runs this workflow for you. You speak after a showing — Lumi captures the soft signals. You forward an email — Lumi updates the constraints. You open the app at 8am — the brief is already there, ready to feed Claude.
- Voice → structured CRM, automatically
- No forms. No data entry. No copy-paste.
- Free for agents in EU · LatAm · MENA
Lumi · Wednesday
Good morning, Niki.
Two showings · three leads need a nudge.
Showing · Passeig de Gràcia 84
Pipeline
Active
8
Warm
4
Cold
2
Clara Ruiz
Active€1.8M · 3BR
Passeig de Gràcia showing · 11:30
Andreas Moreno
Active€2.4M · 4BR
Send comps by 18:00
Dimitri Schneider
Warm€900K · 2BR
Contract review today
Silent 3d · last 3 days ago
Sarah Mitchell
Cold€1.2M · 3BR
Draft re-engagement
Silent 9d · last 9 days ago
A real-estate adaptation of the structured-output extraction pattern (Whisper for transcription + an LLM with a strict schema) that has reshaped sales CRM. Our slice: the 5-field call brief that captures soft signals manual notes drop first.
More guides like this on @lumi.estate. Follow if any of this was useful — it's how we know to keep writing.