The short answer

Structured outcomes are what make a voice deployment measurable and integrable. A transcript tells you what was said; an outcome tells you what happened, in a value another system can act on. Without one, every downstream question — did this campaign work, which contacts need follow-up — requires a human to read calls.

In detail

The outcome set should be defined before the campaign runs, be mutually exclusive, and cover every case including the ones nobody wants to enumerate: no answer, voicemail, wrong number, refused, and an explicit undetermined for calls the classifier cannot place. Forcing an ambiguous call into a definite bucket is worse than recording that it was ambiguous, because it silently corrupts the reporting built on top.

Classification can come from the agent declaring the outcome during the call, from a model reading the transcript afterwards, or from both with a reconciliation step. In-call declaration is immediate but depends on the agent following instructions; post-call classification sees the whole conversation and applies consistent criteria, at the cost of arriving after the call has ended.

Outcomes are only useful if they are validated against reality. A classifier that assigns a positive disposition liberally makes a campaign look successful while the underlying results do not change. Sampling calls and checking the assigned outcome against what a human reviewer concludes is the only way to know whether the reporting means anything.

How Rexa handles it

Rexa lets a call declare its candidate outcomes up front. When expected_outcomes is supplied, the platform runs a classifier over the transcript after the call ends and emits a session.disposition_set webhook carrying a disposition_code drawn from that list — or the reserved value undetermined — plus a short disposition_note summarising the call. Omitting the field skips disposition analysis entirely.

Webhooks reference

Back to the glossary

All 53 glossary terms