Rejected inbound calls are saved with status rejected, but do not send a call_ended webhook. You can find them through List Calls or in Conversation History.
Three fields describe what happened, and they are the ones to build on:
state — where the call is in its lifecycle
status — how it ended, once it has ended
follow_up — the follow-up telli scheduled, if any
call_status is deprecated and will be removed. Use state, status, and follow_up instead.
The legacy field maps onto the new ones like this:
call_status
state
status
follow_up
INITIATED
queued
null
null
RINGING
ringing
null
null
IN_PROGRESS
in_progress
null
null
IN_PROGRESS
processing
null
null
COMPLETED
ended
connected
null
ANSWERED
ended
connected
set
NOT_REACHED
ended
not_connected
null
VOICEMAIL
ended
voicemail
null
ERROR
ended
failed
null
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.
call_analysis and call_outcome are deprecated and will be removed on 1st of February 2027. Both fields are retained for compatibility until then. Update your integrations to use outcomes before the removal date.
outcomes contains account and agent call outcomes as an array of { key, dataType, value, reason? } entries. dataType is always present. reason is omitted when unavailable. When both sources return the same key, only the agent result is included.Both deprecated fields retain their existing shapes for compatibility until their removal on 1st of February 2027.The deprecated call_analysis field contains legacy extraction results. Every entry has a boolean value; entries that support additional detail also carry details. These results are not included in outcomes:
The deprecated call_outcome field contains legacy agent-specific outcome results. Entries are keyed by field name and carry the extracted value plus the schema it was validated against:
Only confirmed entries carry a value you should trust. Address entries also include latitude and longitude when address validation produced coordinates; other task types omit these fields. When no Collect Data tasks are configured or none were triggered, collected_data is empty or null — handle both.
call.appointments contains bookings recorded during the call, including their start time (starts_at, in UTC), status, hosts, and provider identifiers. It is empty when none were recorded. Failed booking attempts are excluded.booked describes booking creation, not customer confirmation. pending means booking completion or provider confirmation is still required; unknown means the integration reported no status. Later cancellations or rescheduling at the provider are not reflected.call.booked_slot_for is deprecated and remains available for compatibility. Use call.appointments for booking details. Older calls can have call.booked_slot_for set while call.appointments is empty.
recording_url links to the audio of the call, or is null when recording is disabled or unavailable. The link expires 1 hour after the webhook is sent, so download the recording right away if you need to keep it.
Automatic retries within one scheduled sequence share a loop_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.
The contact as it stood after the call was processed.
Show child attributes
Response
2XX
Acknowledged. Return any 2xx within 15 seconds or the message is retried.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"telli Documentation","description":"telli is the AI voice platform for agents that sell, support, and operate across millions of calls. These docs cover the telli platform, building and deploying agents, CRM and calendar integrations, cookbooks, and the REST API.","colors":{"primary":"#038BF7","light":"#F7F7F7","dark":"#252525"},"logo":{"light":"https://mintcdn.com/telli/wePiRZJJIgcmFhVf/logo/light.svg?fit=max\u0026auto=format\u0026n=wePiRZJJIgcmFhVf\u0026q=85\u0026s=4c36f76dafc00642a1b9b2e15f789484","dark":"https://mintcdn.com/telli/wePiRZJJIgcmFhVf/logo/dark.svg?fit=max\u0026auto=format\u0026n=wePiRZJJIgcmFhVf\u0026q=85\u0026s=f7568465bb135b4d15f8092f0ebfccce"},"favicon":"https://mintcdn.com/telli/JJ4Na5kgztKTjICd/favicon.svg?fit=max\u0026auto=format\u0026n=JJ4Na5kgztKTjICd\u0026q=85\u0026s=5856251fd37f13d48a2d819d4d2ad24f","appearance":{"default":"system"},"navbar":{"links":[{"href":"https://telli.com","label":"Homepage"},{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Go to App","href":"https://app.telli.com"}},"footer":{"socials":{"x":"https://x.com/tellidotcom","linkedin":"https://www.linkedin.com/company/tellitechnologies"}},"seo":{"metatags":{"canonical":"https://docs.telli.com"},"indexing":"navigable"},"styling":{"latex":false},"errors":{"404":{"redirect":false,"title":"We couldn't find that page","description":"The page may have moved or no longer exists. Search the docs, start with the [product overview](/introduction), or contact [support](mailto:[email protected])."}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"en/get-started"},{"language":"de","href":"de/get-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"telli","hasAudioNarration":false,"actualSubdomain":"telli","customDomains":["docs.telli.com"],"gitSource":{"type":"github","owner":"telli-ai","repo":"telli","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aedce1925df1b8f9bf5bd74","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"en","tag":"API","count":34},{"language":"de","tag":"API","count":34},{"language":"en","tag":"Developer","count":31},{"language":"de","tag":"Entwickler","count":31},{"language":"en","tag":"Product","count":27},{"language":"de","tag":"Produkt","count":27},{"language":"en","tag":"Cookbooks","count":18},{"language":"de","tag":"Cookbooks","count":18},{"language":"en","tag":"Platform","count":17},{"language":"de","tag":"Plattform","count":17},{"language":"en","tag":"Get Started","count":13},{"language":"de","tag":"Erste Schritte","count":13},{"language":"en","tag":"Build Your First Agent","count":12},{"language":"de","tag":"Erstelle deinen ersten Agenten","count":12},{"language":"en","tag":"Providers","count":10},{"language":"de","tag":"Anbieter","count":10},{"language":"en","tag":"Calendar Integrations","count":9},{"language":"en","tag":"Feature Cookbooks","count":9},{"language":"de","tag":"Kalender-Integrationen","count":9},{"language":"de","tag":"Veraltete Kontakt-Endpunkte","count":9}],"searchSettings":{"showContentSnippets":false,"maxResults":8,"isFiltersEnabled":true}},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":".frame{overflow-anchor:none}.frame>div.text-sm{font-size:11px;color:rgb(var(--gray-500));margin-top:4px;padding-top:0;padding-bottom:0;padding-left:12px;padding-right:12px}.frame>div.text-sm p{font-size:11px}img.nav-logo{height:20px}"}],"page":{"pagePath":"webhooks/events/call-ended","slug":"/webhooks/events/call-ended","pageMetadata":{"title":"Call ended","description":"Payload telli sends when a call reaches a terminal state","openapi":"openapi-v2.json webhook call_ended","href":"/webhooks/events/call-ended"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Payload telli sends when a call reaches a terminal state\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Rejected inbound calls are saved with status `,_jsx(_components.code,{children:`rejected`}),`, but do not send a `,_jsx(_components.code,{children:`call_ended`}),` webhook. You can find them through `,_jsx(_components.a,{href:`/v1/endpoint/list-calls`,children:`List Calls`}),` or in `,_jsx(_components.a,{href:`/platform/call-history`,children:`Conversation History`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`call-outcome`,children:`Call outcome`}),`\n`,_jsx(_components.p,{children:`Three fields describe what happened, and they are the ones to build on:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`state`}),` — where the call is in its lifecycle`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`status`}),` — how it ended, once it has ended`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`follow_up`}),` — the follow-up telli scheduled, if any`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`call_status`}),` is deprecated and will be removed. Use `,_jsx(_components.code,{children:`state`}),`, `,_jsx(_components.code,{children:`status`}),`, and `,_jsx(_components.code,{children:`follow_up`}),` instead.`]})}),`\n`,_jsx(_components.p,{children:`The legacy field maps onto the new ones like this:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`call_status`})}),_jsx(_components.th,{children:_jsx(_components.code,{children:`state`})}),_jsx(_components.th,{children:_jsx(_components.code,{children:`status`})}),_jsx(_components.th,{children:_jsx(_components.code,{children:`follow_up`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`INITIATED`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`queued`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`RINGING`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ringing`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`IN_PROGRESS`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`in_progress`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`IN_PROGRESS`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`processing`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`COMPLETED`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ended`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`connected`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ANSWERED`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ended`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`connected`})}),_jsx(_components.td,{children:`set`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`NOT_REACHED`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ended`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`not_connected`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`VOICEMAIL`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ended`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`voicemail`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ERROR`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ended`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`failed`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`null`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`call_status`}),` is lossy in both directions: `,_jsx(_components.code,{children:`IN_PROGRESS`}),` cannot tell `,_jsx(_components.code,{children:`in_progress`}),` from `,_jsx(_components.code,{children:`processing`}),`, and `,_jsx(_components.code,{children:`COMPLETED`}),` and `,_jsx(_components.code,{children:`ANSWERED`}),` differ only by whether a follow-up was scheduled.`]}),`\n`,_jsx(Heading,{level:`2`,id:`analysis-fields`,children:`Analysis fields`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`call_analysis`}),` and `,_jsx(_components.code,{children:`call_outcome`}),` are deprecated and will be removed on 1st of February 2027. Both fields are retained for compatibility until then. Update your integrations to use `,_jsx(_components.code,{children:`outcomes`}),` before the removal date.`]})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`outcomes`}),` contains account and agent call outcomes as an array of `,_jsx(_components.code,{children:`{ key, dataType, value, reason? }`}),` entries. `,_jsx(_components.code,{children:`dataType`}),` is always present. `,_jsx(_components.code,{children:`reason`}),` is omitted when unavailable. When both sources return the same key, only the agent result is included.`]}),`\n`,_jsx(_components.p,{children:`Both deprecated fields retain their existing shapes for compatibility until their removal on 1st of February 2027.`}),`\n`,_jsxs(_components.p,{children:[`The deprecated `,_jsx(_components.code,{children:`call_analysis`}),` field contains legacy extraction results. Every entry has a boolean `,_jsx(_components.code,{children:`value`}),`; entries that support additional detail also carry `,_jsx(_components.code,{children:`details`}),`. These results are not included in `,_jsx(_components.code,{children:`outcomes`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"appointment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"details\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-02-18T15:30:00Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The deprecated `,_jsx(_components.code,{children:`call_outcome`}),` field contains legacy agent-specific outcome results. Entries are keyed by field name and carry the extracted `,_jsx(_components.code,{children:`value`}),` plus the schema it was validated against:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"custom_lost_reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PRODUCT_TOO_EXPENSIVE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fieldSchema\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"string\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"null\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enum\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CUSTOMER_NOT_INTERESTED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CUSTOMER_PREVIOUSLY_CONTACTED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PRODUCT_TOO_EXPENSIVE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`call_outcome`}),` entry may also include `,_jsx(_components.code,{children:`reason`}),`, explaining why the agent chose that value.`]}),`\n`,_jsx(Heading,{level:`2`,id:`collected-data`,children:`Collected data`}),`\n`,_jsxs(_components.p,{children:[`When the agent has `,_jsx(_components.a,{href:`/deep-dives/collected-data`,children:`Collect Data`}),` tasks, `,_jsx(_components.code,{children:`collected_data`}),` reports what was gathered and confirmed during the call:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"confirmed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"[email protected]\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"delivery_address\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"confirmed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Rosenthaler Straße 51, 10178 Berlin, Germany\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"latitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`52.5253059`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"longitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`13.4043936`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"case_number\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"declined\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Only `,_jsx(_components.code,{children:`confirmed`}),` entries carry a value you should trust. Address entries also include `,_jsx(_components.code,{children:`latitude`}),` and `,_jsx(_components.code,{children:`longitude`}),` when address validation produced coordinates; other task types omit these fields. When no Collect Data tasks are configured or none were triggered, `,_jsx(_components.code,{children:`collected_data`}),` is empty or `,_jsx(_components.code,{children:`null`}),` — handle both.`]}),`\n`,_jsx(Heading,{level:`2`,id:`appointments`,children:`Appointments`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`call.appointments`}),` contains bookings recorded during the call, including their start time (`,_jsx(_components.code,{children:`starts_at`}),`, in UTC), status, hosts, and provider identifiers. It is empty when none were recorded. Failed booking attempts are excluded.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`booked`}),` describes booking creation, not customer confirmation. `,_jsx(_components.code,{children:`pending`}),` means booking completion or provider confirmation is still required; `,_jsx(_components.code,{children:`unknown`}),` means the integration reported no status. Later cancellations or rescheduling at the provider are not reflected.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`call.booked_slot_for`}),` is deprecated and remains available for compatibility. Use `,_jsx(_components.code,{children:`call.appointments`}),` for booking details. Older calls can have `,_jsx(_components.code,{children:`call.booked_slot_for`}),` set while `,_jsx(_components.code,{children:`call.appointments`}),` is empty.`]}),`\n`,_jsx(Heading,{level:`2`,id:`recording`,children:`Recording`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`recording_url`}),` links to the audio of the call, or is `,_jsx(_components.code,{children:`null`}),` when recording is disabled or unavailable. The link expires 1 hour after the webhook is sent, so download the recording right away if you need to keep it.`]}),`\n`,_jsx(Heading,{level:`2`,id:`retry-attempts`,children:`Retry attempts`}),`\n`,_jsxs(_components.p,{children:[`Automatic retries within one scheduled sequence share a `,_jsx(_components.code,{children:`loop_id`}),`, and `,_jsx(_components.code,{children:`attempt`}),` counts up within it. Scheduling the same contact again starts a new loop, so use `,_jsx(_components.code,{children:`contact_id`}),` to track a contact across sequences.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Call ended","description":"Payload telli sends when a call reaches a terminal state","openapi":"openapi-v2.json webhook call_ended","href":"/webhooks/events/call-ended"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Call outcome","slug":"call-outcome","depth":2,"children":[]},{"title":"Analysis fields","slug":"analysis-fields","depth":2,"children":[]},{"title":"Collected data","slug":"collected-data","depth":2,"children":[]},{"title":"Appointments","slug":"appointments","depth":2,"children":[]},{"title":"Recording","slug":"recording","depth":2,"children":[]},{"title":"Retry attempts","slug":"retry-attempts","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Call ended","description":"Payload telli sends when a call reaches a terminal state","operationId":"call_ended","security":[],"requestBody":"94c1a6e0-9e7f-408e-a758-1aa78595bdcd","responses":{"2XX":"e33e7b95-8e9d-4cb0-b0b5-a8b5a6d914e8"},"method":"post","type":"webhook","servers":["c2f19c37-4440-49ac-91e6-924336321efe"],"path":"call_ended","baseUrlOptions":["https://api.telli.com"],"title":"Call ended","codeSamples":[],"requiredOnlyExamples":false,"requestExamples":[{"language":"json","filename":"Example","code":"{\n \"event\": \"call_ended\",\n \"call\": {\n \"ended_reason\": \"contact-ended-call\",\n \"call_id\": \"b4a05730-2abc-4eb0-8066-2e4d23b53ba9\",\n \"loop_id\": \"ba99c99d-19b9-4a0d-8df6-3e213088989a\",\n \"attempt\": 1,\n \"from_number\": \"+17755719467\",\n \"direction\": \"outbound\",\n \"transport\": \"sip\",\n \"destination\": \"external\",\n \"to_number\": \"+14155552671\",\n \"external_contact_id\": \"external-123\",\n \"contact_id\": \"6bd1e7e0-6d00-4c0b-ad5b-daa72457a27d\",\n \"contact_details\": {\n \"company\": \"Art Studio Inc\"\n },\n \"contact_properties\": [\n {\n \"key\": \"industry\",\n \"value\": \"retail\",\n \"dataType\": \"string\",\n \"label\": \"Industry\"\n }\n ],\n \"agent_id\": \"d8931604-92ad-45cf-9071-d9cd2afbad0c\",\n \"triggered_at\": 1731956924302,\n \"triggered_at_iso\": \"2024-11-18T15:08:44.302Z\",\n \"started_at\": 1731956932264,\n \"started_at_iso\": \"2024-11-18T15:08:52.264Z\",\n \"ended_at\": 1731957002078,\n \"ended_at_iso\": \"2024-11-18T15:10:02.078Z\",\n \"call_length_min\": 2,\n \"call_length_sec\": 69,\n \"call_status\": \"COMPLETED\",\n \"state\": \"ended\",\n \"status\": \"connected\",\n \"follow_up\": null,\n \"transcript\": \"Agent: Hello...\",\n \"transcriptObject\": [\n {\n \"role\": \"agent\",\n \"content\": \"Hello...\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Hi, I was hoping to book an appointment.\"\n },\n {\n \"role\": \"agent\",\n \"toolActivity\": \"get_available_timeslots\",\n \"type\": \"function_call\"\n },\n {\n \"role\": \"agent\",\n \"content\": \"I can offer you Thursday at 13:15.\"\n }\n ],\n \"call_analysis\": {\n \"appointment\": {\n \"value\": true,\n \"details\": \"2025-02-18T15:30:00Z\"\n },\n \"interest\": {\n \"value\": true,\n \"details\": \"The customer is interested in buying an ice cream machine\"\n }\n },\n \"call_outcome\": {\n \"custom_lost_reason\": {\n \"value\": \"PRODUCT_TOO_EXPENSIVE\",\n \"fieldSchema\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"enum\": [\n \"CUSTOMER_NOT_INTERESTED\",\n \"CUSTOMER_PREVIOUSLY_CONTACTED\",\n \"PRODUCT_TOO_EXPENSIVE\"\n ]\n }\n }\n },\n \"outcomes\": [\n {\n \"key\": \"custom_lost_reason\",\n \"dataType\": \"category\",\n \"value\": \"PRODUCT_TOO_EXPENSIVE\",\n \"reason\": \"The contact said the product was too expensive.\"\n }\n ],\n \"collected_data\": {\n \"email\": {\n \"status\": \"confirmed\",\n \"value\": \"[email protected]\"\n },\n \"delivery_address\": {\n \"status\": \"confirmed\",\n \"value\": \"Rosenthaler Straße 51, 10178 Berlin, Germany\",\n \"latitude\": 52.5253059,\n \"longitude\": 13.4043936\n }\n },\n \"booked_slot_for\": \"2025-02-24T15:30:00Z\",\n \"appointments\": [\n {\n \"id\": \"c3809aea-0650-461a-ba36-31da19346cd8\",\n \"starts_at\": \"2025-02-24T15:30:00.000Z\",\n \"timezone\": \"Europe/Berlin\",\n \"status\": \"booked\",\n \"hosts\": [\n {\n \"name\": \"Alex Smith\",\n \"email\": \"[email protected]\"\n }\n ],\n \"reference\": {\n \"provider\": \"bookingtime\",\n \"booking_template_id\": \"template-123\",\n \"appointment_id\": \"appointment-123\",\n \"organization_id\": \"organization-123\"\n }\n }\n ],\n \"recording_url\": \"https://example.com/recording.wav\",\n \"sip_status_code\": 200,\n \"sip_status\": \"OK\",\n \"transfer\": null\n },\n \"contact\": {\n \"contact_id\": \"6bd1e7e0-6d00-4c0b-ad5b-daa72457a27d\",\n \"external_contact_id\": \"external-123\",\n \"external_url\": null,\n \"created_at\": \"2024-11-18T15:00:00.000Z\",\n \"gender\": null,\n \"first_name\": \"Frida\",\n \"last_name\": \"Kahlo\",\n \"phone_number\": \"+14155552671\",\n \"in_call_since\": null,\n \"reached_at\": \"2024-11-18T15:08:52.264Z\",\n \"contact_details\": {\n \"company\": \"Art Studio Inc\"\n },\n \"call_attempts\": 1,\n \"next_call_at\": null,\n \"email\": \"[email protected]\",\n \"timezone\": \"America/Los_Angeles\",\n \"salutation\": \"Ms.\",\n \"status\": \"reached\",\n \"properties\": [\n {\n \"key\": \"industry\",\n \"value\": \"retail\",\n \"dataType\": \"string\",\n \"label\": \"Industry\"\n }\n ]\n }\n}"}],"requestExampleType":"webhook","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"event":{"type":"string","const":"call_ended","description":"Always `call_ended`.","isRequired":true,"uniqueKey":"event","typeLabel":"string"},"call":{"type":"object","properties":{"ended_reason":{"type":"string","enum":["agent-ended-call","agent-forwarded-call","agent-busy","agent-did-not-answer","contact-busy","contact-ended-call","contact-did-not-answer","phone-provider-closed-connection","other"],"description":"Who or what ended the call. Always set: `other` covers reasons that do not map to a specific cause.","isRequired":true,"uniqueKey":"call.ended_reason","typeLabel":"enum\u003cstring>"},"call_id":{"type":"string","description":"telli identifier of this call.","isRequired":true,"uniqueKey":"call.call_id","typeLabel":"string"},"loop_id":{"oneOf":[{"type":"string","description":"Identifier of the call loop, or null for a call without automatic retries.","isRequired":true,"uniqueKey":"call.loop_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the call loop, or null for a call without automatic retries.","isRequired":true,"uniqueKey":"call.loop_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.loop_id","typeLabel":"string | null"},"attempt":{"type":"number","description":"Number of calls in the loop when this event was sent, or 1 for a call without a loop.","isRequired":true,"uniqueKey":"call.attempt","typeLabel":"number"},"from_number":{"type":"string","description":"Number the call was placed from, in E.164 format.","isRequired":true,"uniqueKey":"call.from_number","typeLabel":"string"},"direction":{"type":"string","enum":["inbound","outbound"],"description":"Whether telli placed the call (`outbound`) or received it (`inbound`).","isRequired":true,"uniqueKey":"call.direction","typeLabel":"enum\u003cstring>"},"transport":{"type":"string","enum":["sip","webrtc"],"description":"Connection method of the primary caller. Phone numbers remain context for WebRTC calls.","isRequired":true,"uniqueKey":"call.transport","typeLabel":"enum\u003cstring>"},"destination":{"type":"string","enum":["agent","external"],"description":"Where the call terminated: `external` for outbound calls and for inbound calls forwarded to an external phone number before any agent spoke, or `agent` for inbound calls a telli agent answered or telli rejected.","isRequired":true,"uniqueKey":"call.destination","typeLabel":"enum\u003cstring>"},"to_number":{"type":"string","description":"Number the call was placed to, in E.164 format.","isRequired":true,"uniqueKey":"call.to_number","typeLabel":"string"},"external_contact_id":{"oneOf":[{"type":"string","description":"Your own identifier for the contact, if one was supplied.","isRequired":true,"uniqueKey":"call.external_contact_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own identifier for the contact, if one was supplied.","isRequired":true,"uniqueKey":"call.external_contact_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.external_contact_id","typeLabel":"string | null"},"contact_id":{"type":"string","description":"telli identifier of the contact on the call.","isRequired":true,"uniqueKey":"call.contact_id","typeLabel":"string"},"contact_details":{"oneOf":[{"type":"object","description":"Free-form dynamic variables stored on the contact when the event was sent. Empty or null if none.","additionalProperties":{"oneOf":[{}],"uniqueKey":"call.contact_details.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"call.contact_details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Free-form dynamic variables stored on the contact when the event was sent. Empty or null if none.","isRequired":true,"uniqueKey":"call.contact_details.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.contact_details","typeLabel":"object | null"},"contact_properties":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Stable key of the contact property, as defined in Settings > Contact properties.","isRequired":true,"uniqueKey":"call.contact_properties.items.[INDEX].key","typeLabel":"string"},"value":{"description":"Value stored for this contact. The JSON type follows `dataType`.","isRequired":true,"uniqueKey":"call.contact_properties.items.[INDEX].value","typeLabel":"any"},"dataType":{"type":"string","enum":["string","number","boolean","date","datetime","select","multi_select","phone_number","email"],"description":"Data type of the property.","isRequired":true,"uniqueKey":"call.contact_properties.items.[INDEX].dataType","typeLabel":"enum\u003cstring>"},"label":{"description":"Human-readable label of the property.","type":"string","uniqueKey":"call.contact_properties.items.[INDEX].label","typeLabel":"string"},"options":{"description":"Allowed options. Present only for `select` and `multi_select` properties.","type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"Stored value of the option.","isRequired":true,"uniqueKey":"call.contact_properties.items.[INDEX].options.items.[INDEX].value","typeLabel":"string"},"label":{"type":"string","description":"Human-readable label of the option.","isRequired":true,"uniqueKey":"call.contact_properties.items.[INDEX].options.items.[INDEX].label","typeLabel":"string"},"description":{"description":"Optional longer description of the option.","type":"string","uniqueKey":"call.contact_properties.items.[INDEX].options.items.[INDEX].description","typeLabel":"string"}},"required":["value","label"],"additionalProperties":false,"uniqueKey":"call.contact_properties.items.[INDEX].options.items.[INDEX]","typeLabel":"object"},"uniqueKey":"call.contact_properties.items.[INDEX].options","typeLabel":"object[]"}},"required":["key","value","dataType"],"additionalProperties":false,"uniqueKey":"call.contact_properties.items.[INDEX]","typeLabel":"object"},"description":"Structured contact properties when the event was sent.","isRequired":true,"uniqueKey":"call.contact_properties","typeLabel":"object[]"},"agent_id":{"type":"string","description":"Identifier of the agent that handled the call. `00000000-0000-0000-0000-000000000000` when no agent took part, as on an inbound call forwarded to the account transfer number.","isRequired":true,"uniqueKey":"call.agent_id","typeLabel":"string"},"triggered_at":{"oneOf":[{"type":"number","description":"Unix timestamp in milliseconds of when the call was triggered.","isRequired":true,"uniqueKey":"call.triggered_at.oneOf.0","typeLabel":"number"},{"type":"null","description":"Unix timestamp in milliseconds of when the call was triggered.","isRequired":true,"uniqueKey":"call.triggered_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.triggered_at","typeLabel":"number | null"},"triggered_at_iso":{"oneOf":[{"type":"string","description":"ISO 8601 form of `triggered_at`.","isRequired":true,"uniqueKey":"call.triggered_at_iso.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 form of `triggered_at`.","isRequired":true,"uniqueKey":"call.triggered_at_iso.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.triggered_at_iso","typeLabel":"string | null"},"started_at":{"oneOf":[{"type":"number","description":"Unix timestamp in milliseconds of when the call connected, or null if it never connected.","isRequired":true,"uniqueKey":"call.started_at.oneOf.0","typeLabel":"number"},{"type":"null","description":"Unix timestamp in milliseconds of when the call connected, or null if it never connected.","isRequired":true,"uniqueKey":"call.started_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.started_at","typeLabel":"number | null"},"started_at_iso":{"oneOf":[{"type":"string","description":"ISO 8601 form of `started_at`.","isRequired":true,"uniqueKey":"call.started_at_iso.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 form of `started_at`.","isRequired":true,"uniqueKey":"call.started_at_iso.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.started_at_iso","typeLabel":"string | null"},"ended_at":{"oneOf":[{"type":"number","description":"Unix timestamp in milliseconds of when the call ended.","isRequired":true,"uniqueKey":"call.ended_at.oneOf.0","typeLabel":"number"},{"type":"null","description":"Unix timestamp in milliseconds of when the call ended.","isRequired":true,"uniqueKey":"call.ended_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.ended_at","typeLabel":"number | null"},"ended_at_iso":{"oneOf":[{"type":"string","description":"ISO 8601 form of `ended_at`.","isRequired":true,"uniqueKey":"call.ended_at_iso.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 form of `ended_at`.","isRequired":true,"uniqueKey":"call.ended_at_iso.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.ended_at_iso","typeLabel":"string | null"},"call_length_min":{"oneOf":[{"type":"number","description":"Call duration rounded up to whole minutes. Use `call_length_sec` for exact duration.","isRequired":true,"uniqueKey":"call.call_length_min.oneOf.0","typeLabel":"number"},{"type":"null","description":"Call duration rounded up to whole minutes. Use `call_length_sec` for exact duration.","isRequired":true,"uniqueKey":"call.call_length_min.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.call_length_min","typeLabel":"number | null"},"call_length_sec":{"oneOf":[{"type":"number","description":"Call duration in whole seconds.","isRequired":true,"uniqueKey":"call.call_length_sec.oneOf.0","typeLabel":"number"},{"type":"null","description":"Call duration in whole seconds.","isRequired":true,"uniqueKey":"call.call_length_sec.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.call_length_sec","typeLabel":"number | null"},"call_status":{"type":"string","deprecated":true,"description":"Deprecated. Use `state`, `status`, and `follow_up` instead. One of `INITIATED`, `RINGING`, `IN_PROGRESS`, `COMPLETED`, `ANSWERED`, `NOT_REACHED`, `VOICEMAIL`, or `ERROR`.","isRequired":true,"uniqueKey":"call.call_status","typeLabel":"string"},"state":{"type":"string","enum":["queued","ringing","in_progress","processing","ended"],"description":"Where the call is in its lifecycle: `queued`, `ringing`, `in_progress`, `processing`, or `ended`.","isRequired":true,"uniqueKey":"call.state","typeLabel":"enum\u003cstring>"},"status":{"oneOf":[{"type":"string","description":"What happened once the call ended: `connected`, `not_connected`, `voicemail`, `failed`, or `rejected` for an inbound call telli rejected, which sends no `call_ended` webhook. Null until the call has ended.","enum":["connected","not_connected","voicemail","failed","rejected"],"isRequired":true,"uniqueKey":"call.status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"What happened once the call ended: `connected`, `not_connected`, `voicemail`, `failed`, or `rejected` for an inbound call telli rejected, which sends no `call_ended` webhook. Null until the call has ended.","isRequired":true,"uniqueKey":"call.status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.status","typeLabel":"enum\u003cstring> | null"},"follow_up":{"oneOf":[{"type":"object","description":"The follow-up telli scheduled from this call, or null if none was scheduled.","required":["type","scheduled_at"],"properties":{"type":{"type":"string","const":"agent_follow_up","description":"Always `agent_follow_up`.","isRequired":true,"uniqueKey":"call.follow_up.oneOf.0.type","typeLabel":"string"},"scheduled_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"ISO 8601 timestamp of when the follow-up call is scheduled.","isRequired":true,"uniqueKey":"call.follow_up.oneOf.0.scheduled_at","typeLabel":"string\u003cdate-time>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.follow_up.oneOf.0","typeLabel":"object"},{"type":"null","description":"The follow-up telli scheduled from this call, or null if none was scheduled.","isRequired":true,"uniqueKey":"call.follow_up.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.follow_up","typeLabel":"object | null"},"transcript":{"oneOf":[{"type":"string","description":"Plain-text transcript of the call, or null if unavailable.","isRequired":true,"uniqueKey":"call.transcript.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain-text transcript of the call, or null if unavailable.","isRequired":true,"uniqueKey":"call.transcript.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.transcript","typeLabel":"string | null"},"transcriptObject":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","const":"user","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.0.role","typeLabel":"string"},"content":{"type":"string","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.0.content","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["role","toolActivity"],"properties":{"role":{"type":"string","const":"agent","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.1.role","typeLabel":"string"},"toolActivity":{"type":"string","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.1.toolActivity","typeLabel":"string"},"type":{"type":"string","const":"function_call","uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.1.type","typeLabel":"string"},"toolParameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.1.toolParameters.additionalProperties","typeLabel":"string"},"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.1.toolParameters","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["role","type","content","callId","isError"],"properties":{"role":{"type":"string","const":"agent","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.2.role","typeLabel":"string"},"type":{"type":"string","const":"function_call_output","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.2.type","typeLabel":"string"},"content":{"type":"string","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.2.content","typeLabel":"string"},"callId":{"type":"string","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.2.callId","typeLabel":"string"},"isError":{"type":"boolean","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.2.isError","typeLabel":"boolean"},"toolName":{"type":"string","uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.2.toolName","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","const":"agent","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.3.role","typeLabel":"string"},"content":{"type":"string","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.3.content","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX].oneOf.3","typeLabel":"object"}],"uniqueKey":"call.transcriptObject.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Turn-by-turn transcript. Contact turns carry `content`; agent turns carry either `content` or a tool activity. Null if unavailable.","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Turn-by-turn transcript. Contact turns carry `content`; agent turns carry either `content` or a tool activity. Null if unavailable.","isRequired":true,"uniqueKey":"call.transcriptObject.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.transcriptObject","typeLabel":"object[] | null"},"outcomes":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].key","typeLabel":"string"},"dataType":{"type":"string","enum":["boolean","string","number","category","multi_category"],"description":"Configured outcome data type.","isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].dataType","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"boolean"},{"type":"string","isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"string"},{"type":"number","isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].value.oneOf.2","typeLabel":"number"},{"type":"array","items":{"type":"string","uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].value.oneOf.3.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].value.oneOf.3","typeLabel":"string[]"},{"type":"null","isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].value.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].value","typeLabel":"boolean | string | number | string[] | null"},"reason":{"description":"Explanation for the outcome value. Omitted when unavailable.","type":"string","uniqueKey":"call.outcomes.oneOf.0.items.[INDEX].reason","typeLabel":"string"}},"required":["key","dataType","value"],"additionalProperties":false,"uniqueKey":"call.outcomes.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Account and agent call outcomes with their keys, values, and optional reasons, or null if unavailable. Each key appears once.","isRequired":true,"uniqueKey":"call.outcomes.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Account and agent call outcomes with their keys, values, and optional reasons, or null if unavailable. Each key appears once.","isRequired":true,"uniqueKey":"call.outcomes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.outcomes","typeLabel":"object[] | null"},"collected_data":{"oneOf":[{"type":"object","description":"Results of the agent's Collect Data tasks. Empty or null when none were triggered.","additionalProperties":{"type":"object","properties":{"status":{"type":"string","enum":["in_progress","confirmed","declined","error"],"description":"Outcome of the Collect Data task: `confirmed` when the caller confirmed the value, `declined` when they refused, `error` when collection failed, `in_progress` when the call ended mid-collection.","isRequired":true,"uniqueKey":"call.collected_data.oneOf.0.additionalProperties.status","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"The collected value, or null when nothing was collected.","isRequired":true,"uniqueKey":"call.collected_data.oneOf.0.additionalProperties.value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The collected value, or null when nothing was collected.","isRequired":true,"uniqueKey":"call.collected_data.oneOf.0.additionalProperties.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.collected_data.oneOf.0.additionalProperties.value","typeLabel":"string | null"},"latitude":{"description":"Latitude returned by address validation. Present when validated coordinates are available for an `address` task.","type":"number","uniqueKey":"call.collected_data.oneOf.0.additionalProperties.latitude","typeLabel":"number"},"longitude":{"description":"Longitude returned by address validation. Present when validated coordinates are available for an `address` task.","type":"number","uniqueKey":"call.collected_data.oneOf.0.additionalProperties.longitude","typeLabel":"number"}},"required":["status","value"],"additionalProperties":false,"uniqueKey":"call.collected_data.oneOf.0.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"call.collected_data.oneOf.0","typeLabel":"object"},{"type":"null","description":"Results of the agent's Collect Data tasks. Empty or null when none were triggered.","isRequired":true,"uniqueKey":"call.collected_data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.collected_data","typeLabel":"object | null"},"booked_slot_for":{"oneOf":[{"type":"string","description":"Deprecated. Legacy ISO 8601 booking timestamp, or null if none was booked. Retained for compatibility. In call-ended webhooks, use `appointments` instead.","deprecated":true,"isRequired":true,"uniqueKey":"call.booked_slot_for.oneOf.0","typeLabel":"string"},{"type":"null","description":"Deprecated. Legacy ISO 8601 booking timestamp, or null if none was booked. Retained for compatibility. In call-ended webhooks, use `appointments` instead.","deprecated":true,"isRequired":true,"uniqueKey":"call.booked_slot_for.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.booked_slot_for","typeLabel":"string | null"},"appointments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Stable telli appointment ID.","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"starts_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Appointment start in UTC.","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].starts_at","typeLabel":"string\u003cdate-time>"},"timezone":{"type":"string","description":"Booking timezone (IANA identifier).","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].timezone","typeLabel":"string"},"status":{"type":"string","enum":["booked","pending","cancelled","rejected","unknown"],"description":"Booking status. `booked` means the booking was created. `pending` awaits completion or provider confirmation; `unknown` means no status was reported.","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"hosts":{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].hosts.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].hosts.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].hosts.items.[INDEX].name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].hosts.items.[INDEX].email.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].hosts.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].hosts.items.[INDEX].email","typeLabel":"string | null"}},"required":["name","email"],"additionalProperties":false,"uniqueKey":"call.appointments.items.[INDEX].hosts.items.[INDEX]","typeLabel":"object"},"description":"People the appointment was booked with.","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].hosts","typeLabel":"object[]"},"reference":{"oneOf":[{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider","event_type_uri","event_uri","invitee_uri","reschedule_url","cancel_url"],"properties":{"provider":{"type":"string","const":"calendly","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.provider","typeLabel":"string"},"event_type_uri":{"type":"string","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.event_type_uri","typeLabel":"string"},"event_uri":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.event_uri.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.event_uri.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.event_uri","typeLabel":"string | null"},"invitee_uri":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.invitee_uri.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.invitee_uri.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.invitee_uri","typeLabel":"string | null"},"reschedule_url":{"oneOf":[{"type":"string","format":"uri","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.reschedule_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.reschedule_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.reschedule_url","typeLabel":"string\u003curi> | null"},"cancel_url":{"oneOf":[{"type":"string","format":"uri","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.cancel_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.cancel_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0.cancel_url","typeLabel":"string\u003curi> | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.0","typeLabel":"object"},{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider","event_type_id","booking_id","booking_uid","seat_uid","region"],"properties":{"provider":{"type":"string","const":"cal-dot-com","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.provider","typeLabel":"string"},"event_type_id":{"type":"number","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.event_type_id","typeLabel":"number"},"booking_id":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.booking_id.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.booking_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.booking_id","typeLabel":"number | null"},"booking_uid":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.booking_uid.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.booking_uid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.booking_uid","typeLabel":"string | null"},"seat_uid":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.seat_uid.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.seat_uid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.seat_uid","typeLabel":"string | null"},"region":{"type":"string","enum":["us","eu"],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1.region","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.1","typeLabel":"object"},{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider","scheduling_page_id","event_id","invitee_id"],"properties":{"provider":{"type":"string","const":"zeeg","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.provider","typeLabel":"string"},"scheduling_page_id":{"type":"string","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.scheduling_page_id","typeLabel":"string"},"event_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.event_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.event_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.event_id","typeLabel":"string | null"},"invitee_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.invitee_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.invitee_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2.invitee_id","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.2","typeLabel":"object"},{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider","branch_id","service_id","appointment_id"],"properties":{"provider":{"type":"string","const":"timify","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.3.provider","typeLabel":"string"},"branch_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.3.branch_id","typeLabel":"string"},"service_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.3.service_id","typeLabel":"string"},"appointment_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.3.appointment_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.3.appointment_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.3.appointment_id","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.3","typeLabel":"object"},{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider","booking_template_id","appointment_id","organization_id"],"properties":{"provider":{"type":"string","const":"bookingtime","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.4.provider","typeLabel":"string"},"booking_template_id":{"type":"string","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.4.booking_template_id","typeLabel":"string"},"appointment_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.4.appointment_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.4.appointment_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.4.appointment_id","typeLabel":"string | null"},"organization_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.4.organization_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.4","typeLabel":"object"},{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider","meeting_link_slug","calendar_event_id","contact_id","portal_id","ui_domain","engagement_id"],"properties":{"provider":{"type":"string","const":"hubspot","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.provider","typeLabel":"string"},"meeting_link_slug":{"type":"string","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.meeting_link_slug","typeLabel":"string"},"calendar_event_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.calendar_event_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.calendar_event_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.calendar_event_id","typeLabel":"string | null"},"contact_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.contact_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.contact_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.contact_id","typeLabel":"string | null"},"portal_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.portal_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.portal_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.portal_id","typeLabel":"string | null"},"ui_domain":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.ui_domain.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.ui_domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.ui_domain","typeLabel":"string | null"},"engagement_id":{"oneOf":[{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.engagement_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.engagement_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5.engagement_id","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.5","typeLabel":"object"},{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider"],"properties":{"provider":{"type":"string","const":"propstack","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.6.provider","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.6","typeLabel":"object"},{"type":"object","description":"Provider booking identifiers and links, when available.","required":["provider"],"properties":{"provider":{"type":"string","const":"generic","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.7.provider","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.7","typeLabel":"object"},{"type":"null","description":"Provider booking identifiers and links, when available.","isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference.oneOf.8","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.appointments.items.[INDEX].reference","typeLabel":"object · object · object · object · object · object · object · object · null"}},"required":["id","starts_at","timezone","status","hosts","reference"],"additionalProperties":false,"uniqueKey":"call.appointments.items.[INDEX]","typeLabel":"object"},"description":"Bookings recorded during the call. Empty when none were recorded. Failed attempts are excluded.","isRequired":true,"uniqueKey":"call.appointments","typeLabel":"object[]"},"recording_url":{"oneOf":[{"type":"string","description":"URL of the call recording, or null when recording is disabled or unavailable. The link expires 1 hour after the webhook is sent — download the recording promptly if you need to keep it.","isRequired":true,"uniqueKey":"call.recording_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL of the call recording, or null when recording is disabled or unavailable. The link expires 1 hour after the webhook is sent — download the recording promptly if you need to keep it.","isRequired":true,"uniqueKey":"call.recording_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.recording_url","typeLabel":"string | null"},"sip_status_code":{"oneOf":[{"type":"integer","description":"SIP response code returned by the phone network, for example 200.","maximum":9007199254740991,"minimum":-9007199254740991,"isRequired":true,"uniqueKey":"call.sip_status_code.oneOf.0","typeLabel":"integer"},{"type":"null","description":"SIP response code returned by the phone network, for example 200.","isRequired":true,"uniqueKey":"call.sip_status_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.sip_status_code","typeLabel":"integer | null"},"sip_status":{"oneOf":[{"type":"string","description":"Human-readable SIP status, for example `OK`.","isRequired":true,"uniqueKey":"call.sip_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable SIP status, for example `OK`.","isRequired":true,"uniqueKey":"call.sip_status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.sip_status","typeLabel":"string | null"},"transfer":{"oneOf":[{"type":"object","description":"Transfer details when the call was transferred, or null if the call was not transferred.","required":["destination","completed_at"],"properties":{"destination":{"type":"string","description":"Transfer target the call was transferred to: an E.164 phone number or a tel:/sip: URI.","isRequired":true,"uniqueKey":"call.transfer.oneOf.0.destination","typeLabel":"string"},"completed_at":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of when the call was transferred.","isRequired":true,"uniqueKey":"call.transfer.oneOf.0.completed_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 timestamp of when the call was transferred.","isRequired":true,"uniqueKey":"call.transfer.oneOf.0.completed_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.transfer.oneOf.0.completed_at","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"call.transfer.oneOf.0","typeLabel":"object"},{"type":"null","description":"Transfer details when the call was transferred, or null if the call was not transferred.","isRequired":true,"uniqueKey":"call.transfer.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.transfer","typeLabel":"object | null"},"call_analysis":{"oneOf":[{"type":"object","description":"Deprecated. Will be removed on 1st of February 2027. Retained for compatibility until then. Legacy system-provided call analysis, or null if unavailable. Configure needed fields under Settings > Outcomes and use `outcomes`.","deprecated":true,"additionalProperties":{"oneOf":[{"type":"object","required":["value","details"],"properties":{"value":{"type":"boolean","description":"Whether the analysis field was detected in the call.","isRequired":true,"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties.oneOf.0.value","typeLabel":"boolean"},"details":{"oneOf":[{"type":"string","description":"Supporting detail extracted from the transcript, or null when the analysis produced none.","isRequired":true,"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties.oneOf.0.details.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supporting detail extracted from the transcript, or null when the analysis produced none.","isRequired":true,"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties.oneOf.0.details.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties.oneOf.0.details","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","required":["value"],"properties":{"value":{"type":"boolean","description":"Whether the analysis field was detected in the call.","isRequired":true,"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties.oneOf.1.value","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties.oneOf.1","typeLabel":"object"}],"uniqueKey":"call.call_analysis.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"call.call_analysis.oneOf.0","typeLabel":"object"},{"type":"null","description":"Deprecated. Will be removed on 1st of February 2027. Retained for compatibility until then. Legacy system-provided call analysis, or null if unavailable. Configure needed fields under Settings > Outcomes and use `outcomes`.","deprecated":true,"uniqueKey":"call.call_analysis.oneOf.1","typeLabel":"null"}],"uniqueKey":"call.call_analysis","typeLabel":"object | null"},"call_outcome":{"oneOf":[{"type":"object","description":"Deprecated. Will be removed on 1st of February 2027. Retained for compatibility until then. Use `outcomes`, which combines account and agent call outcomes; agent results take precedence when keys match.","deprecated":true,"additionalProperties":{"type":"object","properties":{"value":{"oneOf":[{"type":"boolean","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.value.oneOf.0","typeLabel":"boolean"},{"type":"string","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.value.oneOf.1","typeLabel":"string"},{"type":"number","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.value.oneOf.2","typeLabel":"number"},{"type":"array","items":{"type":"string","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.value.oneOf.3.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.value.oneOf.3","typeLabel":"string[]"},{"type":"null","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.value.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.value","typeLabel":"boolean | string | number | string[] | null"},"fieldSchema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","const":"string","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.0","typeLabel":"string"},{"type":"object","properties":{"[0]":{"type":"string","const":"string","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.1.[0]","typeLabel":"string"},"[1]":{"type":"string","const":"null","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.1.[1]","typeLabel":"string"}},"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.1","typeLabel":"object"},{"type":"string","const":"number","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.2","typeLabel":"string"},{"type":"object","properties":{"[0]":{"type":"string","const":"number","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.3.[0]","typeLabel":"string"},"[1]":{"type":"string","const":"null","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.3.[1]","typeLabel":"string"}},"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.3","typeLabel":"object"},{"type":"string","const":"boolean","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.4","typeLabel":"string"},{"type":"object","properties":{"[0]":{"type":"string","const":"boolean","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.5.[0]","typeLabel":"string"},"[1]":{"type":"string","const":"null","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.5.[1]","typeLabel":"string"}},"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.5","typeLabel":"object"},{"type":"string","const":"array","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.6","typeLabel":"string"},{"type":"object","properties":{"[0]":{"type":"string","const":"array","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.7.[0]","typeLabel":"string"},"[1]":{"type":"string","const":"null","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.7.[1]","typeLabel":"string"}},"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type.oneOf.7","typeLabel":"object"}],"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.type","typeLabel":"string · object · string · object · string · object · string · object"},"enum":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.enum.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.enum.items.[INDEX].oneOf.1","typeLabel":"number"},{"type":"null","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.enum.items.[INDEX].oneOf.2","typeLabel":"null"}],"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.enum.items.[INDEX]","typeLabel":"string | number | null"},"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.enum","typeLabel":"(string | number | null)[]"},"items":{"type":"object","properties":{"type":{"type":"string","const":"string","isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.\\items.type","typeLabel":"string"},"enum":{"type":"array","items":{"type":"string","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.\\items.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.\\items.enum","typeLabel":"string[]"}},"required":["type"],"additionalProperties":false,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.\\items","typeLabel":"object"},"uniqueItems":{"type":"boolean","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema.uniqueItems","typeLabel":"boolean"}},"required":["type"],"additionalProperties":false,"isRequired":true,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.fieldSchema","typeLabel":"object"},"reason":{"type":"string","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.reason","typeLabel":"string"},"analysisRevisionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.analysisRevisionId","typeLabel":"string\u003cuuid>"},"error":{"type":"string","uniqueKey":"call.call_outcome.oneOf.0.additionalProperties.error","typeLabel":"string"}},"required":["value","fieldSchema"],"additionalProperties":false,"uniqueKey":"call.call_outcome.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"call.call_outcome.oneOf.0","typeLabel":"object"},{"type":"null","description":"Deprecated. Will be removed on 1st of February 2027. Retained for compatibility until then. Use `outcomes`, which combines account and agent call outcomes; agent results take precedence when keys match.","deprecated":true,"uniqueKey":"call.call_outcome.oneOf.1","typeLabel":"null"}],"uniqueKey":"call.call_outcome","typeLabel":"object | null"}},"required":["ended_reason","call_id","loop_id","attempt","from_number","direction","transport","destination","to_number","external_contact_id","contact_id","contact_details","contact_properties","agent_id","triggered_at","triggered_at_iso","started_at","started_at_iso","ended_at","ended_at_iso","call_length_min","call_length_sec","call_status","state","status","follow_up","transcript","transcriptObject","outcomes","collected_data","booked_slot_for","appointments","recording_url","sip_status_code","sip_status","transfer"],"additionalProperties":false,"isRequired":true,"uniqueKey":"call","typeLabel":"object"},"contact":{"type":"object","properties":{"contact_id":{"type":"string","description":"telli identifier of the contact.","isRequired":true,"uniqueKey":"contact.contact_id","typeLabel":"string"},"external_contact_id":{"oneOf":[{"type":"string","description":"Your own identifier for the contact, if one was supplied.","isRequired":true,"uniqueKey":"contact.external_contact_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own identifier for the contact, if one was supplied.","isRequired":true,"uniqueKey":"contact.external_contact_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.external_contact_id","typeLabel":"string | null"},"external_url":{"oneOf":[{"type":"string","description":"Link back to the contact in your own system, if one was supplied.","isRequired":true,"uniqueKey":"contact.external_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link back to the contact in your own system, if one was supplied.","isRequired":true,"uniqueKey":"contact.external_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.external_url","typeLabel":"string | null"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the contact was created in telli.","isRequired":true,"uniqueKey":"contact.created_at","typeLabel":"string"},"gender":{"oneOf":[{"type":"string","description":"Gender recorded for the contact, or null if unknown.","isRequired":true,"uniqueKey":"contact.gender.oneOf.0","typeLabel":"string"},{"type":"null","description":"Gender recorded for the contact, or null if unknown.","isRequired":true,"uniqueKey":"contact.gender.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.gender","typeLabel":"string | null"},"first_name":{"type":"string","description":"First name of the contact.","isRequired":true,"uniqueKey":"contact.first_name","typeLabel":"string"},"last_name":{"type":"string","description":"Last name of the contact.","isRequired":true,"uniqueKey":"contact.last_name","typeLabel":"string"},"phone_number":{"type":"string","description":"Phone number of the contact in E.164 format.","isRequired":true,"uniqueKey":"contact.phone_number","typeLabel":"string"},"in_call_since":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of when the contact's current call started, or null if not on a call.","isRequired":true,"uniqueKey":"contact.in_call_since.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 timestamp of when the contact's current call started, or null if not on a call.","isRequired":true,"uniqueKey":"contact.in_call_since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.in_call_since","typeLabel":"string | null"},"reached_at":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of when the contact was first reached, or null if never reached.","isRequired":true,"uniqueKey":"contact.reached_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 timestamp of when the contact was first reached, or null if never reached.","isRequired":true,"uniqueKey":"contact.reached_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.reached_at","typeLabel":"string | null"},"contact_details":{"oneOf":[{"type":"object","description":"Free-form dynamic variables stored on the contact. Empty or null if none.","additionalProperties":{"oneOf":[{}],"uniqueKey":"contact.contact_details.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"contact.contact_details.oneOf.0","typeLabel":"object"},{"type":"null","description":"Free-form dynamic variables stored on the contact. Empty or null if none.","isRequired":true,"uniqueKey":"contact.contact_details.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.contact_details","typeLabel":"object | null"},"call_attempts":{"type":"number","description":"Number of calls associated with this contact so far, including inbound calls they placed.","isRequired":true,"uniqueKey":"contact.call_attempts","typeLabel":"number"},"next_call_at":{"oneOf":[{"type":"string","description":"ISO 8601 timestamp of the next scheduled call, or null if none is scheduled.","isRequired":true,"uniqueKey":"contact.next_call_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 timestamp of the next scheduled call, or null if none is scheduled.","isRequired":true,"uniqueKey":"contact.next_call_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.next_call_at","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"Email address of the contact, or null if unknown.","isRequired":true,"uniqueKey":"contact.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"Email address of the contact, or null if unknown.","isRequired":true,"uniqueKey":"contact.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.email","typeLabel":"string | null"},"timezone":{"oneOf":[{"type":"string","description":"IANA timezone of the contact, for example `America/Los_Angeles`.","isRequired":true,"uniqueKey":"contact.timezone.oneOf.0","typeLabel":"string"},{"type":"null","description":"IANA timezone of the contact, for example `America/Los_Angeles`.","isRequired":true,"uniqueKey":"contact.timezone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.timezone","typeLabel":"string | null"},"salutation":{"oneOf":[{"type":"string","description":"Salutation for the contact, for example `Ms.`.","isRequired":true,"uniqueKey":"contact.salutation.oneOf.0","typeLabel":"string"},{"type":"null","description":"Salutation for the contact, for example `Ms.`.","isRequired":true,"uniqueKey":"contact.salutation.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contact.salutation","typeLabel":"string | null"},"status":{"type":"string","enum":["new","pending","reached","closed"],"description":"Where the contact stands in the dialer: `new` (not called yet), `pending` (in the dialer, being called), `closed` (dialer exhausted, no further attempts), or `reached` (conversation happened, no further attempts).","isRequired":true,"uniqueKey":"contact.status","typeLabel":"enum\u003cstring>"},"properties":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Stable key of the contact property, as defined in Settings > Contact properties.","isRequired":true,"uniqueKey":"contact.properties.items.[INDEX].key","typeLabel":"string"},"value":{"description":"Value stored for this contact. The JSON type follows `dataType`.","isRequired":true,"uniqueKey":"contact.properties.items.[INDEX].value","typeLabel":"any"},"dataType":{"type":"string","enum":["string","number","boolean","date","datetime","select","multi_select","phone_number","email"],"description":"Data type of the property.","isRequired":true,"uniqueKey":"contact.properties.items.[INDEX].dataType","typeLabel":"enum\u003cstring>"},"label":{"description":"Human-readable label of the property.","type":"string","uniqueKey":"contact.properties.items.[INDEX].label","typeLabel":"string"},"options":{"description":"Allowed options. Present only for `select` and `multi_select` properties.","type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"Stored value of the option.","isRequired":true,"uniqueKey":"contact.properties.items.[INDEX].options.items.[INDEX].value","typeLabel":"string"},"label":{"type":"string","description":"Human-readable label of the option.","isRequired":true,"uniqueKey":"contact.properties.items.[INDEX].options.items.[INDEX].label","typeLabel":"string"},"description":{"description":"Optional longer description of the option.","type":"string","uniqueKey":"contact.properties.items.[INDEX].options.items.[INDEX].description","typeLabel":"string"}},"required":["value","label"],"additionalProperties":false,"uniqueKey":"contact.properties.items.[INDEX].options.items.[INDEX]","typeLabel":"object"},"uniqueKey":"contact.properties.items.[INDEX].options","typeLabel":"object[]"}},"required":["key","value","dataType"],"additionalProperties":false,"uniqueKey":"contact.properties.items.[INDEX]","typeLabel":"object"},"description":"Structured contact properties, resolved against your account's property schema.","isRequired":true,"uniqueKey":"contact.properties","typeLabel":"object[]"}},"required":["contact_id","external_contact_id","external_url","created_at","gender","first_name","last_name","phone_number","in_call_since","reached_at","contact_details","call_attempts","next_call_at","email","timezone","salutation","status","properties"],"additionalProperties":false,"description":"The contact as it stood after the call was processed.","isRequired":true,"uniqueKey":"contact","typeLabel":"object"}},"required":["event","call","contact"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"event":"call_ended","call":{"ended_reason":"contact-ended-call","call_id":"b4a05730-2abc-4eb0-8066-2e4d23b53ba9","loop_id":"ba99c99d-19b9-4a0d-8df6-3e213088989a","attempt":1,"from_number":"+17755719467","direction":"outbound","transport":"sip","destination":"external","to_number":"+14155552671","external_contact_id":"external-123","contact_id":"6bd1e7e0-6d00-4c0b-ad5b-daa72457a27d","contact_details":{"company":"Art Studio Inc"},"contact_properties":[{"key":"industry","value":"retail","dataType":"string","label":"Industry"}],"agent_id":"d8931604-92ad-45cf-9071-d9cd2afbad0c","triggered_at":1731956924302,"triggered_at_iso":"2024-11-18T15:08:44.302Z","started_at":1731956932264,"started_at_iso":"2024-11-18T15:08:52.264Z","ended_at":1731957002078,"ended_at_iso":"2024-11-18T15:10:02.078Z","call_length_min":2,"call_length_sec":69,"call_status":"COMPLETED","state":"ended","status":"connected","follow_up":null,"transcript":"Agent: Hello...","transcriptObject":[{"role":"agent","content":"Hello..."},{"role":"user","content":"Hi, I was hoping to book an appointment."},{"role":"agent","toolActivity":"get_available_timeslots","type":"function_call"},{"role":"agent","content":"I can offer you Thursday at 13:15."}],"call_analysis":{"appointment":{"value":true,"details":"2025-02-18T15:30:00Z"},"interest":{"value":true,"details":"The customer is interested in buying an ice cream machine"}},"call_outcome":{"custom_lost_reason":{"value":"PRODUCT_TOO_EXPENSIVE","fieldSchema":{"type":["string","null"],"enum":["CUSTOMER_NOT_INTERESTED","CUSTOMER_PREVIOUSLY_CONTACTED","PRODUCT_TOO_EXPENSIVE"]}}},"outcomes":[{"key":"custom_lost_reason","dataType":"category","value":"PRODUCT_TOO_EXPENSIVE","reason":"The contact said the product was too expensive."}],"collected_data":{"email":{"status":"confirmed","value":"[email protected]"},"delivery_address":{"status":"confirmed","value":"Rosenthaler Straße 51, 10178 Berlin, Germany","latitude":52.5253059,"longitude":13.4043936}},"booked_slot_for":"2025-02-24T15:30:00Z","appointments":[{"id":"c3809aea-0650-461a-ba36-31da19346cd8","starts_at":"2025-02-24T15:30:00.000Z","timezone":"Europe/Berlin","status":"booked","hosts":[{"name":"Alex Smith","email":"[email protected]"}],"reference":{"provider":"bookingtime","booking_template_id":"template-123","appointment_id":"appointment-123","organization_id":"organization-123"}}],"recording_url":"https://example.com/recording.wav","sip_status_code":200,"sip_status":"OK","transfer":null},"contact":{"contact_id":"6bd1e7e0-6d00-4c0b-ad5b-daa72457a27d","external_contact_id":"external-123","external_url":null,"created_at":"2024-11-18T15:00:00.000Z","gender":null,"first_name":"Frida","last_name":"Kahlo","phone_number":"+14155552671","in_call_since":null,"reached_at":"2024-11-18T15:08:52.264Z","contact_details":{"company":"Art Studio Inc"},"call_attempts":1,"next_call_at":null,"email":"[email protected]","timezone":"America/Los_Angeles","salutation":"Ms.","status":"reached","properties":[{"key":"industry","value":"retail","dataType":"string","label":"Industry"}]}},"examples":{"Example":{"title":"Example","value":{"event":"call_ended","call":{"ended_reason":"contact-ended-call","call_id":"b4a05730-2abc-4eb0-8066-2e4d23b53ba9","loop_id":"ba99c99d-19b9-4a0d-8df6-3e213088989a","attempt":1,"from_number":"+17755719467","direction":"outbound","transport":"sip","destination":"external","to_number":"+14155552671","external_contact_id":"external-123","contact_id":"6bd1e7e0-6d00-4c0b-ad5b-daa72457a27d","contact_details":{"company":"Art Studio Inc"},"contact_properties":[{"key":"industry","value":"retail","dataType":"string","label":"Industry"}],"agent_id":"d8931604-92ad-45cf-9071-d9cd2afbad0c","triggered_at":1731956924302,"triggered_at_iso":"2024-11-18T15:08:44.302Z","started_at":1731956932264,"started_at_iso":"2024-11-18T15:08:52.264Z","ended_at":1731957002078,"ended_at_iso":"2024-11-18T15:10:02.078Z","call_length_min":2,"call_length_sec":69,"call_status":"COMPLETED","state":"ended","status":"connected","follow_up":null,"transcript":"Agent: Hello...","transcriptObject":[{"role":"agent","content":"Hello..."},{"role":"user","content":"Hi, I was hoping to book an appointment."},{"role":"agent","toolActivity":"get_available_timeslots","type":"function_call"},{"role":"agent","content":"I can offer you Thursday at 13:15."}],"call_analysis":{"appointment":{"value":true,"details":"2025-02-18T15:30:00Z"},"interest":{"value":true,"details":"The customer is interested in buying an ice cream machine"}},"call_outcome":{"custom_lost_reason":{"value":"PRODUCT_TOO_EXPENSIVE","fieldSchema":{"type":["string","null"],"enum":["CUSTOMER_NOT_INTERESTED","CUSTOMER_PREVIOUSLY_CONTACTED","PRODUCT_TOO_EXPENSIVE"]}}},"outcomes":[{"key":"custom_lost_reason","dataType":"category","value":"PRODUCT_TOO_EXPENSIVE","reason":"The contact said the product was too expensive."}],"collected_data":{"email":{"status":"confirmed","value":"[email protected]"},"delivery_address":{"status":"confirmed","value":"Rosenthaler Straße 51, 10178 Berlin, Germany","latitude":52.5253059,"longitude":13.4043936}},"booked_slot_for":"2025-02-24T15:30:00Z","appointments":[{"id":"c3809aea-0650-461a-ba36-31da19346cd8","starts_at":"2025-02-24T15:30:00.000Z","timezone":"Europe/Berlin","status":"booked","hosts":[{"name":"Alex Smith","email":"[email protected]"}],"reference":{"provider":"bookingtime","booking_template_id":"template-123","appointment_id":"appointment-123","organization_id":"organization-123"}}],"recording_url":"https://example.com/recording.wav","sip_status_code":200,"sip_status":"OK","transfer":null},"contact":{"contact_id":"6bd1e7e0-6d00-4c0b-ad5b-daa72457a27d","external_contact_id":"external-123","external_url":null,"created_at":"2024-11-18T15:00:00.000Z","gender":null,"first_name":"Frida","last_name":"Kahlo","phone_number":"+14155552671","in_call_since":null,"reached_at":"2024-11-18T15:08:52.264Z","contact_details":{"company":"Art Studio Inc"},"call_attempts":1,"next_call_at":null,"email":"[email protected]","timezone":"America/Los_Angeles","salutation":"Ms.","status":"reached","properties":[{"key":"industry","value":"retail","dataType":"string","label":"Industry"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"e33e7b95-8e9d-4cb0-b0b5-a8b5a6d914e8":{"description":"Acknowledged. Return any 2xx within 15 seconds or the message is retried.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{"c2f19c37-4440-49ac-91e6-924336321efe":{"url":"https://api.telli.com","description":"prod"}}},"originalFileLocation":"openapi-v2.json"},"subdomain":"telli","siteName":"telli Documentation","title":"Call ended - telli Documentation","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6ae310e9639e706870a66f2e","deploymentId":"66bb8895b40b51d89b0a83b9","questionText":"What does call_ended webhook send?","status":"active","generatedBy":"contextual","path":"webhooks/events/call-ended","createdAt":"2026-10-29T09:24:57.407Z","updatedAt":"2026-10-29T09:24:57.407Z","__v":0},{"_id":"6ae310e9639e706870a66f30","deploymentId":"66bb8895b40b51d89b0a83b9","questionText":"What replaced call_status field?","status":"active","generatedBy":"contextual","path":"webhooks/events/call-ended","createdAt":"2026-10-29T09:24:57.407Z","updatedAt":"2026-10-29T09:24:57.407Z","__v":0},{"_id":"6ae310e9639e706870a66f2f","deploymentId":"66bb8895b40b51d89b0a83b9","questionText":"How do I interpret call state?","status":"active","generatedBy":"contextual","path":"webhooks/events/call-ended","createdAt":"2026-10-29T09:24:57.407Z","updatedAt":"2026-10-29T09:24:57.407Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/webhooks/events/call-ended","matchLevel":0},"de":{"href":"/de/webhooks/events/call-ended","matchLevel":1}}},"lastModified":"2026-10-29T09:24:52.939Z","originalFileLocation":"webhooks/events/call-ended.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Payload telli sends when a call reaches a terminal state\">\u003cmeta data-mint-head name=\"application-name\" content=\"telli Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Call ended - telli Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Payload telli sends when a call reaches a terminal state\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"telli Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.telli.com/webhooks/events/call-ended\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://telli.mintlify.site/_mintlify/api/og/v2?division=Events\u0026amp;title=Call+ended\u0026amp;description=Payload+telli+sends+when+a+call+reaches+a+terminal+state\u0026amp;theme=4771eb168d9240cc3ca1a4ca\u0026amp;signature=cc8991ce4ffb97477c467ea962091dd38bde4576e917bd2906ba02c8e89aa7f6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Call ended - telli Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Payload telli sends when a call reaches a terminal state\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://telli.mintlify.site/_mintlify/api/og/v2?division=Events\u0026amp;title=Call+ended\u0026amp;description=Payload+telli+sends+when+a+call+reaches+a+terminal+state\u0026amp;theme=4771eb168d9240cc3ca1a4ca\u0026amp;signature=cc8991ce4ffb97477c467ea962091dd38bde4576e917bd2906ba02c8e89aa7f6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/telli/w1SvW0Ef7Oi-1lIC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"telli Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#038BF7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.telli.com/webhooks/events/call-ended\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/webhooks/events/call-ended.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.telli.com/webhooks/events/call-ended\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.telli.com/de/webhooks/events/call-ended\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.telli.com/webhooks/events/call-ended\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.telli.com/#organization\",\"name\":\"telli Documentation\",\"url\":\"https://docs.telli.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/telli/wePiRZJJIgcmFhVf/logo/light.svg?fit=max\u0026auto=format\u0026n=wePiRZJJIgcmFhVf\u0026q=85\u0026s=4c36f76dafc00642a1b9b2e15f789484\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.telli.com#website\",\"name\":\"telli Documentation\",\"url\":\"https://docs.telli.com\",\"publisher\":{\"@id\":\"https://docs.telli.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.telli.com/webhooks/events/call-ended#webpage\",\"url\":\"https://docs.telli.com/webhooks/events/call-ended\",\"name\":\"Call ended\",\"description\":\"Payload telli sends when a call reaches a terminal state\",\"dateModified\":\"2026-10-29T09:24:52.939Z\",\"isPartOf\":{\"@id\":\"https://docs.telli.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.telli.com/webhooks/events/call-ended#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.telli.com/webhooks/events/call-ended#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhooks\",\"item\":\"https://docs.telli.com/webhooks\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Call ended\",\"item\":\"https://docs.telli.com/webhooks/events/call-ended\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.telli.com/webhooks/events/call-ended#apireference\",\"headline\":\"Call ended\",\"name\":\"Call ended\",\"description\":\"Payload telli sends when a call reaches a terminal state\",\"url\":\"https://docs.telli.com/webhooks/events/call-ended\",\"mainEntityOfPage\":{\"@id\":\"https://docs.telli.com/webhooks/events/call-ended#webpage\"},\"dateModified\":\"2026-10-29T09:24:52.939Z\",\"publisher\":{\"@id\":\"https://docs.telli.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.telli.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"telli Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"telli Documentation","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Get Started","icon":"play","pages":[{"title":"Get Started","href":"/en/get-started"}]},{"tab":"Product","icon":"rocket","pages":[{"title":"Product","href":"/introduction"}]},{"tab":"Developer","icon":"code","pages":[{"title":"Overview","href":"/integrations-overview"},{"group":"Credentials","pages":[{"title":"Bearer token","href":"/credentials/bearer-token"},{"title":"HMAC-SHA256","href":"/credentials/hmac-sha256"}]},{"group":"CRM","pages":[{"title":"Integrate with your CRM","href":"/crm-integration"},{"title":"Add contacts \u0026 schedule calls","href":"/add-contacts-and-schedule-calls"},{"group":"Providers","pages":[{"title":"Salesforce","href":"/integrations/salesforce"},{"title":"HubSpot","href":"/integrations/hubspot"}]}]},{"group":"Webhooks","pages":[{"title":"Webhooks","description":"Receive call outcomes, transcripts, and analysis in your own systems as soon as they happen","href":"/webhooks"},{"group":"Events","pages":[{"title":"Call ended","openapi":"openapi-v2.json webhook call_ended","href":"/webhooks/events/call-ended"},{"title":"Call rescheduled","description":"Receive the later call time selected by the scheduler","openapi":"openapi-v2.json webhook call_rescheduled","href":"/webhooks/events/call-rescheduled"},{"title":"Auto dialer status changed","openapi":"openapi-v2.json webhook auto_dialer_status_changed","href":"/webhooks/events/auto-dialer-status-changed"},{"title":"Contact status changed","openapi":"openapi-v2.json webhook contact_status_changed","href":"/webhooks/events/contact-status-changed"}]}]},{"group":"Calendar Integrations","pages":[{"title":"Connect your calendars","href":"/calendar-integrations"},{"group":"Providers","pages":[{"title":"bookingtime","href":"/integrations/bookingtime"},{"title":"Calendly","href":"/integrations/calendly"},{"title":"Zeeg","href":"/integrations/zeeg"},{"title":"Cal.com","href":"/integrations/cal-com"},{"title":"HubSpot Meetings","href":"/integrations/hubspot-meetings"},{"title":"TIMIFY","href":"/integrations/timify"},{"title":"Propstack","href":"/integrations/propstack"},{"title":"Custom calendar","href":"/integrations/custom-calendar"}]}]},{"group":"Automation Platforms","pages":[{"title":"Make","href":"/integrations/make"},{"title":"Zapier","href":"/integrations/zapier"},{"title":"n8n","href":"/integrations/n8n"},{"title":"MCP","href":"/integrations/mcp"},{"title":"Slack","href":"/integrations/slack"},{"title":"Microsoft Teams","href":"/integrations/microsoft-teams"}]},{"group":"Custom Integrations","pages":[{"title":"Custom HTTP Tools","href":"/custom-tools"},{"title":"Custom code execution","href":"/custom-code"},{"title":"Contact lookup webhook","href":"/contact-lookup-webhook"}]},{"group":"Reference","pages":[{"title":"Phone Number Format","href":"/phone-number-format"}]}]},{"tab":"API","icon":"square-terminal","pages":[{"title":"API","href":"/api-getting-started"}]},{"tab":"Cookbooks","icon":"book-open","pages":[{"title":"Cookbooks","href":"/cookbooks/overview"}]}]},{"language":"de","pages":[{"title":"de","href":"/de/webhooks/events/call-ended"}]}]},"basePath":"","title":"Call ended - telli Documentation","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}