ThunderPhone 2.0 on nüüd saadaval.Iseteenindusena alates 2 senti/min.Loe uudist

Webhooks

Sündmuste kataloog

Kõik veebikonksu sündmusetüübid, mida ThunderPhone väljastab.

Iga webhooki keha sisaldab välja 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 voorupõhised sündmused telephony.turn / web.turn, mis saadetakse ainult lõpp-punktidele, kus need on selgesõnaliselt nimetatud).

Neid sündmusi edastatakse kahes stiilis:

Allolevad näidiskoormad näitavad lõpp-punkti ümbrikku selle juhtmejärjekorras (võtmed on sorditud tähestikuliselt: data, event_id, type); pärandedastused sisaldavad sama data ilma väljata event_id.

Kõnesündmused

telephony.incoming

Saadetakse, kui sissetulev kõne jõuab ühele sinu telefoninumbrile. Lõpp-punkti edastused on vastust ootamata teavitused iga sissetuleva kõne kohta, olenemata sellest, kas number on häälagendi või webhooki jaoks seadistatud. Määratud häälagendita numbrid saavad lisaks pärandwebhooki kaudu blokeeriva konfiguratsioonipäringu — täieliku päringu- ja vastuseskeemi leiad siit: 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äliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud

telephony.complete

Saadetakse, kui sissetulev või väljaminev telefonikõne lõpeb. Mitteblokeeriv. Sisaldab transkriptsiooni, salvestise URL-i, kui see on saadaval, ning arvelduse kokkuvõtet. Vaata andmekoormuse skeemi siit: telephony.complete / web.complete.

VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud

telephony.tool

Saadetakse pärast seda, kui telefonikõne käivitab funktsioonitööriista. Mitteblokeeriv auditeerimisteavitus — tööriist on selle sündmuse edastamise ajaks juba käivitatud; see hõlmab sinu enda funktsioonitööriistu, mitte sisseehitatud, teadmusbaasi, rakenduseühenduse ega MCP tööriistu.

{
  "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>}, ebaõnnestumise korral {"status": <status>, "error": "<message>"}.

VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud

telephony.turn

Saadetakse telefonikõne ajal üks kord iga kõnet sisaldava vooru kohta — häälagendi öeldud lõpetused ja helistaja transkribeeritud voorud. Võimaldab 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äliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud
positionintegerVooru indeks kõneajaloos — stabiilne identifikaator järjestamiseks
rolestringassistant (häälagendi kõne) või user (helistaja kõne)
textstringVooru transkriptsioonitekst sellisena, nagu see oli väljastamise ajal teada
entry_typestringAluseks oleva ajalookirje tüüp: completion (häälagent) või user_turn / span (helistaja)
start_ms, end_msintegerHeli nihked millisekundites alates kõne algusest; olemas ainult siis, kui esituse ajastus oli väljastamise ajal juba teada

web.incoming

telephony.incoming veebikanali vaste, mis saadetakse siis, kui veebividina seanss või koosturi mikrofonitestkõne algab. Lõpp-punkti edastused on vastust ootamata teavitused iga veebiseansi kohta. Režiimis mode="webhook" olevad avaldatavad võtmed saavad lisaks pärandwebhooki kaudu blokeeriva konfiguratsioonipäringu — selle blokeeriva päringu kuju on erinev (origin_domain, publishable_key_prefix; telefoninumbrid puuduvad). Vaata 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 sõneliteral "web". Webhooki režiimis veebividina seansside puhul on to_number tühi (seansi häälagendi number määratakse pärast konfigureerimist); koosturi mikrofonitestkõnede puhul on origin_domain ja publishable_key_prefix tühjad.

VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud

web.complete

telephony.complete veebikanali vaste, mis hõlmab veebividina kõnesid (direction: "web") ja koosturi mikrofonitestkõnesid (direction: "test"). Mitteblokeeriv. Andmekoormuse struktuur on sama mis telephony.complete puhul, lisaks on olemas origin_domain ning from_number väärtuseks on "web".

VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud

web.tool

telephony.tool veebikanali vaste. data sisaldab välja from_number / to_number asemel välja origin_domain.

VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud

web.turn

telephony.turn veebikanali vaste, mis hõlmab veebividina kõnesid ja koosturi mikrofonitestkõnesid. Andmekoormuse struktuur on sama, kuid from_number / to_number asemel kasutatakse välja origin_domain. Nagu telephony.turn, nõuab see otsest tellimust — seda ei edastata kunagi tühja events massiivi kaudu.

VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud

Häälsü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 saadetakse ainult organisatsiooniülesele lõpp-punktile, millel on events: []. Neid ei saa valida otseste sündmusefiltritena.

voice.ready

Saadetakse, kui kohandatud hääl lõpetab töötlemise 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äliTüüpKirjeldus
voice.idstringKohandatud hääle avalik ID
voice.namestringAgendi hääle väärtus vormingus custom:<public_id>
voice.display_namestringOrganisatsioonile nähtav hääle nimi
voice.languagestringKlooni ühekordne keelekood
voice.genderstringmale, female või tühi string
voice.statusstringready väärtuse voice.ready jaoks; failed väärtuse voice.failed jaoks
voice.failure_reasonstringEdu korral tühi; tõrke korral töötlemistõrke üksikasjad
voice.created_at, voice.updated_attimestampISO 8601 ajatemplid
reasonstringTõrke üksikasjad; olemas ainult sündmuse voice.failed korral

Kvaliteedisündmused

call.graded

Saadetakse iga kord, kui kõne AI-hindamise käitamine lõpeb. Ei blokeeri.

{
  "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"
}
VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud
grade.idintegerHinde ID
grade.scoreinteger | null0–100
grade.call_outcomestringsuccess, failure, unknown või no_conversation
grade.summarystringÜhe lõigu pikkune kokkuvõte
grade.detected_issuesarrayHindaja tuvastatud probleemide stringid
grade.statusstringAlati completed — sündmuse saadavad ainult lõpetatud käitamised
grade.grader_modelstringMilline hindaja tulemuse koostas (nt heuristic-v1)
grade.graded_at, grade.created_attimestamp

call.data_extracted

Saadetakse iga kord, kui struktureeritud andmete eraldamine lõpeb edukalt, sealhulgas hilise korduskatse järel pärast telephony.complete / web.complete või käsitsi uuesti käivitamisel läbi POST /v1/calls/{call_id}/extract. Ei blokeeri.

Blokeerivas eraldusrežiimis ootab lõpetamissündmus tavaliselt kuni 75-sekundilist eraldamise ajavahemikku. Kui eraldustöötlusprotsess kaob, väljastab tootmiskeskkonna lõpetamise tühjendusprotsess (iga viie minuti järel) lõpetamise, mille blocking_deadline_at on möödunud, enne kui alustab uut eralduskatset. Hilisem õnnestumine saadetakse 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": "gemini-2.5-flash"
  },
  "event_id": "4d79ef1d-c2b1-4ed6-85b8-8326bd2895ef",
  "type": "call.data_extracted"
}
VäliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud
extracted_data.statusstringSelle sündmuse korral alati completed
extracted_data.fieldsobjectKonfigureeritud eraldusväljade võtmetega väärtused; kättesaamatud väärtused on null
extracted_data.evidenceobjectEraldusvälja järgi võtmega tõendid. Nullist erineval väärtusel on täpne struktuurselt kontrollitud tsitaat (kuni 1,000 märki), speaker_role (caller või agent) ja turn_index; mudeli tagastatud pikemad tsitaadid lükatakse kärpimise asemel tagasi ning tõend on null alati, kui selle väli on null
extracted_data.verificationstringverified ainult siis, kui sõltumatu tõendite kontroll tagastas iga kandidaadvälja kohta täpselt ühe kehtiva otsuse. unavailable tähendab, et kontroll ebaõnnestus, aegus, sellel polnud piisavalt ressurssi või see tagastas vigase või osalise väljundi. Täielikult kättesaamatu kontroll säilitab kliendi ülevaatuseks struktuurselt põhjendatud väärtused. Osalise väljundi korral rakendatakse kehtivaid otsuseid ja iga kandidaat, mille kohta pole täpselt üht kehtivat otsust, muudetakse nulliks
extracted_data.field_reasonsobjectPõhjused, võtmega väljade järgi, mille struktuurne põhjendamine või sõltumatu kontrollija nulliks muutis
extracted_data.schema_versionstringSelle eraldamise jaoks kasutatud täpse väljaskeemi räsi
extracted_attimestampISO 8601 lõpetamise aeg
modelstringEraldamiseks 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 organisatsioonitasandi elutsüklisündmus saadetakse ainult organisatsioonipõhistele lõpp-punktidele, mitte häälagendipõhistele lõpp-punktidele. Ei blokeeri.

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

Neli tulemuste arvu ei kattu ja nende summa on contacts_total: completed sisaldab edukaid kontakte; no_answer sisaldab lõppolekusse jõudnud ebaõnnestunud või katsetega ammendatud kontakte, mille lõpptulemuseks oli vastuse puudumine; failed sisaldab kõiki muid lõppolekusse jõudnud ebaõnnestunud või katsetega ammendatud kontakte; ning remaining sisaldab ootel, ajastatud või praegu helistatavaid kontakte. Korduskatset ootav kontakt on remaining, isegi kui selle viimane katse jäi vastuseta. Käimasolevad kõned kooskõlastatakse enne ühekordset lõpetamise hetkeseisu. started_at on kampaania konfigureeritud algusaeg või kampaania loomise aeg, kui algusaega ei konfigureeritud.

issue.reported

Saadetakse, kui luuakse probleemiaruanne — kas kasutaja esitab selle töölaualt (source: "user") või see luuakse automaatselt kõne hindamise käigus (source: "system"). Ei blokeeri.

{
  "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äliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud häälagent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud häälagent, kui see oli määratud
issue_report.severitystringcritical, warning või info
issue_report.statusstringopen või resolved
issue_report.sourcestringuser (esitatud töölaualt) või system (loodud hindamise käigus)

issue.escalated

Saadetakse, kui probleemimuster saadetakse ThunderPhone'ile töötajate ülevaatuseks: pärast Teavita ThunderPhone'i kasutamist või kui Paranda tehisintellektiga ei suuda kliendipoolset parandust kinnitada ja suunab probleemi automaatselt edasi. Selle sündmuse saavad ainult organisatsiooniülesed 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äliTüüpKirjeldus
automaticbooleantrue automaatse eskaleerimise korral; false käsitsi eskaleerimise korral
cluster_idUUIDEskaleeritud probleemimuster
escalation_idUUIDEskaleerimiskirje
statusstringSündmuse saatmisel open

See on teavitus, mitte tõendite kogum. Kasuta cluster_id, et siduda see probleemimustriga. Vaata Teavita ThunderPhone'i.


Testkõne sündmused

test-call.completed

Saadetakse, kui testkõne käitamine jõuab lõppolekusse — completed või failed, sealhulgas käitamised, mis ebaõnnestusid käivitamisel ega loonud kunagi kõnet. Mitteblokeeriv. Kasulik partii-CI käitamiste ü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äliTüüpKirjeldus
agent_idinteger | nullKõnet käsitlenud agent, kui see oli määratud
agent_namestring | nullKõnet käsitlenud agent, kui see oli määratud
test_call_run.target_typestringagent või phone_number
test_call_run.target_idintegerAgendi ID või telefoninumbri ID, millele käitamine oli suunatud, vastavalt väärtusele target_type
test_call_run.statusstringcompleted või failed
test_call_run.call_idinteger | nullnull, kui käitamine ebaõnnestus enne kõne algatamist
test_call_run.error_messagestringEduka tulemuse korral tühi

Hoiatuse 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äliTüüpKirjeldus
event_id (asukohas data)UUIDHoiatuse käivituse ID — erineb ümbrise edastuse event_id-st
rule_id, rule_nameUUID, stringKäivitunud reegel
metricstringsuccess_rate, failure_rate, avg_score, call_volume või suite_regression
comparatorstringlt, lte, gt või gte
metric_valuenumberMõõdiku väärtus akna jooksul, mil reegel käivitus
thresholdnumberSeadistatud lävend
window_hoursintegerJooksev hindamisaken
fired_attimestamp

Reeglite, mõõdikute, jahtumisperioodide ning e-posti- ja Slacki kanalite loomise kohta vaata hoiatuste juhendit.


Seotud