Katalog događaja
Свако тело вебхука има поље type чија је вредност један од типова
догађаја на овој страници. Када се претплатите на
крајњу тачку, низ events мора да садржи
типове догађаја које желите (или да буде празан да бисте се претплатили на све).
Ови догађаји се испоручују на два начина:
- Испоруке крајњој тачки су увек неблокирајућа обавештења
са поновним покушајима: одговорите
било којим кодом 2xx; омотач садржи
event_idза дедупликацију. - Блокирајуће размене се извршавају само на
застарелом вебхуку са једним URL-ом:
захтев за конфигурацију
telephony.incoming/web.incoming(бројеви у режиму вебхука и кључеви виџета, временско ограничење од 10 s) и отпремање алатки у режиму вебхука отпремање алатки. Ваш одговор обликује позив уживо.
Примери терета у наставку приказују омотач крајње тачке у редоследу на
мрежи (кључеви су сортирани по абецеди: data, event_id, type);
застареле испоруке носе исти data без event_id.
Догађаји позива
telephony.incoming
Шаље се када долазни позив стигне на један од Ваших
бројева телефона. Испоруке на крајњу тачку су
обавештења која се шаљу без чекања одговора за сваки долазни позив, без обзира
на то да ли је број конфигурисан за агента или путем веб-закачке. Бројеви без
додељеног агента додатно примају блокирајући захтев за конфигурацију
на застарелој веб-закачки — погледајте
telephony.incoming / web.incoming за
целу шему захтева / одговора.
{
"data": {
"call_id": 987654321,
"from_number": "+14155550199",
"to_number": "+15551234567"
},
"event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
"type": "telephony.incoming"
}
telephony.complete
Шаље се када се заврши долазни или одлазни телефонски позив. Не блокира.
Укључује транскрипт, URL снимка када је доступан и резиме наплате. Погледајте
telephony.complete / web.complete за
шему корисног терета.
telephony.tool
Шаље се након што телефонски позив позове функционални алат. Неблокирајуће обавештење за ревизију — алат је већ извршен када се овај догађај испоручи; обухвата Ваше сопствене функционалне алате (не уграђене алате, алате базе знања, везе са апликацијама или MCP алате).
{
"data": {
"arguments": { "date": "2026-04-21" },
"call_id": 987654321,
"from_number": "+14155550199",
"response": {
"response": { "available_slots": ["9:00 AM", "2:00 PM"] },
"status": 200
},
"to_number": "+15551234567",
"tool_name": "search_appointments"
},
"event_id": "1f0a7c3e-52d4-4a0e-8f4b-b1a6a1c0d9e2",
"type": "telephony.tool"
}
response је резултат извршавања: {"status": <http status>, "response": <your endpoint's JSON>} при успеху, или
{"status": <status>, "error": "<message>"} при неуспеху.
web.incoming
Еквивалент telephony.incoming за веб-канал, шаље се када
почне сесија веб-виџета или позив за тестирање микрофона у градитељу.
Испоруке на крајњу тачку се шаљу без чекања одговора за сваку веб-сесију.
Објављиви кључеви у mode="webhook" додатно примају
блокирајући захтев за конфигурацију на застарелој веб-закачки — тај
блокирајући захтев има другачији облик (origin_domain,
publishable_key_prefix; без бројева телефона). Погледајте
telephony.incoming / web.incoming.
{
"data": {
"call_id": 987654322,
"from_number": "web",
"origin_domain": "https://example.com",
"publishable_key_prefix": "pk_live_a1b2",
"to_number": "+15551234567"
},
"event_id": "9a2b4c6d-8e0f-4a1b-9c2d-3e4f5a6b7c8d",
"type": "web.incoming"
}
from_number је увек дословна вредност "web". За сесије виџета у режиму веб-закачке,
to_number је празан (број агента за сесију додељује се
након конфигурације); за позиве за тестирање микрофона у градитељу origin_domain и
publishable_key_prefix су празни.
web.complete
Еквивалент telephony.complete за веб-канал, обухвата позиве
веб-виџета (direction: "web") и позиве за тестирање микрофона у градитељу
(direction: "test"). Не блокира. Исти облик корисног терета као
telephony.complete, уз origin_domain,
при чему је from_number постављен на "web".
web.tool
Еквивалент telephony.tool за веб-канал. data садржи
origin_domain уместо from_number / to_number.
Догађаји гласова
Креирање прилагођеног гласа је асинхроно. Ови неблокирајући догађаји вам омогућавају да реагујете на коначни резултат уместо да испитујете крајњу тачку са детаљима клона.
voice.ready
Шаље се када прилагођени глас заврши обраду и може да се додели агенту.
{
"data": {
"voice": {
"created_at": "2026-07-30T14:12:08.317Z",
"display_name": "Support voice",
"failure_reason": "",
"gender": "female",
"id": "cv_2f6f90b0e9a34ee8b39be7d1",
"language": "en",
"name": "custom:cv_2f6f90b0e9a34ee8b39be7d1",
"status": "ready",
"updated_at": "2026-07-30T14:13:31.605Z"
}
},
"event_id": "2d5f0a61-e9b5-4a3c-b684-29d7d9e4b214",
"type": "voice.ready"
}
voice.failed
Шаље се када обрада прилагођеног гласа доживи трајни неуспех.
{
"data": {
"reason": "audio sample could not be processed",
"voice": {
"created_at": "2026-07-30T14:12:08.317Z",
"display_name": "Support voice",
"failure_reason": "audio sample could not be processed",
"gender": "female",
"id": "cv_2f6f90b0e9a34ee8b39be7d1",
"language": "en",
"name": "custom:cv_2f6f90b0e9a34ee8b39be7d1",
"status": "failed",
"updated_at": "2026-07-30T14:13:31.605Z"
}
},
"event_id": "3493e985-1a75-4f77-a10a-e74af440cd31",
"type": "voice.failed"
}
| Поље | Тип | Опис |
|---|---|---|
voice.id | ниска | Јавни ИД прилагођеног гласа |
voice.name | ниска | Вредност гласа агента у облику custom:<public_id> |
voice.display_name | ниска | Назив гласа видљив организацији |
voice.language | ниска | Код јединог језика клона |
voice.gender | ниска | male, female или празна ниска |
voice.status | ниска | ready за voice.ready; failed за voice.failed |
voice.failure_reason | ниска | Празно при успеху; детаљ неуспеха обраде при неуспеху |
voice.created_at, voice.updated_at | временска ознака | Временске ознаке ISO 8601 |
reason | ниска | Детаљ неуспеха; присутно само за voice.failed |
Догађаји квалитета
call.graded
Шаље се када се AI оцењивање заврши за позив. Не блокира.
{
"data": {
"call_id": 987654321,
"grade": {
"call_outcome": "success",
"created_at": "2026-04-20T18:25:11.002Z",
"detected_issues": [],
"graded_at": "2026-04-20T18:25:11.002Z",
"grader_model": "heuristic-v1",
"id": 5512,
"score": 92,
"status": "completed",
"summary": "Caller asked about their policy and got a full answer…"
}
},
"event_id": "7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f",
"type": "call.graded"
}
| Поље | Тип | Опис |
|---|---|---|
grade.id | цео број | Идентификатор оцене |
grade.score | цео број | null | 0–100 |
grade.call_outcome | ниска | success, failure, unknown или no_conversation |
grade.summary | ниска | Резиме у једном пасусу |
grade.detected_issues | низ | Ниске проблема које је пронашао оцењивач |
grade.status | ниска | Увек completed — емитују се само завршена покретања |
grade.grader_model | ниска | Који је оцењивач произвео резултат (нпр. heuristic-v1) |
grade.graded_at, grade.created_at | временска ознака |
issue.reported
Шаље се када се креира пријава проблема —
било да је корисник поднесе са контролне табле (source: "user") или
аутоматски путем оцењивања позива (source: "system"). Не блокира.
{
"data": {
"call_id": 987654321,
"issue_report": {
"created_at": "2026-04-20T18:25:11.002Z",
"description": "Five-second silence before responding to the main question.",
"id": 4321,
"severity": "warning",
"source": "system",
"status": "open",
"title": "Agent paused too long"
}
},
"event_id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
"type": "issue.reported"
}
| Поље | Тип | Опис |
|---|---|---|
issue_report.severity | ниска | critical, warning или info |
issue_report.status | ниска | open или resolved |
issue_report.source | ниска | user (поднето са контролне табле) или system (креирано оцењивањем) |
Догађаји тест позива
test-call.completed
Шаље се када
покретање тест позива
достигне завршни статус — completed или failed, укључујући покретања
која нису успела при покретању и никада нису произвела позив. Не блокира. Корисно
за повезивање серијских CI покретања са вашим системима за ћаскање/обавештења.
{
"data": {
"test_call_run": {
"call_id": 987654321,
"completed_at": "2026-04-20T18:25:04.822Z",
"error_message": "",
"id": 7110,
"status": "completed",
"target_id": 12,
"target_type": "agent"
}
},
"event_id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"type": "test-call.completed"
}
| Поље | Тип | Опис |
|---|---|---|
test_call_run.target_type | ниска | agent или phone_number |
test_call_run.target_id | цео број | Идентификатор агента или телефонског броја који је покретање циљало, у складу са target_type |
test_call_run.status | ниска | completed или failed |
test_call_run.call_id | цео број | null | null када покретање не успе пре упућивања позива |
test_call_run.error_message | ниска | Празно при успеху |
Догађаји упозорења
alert.triggered
Шаље се када правило упозорења са омогућеним каналом Испоручуј на веб-куке за програмере пређе свој праг. Не блокира. Правило се активира једном, а затим поштује период хлађења, тако да трајно прекорачење производи један догађај по периоду хлађења.
{
"data": {
"comparator": "lt",
"event_id": "b8e6a1d4-2c3f-4a5b-9c8d-7e6f5a4b3c2d",
"fired_at": "2026-04-20T18:00:00+00:00",
"metric": "success_rate",
"metric_value": 71.4,
"rule_id": "d2c3b4a5-6f7e-4d8c-9b0a-1c2d3e4f5a6b",
"rule_name": "Success rate below 80%",
"threshold": 80.0,
"window_hours": 24
},
"event_id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
"type": "alert.triggered"
}
| Поље | Тип | Опис |
|---|---|---|
event_id (у data) | UUID | ИД активирања упозорења — разликује се од ИД-а испоруке event_id у коверти |
rule_id, rule_name | UUID, ниска | Правило које се активирало |
metric | ниска | success_rate, failure_rate, avg_score, call_volume или suite_regression |
comparator | ниска | lt, lte, gt или gte |
metric_value | број | Вредност метрике током прозора када се правило активирало |
threshold | број | Конфигурисани праг |
window_hours | цео број | Клизни прозор процене |
fired_at | временска ознака |
Погледајте водич за упозорења за креирање правила, метрике, периоде хлађења и канале е-поште / Slack-а.