ThunderPhone 2.0 ir klāt.Sāciet patstāvīgi — no 2 ¢/min.Lasīt paziņojumu

Webhooks

Notikumu katalogs

Visi tīmekļa aizķeres notikumu tipi, ko izvada ThunderPhone.

Katras tīmekļa aizķeres pamattekstā ir lauks type, kura vērtība ir viens no šīs lapas notikumu veidiem. Abonējot galapunktu, masīvā events jāiekļauj vajadzīgie notikumu veidi (vai tas jāatstāj tukšs, lai abonētu visus — izņemot katra gājiena notikumus telephony.turn / web.turn, kas tiek piegādāti tikai tiem galapunktiem, kuros tie ir skaidri norādīti).

Šie notikumi tiek piegādāti divos veidos:

Tālāk sniegtajos piemēra datos redzama galapunkta aploksne tās pārraides secībā (atslēgas sakārtotas alfabētiski: data, event_id, type); mantotajās piegādēs ir tie paši data bez event_id.

Zvanu notikumi

telephony.incoming

Nosūtīts, kad ienākošais zvans sasniedz kādu no jūsu tālruņa numuriem. Galapunkta piegādes ir paziņojumi, kas tiek nosūtīti bez atbildes gaidīšanas, par katru ienākošo zvanu neatkarīgi no tā, vai numurs ir konfigurēts balss aģentam vai tīmekļa aizķerei. Numuri bez piešķirta balss aģenta papildus saņem bloķējošo konfigurācijas pieprasījumu mantotajā tīmekļa aizķerē — pilnu pieprasījuma / atbildes shēmu skatiet telephony.incoming / web.incoming.

{
  "data": {
    "call_id": 987654321,
    "from_number": "+14155550199",
    "to_number": "+15551234567"
  },
  "event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
  "type": "telephony.incoming"
}
LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts

telephony.complete

Nosūtīts, kad beidzas ienākošs vai izejošs telefonijas zvans. Nebloķējošs. Ietver transkriptu, ieraksta URL, ja pieejams, un norēķinu kopsavilkumu. Kravas shēmu skatiet telephony.complete / web.complete.

LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts

telephony.tool

Nosūtīts pēc tam, kad telefonijas zvans izsauc funkcijas rīku. Nebloķējošs audita paziņojums — rīks jau ir izpildīts, kad šis notikums tiek piegādāts; tas attiecas uz jūsu funkciju rīkiem un iebūvēto send_sms rīku (nevis citiem iebūvētajiem, zināšanu bāzes, lietotņu savienojumu vai MCP rīkiem). Rīkam send_sms gan arguments.to, gan arguments.body ir [REDACTED]. Arī pabeigšanas transkripti tos rediģē; izgūstiet saturu un adresātu no organizācijas tvērumā esošā SMS resursa, izmantojot atbildes 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 ir izpildes rezultāts: {"status": <http status>, "response": <your endpoint's JSON>} veiksmīgas izpildes gadījumā vai {"status": <status>, "error": "<message>"} kļūmes gadījumā.

LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts

telephony.turn

Nosūtīts telefonijas zvana norises laikā — vienreiz katram runu saturošam dialoga gājienam, kad tas notiek, proti, balss aģenta izrunātajām atbildēm un zvanītāja transkribētajiem gājieniem. Ļauj sekot tiešraides sarunai, izmantojot parastas tīmekļa aizķeres, nevis aptaujājot GET /v1/calls/{call_id}/transcript. Nebloķējošs.

{
  "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"
}
LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
positionintegerGājiena indekss zvanu vēsturē — stabils identifikators kārtošanai
rolestringassistant (balss aģenta runa) vai user (zvanītāja runa)
textstringGājiena transkripta teksts, kāds tas ir zināms nosūtīšanas brīdī
entry_typestringPamatā esošā vēstures ieraksta veids: completion (balss aģents) vai user_turn / span (zvanītājs)
start_ms, end_msintegerAudio nobīdes ms kopš zvana sākuma; pieejamas tikai tad, ja atskaņošanas laiks jau bija zināms nosūtīšanas brīdī

web.incoming

telephony.incoming ekvivalents tīmekļa kanālam, kas tiek nosūtīts, kad sākas tīmekļa logrīka sesija vai veidotāja mikrofona pārbaudes zvans. Galapunkta piegādes tiek nosūtītas bez atbildes gaidīšanas par katru tīmekļa sesiju. Publicējamās atslēgas režīmā mode="webhook" papildus saņem bloķējošo konfigurācijas pieprasījumu mantotajā tīmekļa aizķerē — šim bloķējošajam pieprasījumam ir cita struktūra (origin_domain, publishable_key_prefix; nav tālruņa numuru). Skatiet 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 vienmēr ir burtiskā vērtība "web". Tīmekļa aizķeres režīma logrīka sesijām to_number ir tukšs (sesijas balss aģenta numurs tiek piešķirts pēc konfigurēšanas); veidotāja mikrofona pārbaudes zvaniem origin_domain un publishable_key_prefix ir tukši.

LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts

web.complete

telephony.complete ekvivalents tīmekļa kanālam, kas aptver tīmekļa logrīka zvanus (direction: "web") un veidotāja mikrofona pārbaudes zvanus (direction: "test"). Nebloķējošs. Tāda pati kravas struktūra kā telephony.complete, papildus origin_domain, ar from_number vērtību "web".

LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts

web.tool

telephony.tool ekvivalents tīmekļa kanālam. data satur origin_domain lauku from_number / to_number vietā.

LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts

web.turn

telephony.turn ekvivalents tīmekļa kanālam, kas aptver tīmekļa logrīka zvanus un veidotāja mikrofona pārbaudes zvanus. Tāda pati kravas struktūra, ar origin_domain lauku from_number / to_number vietā. Tāpat kā telephony.turn, tam nepieciešams skaidri norādīts abonements — tas nekad netiek piegādāts, izmantojot tukšu events masīvu.

LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts

call.transfer_completed

Tiek nosūtīts vienreiz katram zvanam ar zvana pārsūtīšanas galīgo iznākumu: aukstu pārsūtīšanu vai cilvēku savienojumu, kas paliek pēc siltās pārsūtīšanas, kad balss aģents atvienojas. Nebloķējošs un tiek piegādāts tikai uz galapunktiem (nekad uz mantoto viena URL tīmekļa aizķeri). Tas tiek saņemts pēc zvana telephony.complete: kad pakalpojumu sniedzējs pārņem zvanu vai pārsūtīšana neizdodas, vai, ja ThunderPhone savienoja zvanu, kad savienojums beidzas.

{
  "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"
}
LauksTipsApraksts
call_idintegerPārsūtītais zvans
agent_idinteger | nullBalss aģents, kas apkalpoja zvanu, ja tāds tika piešķirts
agent_namestring | nullBalss aģents, kas apkalpoja zvanu, ja tāds tika piešķirts
transfer_outcomestringrefer_accepted: pakalpojumu sniedzējs pārņēma zvanu. bridged: ThunderPhone pats uzturēja savienojumu starp zvanītāju un galamērķi, jo pakalpojumu sniedzējs noraidīja aukstu pārsūtīšanu vai siltās pārsūtīšanas balss aģents atvienojās. bridge_unanswered: pakalpojumu sniedzējs noraidīja aukstu pārsūtīšanu, un galamērķis neatbildēja uz ThunderPhone paša veikto zvanu. failed: pārsūtīšana netika pabeigta un zvans beidzās
destinationstring | nullNumurs, uz kuru zvans tika pārsūtīts
sip_statusinteger | nullPakalpojumu sniedzēja SIP statuss, kad tas noraidīja auksto pārsūtīšanu: 403 (piemēram, Twilio maģistrāle bez zvanu pārsūtīšanas), 405 vai 501. null, ja pakalpojumu sniedzējs to nenoraidīja
bridge_kindstring | nullTikai bridged: cold_fallback (noraidīta aukstā pārsūtīšana, ko ThunderPhone savienoja) vai warm (divi cilvēki siltajā pārsūtīšanā pēc balss aģenta aiziešanas)
bridge_secondsinteger | nullTikai bridged: savienojuma ilgums sekundēs, par kuru ThunderPhone izrakstīja rēķinu
bridge_total_centsinteger | nullTikai bridged: savienojuma maksa ASV dolāru centos pēc jebkura bezmaksas zvanu kredīta piemērošanas, kas tiek rēķināta atsevišķi no zvana billing_total_cents

Tās pašas vērtības ir zvana objektā kā transfer_outcome, transfer_destination, transfer_sip_status, transfer_bridge_kind, transfer_bridge_seconds un transfer_bridge_total_cents. event_id ir vienāds katrā piegādē vienam zvanam, tāpēc atkārtots ziņojums nerada otru notikumu.


SMS notikumi

SMS notikumi apraksta ziņojumus, kas nosūtīti, izmantojot organizācijas pievienoto Twilio vai Telnyx kontu. Ziņojuma saturs ir izlaists, un to ir rediģēts. Iegūstiet organizācijas tvērumā esošo ziņojumu no GET /v1/sms/{message_id}, kad nepieciešams tā saturs vai saņēmējs.

sms.sent

Nosūtīts, kad klienta operators pieņem izejoša SMS pieprasījumu. Šis nav apstiprinājums par piegādi uz tālruni.

{
  "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",
    "segment_count": 1,
    "source": "agent_tool",
    "status": "accepted",
    "to": "[REDACTED]"
  },
  "event_id": "0ae347b4-1716-45bb-9a0e-b52373586e37",
  "type": "sms.sent"
}

sms.failed

Nosūtīts pēc pastāvīga operatora noraidījuma, kad ir izsmelti īslaicīgu kļūdu atkārtošanas mēģinājumi vai kad iznākums galīgi nav zināms. error_code ir nemainīgs ThunderPhone kods, un error_message norāda klientam veicamo darbību, ja tā ir pieejama. status: "unknown" nozīmē, ka operators, iespējams, ir pieņēmis SMS; pārbaudiet to operatora žurnālā, jo ThunderPhone to automātiski nenosūtīs atkārtoti.

sms.received

Rezervēts ienākošo SMS atbalstam. Pašreizējā laidienā netiek ģenerēti sms.received notikumi. Ienākošo operatora tīmekļa aizķeru konfigurācija un paraksta verificēšana tiks piegādāta atsevišķi.


Balss notikumi

Pielāgotas balss izveide ir asinhrona. Šie nebloķējošie notikumi ļauj jums reaģēt uz galīgo rezultātu, nevis regulāri pārbaudīt klonēšanas detalizētās informācijas galapunktu.

voice.ready un voice.failed tiek piegādāti tikai uz organizācijas mēroga galapunktu ar events: []. Tos nevar atlasīt kā skaidrus notikumu filtrus.

voice.ready

Nosūtīts, kad pielāgotās balss apstrāde ir pabeigta un to var piešķirt balss aģentam.

{
  "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

Nosūtīts, kad pielāgotās balss apstrāde sasniedz neatgriezenisku kļūmi.

{
  "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"
}
LauksTipsApraksts
voice.idvirknePielāgotās balss publiskais ID
voice.namevirkneBalss aģenta balss vērtība formātā custom:<public_id>
voice.display_namevirkneOrganizācijai redzamais balss nosaukums
voice.languagevirkneKlona vienas valodas kods
voice.gendervirknemale, female vai tukša virkne
voice.statusvirkneready vērtībai voice.ready; failed vērtībai voice.failed
voice.failure_reasonvirkneTukšs veiksmīgas apstrādes gadījumā; apstrādes kļūmes informācija kļūmes gadījumā
voice.created_at, voice.updated_atlaika zīmogsISO 8601 laika zīmogi
reasonvirkneKļūmes informācija; pieejama tikai laukam voice.failed

Kvalitātes notikumi

call.graded

Tiek nosūtīts, kad zvanam tiek pabeigta AI vērtēšana. Nebloķējošs.

{
  "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"
}
LauksTipsApraksts
agent_idvesels skaitlis | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namevirkne | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
grade.idvesels skaitlisVērtējuma ID
grade.scorevesels skaitlis | null0–100
grade.call_outcomevirknesuccess, failure, unknown vai no_conversation
grade.summaryvirkneVienas rindkopas kopsavilkums
grade.detected_issuesmasīvsVērtētāja atrastās problēmu virknes
grade.statusvirkneVienmēr completed — tiek nosūtīti tikai pabeigtie izpildes gadījumi
grade.grader_modelvirkneVērtētājs, kas radīja rezultātu (piemēram, heuristic-v1)
grade.graded_at, grade.created_atlaika zīmogs
reportobjekts | nullKlientam paredzētais zvana pārskats: rezultāta etiķete, uzmanības nepieciešamības karodziņš un iemesls, zvanītājs, vienas rindas kopsavilkums, zvanītāja pieredze. Agrīnā heuristiskā vērtējumā tas ir null vai pending pārskats, kura lauki ir vietturi; pilnā vērtējuma notikumā ir pabeigtais pārskats

call.data_extracted

Tiek nosūtīts, kad strukturēto datu izgūšana ir sekmīgi pabeigta, tostarp pēc vēla atkārtota mēģinājuma pēc telephony.complete / web.complete vai manuālas atkārtotas palaišanas, izmantojot POST /v1/calls/{call_id}/extract. Nebloķējošs.

Bloķējošā izgūšanas režīmā pabeigšanas notikums parasti negaida ilgāk par 75 sekunžu izgūšanas budžetu. Ja izgūšanas darba process tiek zaudēts, ražošanas vides pabeigšanas rindas apstrāde (ik pēc piecām minūtēm) atbrīvo pabeigšanas notikumu, kura blocking_deadline_at ir pagājis, pirms sāk citu izgūšanas mēģinājumu. Vēlāki veiksmīgi rezultāti tiek piegādāti atsevišķi kā šis notikums.

{
  "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"
}
LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
summarystring | nullPabeigtais zvana kopsavilkums, ja balss aģentam ir ieslēgta opcija Ģenerēt zvana kopsavilkumu, tāpēc arī vēls izgūšanas notikums piegādā kopsavilkumu, kas netika pabeigts noteiktajā termiņā; pretējā gadījumā null. Balss aģenti ar kopsavilkumu, bet bez izgūšanas laukiem, nekad nenosūta šo notikumu: vēlu kopsavilkumu iegūstiet no GET /v1/calls/{call_id}
extracted_data.statusstringŠim notikumam vienmēr completed
extracted_data.fieldsobjectVērtības, kas indeksētas pēc konfigurēto izgūšanas lauku atslēgām; nepieejamās vērtības ir null
extracted_data.evidenceobjectPierādījumi, kas indeksēti pēc izgūšanas lauka. Vērtībai, kas nav null, ir precīzs strukturāli pārbaudīts citāts (ne vairāk kā 1 000 rakstzīmes), speaker_role (caller vai agent) un turn_index; garāki modeļa atgrieztie citāti tiek noraidīti, nevis saīsināti, un pierādījumi ir null vienmēr, kad to lauks ir null
extracted_data.verificationstringverified tikai tad, ja neatkarīgā pierādījumu pārbaude katram kandidāta laukam atgrieza tieši vienu derīgu spriedumu. unavailable nozīmē, ka pārbaude neizdevās, pārsniedza laiku, tai nepietika budžeta vai tā atgrieza nepareizi formatētu vai daļēju izvadi. Pilnībā nepieejama pārbaude saglabā strukturāli pamatotas vērtības klienta pārskatīšanai. Daļējas izvades gadījumā tiek piemēroti derīgie spriedumi, un katrs kandidāts bez tieši viena derīga sprieduma tiek iestatīts uz nulli
extracted_data.field_reasonsobjectIemesli, kas indeksēti pēc laukiem, kuri strukturālās pamatotības vai neatkarīgā pārbaudītāja dēļ tika iestatīti uz nulli
extracted_data.schema_versionstringPrecīzās šai izgūšanai izmantotās lauku shēmas jaucējvērtība
extracted_attimestampISO 8601 pabeigšanas laiks
modelstringIzgūšanai izmantotais modelis

campaign.completed

Tiek nosūtīts vienreiz, kad kampaņas statuss mainās no running uz completed, neatkarīgi no tā, vai tās grafiks ir beidzies vai visi kontakti ir sasnieguši gala statusus. Izpildītāja atkārtotie mēģinājumi nenosūta citu notikumu. Šis organizācijas līmeņa dzīves cikla notikums tiek piegādāts tikai organizācijas tvēruma galapunktiem, nevis balss aģenta tvēruma galapunktiem. Nebloķējošs.

{
  "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,
      "remaining": 0
    }
  },
  "event_id": "8d8f52ce-6b46-423f-9dde-cea0b91ec135",
  "type": "campaign.completed"
}

Četri rezultātu skaitītāji nepārklājas un to summa ir contacts_total: completed ietver veiksmīgus kontaktus; no_answer ietver neveiksmīgus vai izsmeltus kontaktus gala statusā, kuru pēdējais rezultāts bija neatbildēts zvans; failed ietver visus pārējos neveiksmīgos vai izsmeltos kontaktus gala statusā; un remaining ietver gaidošus, ieplānotus vai pašlaik zvanāmus kontaktus. Kontakts, kas gaida atkārtotu mēģinājumu, ir remaining, pat ja tā pēdējais mēģinājums bija neatbildēts zvans. Notiekošie zvani tiek saskaņoti pirms vienreizējā pabeigšanas momentuzņēmuma. started_at ir konfigurētais kampaņas sākums vai kampaņas izveides laiks, ja sākums nebija konfigurēts.

issue.reported

Tiek nosūtīts, kad tiek izveidots problēmas ziņojums — vai nu lietotājs to iesniedz no vadības paneļa (source: "user"), vai arī to automātiski izveido zvana vērtēšana (source: "system"). Nebloķējošs.

{
  "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"
}
LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
issue_report.severitystringcritical, warning vai info
issue_report.statusstringopen vai resolved
issue_report.sourcestringuser (iesniegts no vadības paneļa) vai system (izveidots vērtēšanas laikā)

issue.escalated

Tiek nosūtīts, kad problēmu modelis tiek nosūtīts ThunderPhone personāla pārskatīšanai: pēc Ziņot ThunderPhone vai kad Labot ar AI nevar apstiprināt klienta puses labojumu un automātiski pārsūta problēmu. Šo notikumu saņem tikai organizācijas mēroga galapunkti.

{
  "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"
}
LauksTipsApraksts
automaticbooleantrue automātiskai eskalācijai; false manuālai eskalācijai
cluster_idUUIDEskalētais problēmu modelis
escalation_idUUIDEskalācijas ieraksts
statusstringopen, kad notikums tiek nosūtīts

Šis ir paziņojums, nevis pierādījumu kopa. Izmantojiet cluster_id, lai to saistītu ar problēmu modeli. Skatiet Ziņot ThunderPhone.


Testa zvanu notikumi

test-call.completed

Tiek nosūtīts, kad testa zvana palaišana sasniedz beigu statusu — completed vai failed, tostarp palaišanām, kas neizdevās palaišanas brīdī un nekad neizveidoja zvanu. Nebloķējošs. Noderīgs partiju CI palaišanu savienošanai ar jūsu tērzēšanas/paziņojumu sistēmām.

{
  "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"
}
LauksTipsApraksts
agent_idinteger | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
agent_namestring | nullBalss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts
test_call_run.target_typestringagent vai phone_number
test_call_run.target_idintegerBalss aģenta ID vai tālruņa numura ID, uz kuru bija vērsta palaišana, atbilstoši target_type
test_call_run.statusstringcompleted vai failed
test_call_run.call_idinteger | nullnull, ja palaišana neizdevās pirms zvana veikšanas
test_call_run.error_messagestringVeiksmīgas izpildes gadījumā tukšs

Brīdinājumu notikumi

alert.triggered

Tiek nosūtīts, kad brīdinājuma kārtula ar iespējotu kanālu Piegādāt izstrādātāju tīmekļa aizķerēm pārsniedz savu slieksni. Nebloķējošs. Kārtula tiek aktivizēta vienu reizi un pēc tam ievēro savu atdzišanas periodu, tāpēc ilgstošs pārkāpums rada vienu notikumu katrā atdzišanas perioda logā.

{
  "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"
}
LauksTipsApraksts
event_id (sadaļā data)UUIDBrīdinājuma aktivizēšanas ID — atšķiras no aploksnes piegādes event_id
rule_id, rule_nameUUID, stringKārtula, kas tika aktivizēta
metricstringsuccess_rate, failure_rate, avg_score, call_volume vai suite_regression
comparatorstringlt, lte, gt vai gte
metric_valuenumberMetrikas vērtība logā, kad kārtula tika aktivizēta
thresholdnumberKonfigurētais slieksnis
window_hoursintegerBeigu novērtēšanas logs
fired_attimestamp

Skatiet Brīdinājumu ceļvedi, lai izveidotu kārtulas, metriku, atdzišanas periodus un e-pasta / Slack kanālus.


Migrācijas notikumi

migration.call.complete

Tiek nosūtīts, kad zvans, kas veikts, izmantojot POST /v1/migrations/{id}/calls, beidzas, neatkarīgi no platformas, kas to veica. Nebloķējošs. Tas tiek saņemts ne vēlāk kā aptuveni 5 minūtes pēc zvana beigām. data satur visus laukus no telephony.complete un bloku migration. Zvanam, ko veicis ThunderPhone, kā parasti tiek nosūtīts arī telephony.complete ar tādu pašu call_id. Zvans citā platformā, kas nav beidzies pēc 2 stundām vai kura migrācija ir beigusies vai vispirms zaudējusi atslēgu, tiek nosūtīts ar status: "unknown" un bez transkripta.

{
  "data": {
    "agent_id": 42,
    "agent_name": "Front desk",
    "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"
}
LauksTipsApraksts
migration.idUUIDMigrācija
migration.routing_idUUIDMaršrutētais zvans, kā atgriezts, kad to veicāt
migration.armstringours (to veica ThunderPhone) vai vendor (to veica cita platforma)
migration.vendorstringretell, vapi, elevenlabs vai bland
migration.vendor_call_idstring | nullCitas platformas zvana ID; null, ja ir ours
migration.metadataobjectmetadata, ko nosūtījāt, veicot zvanu
migration.vendor_cost_usdstring | nullCik cita platforma norādīja, ka zvans izmaksāja, ja tā to norādīja
call_idinteger | nullThunderPhone zvana ID; null, ja ir vendor
statusstringvendor gadījumā: completed, kad izsauktais abonents runāja, failed, kad nerunāja, unknown, kā norādīts iepriekš. ours gadījumā: kā telephony.complete

vendor zvanam ThunderPhone nav norēķinu vai datu iegūšanas informācijas: billable_minutes, billing_total_cents un extracted_data ir null, product un voice ir tukši, recording_mode ir vendor, un recording_url ir citas platformas saite, ja tādu tā sniedza.

migration.rollback

Tiek nosūtīts, kad migrācijas pakāpeniskā pārslēgšana automātiski novirza visus zvanus atpakaļ uz otru platformu: 3 zvani 15 minūšu laikā neizdevās savienot ar ThunderPhone, 2 uz ThunderPhone nosūtītie zvani beidzās, pirms balss aģents atbildēja, vai ThunderPhone uzdevumu iznākuma rādītājs nokritās par vairāk nekā konfigurēto starpību zem otras platformas rādītāja. Nebloķējošs notikums, vienreiz katrai atcelšanai. Pēc tā ThunderPhone zvanu īpatsvars ir 0%, un migrācija tiek apturēta, līdz kāds to atsāk balss aģenta cilnē Migrācija. Slodzes datos nav tālruņu numuru, transkriptu vai zvanu ID.

{
  "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"
}
LauksTipsApraksts
migration_idUUIDMigrācija
vendorstringretell, vapi, elevenlabs vai bland
reasonstringours_failed_burst (3 neveiksmīgi savienojumi 15 minūšu laikā), dropped_calls (2 zvani beidzās, pirms balss aģents atbildēja, 30 minūšu laikā) vai rate_gap (uzdevumu iznākuma rādītāju starpība vismaz rollback_min_calls novērtētajos zvanos katrā pusē)
previous_percentintegerThunderPhone zvanu īpatsvars pirms atcelšanas
ours_percentintegerVienmēr 0
stepinteger | nullGrafika solis, kurā tā atradās (sākot no 0)
ours / theirsobject | nullPašreizējā solī novērtētie zvani un to sekmīguma rādītājs; theirs var attiekties uz pēdējām 30 dienām, ja solī ir pārāk maz zvanu. null, ja zvanu nebija
ours_failedintegerNeveiksmīgie savienojumi, kas saskaitīti pēdējās 15 minūtēs
droppedintegerPar pārtrauktiem uzskatītie zvani, kas saskaitīti pēdējās 30 minūtēs
rolled_back_attimestamp

Saistītie resursi