Eseménykatalógus
A ThunderPhone által kibocsátott összes webhookesemény-típus.
Minden webhooktörzs rendelkezik egy type mezővel, amelynek értéke az ezen az oldalon felsorolt eseménytípusok egyike. Amikor feliratkozik egy
végpontra, az events tömbnek tartalmaznia kell a
kívánt eseménytípusokat (vagy üresnek kell lennie, ha mindenre fel szeretne iratkozni —
kivéve a körönkénti telephony.turn /
web.turn eseményeket, amelyeket csak azoknak a végpontoknak
kézbesítünk, amelyek kifejezetten megnevezik őket).
Ezeket az eseményeket két kézbesítési mód továbbítja:
- A végpontkézbesítések mindig nem blokkoló értesítések
újrapróbálkozásokkal: válaszoljon
bármely 2xx állapotkóddal; a boríték egy
event_idmezőt tartalmaz a deduplikáláshoz. - A blokkoló adatcserék csak a
régi, egyetlen URL-es webhookon futnak: a
telephony.incoming/web.incomingkonfigurációs kérés (webhook módú számok és widgetkulcsok, 10 másodperces időkorlát), valamint a webhook módú eszközdiszpécselés. Az Ön válasza alakítja az élő hívást.
Az alábbi példaterhelések a végpontborítékot annak átviteli sorrendjében mutatják
(a kulcsok betűrendben vannak: data, event_id, type); a régi kézbesítések
ugyanazt a data adatot tartalmazzák event_id nélkül.
Hívási események
telephony.incoming
Akkor kerül elküldésre, amikor egy bejövő hívás eléri az Ön egyik
telefonszámát. A végpontoknak történő kézbesítés
minden bejövő hívás esetén válasz nélküli értesítés, függetlenül attól,
hogy a szám ügynökhöz vagy webhookhoz van konfigurálva. A hozzárendelt
ügynök nélküli számok emellett megkapják a blokkoló
konfigurációs kérést az örökölt webhookon — a teljes kérés-/válaszsémát
lásd itt:
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
Akkor kerül elküldésre, amikor egy bejövő vagy kimenő telefonhívás véget ér. Nem blokkoló.
Tartalmazza az átiratot, a felvétel URL-jét, ha elérhető, valamint a számlázási összegzést. Az
adatcsomag sémáját lásd itt:
telephony.complete / web.complete.
telephony.tool
Akkor kerül elküldésre, miután egy telefonhívás meghív egy függvényeszközt. Nem blokkoló naplózási értesítés — az eszköz az esemény kézbesítésekor már lefutott; ez az Ön saját függvényeszközeire vonatkozik (nem a beépített, tudásbázis-, alkalmazáskapcsolati vagy MCP-eszközökre).
{
"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"
}A response a végrehajtás eredménye: siker esetén {"status": <http status>, "response": <your endpoint's JSON>}, hiba esetén pedig
{"status": <status>, "error": "<message>"}.
telephony.turn
Telefonhívás folyamatban léte közben kerül elküldésre, minden
beszédet tartalmazó fordulónál, annak megtörténtekor — az ügynök kimondott válaszai
és a hívó átírt fordulói esetén. Lehetővé teszi az élő beszélgetés
egyszerű webhookokon keresztüli követését a következő végpont lekérdezése helyett:
GET /v1/calls/{call_id}/transcript.
Nem blokkoló.
{
"data": {
"call_id": 987654321,
"entry_type": "completion",
"from_number": "+14155550199",
"position": 7,
"role": "assistant",
"start_ms": 15200,
"text": "How many employees does your company have?",
"to_number": "+15551234567"
},
"event_id": "8d3f5a2c-7b1e-4c9a-b6d0-2e4f6a8c0d1e",
"type": "telephony.turn"
}| Mező | Típus | Leírás |
|---|---|---|
position | integer | A forduló indexe a hívási előzményekben — stabil azonosító a sorrendezéshez |
role | string | assistant (az ügynök beszéde) vagy user (a hívó beszéde) |
text | string | A forduló átiratszövege az esemény kibocsátásakor ismert állapotban |
entry_type | string | Az alapul szolgáló előzménybejegyzés típusa: completion (ügynök), vagy user_turn / span (hívó) |
start_ms, end_ms | integer | A hívás kezdetétől számított hangeltolások ms-ban; csak akkor szerepelnek, ha a lejátszási időzítés az esemény kibocsátásakor már ismert volt |
web.incoming
A telephony.incoming webcsatornás megfelelője, amely akkor kerül elküldésre,
amikor egy webes widget munkamenet vagy egy builderes
mikrofonteszt-hívás elindul. A végpontoknak történő kézbesítés minden webes
munkamenet esetén válasz nélküli. A mode="webhook" módban lévő publikálható kulcsok
emellett megkapják a blokkoló konfigurációs kérést az örökölt webhookon —
ennek a blokkoló kérésnek eltérő a szerkezete (origin_domain,
publishable_key_prefix; nincsenek telefonszámok). Lásd:
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"
}A from_number mindig a szó szerinti "web" érték. Webhook módú widgetes
munkameneteknél a to_number üres (a munkamenet ügynökszáma a konfiguráció
után kerül hozzárendelésre); builderes mikrofonteszt-hívásoknál az origin_domain
és a publishable_key_prefix üres.
web.complete
A telephony.complete webcsatornás megfelelője, amely a webes
widgetes hívásokat (direction: "web") és a builderes mikrofonteszt-hívásokat
(direction: "test") fedi le. Nem blokkoló. Az adatcsomag szerkezete megegyezik a
telephony.complete szerkezetével, kiegészítve az
origin_domain mezővel, a from_number pedig "web" értékre van állítva.
web.tool
A telephony.tool webcsatornás megfelelője. A data a from_number /
to_number helyett az origin_domain mezőt tartalmazza.
web.turn
A telephony.turn webcsatornás megfelelője, amely a webes
widgetes hívásokat és a builderes mikrofonteszt-hívásokat fedi le. Az adatcsomag
szerkezete azonos, de a from_number / to_number helyett origin_domain
szerepel. A telephony.turn típushoz hasonlóan ehhez is kifejezett feliratkozás
szükséges — soha nem kerül kézbesítésre üres events tömbön keresztül.
Hangesemények
Az egyéni hang létrehozása aszinkron folyamat. Ezek a nem blokkoló események lehetővé teszik, hogy lekérdezés helyett egy végleges eredményre reagáljon a klón részleteinek végpontján.
voice.ready
Akkor kerül elküldésre, amikor az egyéni hang feldolgozása befejeződik, és hozzárendelhető egy ügynökhöz.
{
"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
Akkor kerül elküldésre, amikor az egyéni hang feldolgozása végleges hibával leáll.
{
"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"
}| Mező | Típus | Leírás |
|---|---|---|
voice.id | string | Az egyéni hang nyilvános azonosítója |
voice.name | string | Az ügynök hangértéke custom:<public_id> formátumban |
voice.display_name | string | A szervezet számára megjelenített hangnév |
voice.language | string | A klón egyetlen nyelvi kódja |
voice.gender | string | male, female vagy üres karakterlánc |
voice.status | string | ready a voice.ready esetén; failed a voice.failed esetén |
voice.failure_reason | string | Siker esetén üres; hiba esetén a feldolgozási hiba részlete |
voice.created_at, voice.updated_at | timestamp | ISO 8601 időbélyegek |
reason | string | A hiba részlete; csak a voice.failed esetén van jelen |
Minőségi események
call.graded
Akkor kerül elküldésre, amikor egy híváshoz tartozó AI-értékelési futás befejeződik. Nem blokkoló.
{
"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"
}| Mező | Típus | Leírás |
|---|---|---|
grade.id | integer | Értékelésazonosító |
grade.score | integer | null | 0–100 |
grade.call_outcome | string | success, failure, unknown vagy no_conversation |
grade.summary | string | Egybekezdéses összefoglaló |
grade.detected_issues | array | Az értékelő által talált problémák szövegei |
grade.status | string | Mindig completed — csak a befejezett futások küldenek eseményt |
grade.grader_model | string | Az eredményt létrehozó értékelő (például heuristic-v1) |
grade.graded_at, grade.created_at | timestamp |
issue.reported
Akkor kerül elküldésre, amikor egy hibajelentés létrejön —
akár egy felhasználó küldi be az irányítópultról (source: "user"), akár
a hívásértékelés hozza létre automatikusan (source: "system"). Nem blokkoló.
{
"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"
}| Mező | Típus | Leírás |
|---|---|---|
issue_report.severity | string | critical, warning vagy info |
issue_report.status | string | open vagy resolved |
issue_report.source | string | user (az irányítópultról beküldve) vagy system (értékelés által létrehozva) |
Teszthívási események
test-call.completed
Akkor kerül elküldésre, amikor egy
teszthívási futás
végállapotba kerül — completed vagy failed, beleértve azokat a futásokat is,
amelyek indításkor meghiúsultak, és soha nem hoztak létre hívást. Nem blokkoló. Hasznos
a kötegelt CI-futások csevegő- vagy értesítési rendszereihez való kapcsolásához.
{
"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"
}| Mező | Típus | Leírás |
|---|---|---|
test_call_run.target_type | string | agent vagy phone_number |
test_call_run.target_id | integer | A futás által célzott ügynökazonosító vagy telefonszámazonosító, a target_type értékének megfelelően |
test_call_run.status | string | completed vagy failed |
test_call_run.call_id | integer | null | null, ha a futás a hívás indítása előtt meghiúsult |
test_call_run.error_message | string | Siker esetén üres |
Riasztási események
alert.triggered
Akkor küldi el a rendszer, amikor egy, a Kézbesítés fejlesztői webhookokra csatornát engedélyező riasztási szabály átlépi a küszöbértékét. Nem blokkoló. Egy szabály egyszer aktiválódik, majd betartja a várakozási idejét, ezért a tartós küszöbátlépés várakozási időablakonként egy eseményt eredményez.
{
"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"
}| Mező | Típus | Leírás |
|---|---|---|
event_id (data alatt) | UUID | A riasztás aktiválási azonosítója — eltér a boríték kézbesítési event_id értékétől |
rule_id, rule_name | UUID, karakterlánc | Az aktiválódott szabály |
metric | karakterlánc | success_rate, failure_rate, avg_score, call_volume vagy suite_regression |
comparator | karakterlánc | lt, lte, gt vagy gte |
metric_value | szám | A metrika értéke az időablakban, amikor a szabály aktiválódott |
threshold | szám | A konfigurált küszöbérték |
window_hours | egész szám | Visszatekintő értékelési időablak |
fired_at | időbélyeg |
A szabályok, metrikák, várakozási idők, valamint az e-mail- / Slack-csatornák létrehozásáról lásd a Riasztások útmutatót.
Kapcsolódó
A blokkoló bejövőhívás-adatcsomag, amelyre válaszolnia kell.
Hívás utáni átirat és metrikák.
Iratkoztasson fel egy URL-t ezeknek az eseményeknek egy részhalmazára.
A telephony.tool / web.tool események létrehozásának módja.