Slik fungerer det
- Du abonnerer på hendelsen
telephony.incoming(telefon) ellerweb.incoming(widget). Begge er blokkerende webhooker: ThunderPhone venter opptil 10 sekunder på svaret ditt før samtalen fortsetter. - ThunderPhone sender deg
{call_id, from_number, to_number}(widget- økter inneholder widgetspesifikke felt i stedet for numre — se forespørselsskjemaet). - Serveren din svarer med en agentkonfigurasjon (ledetekst, stemme, produkt, verktøy). ThunderPhone bruker den konfigurasjonen for samtalen.
- Hvis du returnerer
{}, får tidsavbrudd eller en feil, brukes den fast tilordnede agenten som reserve. Trygg standard.
Fungerer identisk for telefonsamtaler (
telephony.incoming) og widget-
økter (web.incoming), enten de leveres til et webhook-endepunkt
eller til den eldre webhooken med én URL.1. Konfigurer webhook-destinasjonen
- Telefonsamtaler
- Webwidget
For telefonnumre abonnerer du endepunktet ditt på Svaret inneholder en engangs-
telephony.incoming:secret — lagre den; du bruker den
til signaturverifisering.2. Implementer håndteringsfunksjonen
Tre tommelfingerregler:- Verifiser signaturen på hver forespørsel (se Verifiser webhook-signaturer). Ikke hopp over dette i utvikling — gjør det riktig én gang og gjenbruk det.
- Svar raskt. Ti sekunder er den absolutte grensen, og hvert sekund er stillhet for innringeren. Gjør databaseoppslag hvis du trenger det, men ikke kall nedstrøms LLM-er synkront — hvis du vil ha dynamisk promptgenerering, forhåndsberegn og mellomlagre.
- Fall tilbake på en ryddig måte. Enhver uventet tilstand skal returnere
{}slik at den statisk tildelte agenten håndterer samtalen.
3. Svarskjema
Svarteksten samsvarer nøyaktig med svarskjemaet for innkommende samtaler. De mest brukte feltene:Talerekkefølge per samtale og
max_hold_seconds er ikke tilgjengelige i
webhooksvaret. Angi dem på
agenten du refererer til.Mønstre
Kontekst for innloggede brukere
I widgeter i webhook-modus vet den besøkendes side allerede hvem de er. Kall webhooken din med en spørringsparameter som widget-SDK-en videresender (?customer_id=123), og slå opp kunden på serversiden.
A/B-utrulling av prompt
Før du implementerer dette selv, merk at ThunderPhone har en innebygd Eksperimenter-funksjon (/dashboard/experiments og A/B-fanen i agentbyggeren) som
definerer varianter, fordeler trafikk og sammenligner resultater per variant —
ingen webhook kreves.
Hvis du likevel trenger kontroll på webhook-siden: hash call_id → bøtte;
server prompt A for 0..49 og prompt B for 50..99. Registrer hvilken
bøtte du valgte i din egen DB, og korreler den senere med vurderingen av
det fullførte anropet.
Tidsbasert ruting
Åpningstid → stemmeagent for «direkte kundestøtte»; utenfor åpningstid → stemmeagent for «ta imot en beskjed». Rent bytte basert pånew Date().getUTCHours() i behandleren din.
Neste steg
Referanse for webhook ved innkommende anrop
Nøyaktige skjemaer for forespørsler og svar, inkludert alle konfigurasjonsnøkler.
Verifiser webhook-signaturer
Få HMAC riktig én gang, og gjenbruk det overalt.
Bygg en verktøyintegrasjon
Kombiner dynamisk ruting med verktøy per agent.
Leveringssemantikk
Nye forsøk, rekkefølge, tidsavbrudd.