Open in
Foretag udgående opkald (API)
Udløs et AI-drevet udgående opkald fra din egen kode — spørgeskema-, opfølgnings- eller bekræftelsesforløb.
Udgående opkald lader dig give et destinationsnummer og en agentkonfiguration til ThunderPhone og få AI'en til at foretage opkaldet på dine vegne. Typiske anvendelser:
- Bekræftelser af aftaler
- Opfølgende opkald til spørgeundersøgelser
- Opfølgninger ved "andet forsøg" efter et ubesvaret opkald
- Notifikationer i dispatch-stil
Forudsætninger
- Vælg et nummer, der er aktiveret til udgående opkald
Brug et nummer, du ejer, via en VoIP-forbindelse, eller anmod om tilladelse til at bruge dine ThunderPhone-numre til udgående opkald fra siden Phone Numbers. ThunderPhone-numre starter kun med indgående opkald. ThunderPhone gennemgår hver anmodning manuelt; når den er godkendt, kan disse numre foretage opkald op til den godkendte daglige grænse (nulstilles kl. 00:00 UTC) og køre kampagner, og du kan bede om en højere grænse. Kunders VoIP-numre har ingen daglig grænse, så vi anbefaler dem til udgående opkald. Se Brug dine egne numre.
- Opret en agent
En prompt til udgående opkald starter typisk med, at agenten identificerer sig selv og sit formål — "Hej, det er Acme, der ringer for at bekræfte din aftale i morgen kl. 15…" Angiv
outbound_speak_ordertilagent_first(standardindstillingen). - Behold en positiv saldo
Udgående opkald returnerer
402 Payment Required, hvis saldoen er ≤$0.00. Indsæt penge eller aktivér automatisk genopfyldning under Organisation → Faktureringsindstillinger i dashboardet. Dinsk_live_nøgle kan kontrollere saldoen medGET /v1/billing, men kan ikke indsætte penge eller ændre automatisk genopfyldning.
Foretag et opkald med en gemt agent
Den enkleste metode — referer til en agent via 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" }Foretag et opkald med inline-konfiguration
Hvis du vil bruge en engangsprompt, som ikke er værd at gemme som en agent,
skal du sende config i stedet. Strukturen matcher svarskemaet for
call.incoming webhook:
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 opkaldet
Abonner parallelt på
telephony.complete-webhooken —
den hurtigste måde at vide, at et opkald er afsluttet. Hvis du ikke kan modtage
indgående webhooks, skal du forespørge GET /v1/calls/{call_id} hvert par sekunder;
posten indeholder end_reason, duration_seconds og optagelses-URL'en,
når opkaldet afsluttes.
Hvis din agent er konfigureret til at udtrække strukturerede data efter opkaldet, leveres disse data separat, når færdiggørelsen er fuldført.
Send variabler pr. opkald til en gemt agent
Gemte agenter kan bruge pladsholdere som {{name}} eller {{name|there}} i
prompttekst. Når du foretager et udgående opkald med agent_id, skal du sende
variables med værdierne for det pågældende opkald:
{
"from_number": "+[REDACTED_PHONE]",
"to_number": "+[REDACTED_PHONE]",
"agent_id": 12,
"variables": {
"name": "Jordan"
}
}Brug strengværdier med pladsholdernavnet som nøgle. Disse variabler gælder for
gemte agenter; denne vejlednings indbyggede config-eksempel bruger dem ikke.
Fejltilstande, du bør håndtere
| Fejl | Løsning |
|---|---|
402 Payment Required | Indsæt saldo, eller aktivér automatisk genopfyldning |
400 med code: destination_not_allowed | ThunderPhone ringer ikke til det nummer: ugyldige numre, alarmnumre, overtakserede numre, kortnumre eller sanktionerede lande. Fra ThunderPhone-numre er kun almindelige amerikanske og canadiske numre tilladt (ingen overtakserede numre). reason angiver hvilket; se blokerede destinationer |
409 med retryable: false for et ThunderPhone-nummer | Følg code: anmod om udgående opkald på siden Phone Numbers, vent på en afventende gennemgang, eller brug et andet kvalificeret nummer |
429 med code: platform_outbound_daily_limit_reached | Organisationen har brugt dagens udgående opkald fra ThunderPhone-numre. Vent på resets_at (00:00 UTC), anmod om en højere grænse på siden Phone Numbers, eller ring fra et nummer på din egen VoIP-forbindelse |
429 med code: concurrent_call_limit_reached | Organisationen har så mange igangværende opkald som dens grænse for samtidige opkald (20 som standard, inklusive indgående, udgående, web- og testopkald). Prøv igen efter antallet af sekunder i Retry-After-headeren eller når et opkald afsluttes; send en e-mail til support@thunderphone.com for at hæve grænsen |
429 med code: same_number_too_soon | Du ringede til det samme to_number for mindre end 10 sekunder siden. Prøv igen efter antallet af sekunder i Retry-After-headeren |
409 med retryable: false for et kunde-VoIP-nummer | Ret den tilstand, der angives af code; ved verificeringsfejl skal du køre POST /v1/phone-numbers/{id}/verify-voip |
409 idempotenskonflikt | Genbrug kun nøglen med den oprindelige normaliserede anmodning, eller send en ny nøgle |
404 from_number is not registered to this organization | Bekræft, at from_number matcher et aktivt telefonnummer i din organisation. Et nummer, der allerede er under klargøring, har fejlet, frigives eller er frigivet, returnerer også dette svar |
500 med kun et detail-felt | Ingen udgående trunk er konfigureret. Kontakt support; dette er ikke et problem med nummerets tilstand, som du kan rette |
502 Bad Gateway | Midlertidig SIP-/LiveKit-fejl; det er sikkert at prøve igen |
Se referencen for udgående opkald
for den komplette liste over stabile kvalifikationskoder og begge 409-svarformater.
Hvis et aktivt nummer bliver ukvalificeret, efter anmodningen er accepteret, men før
opkaldet foretages, returnerer den endelige kontrol 409-payloaden, der ikke kan prøves igen.
Styring af ventetid
Udgående opkald, der varer længe, fordi modtageren er langsom til at svare
(IVR-træer, køer), kan begrænses med max_hold_seconds:
{
"from_number": "+15551234567",
"to_number": "+14155552671",
"agent_id": 12,
"max_hold_seconds": 120
}Agenten lægger på, hvis der ikke er modtaget menneskelig lyd i de seneste N sekunder. Standardværdien er 900 sekunder (15 minutter).