Open in
आउटबाउंड कॉल करें (API)
अपने कोड से AI-संचालित आउटबाउंड कॉल ट्रिगर करें — सर्वे, फॉलो-अप या कन्फर्मेशन फ्लो के लिए।
आउटबाउंड कॉलिंग से आप ThunderPhone को एक डेस्टिनेशन नंबर और एजेंट कॉन्फ़िगरेशन दे सकते हैं, ताकि AI आपकी ओर से कॉल कर सके। सामान्य उपयोग के मामले:
- अपॉइंटमेंट कन्फर्मेशन
- सर्वे कॉलबैक
- मिस्ड कॉल के बाद "दूसरी कोशिश" वाले फॉलो-अप
- डिस्पैच-शैली के नोटिफिकेशन
आवश्यकताएँ
- आउटबाउंड-सक्षम नंबर चुनें
अपने स्वामित्व वाले नंबर का उपयोग VoIP कनेक्शन के माध्यम से करें, या Phone Numbers पेज से अपने ThunderPhone नंबरों को आउटबाउंड कॉल के लिए उपयोग करने की अनुमति का अनुरोध करें। ThunderPhone नंबर शुरुआत में केवल इनबाउंड होते हैं। ThunderPhone हर अनुरोध की मैन्युअल समीक्षा करता है; स्वीकृति मिलने के बाद, वे नंबर स्वीकृत दैनिक सीमा तक कॉल कर सकते हैं (जो 00:00 UTC पर रीसेट होती है) और कैंपेन चला सकते हैं, और आप अधिक सीमा का अनुरोध कर सकते हैं। ग्राहक VoIP नंबरों की कोई दैनिक सीमा नहीं होती, इसलिए हम आउटबाउंड कॉलिंग के लिए उनकी अनुशंसा करते हैं। देखें अपने नंबर लाएँ।
- एजेंट बनाएं
आउटबाउंड-उन्मुख प्रॉम्प्ट आमतौर पर एजेंट के अपना और अपने उद्देश्य का परिचय देने से शुरू होता है — "नमस्ते, Acme बोल रहा है, कल दोपहर 3 बजे के लिए आपकी अपॉइंटमेंट की पुष्टि करने के लिए कॉल कर रहा हूँ…"
outbound_speak_orderकोagent_first(डिफ़ॉल्ट) पर सेट करें। - पॉज़िटिव बैलेंस बनाए रखें
बैलेंस ≤
$0.00होने पर आउटबाउंड कॉल402 Payment Requiredलौटाती हैं। डैशबोर्ड में संगठन → बिलिंग सेटिंग्स के अंतर्गत टॉप अप करें या ऑटो-रीलोड सक्षम करें। आपकीsk_live_keyGET /v1/billingसे बैलेंस जाँच सकती है, लेकिन टॉप अप नहीं कर सकती या ऑटो-रीलोड बदल नहीं सकती।
सेव किए गए एजेंट के साथ कॉल करें
सबसे सरल तरीका — किसी एजेंट को 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
}'रिस्पॉन्स:
{ "call_id": 987654321, "status": "initiated" }इनलाइन कॉन्फ़िग के साथ कॉल करें
अगर आपको एक बार का ऐसा प्रॉम्प्ट चाहिए जिसे एजेंट के रूप में सेव करना उचित नहीं है,
तो इसके बजाय config पास करें। इसका स्वरूप
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"
}
}'कॉल को ट्रैक करें
समानांतर रूप से,
telephony.complete वेबहुक को सब्सक्राइब करें —
कॉल समाप्त होने का पता लगाने का सबसे तेज़ तरीका। यदि आप इनबाउंड
वेबहुक स्वीकार नहीं कर सकते, तो हर कुछ सेकंड में GET /v1/calls/{call_id} को पोल करें; कॉल समाप्त होने पर
रिकॉर्ड में end_reason, duration_seconds, और रिकॉर्डिंग
URL शामिल होता है।
यदि आपका एजेंट कॉल के बाद स्ट्रक्चर्ड डेटा एक्सट्रैक्ट करने के लिए सेट अप है, तो फाइनलाइज़ेशन पूरा होने के बाद वह डेटा अलग से डिलीवर किया जाता है।
सेव किए गए एजेंट को प्रति-कॉल वेरिएबल पास करें
सेव किए गए एजेंट प्रॉम्प्ट टेक्स्ट में {{name}} या {{name|there}} जैसे प्लेसहोल्डर का उपयोग कर सकते हैं।
जब आप agent_id के साथ आउटबाउंड कॉल करते हैं, तो उस कॉल के मानों के साथ
variables पास करें:
{
"from_number": "+[REDACTED_PHONE]",
"to_number": "+[REDACTED_PHONE]",
"agent_id": 12,
"variables": {
"name": "Jordan"
}
}प्लेसहोल्डर नाम से की गई स्ट्रिंग वैल्यू का उपयोग करें। ये वेरिएबल
सेव किए गए एजेंट पर लागू होते हैं; इस गाइड का इनलाइन config उदाहरण इनका उपयोग नहीं करता।
हैंडल करने योग्य फेल्योर मोड
| त्रुटि | समाधान |
|---|---|
402 Payment Required | बैलेंस टॉप अप करें या ऑटो-रीलोड सक्षम करें |
400 के साथ code: destination_not_allowed | ThunderPhone उस नंबर पर कॉल नहीं करता: अमान्य नंबर, आपातकालीन नंबर, प्रीमियम-रेट नंबर, शॉर्ट कोड या प्रतिबंधित देशों के नंबर। ThunderPhone नंबरों से केवल सामान्य US और कनाडाई नंबरों पर कॉल की जा सकती है (प्रीमियम-रेट नहीं)। reason बताता है कि कौन-सा; ब्लॉक किए गए डेस्टिनेशन देखें |
ThunderPhone नंबर के लिए retryable: false के साथ 409 | code का पालन करें: Phone Numbers पेज पर आउटबाउंड कॉलिंग का अनुरोध करें, लंबित रिव्यू की प्रतीक्षा करें या कोई अन्य योग्य नंबर इस्तेमाल करें |
429 के साथ code: platform_outbound_daily_limit_reached | संगठन ने ThunderPhone नंबरों से आज की आउटबाउंड कॉल सीमा इस्तेमाल कर ली है। resets_at (00:00 UTC) तक प्रतीक्षा करें, Phone Numbers पेज पर अधिक सीमा का अनुरोध करें या अपने VoIP कनेक्शन के किसी नंबर से कॉल करें |
429 के साथ code: concurrent_call_limit_reached | संगठन में उतनी ही कॉल प्रगति पर हैं जितनी उसकी कन्करेंट-कॉल सीमा है (डिफ़ॉल्ट रूप से 20, जिसमें इनबाउंड, आउटबाउंड, वेब और टेस्ट कॉल शामिल हैं)। Retry-After हेडर के सेकंड बीतने के बाद या कोई कॉल समाप्त होने पर फिर प्रयास करें; सीमा बढ़ाने के लिए support@thunderphone.com पर ईमेल करें |
429 के साथ code: same_number_too_soon | आपने उसी to_number पर 10 सेकंड से कम समय पहले कॉल किया था। Retry-After हेडर के सेकंड बीतने के बाद फिर प्रयास करें |
ग्राहक के VoIP नंबर के लिए retryable: false के साथ 409 | code द्वारा बताई गई स्थिति ठीक करें; वेरिफिकेशन विफल होने पर POST /v1/phone-numbers/{id}/verify-voip चलाएँ |
409 idempotency कॉन्फ्लिक्ट | कुंजी का दोबारा उपयोग केवल मूल नॉर्मलाइज़्ड रिक्वेस्ट के साथ करें या नई कुंजी भेजें |
404 from_number is not registered to this organization | पुष्टि करें कि from_number आपके संगठन के सक्रिय फ़ोन नंबर से मेल खाता है। जो नंबर पहले से प्रोविज़निंग में है, विफल है, रिलीज़ हो रहा है या रिलीज़ हो चुका है, वह भी यही रिस्पॉन्स लौटाता है |
केवल detail फ़ील्ड के साथ 500 | कोई आउटबाउंड ट्रंक कॉन्फ़िगर नहीं है। सहायता टीम से संपर्क करें; यह नंबर-स्थिति की ऐसी समस्या नहीं है जिसे आप ठीक कर सकते हैं |
502 Bad Gateway | अस्थायी SIP / LiveKit विफलता; फिर प्रयास करना सुरक्षित है |
स्थिर एलिजिबिलिटी-कोड की पूरी सूची और दोनों 409 रिस्पॉन्स शेप के लिए
आउटबाउंड कॉल्स रेफरेंस देखें।
यदि रिक्वेस्ट स्वीकार होने के बाद लेकिन कॉल किए जाने से पहले कोई सक्रिय नंबर अयोग्य हो जाता है,
तो अंतिम जाँच गैर-रिट्राएबल 409 पेलोड लौटाती है।
होल्ड समय नियंत्रित करना
रिसीवर के धीमे जवाब देने के कारण लंबे चलने वाली आउटबाउंड कॉल
(IVR ट्री, क्यू) को max_hold_seconds के साथ सीमित किया जा सकता है:
{
"from_number": "+15551234567",
"to_number": "+14155552671",
"agent_id": 12,
"max_hold_seconds": 120
}यदि पिछले N सेकंड में कोई मानव ऑडियो प्राप्त नहीं हुआ है, तो एजेंट कॉल समाप्त कर देता है। डिफ़ॉल्ट 900 सेकंड (15 मिनट) है।