مفهوم بازوان

پیام‌رسانی همگانی

ارسال یک پیام به همهٔ مخاطبان یا یک گروه فیلتر‌شده.

گاهی می‌خواهید یک خبر را به همهٔ کاربران بات (یا گروه خاصی از آن‌ها) برسانید. کمپین‌های پیام‌رسانی این کار را با کنترل سرعت ارسال و گزارش تحویل انجام می‌دهند.

  • گروه مخاطب از فیلتر روی داده‌ها
  • قالب پیام با متغیر
  • گزارش تحویل و خطا

زمان ارسال

هر کمپین می‌تواند به سه شکل اجرا شود و این انتخاب همان‌جا داخل فرم ساخت کمپین انجام می‌شود — نیازی به مراجعه به ماژول دیگری نیست:

  • ارسال فوری: بلافاصله پس از تأیید، ارسال شروع می‌شود.
  • زمان‌بندی‌شده: تاریخ و ساعت دقیق (به‌وقت تهران) را تعیین می‌کنید؛ کمپین تا آن لحظه با وضعیت «زمان‌بندی‌شده» می‌ماند و سپس خودکار ارسال می‌شود.
  • تکرارشونده: روزانه یا روزهای خاص هفته در ساعت مشخص، تا تاریخ اختیاری «تا». هر اجرا یک کمپین فرزند با گزارش مستقل می‌سازد.
تغییر/لغو زمان‌بندی
در تب «تاریخچه» روی کمپین‌های زمان‌بندی‌شده، دکمه‌های «تغییر زمان‌بندی» و «لغو» نمایش داده می‌شود. برای کمپین‌های تکرارشونده، «لغو» جلوی اجراهای بعدی را می‌گیرد.

انتخاب گیرنده در کمپین تکرارشونده

از این نسخه، رفتار پیش‌فرض «فیلتر زنده» است: اگر فقط فیلتر مخاطب را انتخاب کنید و روی کاربر/گروه خاصی کلیک نکنید، در هر اجرای تکرارشونده، فهرست گیرندگان از روی فیلتر دوباره محاسبه می‌شود و کاربران جدیدی که در آینده با فیلتر منطبق شوند هم پیام می‌گیرند. این حالت با badge سبز در فرم نشان داده می‌شود.

اما اگر روی چک‌باکس یک کاربر یا گروه کلیک کنید (انتخاب دستی)، فهرست همان لحظه به‌صورت snapshot ذخیره می‌شود و در اجراهای بعدی به‌روزرسانی نمی‌شود. در این حالت فیلتر همچنان به‌عنوان «دروازه‌ی نهایی» عمل می‌کند: فقط کاربرانی که هم در snapshot هستند و هم فیلتر را پاس می‌کنند پیام می‌گیرند. هشدار amber در فرم همراه دکمه‌ی «پاک کردن انتخاب دستی» این وضعیت را نشان می‌دهد.

اشتباه رایج
اگر فیلتر «بدون تگ family_locked» را انتخاب کرده‌اید و انتظار دارید کاربرانی که بعداً ثبت‌نام می‌کنند هم پیام بگیرند، حتماً انتخاب دستی کاربر/گروه را خالی بگذارید (دکمه «پاک کردن انتخاب دستی» در هشدار amber). در غیر این صورت snapshot به‌عنوان سقفِ گیرندگان عمل می‌کند و کاربران جدید پیام نمی‌گیرند.
مثال واقعی

ارسال پیام تبریک هر هفته جمعه ساعت ۹ صبح به اعضای کانال، یا یک اعلان یک‌بار مصرف برای شب جمعه ساعت ۲۰:۳۰.

چه زمانی استفاده کنیم؟

  • اطلاع‌رسانی به همهٔ کاربران یک کلاس وقتی معلم چیزی تغییر می‌دهد (فیلتر مستقیم).
  • ارسال یادآوری به همهٔ بدهکاران (فیلتر مستقیم).
  • اعلام موکب جدید فقط به موکب‌یاران همان شهر — فیلتر چندجدوله: از نود «ساخت مخاطبان» استفاده کنید و این نود را روی «از متغیر» بگذارید.

خطاهای رایج

  • نشت گیرندگان به‌خاطر فقدان فیلتر نقش (حالت inline)
    اگر کالکشن انتخاب‌شده هم چند نوع کاربر را شامل است، صرفاً فیلتر «شهر» کافی نیست. یا یک فیلتر «نقش/نوع» اضافه کنید، یا برای فیلتر چندجدوله از «ساخت مخاطبان» استفاده کنید.
  • ارجاع به فیلد رکورد در حالت from_var
    در حالت «از متغیر»، رکورد همراه گیرنده وجود ندارد — فقط مشخصات bot_user. در پیام از {{recipient.first_name}}, {{recipient.username}}, {{recipient.bot_user_id}} استفاده کنید.
  • فیلتر بدون مقدار (inline)
    اگر مقدار متغیر در زمان اجرا خالی باشد، فیلتر روی «خالی» مچ می‌شود — یعنی فقط رکوردهایی که آن فیلد خالی دارند گیرنده می‌شوند. در پیش‌نمایش ادیتور مقدار حل‌شده را ببینید.
  • ارسال به «همه» بدون تیک تأیید (inline)
    اگر هیچ فیلتری نگذارید، ادیتور هشدار زرد نشان می‌دهد و تا وقتی تیک «ارسال آگاهانه به همه» را نزنید، در زمان اجرا یک هشدار در لاگ ثبت می‌شود.
  • فرض اینکه پیام به ثبت‌کنندهٔ فرم می‌رود (مجموعه‌های فرزند)
    برای مجموعه‌هایی که `parent_fk` دارند (مثل «اطلاعات تماس خانواده» که فرزندِ «خانواده» است)، گیرنده مالک منطقی والد است نه ثبت‌کنندهٔ رکورد فرزند. این رفتار با مسیر کمپین کاملاً یکسان است — اگر در پنل کمپین N گیرنده می‌بینید، اینجا هم همان N خواهد بود.

نکات حرفه‌ای

  • همیشه قبل از فعال‌سازی، شمارش گیرندگان و «معیار حل‌شده» را در کارت پیش‌نمایش ادیتور ببینید.
  • برای فیلتر چندجدوله یا مخاطب پیچیده، از «ساخت مخاطبان» استفاده کنید — مسئولیت ساخت لیست و ارسال جدا می‌شود و قابل بازاستفاده است.
  • بعد از هر اجرا، در «پیام‌رسانی › تاریخچه» جزییات کمپین «از فلو» را باز کنید تا منبع (inline / from_var)، معیار حل‌شده و تعداد گیرنده ثبت‌شده را ببینید.
  • برای ارسال‌های زمان‌بندی‌شده از «زمان‌بند» استفاده کنید، نه فلو.
  • برای مجموعه‌های دارای `parent_fk`، resolve گیرنده از طریق والد است؛ این منطق در پنل کمپین و فلو-انجین یکسان است، پس عددهای دو مسیر باید برابر باشند.
امتحان در پنل
مفاهیم مرتبط