Goals & evaluation

This is configured on the Outcomessub-tab under Configure (Configure → Outcomes). It turns every conversation into structured data. You define what to capture and what to check; after each call, Seny replays the transcript through a model and fills both in automatically.

Data extraction

Define the fields you want pulled out of conversations — name, email, event date, vehicle of interest, budget, whatever matters to your business. Each field has a name, a description, and a type.

After a conversation ends, the filled-in values land on the conversation as extracted_data — visible on the conversation detail page and in the API. Fields the visitor never mentioned come back empty rather than invented.

Acceptance criteria

Acceptance criteria are pass/fail checks on how the conversation went — "Did the agent answer the visitor's question?", "Was contact info collected?", "Was an appointment booked?". Each criterion is a name plus a plain-English description of what counts as satisfied.

After each call, every criterion gets one of three verdicts:

  • pass — the criterion applied and was met.
  • fail — the criterion applied and was not met.
  • not applicable— the criterion didn't apply to what the visitor wanted. A visitor who only asked for store hours shouldn't fail an "appointment booked" criterion — it simply didn't apply.

not-applicable verdicts are excluded from pass-rate analytics, so your numbers reflect calls the criterion actually applied to.

Writing conditional criteria

Because the verdict is decided by a model reading the transcript, you can phrase a criterion conditionally and it will resolve sensibly:

If the visitor asked to book an appointment, an appointment
was booked with a specific date and time. If the visitor did
not ask to book anything, this criterion is not applicable.

Where results show up

  • Conversation detail— per-criterion verdicts and the model's reasoning, plus the extracted fields.
  • Analytics — per-criterion pass rates across recent calls and per-field fill rates.
  • API & webhooks — extracted_data and criteria_results on every conversation.

Timing

Evaluation runs right after a conversation ends and takes a few seconds. If you fetch a conversation immediately, the fields may still be populating — a backstop sweep guarantees every completed conversation is eventually scored.