Sign inGet Started

अपने एप्लिकेशन को किसी ऑटोमेशन से जोड़ें

जब आपके सिस्टम में कुछ होता है, जैसे कोई ऑर्डर बनता है या कोई भुगतान आता है, तब एक एप्लिकेशन इवेंट भेजें। इवेंट कोई रन शुरू कर सकता है, उसकी प्रतीक्षा कर रहे रन को जारी रख सकता है, या मेल खाते रद्दीकरण नियम वाले रन को रद्द कर सकता है। हर ऑटोमेशन में इन तीनों कामों के लिए एक ही इवेंट URL होता है।

Automations is in Early access. Your workspace permissions determine which actions you can perform.

अगर आप Automations नहीं खोल पा रहे हैं या ड्राफ़्ट नहीं बना पा रहे हैं, तो वर्कस्पेस एक्सेस और संपादन नियंत्रण देखें।

रन शुरू करने वाला इवेंट कॉन्फ़िगर करें

  1. Event from your application को ट्रिगर बनाकर एक ऑटोमेशन बनाएँ।
  2. Event name सेट करें, जैसे order.created। नाम केस-सेंसिटिव होते हैं और इनमें अक्षर, संख्याएँ, डॉट, अंडरस्कोर या हाइफ़न हो सकते हैं।
  3. आपका एप्लिकेशन जो डेटा भेजता है, उसके लिए Event fields परिभाषित करें। ऑर्डर के लिए order_id नाम का एक स्ट्रिंग फ़ील्ड जोड़ें। बाद के चरण इन फ़ील्ड का उपयोग कर सकते हैं।
  4. ऑटोमेशन प्रकाशित करें। सफलता स्क्रीन पर How to start a run दिखता है, जिसमें इवेंट URL और एक अनुरोध का उदाहरण होता है।

कनेक्शन विवरण दोबारा देखने के लिए ट्रिगर चुनें और क्विक एडिट में How to connect your application पर क्लिक करें। विस्तृत एडिटर में कनेक्शन नियंत्रण दिखते हैं।

ड्राफ़्ट का सिमुलेशन करें या प्रकाशित वर्शन चलाएँ

संदेश भेजे बिना या डेटा बदले बिना अपने ड्राफ़्ट का सिमुलेशन करने के लिए सैंपल डेटा के साथ Preview workflow का उपयोग करें। cURL कमांड चलाने, Send event… पर क्लिक करने या Start run का उपयोग करने से प्रकाशित ऑटोमेशन चलता है और वह वास्तविक कार्रवाइयाँ कर सकता है। ड्राफ़्ट में सहेजे गए और बिना सहेजे गए बदलाव इन रन पर लागू नहीं होते।

इवेंट भेजने से पहले ऑटोमेशन प्रकाशित करें। यदि उसका कोई प्रकाशित संस्करण नहीं है, तो अनुरोध तुरंत अस्वीकार कर दिया जाता है; इवेंट कतार में नहीं डाला जाता और बाद के लिए सहेजा भी नहीं जाता। एडिटर के उदाहरणों में ड्राफ़्ट के बदलाव दिख सकते हैं, इसलिए उन बदलावों पर निर्भर डेटा भेजने से पहले उन्हें प्रकाशित करें।

URL कॉपी करें और इवेंट भेजें

URL, हेडर और उदाहरण बॉडी वाली cURL कमांड पाने के लिए Copy request का उपयोग करें। उदाहरण के मानों को अपने एप्लिकेशन के डेटा से बदलें।

URL में वर्कस्पेस और ऑटोमेशन की ID शामिल होती हैं:

कोड उदाहरण
POST https://<your-regional-api-host>/v1/hooks/automations/<workspace-id>/<automation-id>

डैशबोर्ड से कॉपी किए गए पूरे URL का उपयोग करें। आपको X-Workspace-Id हेडर की ज़रूरत नहीं है। प्रमाणीकरण का मौजूदा विकल्प No authentication है: जिसके पास भी यह URL है, वह इवेंट भेज सकता है। इसे अपने सर्वर कॉन्फ़िगरेशन में रखें।

order.created के लिए कॉन्फ़िगर किए गए ऑटोमेशन के लिए, AUTOMATION_EVENT_URL को कॉपी किए गए URL पर सेट करें और यह भेजें:

कोड उदाहरण
curl --request POST "$AUTOMATION_EVENT_URL" \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "order.created",
    "data": { "order_id": "order_123" }
  }'

type को कॉन्फ़िगर किए गए इवेंट नाम पर और data को इवेंट फ़ील्ड से मेल खाने वाले ऑब्जेक्ट पर सेट करें। आप RFC 3339 टाइमस्टैम्प के रूप में occurred_at भी दे सकते हैं; डिफ़ॉल्ट रूप से यह इवेंट पहुँचने का समय होता है।

status: "queued" के साथ 202 Accepted प्रतिक्रिया पुष्टि करती है कि इवेंट कतार में डाल दिया गया है। Bird इवेंट पहचानकर्ता बनाता है और उसे event_id के रूप में लौटाता है। निष्पादन देखने के लिए ऑटोमेशन का Runs टैब खोलें। कतार में स्वीकार होने से यह पुष्टि नहीं होती कि इवेंट किसी ट्रिगर से मेल खाया या कोई रन शुरू हुआ।

टर्मिनल के बिना उदाहरण सबमिट करने के लिए आप डैशबोर्ड में Send event… का भी उपयोग कर सकते हैं। इससे एक वास्तविक इवेंट भेजा जाता है।

किसी इवेंट की प्रतीक्षा कर रहे रन को आगे बढ़ाएँ

प्रतीक्षा वाला चरण ट्रिगर वाले ही ऑटोमेशन URL का उपयोग करता है। उसका इवेंट नाम और subject_key बताते हैं कि क्या हुआ और कौन-सा रन इसे प्राप्त करेगा।

  1. Automation settings में Skip overlapping runs और Use a business key चालू करें। Business key को ऐसे मान पर सेट करें जो ऑर्डर, इनवॉइस या किसी अन्य ऑब्जेक्ट की पहचान करता हो। ऑर्डर वाले उदाहरण के लिए एक्सप्रेशन trigger.data.data.order_id का उपयोग करें।
  2. Wait for application event जोड़ें और उसका इवेंट नाम, इवेंट फ़ील्ड और टाइमआउट कॉन्फ़िगर करें। उदाहरण के लिए, स्ट्रिंग payment_id फ़ील्ड वाले order.paid की प्रतीक्षा करें।
  3. प्रकाशित करें, शुरुआती इवेंट भेजें, और तब तक प्रतीक्षा करें जब तक उसका रन Runs में न दिखे।
  4. अगला इवेंट उसी URL पर भेजें, जिसमें subject_key रन की बिज़नेस कुंजी के बराबर हो:
कोड उदाहरण
{
  "type": "order.paid",
  "subject_key": "order_123",
  "data": { "payment_id": "payment_456" }
}

subject_key बिज़नेस कुंजी का मान है, जैसे order_123; यह इवेंट ID या रन ID नहीं है। प्रतीक्षा चरण के विस्तृत कनेक्शन व्यू में आपकी कॉन्फ़िगर की गई कुंजी के लिए मार्गदर्शन दिखता है।

मेल खाने वाला इवेंट रन शुरू होने के बाद कैप्चर किया जा सकता है, भले ही रन अभी प्रतीक्षा चरण तक न पहुँचा हो। मेल खाने वाला रन मौजूद होने से पहले प्रोसेस हुए इवेंट भविष्य के रन के लिए सहेजे नहीं जाते। फ़िल्टर वाली प्रतीक्षा तभी आगे बढ़ती है जब उसके इवेंट फ़ील्ड और फ़िल्टर दोनों मेल खाते हों। अगर समय-सीमा से पहले कोई योग्य इवेंट प्रोसेस नहीं होता, तो रन अपने टाइमआउट पथ पर चला जाता है।

Automation settings में रद्दीकरण नियम भी इसी URL का उपयोग करते हैं। कोई नियम ऑटोमेशन के सभी सक्रिय रन को लक्षित कर सकता है, या subject_key से मेल खाने वाले रन को। नियम किन रन को रद्द करे, यह सीमित करने के लिए फ़िल्टर कॉन्फ़िगर करें। रद्दीकरण किसी ऐसी कार्रवाई को पलट नहीं सकता जो पहले ही हो चुकी है।

प्रकाशित संस्करण और रोके गए ऑटोमेशन

नए रन उस संस्करण का उपयोग करते हैं जो इवेंट प्रोसेस होते समय सक्रिय होता है। मौजूदा रन अपना मूल संस्करण बनाए रखते हैं, जिसमें उनके इवेंट फ़ील्ड और प्रतीक्षा शर्तें शामिल हैं। बदला हुआ इवेंट फ़ॉर्मैट प्रकाशित करने से पहले से शुरू हो चुके रन अपडेट नहीं होते।

किसी प्रकाशित ऑटोमेशन को रोकने पर नए रन शुरू नहीं होते। ऑटोमेशन रुका रहने के दौरान भी इवेंट मौजूदा रन को आगे बढ़ा या रद्द कर सकते हैं।

डिलीवरी और फिर से प्रयास को संभालें

इवेंट एसिंक्रोनस रूप से प्रोसेस होते हैं, और उनके लिए फिर से प्रयास किया जा सकता है या वे क्रम से हटकर प्रोसेस हो सकते हैं। अगला इवेंट भेजने से पहले शुरुआती रन के बनने की प्रतीक्षा करें। किसी इवेंट का occurred_at प्रोसेसिंग का क्रम तय नहीं करता, प्रतीक्षा को नहीं बढ़ाता और टाइमआउट को नहीं रोकता।

फिर से प्रयास करने से बचाव सीमित है। यदि फिर से प्रयास के रिकॉर्ड की अवधि समाप्त हो जाए या वे खो जाएँ, तो कोई इवेंट दोबारा प्रोसेस हो सकता है, संभवतः किसी नए वर्शन या किसी दूसरे सक्रिय रन पर। अपने एप्लिकेशन को ऐसा बनाएँ कि वह डुप्लिकेट इवेंट संभाल सके।

फिर से प्रयास करने से बचाव चालू करने के लिए पहले प्रयास में Idempotency-Key दें, फिर हर फिर से प्रयास में उसी URL और बिना बदले बॉडी के साथ उसे दोबारा इस्तेमाल करें। हर नए अनुरोध के लिए नई कुंजी इस्तेमाल करें। दोहराया गया अनुरोध वही event_id लौटाता है। आइडेम्पोटेंसी गाइड सीमित रीप्ले अवधि और कॉन्फ़्लिक्ट प्रतिक्रियाओं के बारे में बताती है।

किसी इवेंट की समस्या हल करें

  • अनुरोध 4xx लौटाता है: प्रतिक्रिया में त्रुटि का विवरण, URL और आवश्यक type तथा ऑब्जेक्ट data फ़ील्ड जाँचें। Content-Type: application/json भेजें। पूरी अनुरोध बॉडी 25 KB (25,000 बाइट) के भीतर होनी चाहिए; इससे बड़ी बॉडी पर 413 लौटता है।
  • ऑटोमेशन प्रकाशित नहीं हुआ है: इवेंट भेजने से पहले उसे प्रकाशित करें। अस्वीकार किया गया इवेंट सहेजा नहीं जाता; प्रकाशित करने के बाद नया अनुरोध भेजें।
  • अनुरोध 202 लौटाता है, लेकिन कोई रन शुरू नहीं होता: जाँचें कि ऑटोमेशन सक्रिय है, इवेंट का नाम उसके ट्रिगर से मेल खाता है और डेटा प्रकाशित इवेंट फ़ील्ड से मेल खाता है। ओवरलैप सुरक्षा किसी दूसरे रन के सक्रिय रहते नया रन छोड़ सकती है। मासिक रन सीमा भी जाँचें; सीमा पर छोड़े गए रन अगले महीने के लिए कतार में नहीं रखे जाते।
  • रन किसी प्रतीक्षा चरण पर रुका रहता है: इवेंट का नाम, सटीक बिज़नेस कुंजी, डेटा फ़ील्ड, फ़िल्टर और टाइमआउट जाँचें। रन के मूल प्रकाशित वर्शन वाला इवेंट फ़ॉर्मैट इस्तेमाल करें।
  • फिर से प्रयास करने पर कॉन्फ़्लिक्ट लौटता है: मूल कुंजी और बिना बदले अनुरोध के साथ फिर से प्रयास करें। यदि आप कोई अलग इवेंट भेजना चाहते हैं, तो नई कुंजी इस्तेमाल करें।

कतार में डालने से पहले अनुरोध के एनवेलप की जाँच होती है। प्रोसेसिंग के दौरान इवेंट डेटा की जाँच ट्रिगर, प्रतीक्षा और रद्दीकरण नियमों से की जाती है, इसलिए हो सकता है कि कतार में डाला गया इवेंट इनमें से किसी से भी मेल न खाए।

अगले कदम

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।