clickSomo
ClickSomo खोलें

फ़नल और ट्रिगर

फ़नल एक ग्राफ़ है। रन एक पंक्ति है। वेट एक समय है।

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

चलने पर वास्तव में क्या होता है

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

एक वर्कर उन रनों को लीज़ करता है जिनका जागने का समय बीत चुका है, और SKIP LOCKED से उन्हें दावा करता है ताकि दो वर्कर एक ही रन न ले सकें। वह नोडों को तब तक निष्पादित करता है जब तक वह किसी वेट या टर्मिनल तक न पहुँचे, फिर अगला जागने का समय लिखकर छोड़ देता है।

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

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

वर्कर का एक टिकनिष्पादन
  • 1लीज़wake_at <= now(), FOR UPDATE SKIP LOCKED. लीज़ के बिना कतार डिफ़ॉल्ट रूप से दो बार भेजती है।
  • 2निष्पादित करेंकिसी वेट या टर्मिनल तक क्रम में नोड। प्रत्येक एक स्टेप लिखता है: उसने क्या तय किया, उसने क्या जारी किया।
  • 3कमिटप्रभाव और प्रगति, एक ट्रांज़ैक्शन में। यही पूरी चाल है।
  • 4स्लीपअगला wake_at लिखा गया। अभी कोई डाउनस्ट्रीम पंक्ति मौजूद नहीं है, और होने की ज़रूरत भी नहीं।

प्रति संपर्क, प्रति संस्करण एक रन

चौदह ट्रिगर

क्या एक रन शुरू कर सकता है

इनमें से कुछ वे चीज़ें हैं जो आप करते हैं। अधिकांश वे हैं जो आपका ग्राहक करता है, या नहीं करता — और किसी कार्य का अभाव उतना ही अच्छा ट्रिगर है जितना स्वयं कार्य।

वे आते हैं

form_submit, list_join, contact_created, tag_added और segment_enter. सेगमेंट एक लाइव प्रेडिकेट है, इसलिए "सेगमेंट में प्रवेश" आपके द्वारा व्यक्त किए जा सकने वाले हर "बन गया है" को कवर करता है — तीन ऑर्डर, नब्बे दिन चुप्पी, सीमा से अधिक खर्च।

वे कुछ करते हैं

साइट स्निपेट से page_visit, message_opened, link_clicked, booking_made और payment_made. संदेश खुलना स्वयं संपर्क पर एक इवेंट है, इसलिए एक फ़नल अपने भेजे अंतिम संदेश की प्रतिक्रिया की प्रतीक्षा कर सकता है।

समय, या आप

ऑफ़सेट के साथ date_field — एक जन्मदिन, एक नवीनीकरण, "एक वर्ष पूरा हुआ", सात दिन पहले या तीन दिन बाद। आवर्ती के लिए schedule. उस घोषणा के लिए manual जो आप अपने निर्णय से भेजते हैं।

आपका अपना एप्लिकेशन

api_event एक कस्टम इवेंट है जिसे आप अपने कोड से, अपने टोकन से पोस्ट करते हैं। आपके उत्पाद की जानकारी जो कुछ भी है, वह ट्रिगर बन जाती है: सक्रिय हुआ, सहकर्मी को आमंत्रित किया, सीमा तक पहुँच गया, रद्द किया, निर्यात किया। यही वह है जो मेलिंग टूल को आपके उत्पाद का हिस्सा बना देता है।

पुनः प्रवेश, एक बार तय

फ़नल या तो पुनः प्रवेश-योग्य है या नहीं, और डेटाबेस इसे लागू करता है: प्रति संपर्क, प्रति फ़नल एक रन, जब तक आप न कहें। एक ही सेकंड में दो बार सक्रिय हुआ वही ट्रिगर दुर्घटना से दो रन नहीं बना सकता।

प्रवेश शर्तें

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

चौदह चीज़ें इसे शुरू कर सकती हैं। सोलह चीज़ें आगे हो सकती हैं।

सोलह एक्शन और सात फ़्लो नोड

फ़नल क्या कर सकता है, और कैसे तय करता है

कुछ भेजें

send_email, send_sms, send_push, send_letter — चार चैनल, एक ग्राफ़ — साथ ही notify_team, जब जिसे बताना ज़रूरी है वह व्यक्ति आपके लिए काम करता हो।

संपर्क बदलें

add_tag, remove_tag, add_to_list, remove_from_list, set_field. चलते-चलते किसी को चिह्नित करना ही अगले फ़नल का सेगमेंट सरल बनाता है।

बाहर तक पहुँचें

http_request से आप जिसे चाहें कॉल कर सकते हैं, create_payment अपने ही कनेक्टेड अकाउंट के विरुद्ध, और book_slot किसी बुकिंग रिसोर्स के विरुद्ध। भुगतानकर्ता आपका ही रहता है; कोई हमारा ग्राहक नहीं बनता।

फ़नल के बीच संचार

enter_funnel और exit_funnel। एक वेलकम सीक्वेंस बनाएँ और उसे चार जगहों से कॉल करें, न कि चार प्रतियाँ बनाए रखें जो मार्च तक अलग-अलग हो जाती हैं।

भेजने के समय जनरेट करें

ai_generate प्रत्येक कॉन्टैक्ट के लिए मर्ज वेरिएबल भरता है, आपके कोटे के अनुसार मापा जाता है और क्रिएटिव तथा कॉन्टैक्ट-एट्रिब्यूट हैश द्वारा कैश किया जाता है — अन्यथा आपको हर एक भेजने पर प्रति प्राप्तकर्ता भुगतान करना पड़ता।

प्रतीक्षा करें, शाखा बनाएँ, विभाजित करें, जोड़ें

wait एक अवधि, एक डेटाटाइम, एक सप्ताह का दिन और समय, या ऑफ़सेट के साथ एक तिथि फ़ील्ड लेता है। condition एक सेगमेंट प्रेडिकेट है जिसमें हाँ और ना होता है। split भार के साथ A/B/n है। join शाखाओं को वापस एक साथ लाता है।

goal — वही जो मायने रखता है

एक लक्ष्य उसे प्राप्त करने वाले किसी भी व्यक्ति के लिए रन समाप्त कर देता है। उन्होंने बुक किया, खरीदा, जवाब दिया: शेष सीक्वेंस विशेष रूप से उनके लिए रद्द कर दिया जाता है। किसी को उस दिन "हमें आपकी याद आती है" नहीं मिलता जब वे वापस आए हों, और यही नोड इसे रोकता है।

throttle और quiet_hours

थ्रॉटल एक झटके की गति नियंत्रित करता है ताकि कम दर सीमा वाला मेलबॉक्स निलंबित होकर दबाया न जाए। क्वायट आवर्स संदेश को उचित समय तक रोके रखते हैं — संदेश परत पर लागू, न कि ग्राफ़ की हर शाखा में कॉपी किया गया।

चलने से पहले जाँचा गया

सत्यापक आपके लिए और AI के लिए एक जैसी चीज़ें अस्वीकार करता है

प्रकाशित होने से पहले एक ग्राफ़ की जाँच की जाती है, और यह जाँच केवल सलाह नहीं है। चाहे कोई व्यक्ति फ़नल बनाए या कोई मॉडल उसे जनरेट करे, कोड पथ एक ही है, और यही एकमात्र कारण है कि जनरेटेड फ़नल पर भरोसा किया जा सकता है।

ठीक एक प्रवेश

दो प्रवेश नोड्स एक अस्पष्टता है जिसे कोई नहीं देखता, जब तक किसी सूची का गलत आधा हिस्सा गलत सीक्वेंस न पा ले।

हर नोड पहुँच योग्य

एक अनाथ शाखा या तो गलती है या वह संदेश जिसे आप जाता हुआ समझते हैं और जाता नहीं। दोनों ही बताए जाने योग्य हैं।

हर चक्र में एक प्रतीक्षा होनी चाहिए

बिना प्रतीक्षा वाला लूप एक अनंत लूप है जिसके बीच में एक भेजना है। यह नियम फ़नल और घटना के बीच का अंतर है।

हर भेजने का अपना क्रिएटिव

क्रिएटिव और विषय के बिना send_email नोड प्रकाशित नहीं हो सकता। सही विषय और खाली बॉडी वाला संदेश एक वास्तविक विफलता मोड है; इसे यहाँ अस्वीकार कर दिया जाता है।

हर वेरिएबल ज्ञात है

मर्ज वेरिएबल प्रकाशन पर सत्यापित होते हैं। {{frist_name}} एक टाइपो है जिसे आप संपादन करते समय देखते हैं, न कि चालीस हज़ार इनबॉक्स में पहुँचता "नमस्ते ,"।

फिर इसका सिमुलेशन करें

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

अजीब स्थितियाँ

सात चीज़ें जो एक साधारण इंजन को तोड़ देती हैं

इनमें से हर एक के पीछे एक नियत काल (डिटरमिनिस्टिक क्लॉक) वाला परीक्षण है, क्योंकि हर एक उस कार्यान्वयन को तोड़ता है जो वास्तविकता से मिलने तक पूरी तरह सही लगता है।

इंजन किसके विरुद्ध परखा गयाखंडन
  • 1एक फ़नल जो अपने आप में लूप करता हैवैध, सामान्य और ठीक — बशर्ते चक्र में एक प्रतीक्षा हो, जिस पर सत्यापक ज़ोर देता है।
  • 2कोई बीच में अनसब्सक्राइब कर लेसप्रेशन भेजते समय जाँची जाती है, कतार में लगाते समय नहीं। कतार में जाँच करने पर उन लोगों को मेल जाता है जो प्रतीक्षा के दौरान चले गए।
  • 3दस हज़ार लोगों के अंदर होते हुए फ़नल संपादित किया जाएवे उसी संस्करण पर चलते रहते हैं जिस पर उन्होंने प्रवेश किया था, अंत तक। नए प्रवेशक नए पर चलते हैं।
  • 4एक ही सेकंड में एक ही ट्रिगर दो बार चलेएक रन, क्योंकि विशिष्टता एक इंडेक्स है, न कि जाँच के बाद इन्सर्ट।
  • 5रन के बीच में एक संपर्क हटा दिया जाता हैरन समाप्त हो जाता है। ऐसा मिटाना जो किसी अनुक्रम को किसी व्यक्ति के लिए संबोधित छोड़ दे, वह मिटाना नहीं है।
  • 6एक प्रतीक्षा डेलाइट-सेविंग परिवर्तन के दौरान फैली हो"सुबह नौ बजे तीन दिन" का अर्थ है घड़ी परिवर्तन के दोनों ओर सुबह नौ बजे।
  • 7भेजने और आगे बढ़ाने के बीच एक वर्कर समाप्त कर दिया जाता हैप्रभाव और आगे बढ़ना एक ही लेन-देन हैं। या तो दोनों हुए, या कोई नहीं।

निर्धारणात्मक घड़ीप्रत्येक परीक्षण एक संभावित कार्यान्वयन को तोड़ता है

अभियान दूसरा आधा हिस्सा हैं

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

दो नियम इसे सुरक्षित बनाते हैं। दर्शक वर्ग एक बार सामग्रीबद्ध किया जाता है और दो बार चलने से इनकार करता है — दोबारा हल करना उन सभी को चुपचाप जोड़ देगा जो भेजना शुरू होने के बाद से जुड़े, और डी-डुप्लीकेशन सूचकांक उसे छिपा देगा क्योंकि वह अपने बनाए डुप्लिकेट को रोक देगा। और काउंटर डिलीवरी घटनाओं से पुनर्गणना किए जाते हैं, कभी भी स्थान पर बढ़ाए नहीं जाते, ताकि दोबारा किया गया वेबहुक किसी रिपोर्ट को बढ़ा न सके।

कौन-सा उपयोग करें: यदि यह व्यक्ति के किसी काम के कारण होता है, तो यह फ़नल है। यदि यह आपके मंगलवार के किसी निर्णय के कारण होता है, तो यह अभियान है। अपेक्षाकृत बड़ी मात्रा में मार्केटिंग ऑटोमेशन दूसरे को पहले के आकार में ज़बरदस्ती ठूंसने से गलत हो जाता है।