import datetime from django.db import migrations ARTICLES = [ { "slug": "peyam-goruhi-ba-shomare", "title": "پیام گروهی با شماره چیست و چطور بدون مسدود شدن ارسال کنیم؟", "meta_description": "راهنمای ارسال پیام گروهی با شماره: فرق روش رسمی (Business/Bot API) با روشهای غیررسمی، و چرا روش دوم دیر یا زود منجر به مسدود شدن میشود.", "excerpt": "فرق ارسال گروهی رسمی با روشهای غیررسمی، و چرا مسیر Business/Bot API تنها راه پایدار است.", "read_minutes": 4, "content_html": """
«پیام گروهی با شماره» یعنی ارسال یک پیام (پیامک، واتساپ، تلگرام و…) به لیستی از شمارهها، معمولاً با متنی که برای هر گیرنده کمی شخصیسازی شده — مثلاً با نام یا یک اطلاعات اختصاصی دیگر. سوالی که همیشه پشت این نیاز میآید این است: چطور این کار را انجام بدهیم بدون اینکه شماره یا اکانت فرستنده مسدود شود؟
واتساپ، تلگرام، بله و ایتا همه یک سیستم ضدهرزنامه دارند که رفتار غیرطبیعی (ارسال حجم بالا از یک شمارهی معمولی، چرخاندن چند دستگاه/سشن، شبیهسازی رفتار انسانی برای فرار از تشخیص) را شناسایی و مسدود میکند. این محدودیت تصادفی نیست — دقیقاً همان مکانیزمی است که جلوی اسپم واقعی را میگیرد.
هر پلتفرم یک راه رسمی برای ارسال حجمی به کسبوکارها دارد:
پیامک از طریق درگاههای بالک اپراتور، واتساپ از طریق WhatsApp Business Platform (نیاز به تایید Template پیام دارد)، و تلگرام/بله/ایتا از طریق Bot API — با یک محدودیت مهم: بات فقط میتواند به کسانی پیام بدهد که خودشان قبلاً چت را با بات شروع کردهاند (opt-in).
ارسال خودکار به هر شمارهی دلخواه در تلگرام/بله/ایتا بدون اینکه آن شخص قبلاً با بات تعامل داشته باشد، از مسیر رسمی امکانپذیر نیست — و هیچ روش «دور زدن» پایداری هم برایش وجود ندارد. کاسبیار برای این موارد بهجای اتوماسیون مخفی، یک صف ارسال دستیِ یکلمسی نشان میدهد: اپلیکیشن مقصد را با متن آماده باز میکند، خودت دستی میزنی ارسال.
پیام گروهی پایدار یعنی حجم را از مسیر رسمی هر پلتفرم رد کنی، نه اینکه رفتار انسانی را شبیهسازی کنی. کندتر شروع میشود (چون باید Template یا Bot تاییدشده داشته باشی) ولی هرگز اکانتت را به خطر نمیاندازد.
""", }, { "slug": "field-sefareshi-dar-template", "title": "فیلد سفارشی در قالب پیام یعنی چه؟", "meta_description": "چطور برای هر گروه مخاطب فیلدهای سفارشی مثل شماره گذرنامه یا کد ملی تعریف کنی و در قالب پیام همان گروه استفاده کنی.", "excerpt": "چطور برای هر گروه مخاطب، فیلدهای مخصوص خودش را تعریف کنی و در متن پیام استفاده کنی.", "read_minutes": 3, "content_html": """قالب پیام معمولی یک متن ثابت با چند جایخالی است، مثلاً «سلام {نام} عزیز». اما خیلی از کسبوکارها به بیشتر از نام و شماره نیاز دارند — یک آژانس مسافرتی به «شماره گذرنامه» نیاز دارد، یک کلینیک به «تاریخ نوبت»، یک باشگاه به «کد عضویت». اینجاست که فیلد سفارشی وارد میشود.
در کاسبیار، مخاطبین را در گروههایی مثل «تور»، «مشتریان VIP» یا «دانشجویان» دستهبندی میکنی. هر گروه فیلدهای سفارشی مخصوص خودش را دارد — یعنی گروه «تور» میتواند «شماره گذرنامه» داشته باشد بدون اینکه این فیلد بیربط در گروه «دانشجویان» هم ظاهر شود.
اگر نیازی به فیلد سفارشی نداری، همان گروه «عمومی» پیشفرض کافیست — فقط نام و شماره. هیچ فیلدی مجبور نیستی اضافه کنی.
بعد از تعریف فیلد در یک گروه، هنگام نوشتن قالب پیام برای همان گروه،
اسم فیلد بهعنوان یک تگ قابلدرج (مثل {شماره گذرنامه})
کنار فیلدهای پایه (نام، شماره) نمایش داده میشود. برای هر گیرنده، اپ
خودکار مقدار واقعی همان مخاطب را جایگزین میکند.
اگر لیست مخاطبینت همین حالا در دفترچهتلفن گوشیات است، نیازی به تایپ دوبارهی تکتک شمارهها نیست. کاسبیار میتواند مستقیم به مخاطبین گوشیات دسترسی بگیرد (با اجازهی خودت) و هرکدام را که خواستی یکجا وارد اپ کند.
از صفحهی «مخاطبین» گزینهی «مرج از مخاطبین گوشی» را بزن. اپ لیست مخاطبین گوشیات را نشان میدهد (فقط آنهایی که هنوز در کاسبیار نیستند)، هرکدام را انتخاب میکنی، یک گروه مقصد مشخص میکنی، و همه یکجا اضافه میشوند.
مخاطبینی که شمارهشان از قبل در اپ ثبت شده، دوباره در لیست مرج نشان داده نمیشوند — تطبیق بر اساس شمارهی نرمالشده انجام میشود، نه اسم.
دسترسی به مخاطبین فقط برای همین عملیات استفاده میشود؛ چیزی خودکار یا در پسزمینه آپلود نمیشود — فقط همان مخاطبینی که خودت تیک میزنی.
""", }, { "slug": "sms-ya-whatsapp-business", "title": "پیامک یا واتساپبیزینس؟ کدام برای ارسال گروهی بهتر است", "meta_description": "مقایسهی پیامک و واتساپبیزینس برای ارسال پیام گروهی: هزینه، نرخ باز شدن، محدودیت Template، و کدام برای چه کسبوکاری مناسبتر است.", "excerpt": "مقایسهی هزینه، نرخ باز شدن، و محدودیتهای هرکدام برای پیام گروهی کسبوکارها.", "read_minutes": 5, "content_html": """هر دو کانال جای خودشان را دارند و در کاسبیار میتوانی همزمان از هردو (بهعلاوهی تلگرام، بله و ایتا) استفاده کنی. اما اگر مجبوری یکی را اول انتخاب کنی، این تفاوتها کمک میکند:
به هر شمارهای میرسد، حتی بدون اینترنت یا اپ نصبشده — قابلاطمینانترین کانال از نظر تحویل. هزینهی هر پیام مشخص و قابلپیشبینی است. محدودیت: طول پیام (پیامکهای بلند چند-قسمتی حساب میشوند) و نداشتن تصویر/دکمه.
نرخ باز شدن پیام معمولاً بالاتر از پیامک است و امکاناتی مثل دکمه و رسانه دارد. اما برای ارسال گروهی (business-initiated) باید از یک Template از پیش تاییدشده در Meta Business Manager استفاده کنی — یعنی نمیتوانی هر متن دلخواهی را بیمحدودیت به هرکسی بفرستی؛ باید ساختار پیام از قبل تایید شده باشد.
اینها فقط به کسانی میرسند که قبلاً با بات کسبوکارت چت را شروع کردهاند. برای مخاطبینی که این کار را نکردهاند، کاسبیار یک صف ارسال دستیِ یکلمسی نشان میدهد.
اگر تحویل تضمینی برایت مهمتر است، پیامک را انتخاب کن. اگر مخاطبینت بیشتر واتساپی هستند و Template تاییدشده داری، واتساپبیزینس گزینهی بهتری است. بهترین نتیجه معمولاً ترکیب چند کانال است — دقیقاً همان چیزی که کاسبیار از یک صفحه انجام میدهد.
""", }, ] def seed_articles(apps, schema_editor): Article = apps.get_model("landing", "Article") published_at = datetime.date(2025, 8, 23) for data in ARTICLES: Article.objects.update_or_create( slug=data["slug"], defaults={ "title": data["title"], "meta_description": data["meta_description"], "excerpt": data["excerpt"], "content_html": data["content_html"], "read_minutes": data["read_minutes"], "is_published": True, "published_at": published_at, }, ) def remove_articles(apps, schema_editor): Article = apps.get_model("landing", "Article") Article.objects.filter(slug__in=[a["slug"] for a in ARTICLES]).delete() class Migration(migrations.Migration): dependencies = [ ("landing", "0001_initial"), ] operations = [ migrations.RunPython(seed_articles, remove_articles), ]