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

تھروٹل ایک بھرپور بہاؤ کو رفتار دیتا ہے تاکہ کم حد والا میل باکس معطل نہ ہو جائے۔ خاموش اوقات پیغام کو مناسب وقت تک روکے رکھتے ہیں — یہ پیغام کی سطح پر لاگو ہوتا ہے، گراف کی ہر شاخ میں نقل نہیں ہوتا۔

چلنے سے پہلے جانچا جاتا ہے

تصدیق کنندہ آپ کے لیے اور اے آئی کے لیے ایک ہی چیزیں رد کرتا ہے

گراف کو شائع ہونے سے پہلے جانچا جاتا ہے، اور یہ جانچ صرف مشورہ نہیں ہے۔ یہی کوڈ کا راستہ ہے چاہے کوئی شخص فنل بناوے یا ماڈل اسے تیار کرے، اور اسی وجہ سے تیار شدہ فنل پر بھروسہ کیا جا سکتا ہے۔

بالکل ایک داخلہ

دو داخلہ نوڈز ایک ابہام ہے جس پر کوئی توجہ نہیں دیتا جب تک فہرست کا غلط حصہ غلط سلسلہ نہ لے لے۔

ہر نوڈ تک رسائی

ایک تنہا شاخ یا تو غلطی ہے یا ایسا پیغام جسے آپ بھیجتا ہوا سمجھتے ہیں مگر وہ نہیں جاتا۔ دونوں کی اطلاع دینا ضروری ہے۔

ہر چکر میں انتظار لازمی

بغیر انتظار کا لوپ درمیان میں بھیجنے والا لامحدود لوپ ہے۔ یہ اصول فنل اور حادثے کا فرق ہے۔

ہر بھیجنے کا اپنا مواد

send_email نوڈ مواد اور موضوع کے بغیر شائع نہیں ہو سکتا۔ درست موضوع اور خالی جسم والا پیغام ایک حقیقی ناکامی ہے؛ اسے یہاں رد کر دیا جاتا ہے۔

ہر متغیر معلوم ہے

مرج متغیرات شائع کرتے وقت جانچے جاتے ہیں۔ {{frist_name}} ایک غلط ہجے ہے جو آپ ترمیم کے دوران دیکھتے ہیں، نہ کہ چالیس ہزار ان باکسوں میں پہنچنے والا "سلام ،"۔

پھر اس کی نقل چلائیں

ایک حقیقی رابطے کو پورے گراف سے آزمائشی چلائیں اور لیا گیا راستہ اور ہر وہ پیغام جو بھیجا جاتا، اس دن کے ساتھ، واپس پڑھیں۔ کچھ بھی باہر نہیں جاتا۔

مشکل صورت حالیں

سات چیزیں جو سادہ انجن کو توڑ دیتی ہیں

ان میں سے ہر ایک ایک ٹیسٹ ہے جس کے پیچھے متعین گھڑی ہے، کیونکہ ہر ایک ایسے نفاذ کو توڑ دیتی ہے جو حقیقت سے ملنے تک بالکل درست لگتا ہے۔

انجن کس چیز کے خلاف آزمایا گیاتردید
  • 1ایک فنل جو خود میں لوپ کرتا ہےجائز، عام اور ٹھیک — بشرطیکہ چکر میں انتظار شامل ہو، جس پر تصدیق کنندہ اصرار کرتا ہے۔
  • 2کوئی درمیان میں سبسکرائب ختم کر دےروک تھام بھیجنے کے وقت جانچی جاتی ہے، قطار میں لگانے پر نہیں۔ قطار کے وقت جانچ ان لوگوں کو میل بھیج دیتی ہے جنہوں نے انتظار کے دوران چھوڑ دیا۔
  • 3دس ہزار لوگوں کے اندر ہوتے ہوئے فنل میں ترمیموہ اسی ورژن پر چلتے رہتے ہیں جس پر انہوں نے داخلہ لیا تھا، آخر تک۔ نئے آنے والے نئے پر چلتے ہیں۔
  • 4ایک ہی سیکنڈ میں ایک ہی ٹرگر دو بار چلےایک ہی رن، کیونکہ منفردیت ایک انڈیکس ہے، جانچ کے بعد اندراج نہیں۔
  • 5رن کے دوران رابطہ حذف کر دیا جائےرن ختم ہو جاتا ہے۔ ایسی مٹائی جس کے بعد کوئی سلسلہ کسی کے نام سے باقی رہے، مٹائی نہیں ہے۔
  • 6انتظار ڈے لائٹ سیونگ کی تبدیلی پر پڑے"تین دن صبح نو بجے" کا مطلب گھڑی کی تبدیلی کے دونوں طرف صبح نو بجے ہے۔
  • 7بھیجنے اور آگے بڑھنے کے درمیان ورکر مارا جائےاثرات اور آگے بڑھنا ایک ہی ٹرانزیکشن ہیں۔ یا دونوں ہوئے یا کوئی نہیں۔

مقرری سے چلنے والا گھڑیالہر ٹیسٹ ایک معقول عمل درآمد کو ناکام بناتا ہے

مہمات دوسرا نصف ہیں

فنل ردِعمل دکھاتا ہے۔ ایک مہم ایک بار کی جانے والی نشریات ہے: ایک سامعین، ایک شیڈول، ایک حد بندی، اور ایک بھیجنا۔ یہ ایک مختلف شکل کی چیز ہے اور اسے جان بوجھ کر الگ رکھا جاتا ہے، بجائے اس کے کہ اسے ایک نوڈ والا فنل بنا کر دکھایا جائے۔

دو اصول اسے محفوظ بناتے ہیں۔ سامعین کو ایک بار مجسم کیا جاتا ہے اور وہ دو بار چلنے سے انکار کرتے ہیں — دوبارہ حل کرنے سے وہ سب خاموشی سے شامل ہو جاتے جنہوں نے بھیجنے کے آغاز کے بعد شمولیت اختیار کی، اور ڈی ڈپلیکیشن انڈیکس اپنی ہی بنائی ہوئی نقلوں کو روک کر اسے چھپا دیتا۔ اور شمارندے ڈیلیوری ایونٹس سے دوبارہ حساب کیے جاتے ہیں، کبھی جگہ پر بڑھائے نہیں جاتے، تاکہ دوبارہ بھیجا گیا ویب ہک رپورٹ کو بڑھا نہ سکے۔

کون سا استعمال کریں: اگر یہ اس وجہ سے ہوتا ہے جو شخص نے خود کیا، تو یہ فنل ہے۔ اگر یہ اس وجہ سے ہوتا ہے جو آپ نے منگل کے دن فیصلہ کیا، تو یہ مہم ہے۔ کافی حد تک مارکیٹنگ آٹومیشن دوسرے کو پہلے کی شکل میں زبردستی ڈھالنے سے خراب ہو جاتی ہے۔