ThunderPhone 2.0 er lansert.Kom i gang selv – fra 2¢/min.Les mer om lanseringen

Developer cookbook

Foreta utgående samtaler (API)

Utløs en KI-drevet utgående samtale fra din egen kode — for spørreundersøkelser, oppfølging eller bekreftelsesflyter.

Utgående oppringing lar deg sende et destinasjonsnummer og en agentkonfigurasjon til ThunderPhone, slik at KI-en ringer på dine vegne. Vanlige bruksområder:

  • Avtalebekreftelser
  • Tilbakeoppringinger for undersøkelser
  • «Andre forsøk»-oppfølging etter et ubesvart anrop
  • Varsler i utsendelsesstil

Forutsetninger

  1. Velg et nummer aktivert for utgående anrop

    Bruk et nummer du eier gjennom en VoIP-tilkobling, eller be om tillatelse til å bruke ThunderPhone-numrene dine til utgående anrop fra siden Phone Numbers. ThunderPhone-numre starter som kun innkommende. ThunderPhone gjennomgår hver forespørsel manuelt. Når den er godkjent, kan numrene ringe opp til den godkjente daglige grensen (som tilbakestilles kl. 00:00 UTC) og kjøre kampanjer, og du kan be om en høyere grense. Kundens VoIP-numre har ingen daglig grense, så vi anbefaler dem for utgående anrop. Se Bruk dine egne numre.

  2. Opprett en agent

    En prompt tilpasset utgående anrop starter vanligvis med at agenten identifiserer seg selv og formålet sitt — «Hei, dette er Acme som ringer for å bekrefte avtalen din i morgen kl. 15 …» Angi outbound_speak_order til agent_first (standard).

  3. Hold en positiv saldo

    Utgående anrop returnerer 402 Payment Required hvis saldoen er ≤ $0.00. Fyll på saldoen eller aktiver automatisk påfylling under Organisasjon → Faktureringsinnstillinger i dashbordet. sk_live_- nøkkelen din kan sjekke saldoen med GET /v1/billing, men kan ikke fylle på saldoen eller endre automatisk påfylling.

Ring med en lagret agent

Den enkleste metoden — referer til en agent med ID:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155552671",
    "agent_id":    12
  }'

Svar:

{ "call_id": 987654321, "status": "initiated" }

Ring med innebygd konfigurasjon

Hvis du vil ha en engangsledetekst som ikke er verdt å lagre som en agent, sender du config i stedet. Strukturen samsvarer med svarskjemaet for call.incoming-webhooken:

curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155552671",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'

Følg samtalen

Abonner parallelt på telephony.complete-webhooken — den raskeste måten å vite at en samtale er avsluttet på. Hvis du ikke kan ta imot innkommende webhooker, spør GET /v1/calls/{call_id} hvert par sekunder; oppføringen inneholder end_reason, duration_seconds og opptaks-URL-en når samtalen avsluttes.

Hvis agenten din er konfigurert til å hente ut strukturerte data etter samtalen, leveres disse dataene separat etter at fullføringen er ferdig.

Send variabler per samtale til en lagret agent

Lagrede agenter kan bruke plassholdere som {{name}} eller {{name|there}} i prompttekst. Når du foretar en utgående samtale med agent_id, sender du variables med verdiene for den samtalen:

{
  "from_number": "+[REDACTED_PHONE]",
  "to_number": "+[REDACTED_PHONE]",
  "agent_id": 12,
  "variables": {
    "name": "Jordan"
  }
}

Bruk strengverdier med plassholdernavnet som nøkkel. Disse variablene gjelder lagrede agenter; denne veiledningens innebygde config-eksempel bruker dem ikke.

Feiltilstander det er verdt å håndtere

FeilLøsning
402 Payment RequiredFyll på saldoen eller aktiver automatisk påfylling
400 med code: destination_not_allowedThunderPhone ringer ikke dette nummeret: ugyldige numre, nødnumre, numre med overtakst, kortnumre eller land underlagt sanksjoner. Fra ThunderPhone-numre kan du bare ringe vanlige amerikanske og canadiske numre (ikke numre med overtakst). reason angir hvilket; se blokkerte destinasjoner
409 med retryable: false for et ThunderPhone-nummerFølg code: be om utgående samtaler på siden Phone Numbers, vent på en pågående gjennomgang, eller bruk et annet kvalifisert nummer
429 med code: platform_outbound_daily_limit_reachedOrganisasjonen har brukt opp dagens utgående samtaler fra ThunderPhone-numre. Vent til resets_at (00:00 UTC), be om en høyere grense på siden Phone Numbers, eller ring fra et nummer på din egen VoIP-tilkobling
429 med code: concurrent_call_limit_reachedOrganisasjonen har så mange samtaler pågående som grensen for samtidige samtaler tillater (20 som standard, inkludert innkommende, utgående, nett- og testsamtaler). Prøv på nytt etter antallet sekunder i Retry-After-headeren eller når en samtale avsluttes; send e-post til support@thunderphone.com for å øke grensen
429 med code: same_number_too_soonDu ringte det samme to_number for mindre enn 10 sekunder siden. Prøv på nytt etter antallet sekunder i Retry-After-headeren
409 med retryable: false for et kundes VoIP-nummerKorriger tilstanden som er angitt av code; ved verifiseringsfeil kjører du POST /v1/phone-numbers/{id}/verify-voip
409 idempotenskonfliktGjenbruk nøkkelen bare med den opprinnelige normaliserte forespørselen, eller send en ny nøkkel
404 from_number is not registered to this organizationBekreft at from_number samsvarer med et aktivt telefonnummer i organisasjonen din. Et nummer som allerede klargjøres, har feilet, frigjøres eller er frigitt, returnerer også dette svaret
500 med bare et detail-feltIngen utgående trunk er konfigurert. Kontakt brukerstøtte; dette er ikke et problem med nummerstatus som du kan korrigere
502 Bad GatewayMidlertidig SIP-/LiveKit-feil; det er trygt å prøve på nytt

Se referansen for utgående samtaler for den komplette stabile listen over kvalifiseringskoder og begge 409-svarformatene. Hvis et aktivt nummer blir ukvalifisert etter at forespørselen er godtatt, men før samtalen foretas, returnerer den endelige kontrollen 409-nyttelasten som ikke kan prøves på nytt.

Kontrollere ventetid

Utgående samtaler som varer lenge fordi mottakeren er treg til å svare (IVR-trær, køer), kan begrenses med max_hold_seconds:

{
  "from_number": "+15551234567",
  "to_number":   "+14155552671",
  "agent_id":    12,
  "max_hold_seconds": 120
}

Agenten legger på hvis det ikke har blitt mottatt menneskelig lyd de siste N sekundene. Standardverdien er 900 sekunder (15 minutter).


Neste steg