Katalog događaja
Svako tijelo web-dojavnika ima polje type čija je vrijednost jedna od vrsta događaja
na ovoj stranici. Kada se pretplatite na
krajnju točku, polje events mora sadržavati
vrste događaja koje želite (ili biti prazno za pretplatu na sve).
Ovi se događaji isporučuju na dva načina:
- Isporuke krajnjoj točki uvijek su neblokirajuće obavijesti
s ponovnim pokušajima: odgovorite
bilo kojim kodom 2xx; omotnica sadrži
event_idza deduplikaciju. - Blokirajuće razmjene izvode se samo putem
naslijeđenog web-dojavnika s jednim URL-om: zahtjev za konfiguraciju
telephony.incoming/web.incoming(brojevi u načinu rada web-dojavnika i ključevi widgeta, vremensko ograničenje od 10 s) i otprema alata u načinu rada web-dojavnika otprema alata. Vaš odgovor oblikuje poziv uživo.
Primjeri sadržaja u nastavku prikazuju omotnicu krajnje točke u redoslijedu prijenosa
(ključevi poredani abecedno: data, event_id, type); naslijeđene isporuke
sadrže isti data bez event_id.
Događaji poziva
telephony.incoming
Šalje se kada dolazni poziv stigne na jedan od Vaših
telefonskih brojeva. Isporuke krajnjoj točki su
obavijesti bez čekanja odgovora koje se šalju za svaki dolazni poziv, bez obzira na to
je li broj konfiguriran za agenta ili webhook. Brojevi bez
dodijeljenog agenta dodatno primaju blokirajući zahtjev za
konfiguraciju na naslijeđenom webhooku — pogledajte
telephony.incoming / web.incoming za
potpunu shemu zahtjeva / odgovora.
{
"data": {
"call_id": 987654321,
"from_number": "+14155550199",
"to_number": "+15551234567"
},
"event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
"type": "telephony.incoming"
}
telephony.complete
Šalje se kada završi dolazni ili odlazni telefonski poziv. Nije blokirajuće.
Uključuje transkript, URL snimke kada je dostupan i sažetak naplate. Pogledajte
telephony.complete / web.complete za
shemu payloada.
telephony.tool
Šalje se nakon što telefonski poziv pozove alat funkcije. Obavijest o reviziji koja ne blokira — alat je već izvršen kada se ovaj događaj isporuči; obuhvaća Vaše vlastite alate funkcija (ne ugrađene alate, alate baze znanja, veze aplikacija ili MCP alate).
{
"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 je rezultat izvršavanja: {"status": <http status>, "response": <your endpoint's JSON>} pri uspjehu ili
{"status": <status>, "error": "<message>"} pri neuspjehu.
web.incoming
Ekvivalent telephony.incoming za web-kanal, šalje se kada započne
sesija web widgeta ili testni poziv mikrofona u alatu za izradu.
Isporuke krajnjoj točki šalju se bez čekanja odgovora za svaku web-sesiju.
Ključevi za objavu u mode="webhook" dodatno primaju
blokirajući zahtjev za konfiguraciju na naslijeđenom webhooku —
taj blokirajući zahtjev ima drukčiji oblik (origin_domain,
publishable_key_prefix; nema telefonskih brojeva). Pogledajte
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 je uvijek doslovna vrijednost "web". Za sesije widgeta u načinu webhooka
to_number je prazan (broj agenta sesije dodjeljuje se
nakon konfiguracije); za testne pozive mikrofona u alatu za izradu origin_domain i
publishable_key_prefix su prazni.
web.complete
Ekvivalent telephony.complete za web-kanal, obuhvaća pozive
web widgeta (direction: "web") i testne pozive mikrofona u alatu za izradu
(direction: "test"). Nije blokirajuće. Ima isti oblik payloada kao
telephony.complete, uz origin_domain,
pri čemu je from_number postavljen na "web".
web.tool
Ekvivalent telephony.tool za web-kanal. data sadrži
origin_domain umjesto from_number / to_number.
Glasovni događaji
Izrada prilagođenog glasa odvija se asinkrono. Ovi događaji koji ne blokiraju omogućuju vam da reagirate na konačni rezultat umjesto da anketirate krajnju točku s pojedinostima klona.
voice.ready
Šalje se kada prilagođeni glas završi obradu i može se dodijeliti agentu.
{
"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
Šalje se kada obrada prilagođenog glasa dosegne trajni neuspjeh.
{
"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"
}
| Polje | Vrsta | Opis |
|---|---|---|
voice.id | string | Javni ID prilagođenog glasa |
voice.name | string | Vrijednost glasa agenta u obliku custom:<public_id> |
voice.display_name | string | Naziv glasa prikazan organizaciji |
voice.language | string | Jezična oznaka jedinog jezika klona |
voice.gender | string | male, female ili prazan niz |
voice.status | string | ready za voice.ready; failed za voice.failed |
voice.failure_reason | string | Prazno pri uspjehu; pojedinosti neuspjeha obrade pri neuspjehu |
voice.created_at, voice.updated_at | timestamp | Vremenske oznake ISO 8601 |
reason | string | Pojedinosti neuspjeha; prisutno samo u voice.failed |
Događaji kvalitete
call.graded
Šalje se svaki put kada se za poziv dovrši pokretanje ocjenjivanja pomoću AI-ja. Ne blokira.
{
"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"
}
| Polje | Vrsta | Opis |
|---|---|---|
grade.id | integer | ID ocjene |
grade.score | integer | null | 0–100 |
grade.call_outcome | string | success, failure, unknown ili no_conversation |
grade.summary | string | Sažetak u jednom odlomku |
grade.detected_issues | array | Nizovi problema koje je pronašao ocjenjivač |
grade.status | string | Uvijek completed — emitiraju se samo dovršena pokretanja |
grade.grader_model | string | Ocjenjivač koji je proizveo rezultat (npr. heuristic-v1) |
grade.graded_at, grade.created_at | timestamp |
issue.reported
Šalje se kada se izradi prijava problema —
bilo da ju korisnik podnese s nadzorne ploče (source: "user") ili je
automatski izradi ocjenjivanje poziva (source: "system"). Ne blokira.
{
"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"
}
| Polje | Vrsta | Opis |
|---|---|---|
issue_report.severity | string | critical, warning ili info |
issue_report.status | string | open ili resolved |
issue_report.source | string | user (podneseno s nadzorne ploče) ili system (izradilo ocjenjivanje) |
Događaji testnih poziva
test-call.completed
Šalje se kada
pokretanje testnog poziva
dosegne završni status — completed ili failed, uključujući pokretanja
koja nisu uspjela pri pokretanju i nikada nisu proizvela poziv. Ne blokira.
Korisno za povezivanje serijskih CI pokretanja sa sustavima za chat i
obavijesti.
{
"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"
}
| Polje | Vrsta | Opis |
|---|---|---|
test_call_run.target_type | string | agent ili phone_number |
test_call_run.target_id | integer | ID agenta ili telefonskog broja na koji je pokretanje bilo usmjereno, u skladu s target_type |
test_call_run.status | string | completed ili failed |
test_call_run.call_id | integer | null | null kada pokretanje nije uspjelo prije upućivanja poziva |
test_call_run.error_message | string | Prazno u slučaju uspjeha |
Događaji upozorenja
alert.triggered
Šalje se kada pravilo upozorenja s uključenim kanalom Dostava na razvojne webhookove prijeđe svoj prag. Ne blokira. Pravilo se aktivira jednom, a zatim poštuje razdoblje hlađenja, pa trajna povreda proizvodi jedan događaj po svakom razdoblju hlađenja.
{
"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"
}
| Polje | Vrsta | Opis |
|---|---|---|
event_id (u data) | UUID | ID aktiviranja upozorenja — razlikuje se od event_id dostave u omotnici |
rule_id, rule_name | UUID, niz | Pravilo koje se aktiviralo |
metric | niz | success_rate, failure_rate, avg_score, call_volume ili suite_regression |
comparator | niz | lt, lte, gt ili gte |
metric_value | broj | Vrijednost metrike u prozoru kada se pravilo aktiviralo |
threshold | broj | Konfigurirani prag |
window_hours | cijeli broj | Završni prozor evaluacije |
fired_at | vremenska oznaka |
Pogledajte vodič za upozorenja za izradu pravila, metrike, razdoblja hlađenja te kanale e-pošte i Slacka.