صبر تا برقراری شرط با سقف زمانی در برابر صبر نامحدود

فرق wait-until سقف‌دار و نامحدود: آزادی با شرط یا با مهلت—با جدول، مثال ایرانی و FAQ.

امیر حسینی

اجرای کمپین‌های ایمیل، پیامک و پوش برای جذب، نگهداشت و بازگشت کاربر.

۳ مهر ۱۴۰۵ · 6 دقیقه مطالعه

اشتراک‌گذاری:

نسخه دیگر English

صبر تا برقراری شرط با سقف زمانی در برابر صبر نامحدود

صبر نامحدود مخاطب را تا برقرار شدن شرط نگه می‌دارد و خودش منقضی نمی‌شود؛ صبر با سقف زمانی وقتی شرط برقرار شود یا وقتی مهلت تمام شود—هر کدام زودتر—آزادش می‌کند.

صبر تا شرط با سقف زمانی و صبر نامحدود دقیقاً چه فرقی دارند؟

قدم wait-until-conditions مخاطب را پارک می‌کند تا یک وضعیت پروفایل/ایونت برقرار شود—فاکتور پرداخت شد، درس تمام شد، وارد سگمنت شد، پراپرتی عوض شد. دوراهی طراحی این است که این صبر تا ابد بماند یا سقف داشته باشد.

صبر نامحدود: تایمری او را آزاد نمی‌کند؛ تا شرط true شود می‌ماند (مگر exit سراسری، هدف، یا حذف دستی).

صبر با سقف زمانی: حداکثر نگه‌داشت می‌گذاری (مثلاً ۳ روز یا ۱۴ روز). اگر شرط زودتر برقرار شد از مسیر «برقرار شد» جلو می‌رود. اگر مهلت زودتر رسید از مسیر «منقضی / برقرار نشد» می‌رود.

این همان سؤال صبر تا رویداد در برابر تأخیر ثابت نیست—آنجا سیگنال در برابر ساعت است. اینجا هر دو طرف روی شرط صبر می‌کنند؛ فرق فقط در وجود سقف است.

هر کدام چطور کار می‌کند؟

صبر نامحدود

مخاطب وارد قدم می‌شود. موتور شرط را ارزیابی می‌کند. وقتی true شد جلو می‌رود. اگر هیچ‌وقت true نشد، در wait می‌ماند و در گزارش «داخل جرنی» دیده می‌شود مگر چیز دیگری بیرونش کند.

صبر با سقف زمانی

همان حلقه ارزیابی، به‌علاوه مهلت. دو لبهٔ آزادی:

  1. شرط قبل از مهلت → ادامهٔ «برقرار شد»
  2. مهلت اول → ادامهٔ «منقضی» (یادآوری، پیشنهاد جایگزین، یا خروج آرام)
بُعدنامحدودبا سقف زمانی
آزادی با برقرار شدن شرطبلهبله
آزادی خودکار با تایمرخیربله
ریسک «داخل جرنی ولی ساکت»بالا اگر شرط کمیاب باشدمحدود به سقف
مناسب برایپیش‌نیاز سخت (KYC، پرداخت)صبر نرم (تا ۷ روز فیچر X را امتحان کن)
شفافیت آنالیتیکسدم بلند زمان مرحله را خراب می‌کندزمان مرحله ≤ سقف
مسیر شکستاغلب نیست مگر exit جداشاخهٔ منقضی داخلی

مثال واقعی از فروشگاه و SaaS ایرانی

فروشگاه پوشاک—صبر تا اولین خرید بعد از ثبت‌نام

نامحدود: تا order_completed صبر کن—فقط اگر exit بعد از مثلاً ۹۰ روز سکوت داری؛ وگرنه ثبت‌نام‌های یک‌ساله هنوز در «منتظر اولین سفارش» می‌مانند.

سقف ۱۴ روز: خرید کرد → مسیر تشکر/بعد از خرید؛ نکرد → ایمیل آموزش سبد و خروج. قیف تمیز: برقرار در برابر منقضی.

SaaS سازمانی—صبر تا دعوت هم‌تیمی به ورک‌اسپیس

نامحدود وقتی دعوت هم‌تیمی پیش‌نیاز واقعی ایمیل بعدی است منطقی است—«نکات تیمی» زودهنگام نویز است.

سقف ۷ روز وقتی هنوز شاخهٔ کاربر تکی می‌خواهی بهتر است: برقرار شد → پلی‌بوک تیمی؛ منقضی → نکات سولو + درخواست ملایم‌تر.

یادآوری پرداخت—صبر تا invoice_paid

سقف کوتاه (۲۴–۷۲ ساعت) با شاخهٔ منقضی به پیامک escalation. صبر نامحدود پرداخت، جرنی‌های forever-pending و گزارش وصول را شلوغ می‌کند.

کی کدام را انتخاب کنی؟

  1. شرط دروازهٔ سخت است و false positive بدتر از صبر بلند است → نامحدود (به‌علاوه سیاست exit جدا).
  2. باید شاخهٔ قابل اندازه‌گیری «دیگر منتظر نماندیم» داشته باشی → سقف‌دار.
  3. طول سقف را با واقعیت محصول بگذار (ساعت/روز سبد، روز آنبوردینگ، چرخه صورتحساب)—نه «۳۱ روز چون UI پیش‌فرض بود».
  4. برای مسیر منقضی خلاقیت جدا بنویس؛ شاخهٔ خالی طراحی را هدر می‌دهد.
  5. اگر منظورت «با رسیدن هدف بپر جلو» است، شاید پرش به هدف در برابر شاخه شرطی مناسب‌تر از wait خالی باشد.

نگاشت به Leadara (events، segments، journeys، email/SMS)

فقط با قطعات هسته:

  • Events / پراپرتی / segments: شرط را واقعی بنویس (order_completed، teammate_invited، عضویت سگمنت، بولین)—نه یادداشت مبهم در نام قدم.
  • Journeys: wait-until بدون سقف (نامحدود) یا با حداکثر مدت + دو خروجی (برقرار / منقضی).
  • Email / SMS: مسیر برقرار = موفقیت یا قدم بعد؛ مسیر منقضی = nudge یا پیشنهاد جایگزین. روی انقضا «تبریک انجام دادی» نفرست.
  • وسط صبر کانال را ساکت نگه دار مگر یادآوری جدا عمدی باشد.

اشتباه‌های رایج

  • صبر نامحدود بدون exit سراسری → شمارش زامبی «داخل جرنی».
  • سقف آن‌قدر بلند که مثل نامحدود است ولی خلاقیت منقضی ندارد.
  • فرض موفقیت روی انقضای تایمر.
  • صبر روی شرطی که تقریباً هیچ‌وقت true نمی‌شود (نام ایونت غلط).
  • زنجیرهٔ صبرهای نامحدود که نیاز تراکنشی بعدی را قفل می‌کند.
  • قاطی‌کردن با پنجره رتبه‌بندی مسیر عمل—آنجا رقابت چند سیگنال است؛ اینجا یک شرط.

جمع‌بندی یک‌خطی برای تیم

نامحدود = await condition بدون TTL؛ سقف‌دار = await condition OR deadline، بعد شاخه روی برنده.

گام بعدی چیست؟

یک wait-until زنده را باز کن. بپرس: اگر شرط هیچ‌وقت true نشود چه می‌شود؟ اگر جواب «تا ابد می‌ماند» است، یا سقف با مسیر منقضی بگذار یا سیاست exit را مکتوب کن.

سؤالات پرتکرار

اگر شرط در آخرین ثانیه سقف true شود کدام مسیر برنده است؟

معمولاً مسیر برقرارشدن، اگر ارزیابی قبل از هندل انقضا ببیندش—با پروفایل تست race را چک کن.

وسط صبر نامحدود می‌شود یادآوری فرستاد؟

فقط با جرنی موازی یا قدم یادآوری صریح؛ wait خالص ساکت است.

سقف‌دار همان تأخیر ثابت است؟

خیر. تأخیر ثابت همیشه ساعت را کامل می‌کند. wait سقف‌دار می‌تواند با برقرار شدن شرط زودتر تمام شود.

هم ایونت هم پراپرتی لازم دارم؟

شرط را با AND/OR دقیق بنویس؛ فرض نکن UI همه‌چیز را شل OR می‌کند.

انقضا از جرنی خارج می‌کند؟

فقط اگر شاخهٔ منقضی تمام یا exit شود. انقضا می‌تواند به قدم بعدی هم برود.

صبر نامحدود به deliverability آسیب می‌زند؟

مستقیم نه—ولی مرحلهٔ ساکت بلند، شمارش جرنی فعال را باد می‌کند و تیم را وسوسه می‌کند بعداً به «گیرکرده‌ها» شلیک کند.

شاخهٔ منقضی را چطور QA کنم؟

روی staging سقف کوتاه (دقیقه‌ای) بگذار، پروفایل بدون شرط را تست کن، خلاقیت و متریک را ببین.

سناریوی قدم‌به‌قدم برای تیم رشد

  1. شرط را یک جملهٔ ساده بنویس.
  2. تصمیم بگیر: تا ابد OK است یا داستان منقضی لازم است؟
  3. اگر سقف‌دار است، مدت را با محصول قفل کن.
  4. ایمیل/پیامک برقرار و منقضی را جدا بنویس.
  5. در Leadara بساز؛ early-met، late-met، never-met را تست کن.
  6. دو هفته میانهٔ زمان در قدم و سهم منقضی را ببین.

تفاوت با تأخیر ثابت و صبر تا ایونت

تأخیر ثابت شرط را نادیده می‌گیرد. صبر تا ایونت رخداد سیگنال را می‌شنود. wait-until-conditions به true شدن وضعیت گوش می‌دهد—گاهی عضویت سگمنت بدون ایونتی که برایش اسم گذاشته‌ای.

متریک‌هایی که باید ببینی

  • سهم برقرار در برابر منقضی (سقف‌دار)
  • میانه و p95 زمان در wait
  • تعداد پروفایل‌هایی که > ۲× مدت مورد انتظار منتظرند (بوی نامحدود بی‌کنترل)
  • unsubscribe روی nudgeهای منقضی

زبان گزارش برای مدیر محصول

بگو «صبر ۱۴روزه سقف‌دار: ۳۸٪ برقرار، ۶۲٪ منقضی به nurture سولو»، نه «آنبوردینگ کند است».

طراحی مثل کد

enter wait_until(condition, cap=None):
  start = now()
  loop:
    if condition(profile): advance(met); return
    if cap and now() - start >= cap: advance(expired); return
    sleep(poll_interval)

گاردها: نامحدود بدون سیاست exit منتشر نکن؛ سقف بدون خلاقیت منقضی منتشر نکن؛ شرط را به ایونت/پراپرتی واقعی بچسبان.

تست پذیرش قبل از انتشار

  1. شرط فوری برقرار → مسیر met، بدون صبر کامل.
  2. برقرار وسط سقف → مسیر met.
  3. هیچ‌وقت برقرار نشود → مسیر expired در سقف (سقف‌دار) یا هنوز wait (نامحدود).
  4. خلاقیت منقضی نباید تبریک موفقیت باشد.
  5. exitهای جرنی وسط صبر هم کار کنند (هدف خرید، لغو اشتراک).

چک‌لیست کانال

  • پیامک منقضی: ارزش خستگی را دارد یا فقط ایمیل؟
  • مسیر met: لحن تراکنشی یا مارکتینگ؟
  • وسط صبر: سکوت عمدی، یا یادآوری جای دیگر؟

مطالب مرتبط

ادامه مطالعه