कॉल के बाद वेबहुक
कॉल के बाद वेबहुक
वेबहुक के ज़रिए कॉल खत्म होने और विश्लेषण पूरा होने पर सूचना पाएं।
खास जानकारी
कॉल के बाद के वेबहुक आपको विश्लेषण पूरा होने के बाद कॉल की विस्तृत जानकारी पाने देते हैं। इन्हें चालू करने पर ElevenLabs, कॉल के पूरे डेटा के साथ आपके तय किए गए endpoint पर POST अनुरोध भेजेगा।
ElevenLabs तीन तरह के कॉल के बाद के वेबहुक सपोर्ट करता है:
- ट्रांसक्रिप्शन वेबहुक (
post_call_transcription): इसमें ट्रांसक्रिप्ट, विश्लेषण के नतीजे और मेटाडेटा समेत बातचीत का पूरा डेटा होता है - ऑडियो वेबहुक (
post_call_audio): इसमें पूरी बातचीत का base64-एन्कोडेड ऑडियो और कम से कम डेटा होता है - कॉल शुरू करने में विफलता के वेबहुक (
call_initiation_failure): इसमें विफलता के कारणों और मेटाडेटा समेत, कॉल शुरू करने के असफल प्रयासों की जानकारी होती है
कॉल के बाद के वेबहुक चालू करना
कॉल के बाद के वेबहुक को ElevenAgents के सेटिंग्स पेज से आपके workspace के सभी एजेंट्स के लिए चालू किया जा सकता है।

सफल माने जाने के लिए, कॉल के बाद के वेबहुक को 200 status code लौटाना होगा। लगातार 10 या उससे ज़्यादा बार विफल होने पर और आखिरी सफल डिलीवरी 7 दिन से ज़्यादा पहले हुई हो या कभी सफल डिलीवरी न हुई हो, तो वेबहुक अपने-आप बंद हो जाते हैं।
विफल होने पर कॉल के बाद के वेबहुक का अपने-आप फिर से प्रयास किया जा सकता है। वेबहुक रिट्राइज़ देखें।
ऑथेंटिकेशन
लिस्नर के लिए सभी इनकमिंग वेबहुक को वैलिडेट करना ज़रूरी है। वेबहुक फ़िलहाल HMAC सिग्नेचर के ज़रिए ऑथेंटिकेशन सपोर्ट करते हैं। HMAC ऑथेंटिकेशन सेट अप करने के लिए:
- वेबहुक बनाते समय जनरेट हुए शेयर किए गए सीक्रेट को सुरक्षित रूप से स्टोर करें
- SDK का इस्तेमाल करके अपने एंडपॉइंट में ElevenLabs-Signature हेडर को वेरिफ़ाई करें
JavaScript SDK में constructEvent और Python SDK में rawBody, sig_header, और secret के साथ construct_event उपलब्ध है (Python में इनके नाम payload / signature नहीं हैं)। दोनों सिग्नेचर वेरिफ़ाई करते हैं, टाइमस्टैम्प वैलिडेट करते हैं और JSON पेलोड पार्स करते हैं।
Python
JavaScript
FastAPI का इस्तेमाल करने वाले वेबहुक हैंडलर का उदाहरण:
IP allowlisting
अतिरिक्त सुरक्षा के लिए, आप ElevenLabs के स्टैटिक egress IPs को अपनी allowlist में जोड़ सकते हैं। IP पतों की पूरी सूची के लिए IP allowlisting देखें।
HMAC signature validation के साथ IP allowlisting इस्तेमाल करने से सुरक्षा की कई परतें मिलती हैं।
वेबहुक रिस्पॉन्स संरचना
ElevenLabs तीन अलग-अलग तरह के कॉल के बाद के वेबहुक भेजता है, जिनमें से हर एक की डेटा संरचना अलग होती है:
ट्रांसक्रिप्शन वेबहुक (post_call_transcription)
इसमें पूरे ट्रांसक्रिप्ट, विश्लेषण के नतीजों और मेटाडेटा समेत बातचीत का विस्तृत डेटा होता है।
टॉप-लेवल फ़ील्ड्स
डेटा ऑब्जेक्ट संरचना
data ऑब्जेक्ट में ये शामिल हैं:
ऑडियो वेबहुक (post_call_audio)
इसमें base64-एन्कोडेड MP3 के रूप में पूरी बातचीत का ऑडियो और कम से कम डेटा होता है।
टॉप-लेवल फ़ील्ड्स
डेटा ऑब्जेक्ट संरचना
data ऑब्जेक्ट में सिर्फ़ ये शामिल हैं:
ऑडियो वेबहुक में सिर्फ़ ऊपर सूचीबद्ध तीन फ़ील्ड होते हैं। इनमें ट्रांसक्रिप्ट डेटा, मेटाडेटा, विश्लेषण नतीजे या बातचीत की कोई अन्य जानकारी शामिल नहीं होती।
कॉल शुरू करने में विफलता के वेबहुक (call_initiation_failure)
इसमें टेलीफोनी कॉल शुरू करने के प्रयासों की जानकारी होती है, जिसमें विफलता के कारण और टेलीफोनी-प्रोवाइडर मेटाडेटा शामिल होता है।
कनेक्शन एरर, यूज़र के कॉल अस्वीकार करने या यूज़र के कॉल न उठाने के कारण कॉल शुरू न हो पाने पर, कॉल शुरू करने में विफलता के वेबहुक इवेंट भेजे जाते हैं। अगर कॉल voicemail पर जाती है या कोई automated service कॉल उठाती है, तो कॉल शुरू करने में विफलता का वेबहुक नहीं भेजा जाता, क्योंकि कॉल सफलतापूर्वक शुरू हो चुकी थी।
टॉप-लेवल फ़ील्ड्स
डेटा ऑब्जेक्ट संरचना
data ऑब्जेक्ट में ये शामिल हैं:
मेटाडेटा ऑब्जेक्ट संरचना
metadata ऑब्जेक्ट की संरचना इस बात पर निर्भर करती है कि outbound कॉल Twilio के ज़रिए की गई थी या SIP trunking के ज़रिए। ऑब्जेक्ट में दोनों के बीच अंतर बताने वाला type फ़ील्ड और प्रोवाइडर की खास जानकारी वाला body फ़ील्ड होता है।
SIP मेटाडेटा (type: "sip"):
SIP मेटाडेटा के लिए body ऑब्जेक्ट में ये शामिल हैं:
Twilio मेटाडेटा (type: "twilio"):
वेबहुक पेलोड के उदाहरण
ट्रांसक्रिप्शन वेबहुक का उदाहरण
ऑडियो वेबहुक का उदाहरण
कॉल शुरू करने में विफलता के वेबहुक के उदाहरण
Twilio मेटाडेटा का उदाहरण
SIP मेटाडेटा का उदाहरण
ऑडियो वेबहुक डिलीवरी
ऑडियो वेबहुक, ट्रांसक्रिप्शन वेबहुक से अलग डिलीवर किए जाते हैं और इनमें बातचीत की पहचान के लिए ज़रूरी फ़ील्ड के साथ base64-एन्कोडेड ऑडियो डेटा ही होता है।
ऑडियो वेबहुक को अपनी वेबहुक सेटिंग्स में “Send audio data” टॉगल से सक्षम या अक्षम किया जा सकता है। यह सेटिंग वर्कस्पेस स्तर पर (ElevenAgents सेटिंग्स में) और एजेंट स्तर पर (अलग-अलग एजेंट वेबहुक ओवरराइड में) कॉन्फ़िगर की जा सकती है।
स्ट्रीमिंग डिलीवरी
बड़ी ऑडियो फ़ाइलों को कुशलता से संभालने के लिए ऑडियो वेबहुक transfer-encoding: chunked हेडर के साथ स्ट्रीमिंग HTTP अनुरोधों के रूप में डिलीवर किए जाते हैं।
ऑडियो वेबहुक प्रोसेस करना
चूंकि ऑडियो वेबहुक chunked transfer encoding के ज़रिए डिलीवर किए जाते हैं, इसलिए आपको स्ट्रीमिंग डेटा को सही तरीके से संभालना होगा:
ऑडियो वेबहुक बड़ी फ़ाइलें हो सकती हैं, इसलिए सुनिश्चित करें कि आपका वेबहुक एंडपॉइंट स्ट्रीमिंग अनुरोधों को संभाल सकता है और उसके पास पर्याप्त मेमोरी/स्टोरेज क्षमता है। ऑडियो MP3 फ़ॉर्मैट में डिलीवर किया जाता है।
उपयोग के मामले
ऑटोमेटेड कॉल फ़ॉलो-अप
पोस्ट-कॉल वेबहुक आपको ऐसे ऑटोमेटेड वर्कफ़्लो बनाने देते हैं जो कॉल खत्म होते ही ट्रिगर हो जाते हैं। इनके कुछ व्यावहारिक उपयोग ये हैं:
CRM इंटीग्रेशन
कॉल पूरी होते ही बातचीत के डेटा से अपने कस्टमर रिलेशनशिप मैनेजमेंट सिस्टम को अपडेट करें:
स्टेटफुल बातचीत
स्टेट को स्टोर और रिट्रीव करके, कई इंटरैक्शन में बातचीत का संदर्भ बनाए रखें:
- कॉल शुरू होने पर, अपना यूज़र आईडी dynamic variable के रूप में पास करें।
- कॉल खत्म होने पर, dynamic_variables से निकाले गए यूज़र आईडी के आधार पर बातचीत का डेटा अपने डेटाबेस में स्टोर करने के लिए अपना वेबहुक एंडपॉइंट सेट अप करें।
- जब यूज़र दोबारा कॉल करता है, तो आप इस संदर्भ को रिट्रीव करके नई बातचीत में {{previous_topics}} dynamic variable में पास कर सकते हैं।
- इससे एक सहज अनुभव बनता है, जिसमें एजेंट पिछले इंटरैक्शन को “याद” रखता है