दस्तावेज़ पर जाएँ
API

ऑटोमेशन कैसे काम करते हैं

ऑटोमेशन लोगों को एक-एक करके मेल भेजता है, जैसे-जैसे चीज़ें होती हैं: कोई सूची में जुड़ता है, फ़ॉर्म भरता है, आपके प्रोडक्ट में कुछ करता है, या उसका जन्मदिन आता है। आप रास्ता एक बार बताते हैं और हर व्यक्ति उस पर अपनी रफ़्तार से चलता है।

एक ट्रिगर और चरणों का एक ट्री

definition में एक trigger, entry चरण और steps की एक सूची होती है। हर चरण का एक key होता है जो ऑटोमेशन में अनोखा है: एक छोटा अक्षर और उसके बाद 2 से 23 छोटे अक्षर या अंक। चरण next में अपने बाद वाले चरण का नाम देता है, और branch दो का, yes और no। null उस रास्ते को ख़त्म करता है। चरण एक ट्री बनाते हैं, इसलिए किसी चरण तक दो जगहों से नहीं पहुँचा जाता और कुछ भी पीछे नहीं लौटता। एक ऑटोमेशन में अधिकतम 50 चरण होते हैं, और ब्रांच अधिकतम 5 स्तर गहरी होती हैं।

  • audience_joined: कोई संपर्क audienceId में जोड़ा जाता है। इम्पोर्ट से जोड़े गए संपर्क छोड़ दिए जाते हैं, जब तक includeImported true न हो।
  • form_submitted: कोई व्यक्ति formId फ़ॉर्म से साइन अप करता है। डबल ऑप्ट-इन में वह पुष्टि करने पर अंदर आता है।
  • event: आपका कोड eventName नाम का इवेंट भेजता है। उसकी प्रॉपर्टी पर अधिकतम 5 filters तय करते हैं कि कौन अंदर आता है।
  • date: audienceId के हर सदस्य के लिए एक दिन आता है। field का मान birthday या joined होता है, यानी उस ऑडियंस में जुड़ने के दिन की सालगिरह। offsetDays इसे अधिकतम एक साल तक खिसकाता है: पहले के दिनों के लिए ऋणात्मक, बाद के दिनों के लिए धनात्मक।
  • manual: कोई अपने आप अंदर नहीं आता। आप ऐप से या जोड़ने वाले एंडपॉइंट से लोगों को जोड़ते हैं।
चरणयह क्या करता है
send_emailtemplateId का प्रकाशित संस्करण from से भेजता है, जो इस वर्कस्पेस का एक पता है। props टेम्पलेट के मान भरता है, और subject टेम्पलेट के विषय की जगह लेता है और {{firstName|there}} जैसे मर्ज फ़ील्ड लेता है
waitव्यक्ति को रोके रखता है: किसी duration के लिए, until यानी अगले दिए गए सप्ताह के दिन और समय तक, या किसी event तक जो उसे करना है, एक timeout के साथ जिसके बाद वह वैसे भी आगे बढ़ जाता है
branchएक सवाल पूछता है और व्यक्ति को yes या no की ओर भेजता है: किसी पिछले ईमेल चरण के लिए email_opened या email_clicked, in_audience, संपर्क का कोई field, या कोई event जो उसने withinDays के अंदर किया
add_to_audience, remove_from_audienceबदलता है कि संपर्क किन ऑडियंस में है
update_fieldसंपर्क पर एक मान लिखता है
webhookआपके किसी वेबहुक एंडपॉइंट को automation.webhook इवेंट के साथ कॉल करता है
exitरास्ते को पहले ही ख़त्म करता है। इसे बाहर निकलना गिना जाता है, पूरा करना नहीं

props या update_field का कोई मान तीन में से एक जगह से आता है: { "source": "static", "value": "…" }, email, name, firstName, lastName या attributes.<key> के लिए { "source": "contact", "field": "firstName" }, और उस इवेंट की किसी प्रॉपर्टी के लिए { "source": "event", "path": "orderId" } जिसने भागीदारी शुरू की।

एक ड्राफ़्ट और एक लाइव संस्करण

सहेजने से ड्राफ़्ट की definition बदलती है। जब तक POST /automations/{id}/publish ड्राफ़्ट को एक क्रमांकित संस्करण के रूप में स्थिर नहीं करता, कुछ नहीं चलता, और फिर published वही संस्करण दिखाता है। जो लोग पहले से अंदर हैं वे उसी संस्करण पर पूरा करते हैं जिसके साथ वे आए थे, और बाद में आने वालों को नया संस्करण मिलता है। hasUnpublishedChanges बताता है कि ड्राफ़्ट आगे बढ़ चुका है।

  • draft: कभी प्रकाशित नहीं हुआ। कोई अंदर नहीं आता।
  • live: प्रकाशित है और चल रहा है।
  • paused: कोई अंदर नहीं आता और अंदर के सभी लोग जहाँ हैं वहीं रुके रहते हैं। pausedReason वजह बताता है: manual, या इंजन को मिली कोई समस्या, जैसे sender_refused या template_unavailable।
  • archived: हमेशा के लिए बंद। अंदर के सभी लोग बाहर हो जाते हैं, और इतिहास बना रहता है।

settings अलग हैं और सहेजते ही लागू हो जाती हैं: timezone, एक sendWindow जिसके बाहर ईमेल इंतज़ार करते हैं, वही व्यक्ति दोबारा अंदर आ सके उससे पहले के reentryDays (null का मतलब एक ही बार), ट्रिगर की ऑडियंस छोड़ने वालों को बाहर करने के लिए exitOnLeave, और listAudienceId, यानी वह ऑडियंस जिस पर सदस्यता छोड़ना दर्ज होता है।

problems ड्राफ़्ट की गड़बड़ियों की सूची देता है, हर एक code, फ़ील्ड के path, stepKey और इस जानकारी के साथ कि वह blocking है या नहीं। रोकने वाली समस्या वाला ड्राफ़्ट प्रकाशित नहीं हो सकता।

ऑटोमेशन के अंदर के लोग

अंदर आने वाले हर व्यक्ति को एक भागीदारी मिलती है। जब तक वह चरणों से गुज़रता है यह active रहती है, रास्ते के आख़िर तक पहुँचने पर completed, और पहले निकल जाने पर exited, एक exitReason के साथ: exit_step, unsubscribed, suppressed, left_audience, removed, archived या failed।

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

आपके ऐप के इवेंट

POST /events दर्ज करता है कि किसी संपर्क ने कुछ किया: order.placed, trial.started, plan.upgraded। इवेंट हर उस लाइव ऑटोमेशन को शुरू करता है जिसके ट्रिगर में उसका नाम है, जो कोई उसका इंतज़ार कर रहा है उसे आगे बढ़ाता है, और ब्रांच के event सवाल का जवाब देता है। इवेंट 90 दिनों तक रखे जाते हैं।

कौन क्या कर सकता है

  • पढ़ने के लिए automations:read और बदलने के लिए automations:write चाहिए। प्रकाशित करने, फिर से शुरू करने और टेस्ट भेजने के लिए emails:send भी चाहिए, क्योंकि इनसे ऑटोमेशन मेल भेजता है।
  • इवेंट भेजने के लिए contacts:write चाहिए, और किसी संपर्क के इवेंट पढ़ने के लिए contacts:read चाहिए।
  • API कुंजी और मालिक वर्कस्पेस का हर ऑटोमेशन देखते हैं। किसी सदस्य का जोड़ा हुआ ऐप वही देखता है जो उस सदस्य ने बनाए।
  • ऑटोमेशन हटाने पर OAuth ऐप से सत्यापन कोड माँगा जाता है। API कुंजी को इसकी कभी ज़रूरत नहीं होती।
  • प्लान में Free पर 1 लाइव ऑटोमेशन, Starter पर 10, Business पर 50 और Enterprise पर कितने भी हो सकते हैं। एक वर्कस्पेस डिफ़ॉल्ट रूप से 100 ऑटोमेशन रख सकता है।

automation.entered, automation.exited और automation.paused वेबहुक आपके सिस्टम को बताते हैं कि कौन अंदर गया, कौन बाहर आया और ऑटोमेशन कब रुका। ऑटोमेशन आर्काइव करने से उसमें मौजूद हर व्यक्ति की भागीदारी ख़त्म हो जाती है, हर व्यक्ति के लिए automation.exited इवेंट के बिना।

कोड, टर्मिनल और एजेंट से

यहाँ का सब कुछ SDK में openemail.automations और openemail.events के रूप में, और CLI में openemail automations और openemail events के रूप में भी है। MCP सर्वर में ऑटोमेशन टूल हैं, इसलिए कोई एजेंट ऑटोमेशन बना सकता है, उसे प्रकाशित कर सकता है और देख सकता है कि अंदर कौन है।