Outcomes and analyses
After a Call ends, Vocal can leave two kinds of typed result behind it. An Outcome is the set of fields an Agent version declares and the Call fills at its end. An analysis is the result of an analyzer that runs over the Call's stored transcript after the Call is finalized.
On the Phase 0 host. Served since contracts 1.56.0 (deploy #61), with the analyzers running in the worker's
analysisrole.
Declare an Outcome
outcome_schema on the Agent draft lists the Outcome's fields, each with its type and a phi flag. The Call fills them at its on_call_end hook, and each field records how its value was found, its method: extracted by a model request, with a confidence, or taken from a slot or a tool result. Publishing checks the schema and freezes it into the version.
GET /v1/calls/{call_id}/outcomes answers the Outcome: its status and every field with its method and confidence. With calls:read it carries the values of the phi: false fields that are not free text; include=values adds every other value, needs transcripts:read, and is an audited content read. A Call whose version has no Outcome schema, or that is not finalized, has none and answers 404. The record event call.outcomes.ready announces it.
Bind analyzers
analysis on the Agent draft binds up to 8 analyzers; contracts 1.56.0 has summary and outcomes. Publishing pins each analyzer's version. After finalize, each runs over the Call's stored, redacted transcript.
| What | Operation |
|---|---|
| Every analysis of a Call with its runs, status, Provider, usage and timing | GET /v1/calls/{call_id}/analyses |
One analysis; include=values adds the values and is audited | GET /v1/calls/{call_id}/analyses/{analysis_id} |
| Run analyzers again, as a job that answers 202 | POST /v1/calls/{call_id}/analyses |
A run again needs a stored transcript, else 409 transcript_unavailable with the reason. It is priced when it is requested and checks the spend cap. Each settled run emits the record event analysis.completed or analysis.failed, and call.analyzed fires again once the run again settles.
Reading them later
The event types page lists the record events, and the Events operations read them from the event log or the Organization's event stream. Delivery to an endpoint of yours takes a Webhook subscription, whose operations contracts 1.63.0 adds (Webhooks); each of their pages says whether the Phase 0 host serves it.