Skip to main content
Som standard har hvert telefonnummer og hver publiserbare nøkkel en fast agent tilordnet. Når du trenger tilpasning per innringer eller per besøkende — VIP-ruting, kontekst for innloggede brukere, A/B-tester av ledetekster — bytt til webhookmodus og la serveren din avgjøre.

Slik fungerer det

  1. Du abonnerer på hendelsen telephony.incoming (telefon) eller web.incoming (widget). Begge er blokkerende webhooker: ThunderPhone venter opptil 10 sekunder på svaret ditt før samtalen fortsetter.
  2. ThunderPhone sender deg {call_id, from_number, to_number} (widget- økter inneholder widgetspesifikke felt i stedet for numre — se forespørselsskjemaet).
  3. Serveren din svarer med en agentkonfigurasjon (ledetekst, stemme, produkt, verktøy). ThunderPhone bruker den konfigurasjonen for samtalen.
  4. 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

For telefonnumre abonnerer du endepunktet ditt på telephony.incoming:
Svaret inneholder en engangs-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.