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 को इवेंट फ़ील्ड्स से मेल खाने वाले ऑब्जेक्ट पर सेट करें। आप occurred_at को RFC 3339 टाइमस्टैंप के रूप में भी दे सकते हैं; यह डिफ़ॉल्ट रूप से इवेंट के आने के समय पर सेट होता है।
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 लौटाता है लेकिन कोई रन शुरू नहीं होता: जाँचें कि ऑटोमेशन सक्रिय है, इवेंट नाम उसके ट्रिगर से मेल खाता है, और डेटा प्रकाशित इवेंट फ़ील्ड से मेल खाता है। ओवरलैप सुरक्षा किसी अन्य रन के सक्रिय रहते हुए नया रन छोड़ सकती है। मासिक रन सीमा भी जाँचें; सीमा पर छोड़े गए रन अगले महीने के लिए कतार में नहीं रखे जाते।
  • रन वेटिंग स्टेप पर रुका हुआ है: इवेंट नाम, सटीक बिज़नेस की, डेटा फ़ील्ड्स, फ़िल्टर और टाइमआउट जाँचें। रन के मूल पब्लिश किए गए वर्शन का इवेंट फ़ॉर्मेट उपयोग करें।
  • रीट्राई कॉन्फ़्लिक्ट लौटाता है: मूल की और अपरिवर्तित रिक्वेस्ट के साथ फिर से प्रयास करें। अगर आप कोई अलग इवेंट भेजना चाहते हैं, तो नई की उपयोग करें।
रिक्वेस्ट का एन्वेलप क्यूइंग से पहले जाँचा जाता है। इवेंट डेटा प्रोसेसिंग के दौरान ट्रिगर, वेट और कैंसलेशन नियमों के विरुद्ध जाँचा जाता है, इसलिए क्यू में रखा गया इवेंट इनमें से किसी से भी मैच न करने में विफल हो सकता है।

अगले कदम

संबंधित संसाधन

इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।