Open in
Sündmuste kataloog
Kõik veebikonksu sündmusetüübid, mida ThunderPhone saadab.
Iga veebikonksu sisus on väli type, mille väärtus on üks sellel lehel
toodud sündmusetüüpidest. Kui tellid
lõpp-punkti, peab massiiv events sisaldama
soovitud sündmusetüüpe (või olema tühi, et tellida kõik sündmused —
välja arvatud kõnepõhised sündmused telephony.turn /
web.turn, mis edastatakse ainult neile lõpp-punktidele,
kus need on selgesõnaliselt nimetatud).
Neid sündmusi edastatakse kahel viisil:
- Lõpp-punkti edastused on alati mitteblokeerivad teavitused
koos uuesti proovimistega: vasta
mis tahes 2xx-koodiga; ümbrik sisaldab deduplitseerimiseks
event_id. - Blokeerivad vahetused toimuvad ainult
pärandatud ühe URL-iga webhookis: konfiguratsioonipäring
telephony.incoming/web.incoming(webhook-režiimi numbrid: 13 s koos ühe uuesti proovimisega; webhook-režiimi vidinaklahvid: 10 s) ja webhook-režiimi tööriista käivitamine. Sinu vastus kujundab reaalajas kõnet.
Allolevad näidispayloadid näitavad lõpp-punkti ümbrist selle edastusjärjekorras
(võtmed on sorditud tähestikuliselt: data, event_id, type); pärandedastused
sisaldavad sama data ilma event_id-ta.
Kõnesündmused
telephony.incoming
Saadetakse, kui sissetulev kõne jõuab ühele sinu
telefoninumbrile. Lõpp-punkti edastused on
fire-and-forget-teavitused, mis saadetakse iga sissetuleva kõne korral,
olenemata sellest, kas number on häälagendi või webhooki jaoks seadistatud.
Numbrid, millele pole agenti määratud, saavad lisaks pärandwebhooki kaudu
blokeeriva seadistustaotluse — täieliku päringu- ja vastusskeemi leiad
jaotisest telephony.incoming / web.incoming.
{
"data": {
"call_id": 987654321,
"from_number": "+14155550199",
"to_number": "+15551234567"
},
"event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
"type": "telephony.incoming"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõne käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõne käsitlenud agent, kui agent oli määratud |
returning_call | object | Esineb ainult siis, kui number helistas sellele helistajale viimase 30 päeva jooksul: varasema kõne call_id, agent_id, started_at ja outcome. Vaata tagasihelistamisi |
sip_headers | object | Esineb ainult siis, kui kõne saabus X-* või User-to-User SIP-päistega (SIP-aadressid ja käsitsi loodud SIP-ühendused): päise nimi väiketähtedega → väärtus. Vaata SIP-päiseid |
telephony.complete
Saadetakse, kui sissetulev või väljaminev telefonikõne lõpeb. Mitteblokeeriv.
Sisaldab transkriptsiooni, salvestise URL-i, kui see on saadaval, ja arvelduse kokkuvõtet. Andmekoorma skeemi leiad
jaotisest telephony.complete / web.complete.
| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui agent oli määratud |
telephony.tool
Saadetakse pärast seda, kui telefonikõne kutsub välja
funktsioonitööriista. Mitteblokeeriv audititeavitus —
tööriist on selle sündmuse edastamise ajaks juba käivitatud; see hõlmab
sinu enda funktsioonitööriistu ja sisseehitatud tööriista send_sms (mitte muid
sisseehitatud, teadmistebaasi, rakenduseühenduse ega MCP tööriistu). send_sms
puhul on nii arguments.to kui ka arguments.body väärtusega [REDACTED].
Ka lõpetamise transkriptsioonid varjavad need; sisu ja adressaadi saad
hankida organisatsioonipõhisest SMS-i ressursist, kasutades vastuse message_id.
{
"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 on käivitatud tulemus: õnnestumise korral {"status": <http status>, "response": <your endpoint's JSON>} või ebaõnnestumise korral
{"status": <status>, "error": "<message>"}.
| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui agent oli määratud |
telephony.turn
Saadetakse telefonikõne ajal üks kord iga kõnet sisaldava
vestluskorra kohta — agendi väljaöeldud vastuste ja helistaja
transkribeeritud vestluskordade kohta. Võimaldab sul jälgida reaalajas vestlust
tavaliste webhookide kaudu, selle asemel et küsitleda
GET /v1/calls/{call_id}/transcript.
Mitteblokeeriv.
{
"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"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui agent oli määratud |
position | integer | Vestluskorra indeks kõneajaloos — stabiilne tunnus järjestamiseks |
role | string | assistant (agendi kõne) või user (helistaja kõne) |
text | string | Vestluskorra transkriptsioonitekst sündmuse väljastamise ajal teadaoleval kujul |
entry_type | string | Aluseks oleva ajalookirje tüüp: completion (agent) või user_turn / span (helistaja) |
start_ms, end_ms | integer | Heli nihked millisekundites alates kõne algusest; olemas ainult siis, kui taasesituse ajastus oli sündmuse väljastamise ajal juba teada |
web.incoming
telephony.incoming veebikanali vaste, mis saadetakse siis, kui
veebividina seanss või koosturi mikrofoni testkõne
algab. Lõpp-punkti edastused on fire-and-forget kõigi veebiseansside korral.
Avaldatavad võtmed režiimis mode="webhook" saavad lisaks pärandwebhooki kaudu
blokeeriva seadistustaotluse — selle blokeeriva taotluse kuju on erinev
(origin_domain, publishable_key_prefix; telefoninumbreid pole). Vt
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 on alati literaal "web". Webhooki režiimis vidinaseansside
puhul on to_number tühi (seansi agendi number määratakse pärast
seadistamist); koosturi mikrofoni testkõnede puhul on origin_domain ja
publishable_key_prefix tühjad.
| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui agent oli määratud |
web.complete
telephony.complete veebikanali vaste, mis hõlmab veebividina kõnesid
(direction: "web") ja koosturi mikrofoni testkõnesid
(direction: "test"). Mitteblokeeriv. Andmekoorma kuju on sama mis
telephony.complete puhul, lisaks on olemas origin_domain
ning from_number väärtuseks on "web".
| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui agent oli määratud |
web.tool
telephony.tool veebikanali vaste. data sisaldab
from_number / to_number asemel välja origin_domain.
| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui agent oli määratud |
web.turn
telephony.turn veebikanali vaste, mis hõlmab veebividina
kõnesid ja koosturi mikrofoni testkõnesid. Andmekoorma kuju on sama, kuid
from_number / to_number asemel on origin_domain.
Nagu telephony.turn, nõuab see selgesõnalist tellimust — seda
ei edastata kunagi tühja events massiivi kaudu.
| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui agent oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui agent oli määratud |
call.transfer_completed
Saadetakse üks kord kõne kohta koos
kõneedastuse lõpptulemusega: külmedastus või
inimestevaheline sild, mis jääb soojast edastusest alles pärast häälagendi lahkumist.
Ei blokeeri ning saadetakse ainult lõpp-punktidesse (mitte kunagi pärand-
ühe-URL-iga webhooki). See saabub pärast kõne telephony.complete sündmust:
kui operaator võtab kõne üle või edastus ebaõnnestub või, kui
ThunderPhone lõi kõnesilla, pärast silla lõppemist.
{
"data": {
"agent_id": 12,
"agent_name": "Front desk",
"bridge_kind": "cold_fallback",
"bridge_seconds": 255,
"bridge_total_cents": 5,
"call_id": 987654321,
"destination": "+15555550102",
"sip_status": 403,
"transfer_outcome": "bridged"
},
"event_id": "5b0f6c1e-9d2a-5e7b-8c4d-1a2b3c4d5e6f",
"type": "call.transfer_completed"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
call_id | integer | Kõne, mis edastati |
agent_id | integer | null | Häälagent, kes kõnet käsitles, kui see oli määratud |
agent_name | string | null | Häälagent, kes kõnet käsitles, kui see oli määratud |
transfer_outcome | string | refer_accepted: operaator võttis kõne üle. bridged: ThunderPhone hoidis helistaja ja sihtkoha ise ühendatuna, kas seetõttu, et operaator keeldus külmedastusest, või kuna sooja edastuse häälagent lahkus. bridge_unanswered: operaator keeldus külmedastusest ja sihtkoht ei vastanud ThunderPhone'i enda kõnele. failed: edastus ei õnnestunud ja kõne lõppes |
destination | string | null | Number, millele kõne edastati |
sip_status | integer | null | Operaatori SIP-olek, kui see keeldus külmedastusest: 403 (näiteks Twilio trunk ilma kõneedastuseta), 405 või 501. null, kui operaator ei keeldunud |
bridge_kind | string | null | Ainult bridged: cold_fallback (ThunderPhone'i ühendatud tagasilükatud külmedastus) või warm (sooja edastuse kaks osalejat pärast häälagendi lahkumist) |
bridge_seconds | integer | null | Ainult bridged: ThunderPhone'i arveldatud sillaaeg sekundites |
bridge_total_cents | integer | null | Ainult bridged: silla maksumus USA sentides pärast tasuta kõnekrediidi rakendamist, arveldatakse eraldi kõne billing_total_cents väärtusest |
Samad väärtused on kõneobjektil
nimedega transfer_outcome, transfer_destination, transfer_sip_status,
transfer_bridge_kind, transfer_bridge_seconds ja
transfer_bridge_total_cents. event_id on iga sama kõne edastuse puhul
sama, seega korduv teavitus ei tekita teist sündmust.
call.billed
Saadetakse mahupõhiselt arveldatud kõne korral: kui selle tasu kinnitatakse, mõni
minut pärast kõne lõppu, kui kasutusandmed on laekunud, ning uuesti iga kord,
kui hiljem laekunud kasutus suurendab tasu. Kõne
telephony.complete / web.complete sündmus
sisaldab billing_pending: true ja null arveldusvälju. See ei blokeeri
midagi ning saadetakse ainult lõpp-punktidele (mitte kunagi pärandühe-URL-iga veebikonksule).
Kõned, mille eest arveldatakse nende lõppemisel, sisaldavad arveldusandmeid
lõpetamissündmuses ega saa call.billed sündmust.
Järjekord ei ole tagatud: tasu ootab tavaliselt lõpetamissündmust, kuid
call.billed võib saabuda enne seda (näiteks tund aega kinni peetud
lõpetamissündmuse või eri aegadel uuesti proovitud edastuste tõttu) ning kaks
call.billed sündmust võivad saabuda vales järjekorras. Säilita iga call_id
kohta sündmus, mille billing_seq on suurim.
{
"data": {
"adjustment_cents": null,
"agent_id": 12,
"agent_name": "Front desk",
"billable_minutes": 3.0,
"billing_seq": 1,
"billing_total_cents": 10,
"call_id": 987654321,
"reason": "settled"
},
"event_id": "7c1d2e3f-4a5b-5c6d-8e7f-9a0b1c2d3e4f",
"type": "call.billed"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
call_id | täisarv | Kõne, mille eest arveldati |
agent_id | täisarv | null | Kõnet käsitlenud häälagent, kui see oli määratud |
agent_name | string | null | Kõnet käsitlenud häälagent, kui see oli määratud |
reason | string | settled: kõne tasu. adjusted: pärast tasu määramist laekunud kasutus, mis seda suurendas (tasu ei vähene kunagi) |
billing_seq | täisarv | Tasu jaoks 1, seejärel iga suurenemise jaoks 2, 3, ... Suurim vastuvõetud väärtus on kõne praegune arveldus |
billable_minutes | arv | Arveldatud minutid, ümardatud lähima veerandminutini |
billing_total_cents | täisarv | Kõik, mis kõne eest on seni USA sendina tasutud, pärast tasuta kõnekrediidi arvestamist, sealhulgas adjusted suurendamised |
adjustment_cents | täisarv | null | Ainult adjusted: see suurendamine USA sentides pärast tasuta kõnekrediidi arvestamist |
Samad summad on kõneobjektil
väljadena billable_minutes ja billing_total_cents. event_id on sama
ühe billing_seq iga edastuse korral, seega korduv teade ei tekita kunagi
teist sündmust.
SMS-i sündmused
SMS-i sündmused kirjeldavad organisatsiooni ühendatud Twilio või Telnyxi konto kaudu saadetud sõnumeid. Sõnumi sisu jäetakse välja ja to varjatakse.
Too organisatsioonipõhine sõnum välja
GET /v1/sms/{message_id} abil, kui vajad selle sisu või adressaati. source on api, agent_tool, followup
või pre_call (kampaania tekst enne helistamist), nagu on kirjeldatud
sõnumi objektis.
Iga SMS-sündmus sisaldab scheduled_send_id: selle
ajastatud saatmise ID-d, mille jaoks tekst saadeti, või
null teksti puhul, mida ei ajastatud. Ajastatud tekstide source on
"scheduled".
sms.sent
Saadetakse, kui kliendi operaator võtab väljamineva SMS-i päringu vastu. See ei ole seadmesse kohaletoimetamise kinnitus.
{
"data": {
"accepted_at": "2026-09-19T15:42:10.113Z",
"agent_id": 12,
"call_id": 987654321,
"created_at": "2026-09-19T15:42:09.901Z",
"direction": "outbound",
"error_code": null,
"error_message": null,
"from_number": "+15551234567",
"id": "313a3117-827b-46e9-a01a-ac1493838724",
"provider": "twilio",
"provider_id": "SM0123456789abcdef0123456789abcdef",
"scheduled_send_id": null,
"segment_count": 1,
"source": "agent_tool",
"status": "accepted",
"to": "[REDACTED]"
},
"event_id": "0ae347b4-1716-45bb-9a0e-b52373586e37",
"type": "sms.sent"
}sms.failed
Saadetakse pärast operaatori püsivat tagasilükkamist, kui ajutiste vigade korduskatsed on
ammendatud, kui tulemus on lõplikult teadmata või kui Twilio teatab, et vastuvõetud sõnum jäi
kohale toimetamata või ebaõnnestus. Viimasel juhul oli sõnumi sms.sent juba saadetud ja
status jääb väärtuseks "accepted". error_code on stabiilne ThunderPhone’i kood ning
error_message kirjeldab kliendi toimingut, kui see on saadaval. status: "unknown" tähendab,
et operaator võis SMS-i vastu võtta; kontrolli seda operaatori logist, sest ThunderPhone ei saada seda
automaatselt uuesti.
sms.received
Reserveeritud sissetuleva SMS-i toele. Praeguses versioonis ei saadeta
ühtki sms.received sündmust. Sissetulevate operaatori webhookide seadistus ja allkirja
kontrollimine avaldatakse eraldi.
Ajastatud sündmused
Ajastatud saatmised, mis välja ei lähe, käivitavad ühe
neist sündmustest. Välja minev saatmine käivitab selle asemel tavapärased sündmused:
tekstsõnumi puhul sms.* sündmused, millel on määratud scheduled_send_id, ning kõne puhul
kõnesündmused, mille telephony.complete sündmusel on scheduled_send_id. Mõlemad ei blokeeri. Kui saatmisel on agent, saavad need ka selle agendi
agendipõhised lõpp-punktid.
Koormus sisaldab ainult ID-sid, olekut ja aegu: mitte kunagi tekstsõnumi sisu ega
kõne muutujaid või konteksti ning to on redigeeritud. Ülejäänu saamiseks kasuta
GET /v1/scheduled/{id}.
scheduled.skipped
Saadetakse, kui saatmine jäetakse tahtlikult saatmata. reason on expired (seda ei
õnnestunud enne expires_at väärtust välja saata), opted_out (number on
loobumisnimekirjas, sealhulgas juhul, kui see lisati pärast
saatmise loomist), quiet_hours (saatmise aeg saabus väljaspool adressaadi
ajavööndis kehtivat ajavahemikku kell 8.00–21.00), sender_not_ready (tekstsõnumi numbrilt ei
saa enam saata) või outbound_tcpa_unconfirmed (kõne saatmise aeg saabus enne
organisatsiooni TCPA kinnituse registreerimist).
{
"data": {
"agent_id": null,
"created_at": "2026-11-01T18:02:11.204Z",
"detail": "The send could not go out before its expires_at, so it was not sent late.",
"expires_at": "2026-11-03T17:30:00Z",
"external_id": "appointment-4815",
"from_number": "+15551234567",
"id": "6f1c0b8e-3a52-4c1f-9a0b-2f4f7d8a91c3",
"reason": "expired",
"send_at": "2026-11-03T17:00:00Z",
"source": "api",
"status": "skipped",
"to": "[REDACTED]",
"type": "sms"
},
"event_id": "2b0f6c43-74c9-4d43-a1f4-0d6a2f8e51a7",
"type": "scheduled.skipped"
}scheduled.failed
Saadetakse, kui ThunderPhone proovis saata, kuid saatmine ei õnnestunud. reason on
saatmise enda tõrge: SMS-i veakood, näiteks
tekstsõnumi puhul carrier_rejected, või kõne tagasilükkamise või ebaõnnestumise põhjus,
näiteks blokeeritud sihtkoha reegel (näiteks premium_rate) või
agent_deleted. Andmekoormusel on samad
väljad nagu sündmusel scheduled.skipped.
| Väli | Tüüp | Kirjeldus |
|---|---|---|
id | string | Ajastatud saatmise ID |
type | string | sms või call |
status | string | skipped või failed |
reason | string | Miks, nagu eespool; sama väärtus kui saatmise status_reason |
detail | string | Loetav selgitus |
source | string | Mis saatmise lõi: api |
external_id | string | null | Sinu saatmise võti või null |
from_number | string | Saatja number |
to | string | Alati "[REDACTED]" |
agent_id | integer | null | Kõned: häälagent; tekstsõnumid: null |
send_at, expires_at, created_at | timestamp | ISO 8601 |
Häälesündmused
Kohandatud hääle loomine on asünkroonne. Need mitteblokeerivad sündmused võimaldavad sul reageerida lõpptulemusele, selle asemel et küsitleda klooni üksikasjade lõpp-punkti.
voice.ready ja voice.failed edastatakse ainult organisatsiooniülesele
lõpp-punktile, millel on events: []. Neid ei saa valida selgesõnaliste sündmusefiltritena.
voice.ready
Saadetakse, kui kohandatud hääle töötlemine lõpeb ja selle saab määrata agendile.
{
"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
Saadetakse, kui kohandatud hääle töötlemine lõpeb püsiva tõrkega.
{
"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"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
voice.id | string | Kohandatud hääle avalik ID |
voice.name | string | Häälagendi hääle väärtus vormingus custom:<public_id> |
voice.display_name | string | Organisatsioonile nähtav hääle nimi |
voice.language | string | Klooni ühe keele kood |
voice.gender | string | male, female või tühi string |
voice.status | string | ready sündmuse voice.ready korral; failed sündmuse voice.failed korral |
voice.failure_reason | string | Edu korral tühi; tõrke korral töötlemise tõrke üksikasjad |
voice.created_at, voice.updated_at | ajatempel | ISO 8601 ajatemplid |
reason | string | Tõrke üksikasjad; olemas ainult sündmusel voice.failed |
Kvaliteedisündmused
call.graded
Saadetakse alati, kui kõne tehisintellektipõhine hindamine on lõpule jõudnud. Mitteblokeeriv.
{
"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…"
},
"report": null
},
"event_id": "7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f",
"type": "call.graded"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud häälagent, kui see oli määratud |
agent_name | string | null | Kõnet käsitlenud häälagent, kui see oli määratud |
grade.id | integer | Hinde ID |
grade.score | integer | null | 0–100 |
grade.call_outcome | string | success, failure, unknown või no_conversation |
grade.summary | string | Ühe lõiguga kokkuvõte |
grade.detected_issues | array | Hindaja tuvastatud probleemide stringid |
grade.status | string | Alati completed — sündmuse saadavad ainult lõpetatud käitused |
grade.grader_model | string | Milline hindaja tulemuse koostas (nt heuristic-v1) |
grade.graded_at, grade.created_at | timestamp | |
report | object | null | Kliendile nähtav kõne aruanne: tulemuse silt, tähelepanu vajamise märgis ja põhjus, helistaja, ühe rea kokkuvõte, helistaja kogemus. Varajase heuristilise hinde korral on see null või pending-aruanne, mille väljad on kohatäited; täieliku hinde sündmus sisaldab lõpetatud aruannet |
call.data_extracted
Saadetakse alati, kui struktureeritud andmete ekstraktimine edukalt lõpeb,
sealhulgas hilise korduskatse korral pärast telephony.complete / web.complete
või käsitsi uuesti käivitamisel kaudu
POST /v1/calls/{call_id}/extract.
Mitteblokeeriv.
Blokeerivas ekstraktimisrežiimis ootab lõpetamissündmus tavaliselt kuni
75-sekundilise ekstraktimise eelarve lõpuni. Kui ekstraktimise tööprotsess
kaob, väljastab tootmiskeskkonna lõpetamise töötlemine (iga viie minuti järel)
lõpetamissündmuse, mille blocking_deadline_at on möödunud, enne järgmise
ekstraktimiskatse alustamist. Hilisem edukas tulemus edastatakse eraldi selle
sündmusena.
{
"data": {
"call_id": 987654321,
"agent_id": 12,
"agent_name": "Acme intake",
"extracted_data": {
"status": "completed",
"fields": {
"customer_name": "Alex Morgan",
"appointment_date": "2026-04-23"
},
"evidence": {
"customer_name": {
"quote": "My name is Alex Morgan",
"speaker_role": "caller",
"turn_index": 4
},
"appointment_date": {
"quote": "April 23 works for me",
"speaker_role": "caller",
"turn_index": 7
}
},
"verification": "verified",
"field_reasons": {},
"schema_version": "92850758e231a3c95a..."
},
"extracted_at": "2026-04-20T18:25:11.002Z",
"model": "<model id>",
"summary": "Alex Morgan called to book a follow-up visit and confirmed Thursday, April 23."
},
"event_id": "4d79ef1d-c2b1-4ed6-85b8-8326bd2895ef",
"type": "call.data_extracted"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud häälagent, kui see oli määratud |
agent_name | string | null | Kõnet käsitlenud häälagent, kui see oli määratud |
summary | string | null | Lõpetatud kõne kokkuvõte, kui häälagendil on Genereeri kõne kokkuvõte sisse lülitatud; seega edastab hiline ekstraktimissündmus ka kokkuvõtte, mis ei jõudnud lõpetamisaknas kohale; muul juhul null. Kokkuvõttega, kuid ekstraktimisväljadeta häälagendid ei saada kunagi seda sündmust: loe hiline kokkuvõte käsuga GET /v1/calls/{call_id} |
extracted_data.status | string | Selle sündmuse korral alati completed |
extracted_data.fields | object | Väärtused on võtmetega määratud konfigureeritud ekstraktimisväljade järgi; mittesaadavad väärtused on null |
extracted_data.evidence | object | Tõendid on ekstraktimisväljade järgi võtmetega. Mitte-null väärtusel on täpne struktuurselt kontrollitud tsitaat (kuni 1 000 tähemärki), speaker_role (caller või agent) ja turn_index; pikemad mudeli tagastatud tsitaadid lükatakse kärpimise asemel tagasi ning tõend on null alati, kui selle väli on null |
extracted_data.verification | string | verified ainult siis, kui sõltumatu tõendite kontroll tagastas iga kandidaadvälja jaoks täpselt ühe kehtiva otsuse. unavailable tähendab, et kontroll ebaõnnestus, aegus, sellel polnud piisavalt eelarvet või see tagastas vigase või osalise väljundi. Täielikult mittesaadav kontroll säilitab kliendipoolseks ülevaatuseks struktuurselt põhjendatud väärtused. Osalise väljundi korral rakendatakse kehtivad otsused ja iga kandidaat, millel pole täpselt üht kehtivat otsust, muudetakse nulliks |
extracted_data.field_reasons | object | Põhjused väljade järgi, mis muudeti nulliks struktuurse põhjendamise või sõltumatu kontrollija poolt |
extracted_data.schema_version | string | Selle ekstraktimise jaoks kasutatud täpse väljaskeemi räsi |
extracted_at | timestamp | ISO 8601 lõpetamise aeg |
model | string | Ekstraktimiseks kasutatud mudel |
campaign.completed
Saadetakse üks kord, kui kampaania liigub olekust running olekusse
completed, olenemata sellest, kas selle ajakava lõppes või kõik kontaktid
jõudsid lõppolekusse. Käivitaja korduskatsed ei saada uut sündmust. See
organisatsioonitaseme elutsükli sündmus edastatakse ainult organisatsiooni
ulatusega lõpp-punktidele, mitte häälagendi ulatusega lõpp-punktidele.
Mitteblokeeriv.
{
"data": {
"campaign_id": "3f6b2c9e-2a0d-4c63-b6d6-a708dc98f403",
"name": "May win-back",
"agent_id": 12,
"status": "completed",
"started_at": "2026-04-20T17:00:00Z",
"completed_at": "2026-04-20T18:25:11Z",
"counts": {
"contacts_total": 150,
"completed": 121,
"failed": 11,
"no_answer": 18,
"skipped": 4,
"remaining": 0
}
},
"event_id": "8d8f52ce-6b46-423f-9dde-cea0b91ec135",
"type": "campaign.completed"
}Neli tulemuste arvu on üksteist välistavad ja nende summa on contacts_total:
completed sisaldab edukaid kontakte; no_answer sisaldab lõpetatud
nurjunud või ammendunud kontakte, mille lõpptulemuseks oli vastamata kõne;
failed sisaldab kõiki muid lõpetatud nurjunud või ammendunud kontakte; ja
remaining sisaldab ootel, ajastatud või parajasti helistatavaid kontakte.
Uuesti proovimist ootav kontakt on remaining, isegi kui selle viimane katse
lõppes vastamata kõnega. Käimasolevad kõned kooskõlastatakse enne ühekordset
lõpetamise tõmmist. started_at on kampaania seadistatud algusaeg või
kampaania loomise aeg, kui algusaega ei seadistatud. skipped ei ole viies
kategooria: see loendab failed hulka kuuluvaid kontakte, mille
numbritüübi filter lõpetas ilma
kõneta.
issue.reported
Saadetakse, kui luuakse probleemiaruanne —
kas kasutaja esitab selle töölaualt (source: "user") või kõne hindamine loob
selle automaatselt (source: "system"). Mitteblokeeriv.
{
"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"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud häälagent, kui see oli määratud |
agent_name | string | null | Kõnet käsitlenud häälagent, kui see oli määratud |
issue_report.severity | string | critical, warning või info |
issue_report.status | string | open või resolved |
issue_report.source | string | user (esitatud töölaualt) või system (loodud hindamise poolt) |
issue.escalated
Saadetakse, kui probleemimuster saadetakse ThunderPhone'ile töötajate ülevaatuseks: pärast Teavita ThunderPhone'i või siis, kui Paranda tehisintellektiga ei suuda kinnitada kliendipoolset parandust ja suunab probleemi automaatselt edasi. Selle sündmuse saavad ainult kogu organisatsiooni hõlmavad lõpp-punktid.
{
"data": {
"automatic": false,
"cluster_id": "7ac2844c-2df0-4fa8-a560-7378da649e19",
"escalation_id": "ec99f52b-c8c0-41dd-a4f2-dd8a07b10894",
"status": "open"
},
"event_id": "d8f8f420-7a42-45ba-bcf1-b747f9bbecda",
"type": "issue.escalated"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
automatic | boolean | true automaatse eskaleerimise korral; false käsitsi eskaleerimise korral |
cluster_id | UUID | Eskaleeritud probleemimuster |
escalation_id | UUID | Eskaleerimise kirje |
status | string | Sündmuse saatmisel open |
See on teavitus, mitte tõendite kogum. Kasuta cluster_id, et seostada see
probleemimustriga. Vaata Teavita ThunderPhone'i.
Testkõne sündmused
test-call.completed
Saadetakse, kui
testkõne käitus
jõuab lõppolekusse — completed või failed, sealhulgas käitused,
mis ebaõnnestusid käivitamisel ega loonud kunagi kõnet. Mitteblokeeriv.
Kasulik CI pakettkäituste ühendamiseks sinu vestlus- ja teavitussüsteemidega.
{
"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"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
agent_id | integer | null | Kõnet käsitlenud agent, kui see oli määratud |
agent_name | string | null | Kõnet käsitlenud agent, kui see oli määratud |
test_call_run.target_type | string | agent või phone_number |
test_call_run.target_id | integer | Agendi ID või telefoninumbri ID, millele käitus oli suunatud, vastavalt väärtusele target_type |
test_call_run.status | string | completed või failed |
test_call_run.call_id | integer | null | null, kui käitus ebaõnnestus enne kõne algatamist |
test_call_run.error_message | string | Eduka tulemuse korral tühi |
Hoiatuste sündmused
alert.triggered
Saadetakse, kui hoiatusreegel, mille kanal Edasta arendaja veebikonksudele on lubatud, ületab oma lävendi. Mitteblokeeriv. Reegel käivitub ühe korra ja järgib seejärel oma jahtumisperioodi, seega tekitab püsiv rikkumine ühe sündmuse iga jahtumisperioodi akna kohta.
{
"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"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
event_id (väljal data) | UUID | Hoiatuse käivituse ID — erineb ümbrise edastuse event_id väärtusest |
rule_id, rule_name | UUID, string | Käivitunud reegel |
metric | string | success_rate, failure_rate, avg_score, call_volume või suite_regression |
comparator | string | lt, lte, gt või gte |
metric_value | number | Mõõdiku väärtus akna jooksul, mil reegel käivitus |
threshold | number | Seadistatud lävend |
window_hours | integer | Tagasivaatav hindamisaken |
fired_at | timestamp |
Reeglite, mõõdikute, jahtumisperioodide ning e-posti- ja Slacki kanalite loomiseks vaata hoiatuste juhendit.
Telefoninumbri sündmused
phone_number.spam_risk_changed
Saadetakse, kui rämpspostimärgise jälgimine (tasuline lisafunktsioon, saadaval toe kaudu taotluse alusel) tuvastab, et jälgitava numbri rämpspostirisk tõuseb väärtusele medium või high (väärtuselt low, kui näitu veel pole, või väärtuselt medium väärtusele high). Ei blokeeri. Märgistatuks jääva numbri kohta sündmust uuesti ei saadeta; saadetakse siis, kui number taastub väärtusele low ja märgistatakse hiljem uuesti.
Sündmusel puudub agendi kontekst, seega saavad selle ainult kogu organisatsiooni hõlmavad lõpp-punktid.
Organisatsiooni omanikud ja administraatorid saavad ka meili.
{
"data": {
"checked_at": "2026-10-21T14:41:07+00:00",
"phone_number": "+13125550100",
"phone_number_id": 412,
"previous_spam_risk": "low",
"scores": {
"connection": 31,
"engagement": 40,
"maturity": 82,
"sentiment": 22
},
"spam_category": "Telemarketer",
"spam_risk": "high"
},
"event_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
"type": "phone_number.spam_risk_changed"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
phone_number | string | Number vormingus E.164 |
phone_number_id | integer | null | Selle ID jaotises Telefoninumbrid |
spam_risk | string | medium või high |
previous_spam_risk | string | null | Risk viimase näidu ajal; enne esimest näitu null |
spam_category | string | null | Märgis, mida operaatorid võivad kuvada, näiteks Telemarketer või Survey. Käsitle seda vaba tekstina |
scores | object | Iga väärtus on 0 kuni 100 või null, kuni kõnemahtu on piisavalt: maturity (kui väljakujunenud number on), connection (kas inimesed vastavad), engagement (kas nad jäävad liinile), sentiment (kas nad blokeerivad numbri või teatavad sellest) |
checked_at | timestamp | Millal ThunderPhone tulemuse luges |
Migratsioonisündmused
migration.call.complete
Saadetakse, kui
POST /v1/migrations/{id}/calls kaudu algatatud kõne lõpeb,
olenemata sellest, milline platvorm kõne vastu võttis. Ei blokeeri. See saabub kuni umbes 5 minutit
pärast kõne lõppu. data sisaldab kõiki
telephony.complete välju ning plokki migration. ThunderPhone'i algatatud
kõne saadab tavapäraselt ka telephony.complete sündmuse sama call_id-ga.
answered_by on null, kui kõne võttis vastu teine platvorm. Teisel platvormil tehtud kõne, mis ei ole 2
tunni pärast lõppenud või mille migratsioon lõppes või kaotas enne oma võtme, saadetakse väärtusega
status: "unknown" ja ilma transkriptsioonita.
{
"data": {
"agent_id": 42,
"agent_name": "Front desk",
"answered_by": null,
"billable_minutes": null,
"billing_total_cents": null,
"call_id": null,
"direction": "outbound",
"duration_seconds": 94,
"end_reason": "user_hangup",
"end_time": "2026-10-06T17:01:34+00:00",
"extracted_data": null,
"from_number": "+15551234567",
"migration": {
"arm": "vendor",
"id": "5f0c2a9e-7b1d-4c3e-8a6f-2d9e1b4c7a30",
"metadata": {
"lead_id": "8812"
},
"routing_id": "9b2f8c1e-4d3a-4f6b-8e2d-1a7c5b9e0f34",
"vendor": "retell",
"vendor_call_id": "call_6a1f0e",
"vendor_cost_usd": "0.1240"
},
"product": "",
"recording_mode": "vendor",
"recording_url": "https://…",
"start_time": "2026-10-06T17:00:00+00:00",
"status": "completed",
"summary": "The callee booked a table for two on Thursday.",
"thunderphone_retained_call_content": true,
"to_number": "+14155552671",
"transcripts": [
{
"content": "Hi Ada, this is Rosa's calling about your booking.",
"role": "agent"
},
{
"content": "Yes, Thursday works.",
"role": "user"
}
],
"transfer_number": null,
"unresolved_variables": [],
"variables": {
"first_name": "Ada"
},
"voice": ""
},
"event_id": "7c1e2f3a-4b5c-4d6e-8f7a-9b0c1d2e3f4a",
"type": "migration.call.complete"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
migration.id | UUID | Migratsioon |
migration.routing_id | UUID | Suunatud kõne, nagu tagastati selle algatamisel |
migration.arm | string | ours (ThunderPhone algatas selle) või vendor (selle algatas teine platvorm) |
migration.vendor | string | retell, vapi, elevenlabs või bland |
migration.vendor_call_id | string | null | Teise platvormi kõne ID; null väärtuse ours korral |
migration.metadata | object | Kõne algatamisel saadetud metadata |
migration.vendor_cost_usd | string | null | Teise platvormi teatatud kõne maksumus, kui see selle esitas |
call_id | integer | null | ThunderPhone'i kõne ID; null väärtuse vendor korral |
status | string | vendor korral: completed, kui kõne saaja rääkis, failed, kui ta ei rääkinud, ning unknown nagu eespool. ours korral: nagu sündmuses telephony.complete |
vendor-kõne korral puuduvad ThunderPhone'il arvelduse ja andmete ekstraktimise
andmed: billable_minutes, billing_total_cents ja extracted_data on null,
product ja voice on tühjad, recording_mode on vendor ning
recording_url on teise platvormi link, kui see selle andis.
migration.rollback
Saadetakse siis, kui migratsiooni järkjärguline ümberlülitus suunab kõik kõned iseseisvalt tagasi teisele platvormile: 3 kõnet ei õnnestunud 15 minuti jooksul ThunderPhone'iga ühendada, 2 ThunderPhone'ile suunatud kõnet lõppesid enne, kui häälagent vastas, või ThunderPhone'i ülesande tulemuse määr langes teise platvormi omast rohkem kui seadistatud vahe võrra madalamale. Mitteblokeeriv, üks kord iga tagasipööramise kohta. Pärast seda on ThunderPhone'i kõneosakaal 0% ja migratsioon on peatatud, kuni keegi jätkab seda häälagendi vahekaardil Migratsioon. Andmekoormus ei sisalda telefoninumbreid, transkripte ega kõne ID-sid.
{
"data": {
"agent_id": 42,
"agent_name": "Front desk",
"dropped": 0,
"migration_id": "5f0c2a9e-7b1d-4c3e-8a6f-2d9e1b4c7a30",
"ours": {
"graded": 20,
"success_rate": 0.8
},
"ours_failed": 3,
"ours_percent": 0,
"previous_percent": 25,
"reason": "ours_failed_burst",
"rolled_back_at": "2026-10-10T12:05:00+00:00",
"step": 1,
"theirs": {
"graded": 20,
"success_rate": 0.8
},
"vendor": "retell"
},
"event_id": "3d1f6b2a-8c4e-5a7b-9d0e-2f1a3b4c5d6e",
"type": "migration.rollback"
}| Väli | Tüüp | Kirjeldus |
|---|---|---|
migration_id | UUID | Migratsioon |
vendor | string | retell, vapi, elevenlabs või bland |
reason | string | ours_failed_burst (3 nurjunud ühendust 15 minuti jooksul), dropped_calls (2 kõnet lõppesid enne, kui häälagent vastas, 30 minuti jooksul) või rate_gap (ülesande tulemuse määra vahe vähemalt rollback_min_calls hinnatud kõne puhul kummalgi poolel) |
previous_percent | integer | ThunderPhone'i kõneosakaal enne tagasipööramist |
ours_percent | integer | Alati 0 |
step | integer | null | Ajakava etapp, millel see oli (algab 0-st) |
ours / theirs | object | null | Praeguse etapi hinnatud kõned ja nende edukuse määr; theirs võib olla viimase 30 päeva näitaja, kui etapis on liiga vähe kõnesid. null, kui neid ei olnud |
ours_failed | integer | Viimase 15 minuti jooksul loendatud nurjunud ühendused |
dropped | integer | Viimase 30 minuti jooksul katkestatuteks loetud kõned |
rolled_back_at | timestamp |
Seotud
Blokeeriv sissetuleva kõne payload, millele pead vastama.
Kõnejärgne transkriptsioon ja mõõdikud.
Telli URL nende sündmuste alamhulgale.
Kuidas genereeritakse sündmusi telephony.tool / web.tool.