Open in
Provádění odchozích hovorů (API)
Spusťte ze svého vlastního kódu odchozí hovor řízený umělou inteligencí – pro průzkumy, následné kontaktování nebo potvrzovací postupy.
Odchozí volání vám umožňuje předat ThunderPhone cílové číslo a konfiguraci agenta a nechat AI uskutečnit hovor vaším jménem. Typické případy použití:
- Potvrzení schůzek
- Zpětná volání v rámci průzkumů
- Následná volání na druhý pokus po zmeškaném hovoru
- Oznámení ve stylu dispečinku
Předpoklady
- Vyberte číslo povolené pro odchozí volání
Použijte číslo, které vlastníte prostřednictvím připojení VoIP, nebo požádejte o povolení používat svá čísla ThunderPhone pro odchozí volání na stránce Telefonní čísla. Čísla ThunderPhone jsou zpočátku pouze pro příchozí volání. ThunderPhone každou žádost posuzuje ručně; po schválení mohou tato čísla uskutečňovat hovory až do schváleného denního limitu (který se resetuje ve 00:00 UTC) a spouštět kampaně. Můžete také požádat o vyšší limit. Zákaznická čísla VoIP nemají denní limit, proto je doporučujeme pro odchozí volání. Viz Použití vlastních čísel.
- Vytvořte agenta
Prompt pro odchozí volání obvykle začíná tím, že se agent představí a uvede svůj účel — „Dobrý den, volá Acme, abychom potvrdili vaši schůzku na zítřek v 15:00…“ Nastavte
outbound_speak_ordernaagent_first(výchozí hodnota). - Udržujte kladný zůstatek
Odchozí hovory vrátí
402 Payment Required, pokud je zůstatek ≤$0.00. Doplňte zůstatek nebo povolte automatické dobíjení v části Organizace → Nastavení fakturace na ovládacím panelu. Váš klíčsk_live_může zkontrolovat zůstatek pomocíGET /v1/billing, ale nemůže doplnit zůstatek ani změnit automatické dobíjení.
Uskutečněte hovor s uloženým agentem
Nejjednodušší způsob — odkažte na agenta podle 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
}'Odpověď:
{ "call_id": 987654321, "status": "initiated" }Uskutečněte hovor s vloženou konfigurací
Pokud chcete jednorázový prompt, který nestojí za uložení jako agent,
předejte místo toho config. Struktura odpovídá schématu odpovědi webhooku
call.incoming:
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"
}
}'Sledujte hovor
Souběžně se přihlaste k odběru
webhooku telephony.complete —
nejrychlejšího způsobu, jak zjistit, že hovor skončil. Pokud nemůžete přijímat příchozí
webhooky, dotazujte se každých několik sekund na GET /v1/calls/{call_id}; záznam
po skončení hovoru obsahuje end_reason, duration_seconds a adresu URL nahrávky.
Pokud je váš agent nastavený na extrakci strukturovaných dat po hovoru, tato data jsou doručena samostatně po dokončení finalizace.
Předání proměnných pro jednotlivý hovor uloženému agentovi
Uložení agenti mohou v textu promptu používat zástupné symboly jako {{name}} nebo {{name|there}}.
Při uskutečnění odchozího hovoru s agent_id předejte
variables s hodnotami pro daný hovor:
{
"from_number": "+[REDACTED_PHONE]",
"to_number": "+[REDACTED_PHONE]",
"agent_id": 12,
"variables": {
"name": "Jordan"
}
}Použijte řetězcové hodnoty s klíči odpovídajícími názvům zástupných symbolů. Tyto proměnné platí pro
uložené agenty; příklad vloženého config v této příručce je nepoužívá.
Stavy selhání, které je vhodné ošetřit
| Chyba | Řešení |
|---|---|
402 Payment Required | Doplňte zůstatek nebo povolte automatické dobíjení |
400 s code: destination_not_allowed | ThunderPhone na toto číslo nevolá: neplatná čísla, tísňová čísla, čísla se zvýšenou sazbou, zkrácená čísla nebo země pod sankcemi. Z čísel ThunderPhone lze volat pouze na běžná čísla v USA a Kanadě (nikoli na čísla se zvýšenou sazbou). reason uvádí které; viz blokované destinace |
409 s retryable: false pro číslo ThunderPhone | Postupujte podle code: požádejte o odchozí volání na stránce Telefonní čísla, vyčkejte na probíhající kontrolu nebo použijte jiné způsobilé číslo |
429 s code: platform_outbound_daily_limit_reached | Organizace již využila dnešní odchozí volání z čísel ThunderPhone. Počkejte na resets_at (00:00 UTC), požádejte o vyšší limit na stránce Telefonní čísla nebo volejte z čísla ve vlastním připojení VoIP |
429 s code: concurrent_call_limit_reached | Organizace má právě tolik probíhajících hovorů, kolik činí její limit souběžných hovorů (ve výchozím nastavení 20; započítávají se příchozí, odchozí, webové a testovací hovory). Opakujte pokus po uplynutí počtu sekund z hlavičky Retry-After nebo po ukončení hovoru; pro zvýšení limitu napište na support@thunderphone.com |
429 s code: same_number_too_soon | Na stejné to_number jste volali před méně než 10 sekundami. Opakujte pokus po uplynutí počtu sekund z hlavičky Retry-After |
409 s retryable: false pro zákaznické číslo VoIP | Opravte stav uvedený v code; při selhání ověření spusťte POST /v1/phone-numbers/{id}/verify-voip |
Konflikt idempotence 409 | Klíč znovu použijte pouze s původním normalizovaným požadavkem, nebo odešlete nový klíč |
404 from_number is not registered to this organization | Ověřte, že from_number odpovídá aktivnímu telefonnímu číslu ve vaší organizaci. Tuto odpověď vrátí také číslo, které se již zřizuje, selhalo, uvolňuje se nebo bylo uvolněno |
500 pouze s polem detail | Není nakonfigurován žádný odchozí trunk. Kontaktujte podporu; nejde o problém se stavem čísla, který můžete opravit |
502 Bad Gateway | Přechodné selhání SIP / LiveKit; pokus lze bezpečně opakovat |
Úplný stabilní seznam kódů způsobilosti a oba tvary odpovědi 409 najdete v
referenci odchozích hovorů.
Pokud se aktivní číslo stane nezpůsobilým po přijetí požadavku, ale před
uskutečněním hovoru, závěrečná kontrola vrátí datovou část 409, kterou nelze opakovat.
Řízení doby čekání
Odchozí hovory, které trvají dlouho, protože volaný reaguje pomalu
(stromy IVR, fronty), lze omezit pomocí max_hold_seconds:
{
"from_number": "+15551234567",
"to_number": "+14155552671",
"agent_id": 12,
"max_hold_seconds": 120
}Agent hovor ukončí, pokud během posledních N sekund nepřijal žádný lidský zvukový projev. Výchozí hodnota je 900 sekund (15 minut).
Další kroky
Každé pole požadavku a každý chybový kód.
Odesílejte dokončené odchozí hovory do svého systému.
Automatické dobíjení, aby odchozí hovory nikdy neselhaly kvůli zůstatku.
Před nasazením proveďte zkušební běh odchozího agenta.