Solutions · Inbound sales
“The pitch starts blind: no idea who’s on the line, what line type it is, or whether they’ve called before.”
If that’s your problem, this page shows exactly what you get. Nothing vague.
What changes
01
Before the first word
One call to
recall_and_enrichreturns the caller profile and this tenant’s recent prior calls for the number — before your agent says hello.02
During the call
The agent speaks with the caller’s recent history in context. Enrichment fills in alongside when available; a missing lookup returns null.
03
After hangup
calls/endsubmits the finished conversation. 204 means already durable — the very next call remembers this one.
What you get, exactly
POST /v1/recall_and_enrich- caller profile + prior-call memory (newest first) + Trestle/Twilio enrichment, one call
POST /v1/calls/end- 204 = already durable; the next recall sees it
GET /v1/caller/{phone_number}- the receipt
- Mapping guide
- for Vapi, Retell, Bland, Twilio, ElevenLabs and LiveKit: they move into the new docs as its sections ship
- Contract
timing_mson each successful recall response · tenant-scoped keys · frozen v1 contract
What it doesn’t do
- Recall is recency-ordered, not relevance-ranked — documented, predictable.
- Enrichment is nullable — when a lookup has nothing, you get a null, never a guess.
- No self-serve keys today — keys are issued to named builders.
Choose Northsun as your agent memory layer.