Zephoriam records every call as an append-only ledger of typed events — every prompt, every caller utterance, every routing decision, every piece of evidence the AI consulted — replayable end to end, so QA, compliance and coaching finally read the same record.
Pre-launch, built by a contact-center consultant who got tired of asking vendors questions they couldn't answer. No customers yet — you would be early, and we would rather say that than fake a logo wall.
call ledgercall_01j9f2a · 8 events
call.started09:14:02
Inbound · +1 (405) •••• · flow optometry.v4
agent.said09:14:03
“Thanks for calling Northgate Eye Care. What can I help you with?”
caller.said09:14:09
“I need to move my appointment — it's tomorrow morning.”
intent.classified09:14:09
reschedule_appointment · from 3 declared branches
evidence.cited09:14:11
“Appointments may be moved without charge up to 24 hours before the scheduled time.”
scheduling-policy.md §4.2 · retrieved this turn
agent.said09:14:12
“Tomorrow at 9:40 is inside the 24-hour window, so I'll need a person for that.”
branch.taken09:14:13
handoff_scheduling · declared edge, not improvised
handoff.requested09:14:14
To a human, with the packet:
transcriptintentevidence consultedwhat was tried
Illustrative example. Real calls produce this shape: typed events, in order, nothing overwritten.
Why it exists
Three questions no vendor could answer.
Zephoriam began as a short list of things a contact-center consultant kept asking IVR vendors on discovery calls, and kept getting slides back instead of answers.
01
When, where and why do callers drop out?
Every platform reports containment. Almost none can tell you that a caller heard the wrong branch of the menu, said “representative” twice, got no-matched, and hung up forty seconds in — let alone let you watch it happen again. Drop-out gets inferred from aggregates, weeks later, by whoever is best at spreadsheets.
Zephoriam's answer: the drop-out is an event, in sequence, sitting next to the prompt that preceded it and the recognition result that caused it. You replay the call instead of reconstructing it.
02
Where does the call actually go when the “AI agent” takes it?
Most third-party voice agents bolt on by blind-transferring to an external phone number. From your side the call simply leaves the building: no events, no transcript, no evidence trail, no way to reconcile what the agent told the caller with what your systems know. It comes back as a line item on someone else's dashboard.
Zephoriam's answer: the agent is a node inside your flow, not a phone number. Its turns are events on the same ledger as every prompt and every transfer.
03
Can you prove what the automation said, and why?
When a caller insists they were quoted a price, when a supervisor coaches on a call the bot handled first, when someone asks how a disclosure was delivered — “the model generated it” is not an answer, and a recording with no reasoning attached is barely better. QA, compliance and coaching each end up with their own partial export.
Zephoriam's answer: every agent turn carries the evidence it was permitted to use, by reference. What was said and why it was said live in one record that all three teams read.
How it works
A ledger, an evidence rule, and a gate.
Three architectural commitments. They are the reason the rest of the product behaves the way it does.
one append-only stream per call
The ledger
Typed events — call.started, agent.said, caller.said, intent.classified, branch.taken, handoff.requested. Nothing is ever overwritten: a correction is a new event, so the record can gain detail but can never quietly change its story. Every screen is a replay of those events, which is why QA, compliance and coaching stop arguing about whose export is right.
the model selects; it never invents
The evidence rule
At an agentic node the model chooses among the branches the flow declares, by index, against a schema — so it cannot route a caller to a destination that doesn't exist. When it states a policy, a price or an account fact, that fact came back from retrieval and is quoted by reference. No retrieved evidence, no claim. The interesting part is what it makes impossible.
the machine drafts; the person decides
The human gate
Sensitive actions — a credit, a refund, an exception — stop for a human approval that is itself a recorded event. So do the platform's own improvement proposals: every request the flow couldn't handle is captured in the caller's own words, mined for patterns, and turned into a drafted new branch that a human approves or rejects. The system gets faster. The gate does not move.
The human is the gate. The machine is the draft.
Handoff is an outcome, not a failure
A transfer to a person is a first-class result with a packet attached: the transcript, the classified intent, the evidence consulted, and what the automation already tried. Design for the handoff and it stops being the thing you hide from the report. A contained call that left the caller furious is a failure that the containment number scores as a win.
It learns, but it does not change itself
Every request the flow had no branch for is kept verbatim, as evidence. Those become drafted proposals — a new branch, with the calls that justify it cited by reference. A human approves every change before it reaches a live flow, and the approval is on the ledger like everything else.
Honest status
Early, and saying so.
Most of this page describes architecture that exists and is under test. Here is the line between what is built, what is being built now, and what simply is not true yet.
Built and tested
Append-only call ledger with a typed event registry
End-to-end replay of a call from its events
Declared-branch routing — the model picks an index, never a new destination
Evidence-cited answers: quote by reference, or make no claim
Human approval gates as first-class recorded events
Being built now
Live voice on real phone calls, over Twilio
The first production flow: appointment make, change, cancel
Handoff packets delivered to a human agent
Mining unhandled requests into proposed new branches
Not true yet
No customers. No case studies, no logos, no testimonials, no usage statistics — and none invented in the meantime
No compliance certifications. The architecture is built for auditability; that is not the same as having been audited, and we won't blur the two
One channel: voice. SMS, chat and email are designed to write to the same ledger — later, not today
If this is the IVR you have been describing to vendors, talk to the person building it.
Early access means small numbers of design partners, direct access to the build, and a real say in what the first flows look like.