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

सफल माने जाने के लिए कॉल के बाद के वेबहुक को 200 स्टेटस कोड लौटाना होगा। बार-बार विफल होने वाले वेबहुक अपने-आप अक्षम हो जाते हैं, अगर लगातार 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 अलाउलिस्टिंग
अतिरिक्त सुरक्षा के लिए, आप ElevenLabs के स्टैटिक इग्रेस IP को अपनी अलाउलिस्ट में जोड़ सकते हैं। IP पतों की पूरी सूची के लिए IP अलाउलिस्टिंग देखें।
HMAC सिग्नेचर वैलिडेशन के साथ IP अलाउलिस्टिंग का इस्तेमाल सुरक्षा की कई परतें देता है।
वेबहुक रिस्पॉन्स संरचना
ElevenLabs तीन अलग-अलग तरह के कॉल के बाद के वेबहुक भेजता है, जिनमें से हर एक की डेटा संरचना अलग है:
ट्रांसक्रिप्शन वेबहुक (post_call_transcription)
इसमें पूरे ट्रांसक्रिप्ट, विश्लेषण नतीजे और मेटाडेटा सहित बातचीत का विस्तृत डेटा शामिल होता है।
टॉप-लेवल फ़ील्ड
डेटा ऑब्जेक्ट संरचना
data ऑब्जेक्ट में ये शामिल हैं:
ऑडियो वेबहुक (post_call_audio)
इसमें base64-एन्कोडेड MP3 के रूप में पूरी बातचीत के ऑडियो के साथ न्यूनतम डेटा शामिल होता है।
टॉप-लेवल फ़ील्ड
डेटा ऑब्जेक्ट संरचना
data ऑब्जेक्ट में सिर्फ़ ये शामिल हैं:
ऑडियो वेबहुक में सिर्फ़ ऊपर सूचीबद्ध तीन फ़ील्ड होते हैं। इनमें ट्रांसक्रिप्ट डेटा, मेटाडेटा, विश्लेषण नतीजे या बातचीत के अन्य विवरण शामिल नहीं होते।
कॉल शुरू करने में विफलता के वेबहुक (call_initiation_failure)
इसमें टेलीफ़ोनी कॉल शुरू करने के प्रयासों की जानकारी शामिल होती है, जिसमें विफलता के कारण और टेलीफ़ोनी-प्रोवाइडर मेटाडेटा शामिल हैं।
कॉल शुरू करने में विफलता वाले वेबहुक इवेंट तब भेजे जाते हैं, जब कनेक्शन त्रुटियों, यूज़र द्वारा कॉल अस्वीकार करने या यूज़र द्वारा कॉल न उठाने की वजह से कॉल शुरू नहीं हो पाती। अगर कॉल वॉइसमेल पर जाती है या किसी ऑटोमेटेड सर्विस द्वारा उठाई जाती है, तो कॉल शुरू करने में विफलता का वेबहुक नहीं भेजा जाता, क्योंकि कॉल सफलतापूर्वक शुरू हो चुकी थी।
टॉप-लेवल फ़ील्ड
डेटा ऑब्जेक्ट संरचना
data ऑब्जेक्ट में ये शामिल हैं:
मेटाडेटा ऑब्जेक्ट संरचना
metadata ऑब्जेक्ट की संरचना इस बात पर निर्भर करती है कि आउटबाउंड कॉल Twilio के ज़रिए की गई थी या SIP ट्रंकिंग के ज़रिए। ऑब्जेक्ट में एक type फ़ील्ड होता है, जो दोनों के बीच अंतर करता है, और एक body फ़ील्ड होता है जिसमें प्रोवाइडर-विशिष्ट विवरण होते हैं।
SIP मेटाडेटा (type: "sip"):
SIP मेटाडेटा के लिए body ऑब्जेक्ट में ये शामिल हैं:
Twilio मेटाडेटा (type: "twilio"):
उदाहरण वेबहुक पेलोड
ट्रांसक्रिप्शन वेबहुक उदाहरण
ऑडियो वेबहुक उदाहरण
कॉल शुरू करने में विफलता के वेबहुक उदाहरण
Twilio मेटाडेटा उदाहरण
SIP मेटाडेटा उदाहरण
ऑडियो वेबहुक डिलीवरी
ऑडियो वेबहुक ट्रांसक्रिप्शन वेबहुक से अलग डिलीवर होते हैं और इनमें बातचीत की पहचान के लिए ज़रूरी फ़ील्ड के साथ सिर्फ़ base64-एन्कोडेड ऑडियो डेटा होता है।
ऑडियो वेबहुक को आपकी वेबहुक सेटिंग्स में “ऑडियो डेटा भेजें” टॉगल से सक्षम या अक्षम किया जा सकता है। इस सेटिंग को वर्कस्पेस स्तर (ElevenAgents सेटिंग्स में) और एजेंट स्तर (अलग-अलग एजेंट वेबहुक ओवरराइड में) दोनों पर कॉन्फ़िगर किया जा सकता है।
स्ट्रीमिंग डिलीवरी
बड़ी ऑडियो फ़ाइलों को कुशलता से संभालने के लिए ऑडियो वेबहुक transfer-encoding: chunked हेडर के साथ स्ट्रीमिंग HTTP अनुरोध के रूप में डिलीवर किए जाते हैं। हर अनुरोध 5 मिनट बाद टाइम आउट हो जाता है।
रीट्राई
वेबहुक पर रीट्राई सक्षम होने पर, विफल ऑडियो डिलीवरी को ट्रांसक्रिप्शन वेबहुक के समान शेड्यूल पर फिर से आज़माया जाता है। रीट्राई पूरा ऑडियो पेलोड फिर से भेजती है, इसलिए conversation_id के आधार पर डुप्लिकेट हटाएं। शेड्यूल, रीट्राई योग्य त्रुटियों और ऑडियो साइज़ सीमाओं के लिए वेबहुक रीट्राई देखें।
ऑडियो वेबहुक प्रोसेस करना
ऑडियो वेबहुक चंक्ड ट्रांसफ़र एन्कोडिंग से डिलीवर होते हैं, इसलिए आपको स्ट्रीमिंग डेटा को सही तरीके से संभालना होगा:
ऑडियो वेबहुक बड़ी फ़ाइलें हो सकती हैं, इसलिए सुनिश्चित करें कि आपका वेबहुक एंडपॉइंट स्ट्रीमिंग अनुरोधों को संभाल सकता है और उसके पास पर्याप्त मेमोरी/स्टोरेज क्षमता है। ऑडियो MP3 फ़ॉर्मैट में डिलीवर होता है।
इस्तेमाल के मामले
ऑटोमेटेड कॉल फ़ॉलो-अप
कॉल के बाद के वेबहुक आपको ऐसी ऑटोमेटेड वर्कफ़्लो बनाने देते हैं, जो कॉल खत्म होते ही ट्रिगर होते हैं। यहां कुछ व्यावहारिक उपयोग दिए गए हैं:
CRM इंटीग्रेशन
कॉल पूरी होते ही अपने कस्टमर रिलेशनशिप मैनेजमेंट सिस्टम को बातचीत के डेटा से अपडेट करें:
स्टेटफुल बातचीत
स्टेट स्टोर और रिट्रीव करके कई इंटरैक्शन में बातचीत का कॉन्टेक्स्ट बनाए रखें:
- कॉल शुरू होने पर, अपना यूज़र ID एक डायनामिक वेरिएबल के रूप में पास करें।
- कॉल खत्म होने पर,
dynamic_variablesसे निकाली गई यूज़र ID के आधार पर अपनी वेबहुक एंडपॉइंट को अपने डेटाबेस में बातचीत का डेटा स्टोर करने के लिए सेट अप करें। - यूज़र के फिर से कॉल करने पर, आप इस कॉन्टेक्स्ट को रिट्रीव करके उसे नई बातचीत में {{previous_topics}} डायनामिक वेरिएबल में पास कर सकते हैं।
- इससे एक सहज अनुभव बनता है, जिसमें एजेंट पिछले इंटरैक्शन को “याद” रखता है