ChatMaxima Docs
Studio

Webhook Response Block - Webhook कॉलर को कस्टम HTTP प्रतिक्रियाएं भेजें

उस सिस्टम को कस्टम JSON, XML, या सादा टेक्स्ट प्रतिक्रियाएं वापस भेजें जिसने आपके ChatMaxima वेबहुक को ट्रिगर किया। स्थिति कोड, सामग्री प्रकार, और बॉडी कॉन्फ़िगर करें।

अवलोकन

Webhook Response Block आपको उस सिस्टम को एक कस्टम HTTP प्रतिक्रिया वापस भेजने देता है जिसने आपके Webhook Block को कॉल किया। इस ब्लॉक के बिना, ChatMaxima एक सामान्य 200 OK और {"status":"success"} की एक बॉडी के साथ जवाब देता है। यह अधिकांश कॉलबैक के लिए ठीक है, लेकिन कुछ एकीकरण उन्हें डिलीवरी सफल मानने से पहले एक विशिष्ट आकार, स्थिति कोड, या सामग्री प्रकार की अपेक्षा करते हैं।

Webhook Response Block का उपयोग तब करें जब कॉलर जवाब के बारे में सख्त हो: भुगतान गेटवे जो एक विशेष JSON फ़ील्ड देखने तक पुनः प्रयास करते हैं, लीगेसी SOAP सिस्टम जो XML की अपेक्षा करते हैं, iPaaS टूल जो प्रतिक्रिया को बाद के चरणों में पार्स करते हैं, या फ़ॉर्म बिल्डर जो उपयोगकर्ता को जवाब प्रदर्शित करते हैं।

Webhook Block बनाम Webhook Response Block

पहलूWebhook BlockWebhook Response Block
दिशाइनबाउंड HTTP कॉल प्राप्त करता हैकॉलर को HTTP प्रतिक्रिया वापस भेजता है
स्थानपहला ब्लॉक या mid-flowएक Webhook Block के डाउनस्ट्रीम कहीं भी
आवश्यकहां (बाहरी कॉल स्वीकार करने के लिए)वैकल्पिक (छोड़े जाने पर एक डिफ़ॉल्ट 200 OK भेजा जाता है)
उद्देश्यफ़्लो ट्रिगर या फिर से शुरू करेंकॉलर को HTTP जवाब आकार दें

इसे कहां खोजें

  1. Studio में अपना चैटबॉट खोलें
  2. बाएं साइडबार से Webhook Response ब्लॉक को कैनवास पर ड्रैग करें
  3. इसे उस Webhook ब्लॉक के डाउनस्ट्रीम कनेक्ट करें जिसने अनुरोध प्राप्त किया
  4. इसे कॉन्फ़िगर करने के लिए ब्लॉक पर डबल-क्लिक करें

Webhook Response ब्लॉक को तत्काल अगला ब्लॉक होने की आवश्यकता नहीं है। आप Webhook ब्लॉक और Webhook Response ब्लॉक के बीच Condition, API, Set Variable, और Message ब्लॉक रख सकते हैं। जब फ़्लो निष्पादन के दौरान प्रतिक्रिया ब्लॉक पहुंचा जाता है, तो इसका कॉन्फ़िगरेशन मूल कॉलर को HTTP जवाब बन जाता है।

कॉन्फ़िगरेशन

चरण 1: HTTP स्थिति कोड सेट करें

स्थिति कोडइसका उपयोग कब करें
200डिफ़ॉल्ट। अधिकांश कॉलर को सफलता इंगित करता है
201उपयोगी जब वेबहुक ने एक संसाधन बनाया (जैसे एक नया कन्वर्सेशन)
202async प्रसंस्करण के लिए स्वीकृत (बॉट बाद में इस पर कार्य करेगा)
400विकृत पेलोड अस्वीकार करें
401अनधिकृत कॉलर अस्वीकार करें
500पुनः प्रयास तर्क के लिए एक बॉट-साइड विफलता इंगित करें

चरण 2: Content-Type सेट करें

Content-Typeइसका उपयोग कब करें
application/jsonअधिकांश आधुनिक एकीकरण (डिफ़ॉल्ट)
application/xmlलीगेसी SOAP-शैली कॉलर
text/plainस्वास्थ्य-जांच शैली कॉलबैक
text/htmlउपयोगकर्ता को प्रदर्शित फ़ॉर्म सबमिशन पावती

चरण 3: प्रतिक्रिया बॉडी लिखें

बॉडी एक फ़्री-फ़ॉर्म टेक्स्ट फ़ील्ड है। वह सटीक पेलोड लिखें जिसे आप कॉलर को वापस लौटाना चाहते हैं। फ़्लो में पहले कैप्चर किए गए वेरिएबल को {variable_name} सिंटैक्स (एकल कर्ली ब्रेसेस) के साथ सम्मिलित किया जा सकता है।

JSON के लिए:

{
  "received": true,
  "conversation_id": "{conversation_id}",
  "lead_id": "{reference_id}",
  "acknowledged_at": "{current_time}"
}

XML के लिए:

<response>
  <status>success</status>
  <conversation_id>{conversation_id}</conversation_id>
</response>

सादे टेक्स्ट के लिए:

OK

चरण 4: सबमिट करें और सहेजें

ब्लॉक मोडल में Submit पर क्लिक करें, फिर शीर्ष बार में Save Changes का उपयोग करके फ़्लो सहेजें।

यह कैसे काम करता है

External system POSTs to webhook URL


       Webhook Block fires


   (Optional) intermediate blocks:
   - Condition to validate payload
   - API Block to enrich data
   - Set Variable to compute fields


    Webhook Response Block reached


    Custom HTTP response returned
    to the original caller


    Flow continues to downstream blocks
    (messages, further logic, etc.)

HTTP प्रतिक्रिया सिंक्रोनस रूप से भेजी जाती है: बाहरी कॉलर तब तक जुड़ा रहता है जब तक प्रतिक्रिया ब्लॉक पहुंचा नहीं जाता। इस कारण, Webhook ब्लॉक और Webhook Response ब्लॉक के बीच के पथ को तेज़ रखें। प्रतिक्रिया ब्लॉक से पहले लंबे समय तक चलने वाली API कॉल या समय लेने वाले तर्क से बचें, अन्यथा कॉलर टाइम आउट हो सकता है।

सामान्य उपयोग के मामले

Conversation ID के साथ पावती

एक iPaaS टूल (n8n, Zapier, Make) वेबहुक ट्रिगर करने के बाद अपने स्वयं के सिस्टम में कन्वर्सेशन ID रिकॉर्ड करना चाहता है।

  • Status Code: 201
  • Content-Type: application/json
  • Body:
{
  "created": true,
  "conversation_id": "{conversation_id}",
  "reference_id": "{reference_id}"
}

वैलिडेशन परिणाम वापस इको करें

एक फ़ॉर्म बिल्डर उपयोगकर्ता इनपुट पोस्ट करता है। बॉट इसे सत्यापित करता है और एक पास/फेल लौटाता है ताकि फ़ॉर्म सही संदेश दिखा सके।

  • Status Code: 200
  • Content-Type: application/json
  • Body:
{
  "valid": true,
  "message": "Your request has been received"
}

अमान्य पेलोड अस्वीकार करें

एक Condition ब्लॉक (आवश्यक फ़ील्ड जांचना) को विफलता शाखा पर एक Webhook Response ब्लॉक के साथ संयोजित करें जो 400 लौटाता है।

  • Status Code: 400
  • Content-Type: application/json
  • Body:
{
  "error": "missing_required_field",
  "field": "{missing_field}"
}

भुगतान गेटवे पुष्टि

एक भुगतान गेटवे एक settle वेबहुक पोस्ट करता है। बॉट को एक विशिष्ट JSON आकार लौटाना होगा या गेटवे पुनः प्रयास करता रहेगा।

  • Status Code: 200
  • Content-Type: application/json
  • Body:
{
  "status": "acknowledged",
  "transaction_id": "{transaction_id}"
}

SMS डिलीवरी रसीद

एक लीगेसी SMS प्रदाता एक सादा टेक्स्ट OK प्रतिक्रिया की अपेक्षा करता है।

  • Status Code: 200
  • Content-Type: text/plain
  • Body: OK

सर्वोत्तम अभ्यास

  • पथ को छोटा रखें। Webhook और Webhook Response के बीच केवल ब्लॉक रखें यदि वे तेज़ी से चलते हैं। लंबी API कॉल प्रतिक्रिया ब्लॉक के बाद जानी चाहिए ताकि कॉलर टाइम आउट न हो
  • पुनः प्रयास करने वाले कॉलर के लिए हमेशा जल्दी लौटें। भुगतान गेटवे और SMS प्रदाता अक्सर सेकंडों के भीतर पुनः प्रयास करते हैं। एक या दो सेकंड के भीतर प्रतिक्रिया ब्लॉक तक पहुंचना डुप्लिकेट सूचनाओं से बचाता है
  • कॉलर के अपेक्षित आकार से बिल्कुल मिलान करें। सख्त कॉलर प्रतिक्रियाओं को अस्वीकार करते हैं भले ही स्थिति कोड सही हो। एकीकरण डॉक्स पढ़ें और उनके सैंपल अनुरोधों के साथ परीक्षण करें
  • प्रतिक्रिया को शाखा बनाने के लिए Condition ब्लॉक का उपयोग करें। सफलता शाखा पर एक Webhook Response ब्लॉक और विफलता शाखा पर एक अलग (400 या 401 के साथ) रखें
  • कन्वर्सेशन या रेफ़रेंस ID शामिल करें। यह कॉलर के लॉग को ChatMaxima में कन्वर्सेशन के साथ सहसंबंधित करना आसान बनाता है
  • प्रतिक्रिया में संवेदनशील डेटा न डालें। प्रतिक्रिया कॉलर को दिखाई देती है। केवल वही लौटाएं जो उन्हें प्राप्ति की पुष्टि करने के लिए चाहिए

समस्या निवारण

कॉलर को मेरी कस्टम प्रतिक्रिया के बजाय डिफ़ॉल्ट 200 OK मिलता है

  1. पुष्टि करें कि एक Webhook Response ब्लॉक मौजूद है और Webhook ब्लॉक से पहुंच योग्य है
  2. फ़्लो ग्राफ़ जांचें: यदि एक Condition प्रतिक्रिया ब्लॉक के चारों ओर रूट करता है, तो डिफ़ॉल्ट का उपयोग किया जाता है
  3. सुनिश्चित करें कि ब्लॉक सहेजा गया था। मोडल में Submit पर क्लिक करें, फिर शीर्ष बार पर Save Changes

कॉलर बार-बार पुनः प्रयास करता है

  1. सुनिश्चित करें कि स्थिति कोड उससे मेल खाता है जिसे कॉलर सफलता मानता है। कुछ प्रदाता केवल 200 स्वीकार करते हैं, 201 या 202 नहीं
  2. सत्यापित करें कि प्रतिक्रिया बॉडी कॉलर के अपेक्षित आकार से मेल खाती है। उनके डॉक्स या लॉग का निरीक्षण करें
  3. Webhook और Webhook Response के बीच धीमे अपस्ट्रीम ब्लॉक की जांच करें। प्रतिक्रिया भेजे जाने से पहले कॉलर टाइम आउट हो सकता है

वेरिएबल प्रतिक्रिया बॉडी में कच्चे {variable_name} के रूप में दिखाई देते हैं

  1. पुष्टि करें कि वेरिएबल उसी फ़्लो में एक पहले के ब्लॉक द्वारा सेट किया गया था
  2. वेरिएबल नाम केस-संवेदनशील होते हैं। वर्तनी जांचें
  3. नेस्टेड फ़ील्ड के लिए, डॉट नोटेशन का उपयोग करें: {customer.email}, {customer_email} नहीं
  4. यदि वेरिएबल इनबाउंड वेबहुक पेलोड से है, तो सुनिश्चित करें कि पेलोड में वास्तव में फ़ील्ड शामिल था

विकृत JSON सख्त कॉलर द्वारा अस्वीकृत किया जाता है

  1. सहेजने से पहले बॉडी टेम्पलेट को JSON के रूप में सत्यापित करें। एक स्ट्रिंग फ़ील्ड में एक बिना-उद्धृत वेरिएबल अमान्य JSON उत्पन्न करेगा यदि मान में उद्धरण या लाइन ब्रेक होते हैं
  2. {amount} जैसे संख्यात्मक फ़ील्ड के लिए, उद्धरणों में न लपेटें। स्ट्रिंग फ़ील्ड के लिए, हमेशा लपेटें: "name": "{name}"
  3. वास्तव में लौटाए गए बाइट देखने के लिए एक सैंपल कॉल (curl या Postman का उपयोग करके) के साथ परीक्षण करें

Content-Type बेमेल

  1. कुछ कॉलर को स्पष्ट रूप से application/json; charset=utf-8 की आवश्यकता होती है। डिफ़ॉल्ट बिना charset के application/json भेजता है
  2. SOAP क्लाइंट को application/xml के बजाय text/xml की आवश्यकता हो सकती है। एकीकरण डॉक्स जांचें

अगले चरण

  • Webhook Block - किसी फ़्लो को ट्रिगर या फिर से शुरू करने के लिए इनबाउंड HTTP कॉल प्राप्त करें
  • API Block - फ़्लो से बाहरी API कॉल करें
  • Studio अवलोकन - सभी ब्लॉक प्रकार और फ़्लो बिल्डर सुविधाओं का अन्वेषण करें

इस पृष्ठ पर