Events
Call ended
Payload telli sends when a call reaches a terminal state
WEBHOOK
Call outcome
Three fields describe what happened, and they are the ones to build on:state— where the call is in its lifecyclestatus— how it ended, once it has endedfollow_up— the follow-up telli scheduled, if any
call_status is lossy in both directions: IN_PROGRESS cannot tell in_progress from processing, and COMPLETED and ANSWERED differ only by whether a follow-up was scheduled.
Analysis fields
The payload carries two kinds of analysis, and their shapes differ.call_analysis holds telli’s built-in analysis. Every entry has a boolean value; entries that support supporting detail also carry details:
call_outcome holds the custom analysis fields you configure in telli. Entries are keyed by field name and carry the extracted value plus the schema it was validated against:
call_outcome entry may also include reason, explaining why the agent chose that value, and error when extraction failed.
Collected data
When the agent has Collect Data tasks,collected_data reports what was gathered and confirmed during the call:
confirmed entries carry a value you should trust. When no Collect Data tasks are configured or none were triggered, collected_data is empty or null — handle both.
Retry attempts
Automatic retries within one scheduled sequence share aloop_id, and attempt counts up within it. Scheduling the same contact again starts a new loop, so use contact_id to track a contact across sequences.