مشتری سفارش میدهد و تا یک ساعت خبری از فروشگاه نمیشود. کسی هم یادش نمیماند فردا ساعت ده نوبت دارد. ارسال خودکار پیامک این دو مشکل را بدون یک نفر نیروی اضافه حل میکند. در این مطلب قدم به قدم n8n را به سامانه پیامکی ایرانی وصل میکنیم تا هر اتفاق مهم کسبوکار، خودش یک پیامک درست بفرستد.
دو سامانه را کامل جلو میبریم: SMS.ir و کاوهنگار، چون مستندات رسمی هر دو روشن و بهروز است. آخر مطلب هم شش کاربرد آماده برای فروشگاه، مطب، آموزشگاه و هر کسبوکار کوچک هست.
n8n چیست و چرا برای پیامک به کار میآید؟
n8n یک ابزار ساخت گردشکار است. هر گردشکار از چند «گره» ساخته میشود: یک گره شروع (مثلا رسیدن سفارش تازه) و چند گره بعدی که کاری انجام میدهند. برای ارسال خودکار پیامک کافی است گره آخر، درخواست ارسال را به سامانه پیامکی بفرستد.
n8n دو حالت دارد. نسخه ابری (n8n Cloud) نصب نمیخواهد و برای شروع سریع خوب است. نسخه روی سرور خودمان (self-hosted) کنترل کامل میدهد و برای نصب بیشتر نودهای جامعه هم لازم است. هر دو برای کار واقعی مناسباند.
قبل از شروع: سه چیز از پنل سامانه پیامکی
برای راهاندازی ارسال خودکار پیامک، اول سه چیز را از پنل سامانه پیامکی آماده میکنیم.
۱. کلید وبسرویس
هر سامانه یک کلید (API Key) میدهد که مثل رمز حساب است. در SMS.ir این کلید در بخش «برنامهنویسان» و «لیست کلیدهای API» ساخته میشود. در کاوهنگار هم کلید را از پنل کاربری برمیداریم. این کلید را به هیچکس نمیدهیم.
۲. خط فرستنده
شمارهای است که پیامک از آن میرود. در کاوهنگار اگر فرستنده را خالی بگذاریم، خط پیشفرض حساب استفاده میشود. در ارسال گروهی SMS.ir شماره خط اجباری است.
۳. قالب یا پترن
برای پیامکهای خدماتی مثل کد تایید و فاکتور، اول متن را به شکل قالب در پنل ثبت میکنیم تا تایید شود. در SMS.ir این کار در بخش «ارسال سریع» انجام میشود و در کاوهنگار با تعریف «الگو». فقط جاهای متغیر، مثل کد یا نام مشتری، از n8n فرستاده میشوند.
پیامک خدماتی با پترن یا پیامک تبلیغاتی؟
این مهمترین تصمیم در ارسال خودکار پیامک است. طبق مستندات SMS.ir، ارسال با پترن (verify) از خطوط خدماتی و با اولویت بالا انجام میشود و حتی به کسانی میرسد که پیامک تبلیغاتی را بستهاند. کاوهنگار هم درباره متد lookup همین را میگوید.
اما ارسال ساده و گروهی از خط تبلیغاتی به شمارههای لیست سیاه نمیرسد. در کاوهنگار چنین پیامکی وضعیت «بلاک شده» میگیرد و هزینهاش برمیگردد. قانون ساده ما:
اطلاعرسانی شخصی مثل تایید سفارش، کد ورود و یادآوری نوبت: همیشه با پترن.
تخفیف و جشنواره: پیامک تبلیغاتی، فقط برای کسانی که خودشان شماره دادهاند.
متن تبلیغاتی را در قالب خدماتی جا نزنیم؛ قالب باید تایید شود و اعتماد مشتری هم مهم است.
ساخت گردشکار در n8n قدم به قدم
۱. انتخاب گره شروع
هر ارسال خودکار پیامک با یک اتفاق شروع میشود. چهار گره رایج:
Webhook: وقتی سایت یا فروشگاه، اطلاعات سفارش را به یک نشانی میفرستد.
n8n Form Trigger: یک فرم ساده ثبتنام که خود n8n میسازد.
Schedule Trigger: اجرای زمانبندیشده، مثلا هر روز ساعت نه صبح.
گرههای آماده ابزارهایی مثل گوگل شیت، وقتی ردیف تازه اضافه میشود.
گره Webhook دو نشانی دارد: نشانی تست که داده رسیده را همان لحظه در صفحه نشان میدهد، و نشانی اصلی که بعد از انتشار گردشکار فعال میشود.
۲. نگه داشتن کلید در Credentials
کلید را هرگز مستقیم داخل گره نمینویسیم. در n8n بخش Credentials برای همین کار است. برای SMS.ir یک اعتبار از نوع Header Auth میسازیم: در Name مینویسیم X-API-KEY و در Value کلید را میگذاریم. بعد در گره HTTP Request همین اعتبار را انتخاب میکنیم.
۳. تنظیم گره HTTP Request
گره HTTP Request قلب ارسال خودکار پیامک است. آن را بعد از گره شروع میگذاریم و روش (Method)، نشانی (URL)، هدرها و بدنه را طبق مستندات سامانه پر میکنیم. گزینه «Import cURL» هم هست تا نمونه آماده مستندات را بچسبانیم و n8n خانهها را خودش پر کند. شماره و کد را از خروجی گره قبلی با کشیدن و رها کردن برمیداریم.
نمونه کامل با SMS.ir
ارسال با پترن
تنظیمها: Method روی POST، نشانی https://api.sms.ir/v1/send/verify، اعتبار Header Auth که بالاتر ساختیم، Send Body روشن، نوع بدنه JSON. بدنه:
{
"mobile": "{{ $json.mobile }}",
"templateId": 123456,
"parameters": [
{ "name": "CODE", "value": "{{ $json.code }}" }
]
}نام متغیر را بدون علامت # مینویسیم و باید با قالب پنل یکی باشد. جواب موفق "status": 1 دارد و شناسه پیامک در messageId میآید.
ارسال گروهی
برای خبرنامه و ارسال خودکار پیامک به یک فهرست، نشانی https://api.sms.ir/v1/send/bulk با روش POST است و بدنه سه بخش اصلی دارد: lineNumber (شماره خط)، messageText (متن) و mobiles (فهرست شمارهها). طبق مستندات هر درخواست حداکثر ۱۰۰ شماره میگیرد.
در جواب این ارسال، اگر بهجای شناسه یک شماره صفر آمد، آن شماره در لیست سیاه است. خالی بودن آن هم یعنی شماره غلط است یا متن بیش از حد بلند است.
نمونه کامل با کاوهنگار
ارسال با الگو (lookup)
در کاوهنگار کلید داخل خود نشانی میآید. Method را روی GET میگذاریم و نشانی این است:
https://api.kavenegar.com/v1/{API-KEY}/verify/lookup.jsonبعد Send Query Parameters را روشن میکنیم و سه پارامتر میسازیم: receptor برای شماره، token برای کد یا مقدار متغیر و template برای نام الگو. اگر الگو بیش از یک متغیر دارد، token2 و token3 هم هست.
یک نکته مهم: token نباید فاصله داشته باشد. برای نام کامل مشتری از token10 استفاده میکنیم که تا پنج فاصله را قبول میکند. این متد به فعال بودن «سرویس پیشرفته» در حساب نیاز دارد.
ارسال ساده
برای پیامک متنی معمولی نشانی https://api.kavenegar.com/v1/{API-KEY}/sms/send.json است با پارامترهای receptor، sender و message. در هر درخواست حداکثر ۲۰۰ گیرنده را میشود با ویرگول انگلیسی جدا کرد. متن بلند را خود سامانه چند تکه میکند؛ یک پیامک فارسی تا ۷۰ حرف جا دارد و در پیامک چندتکه هر تکه ۶۷ حرف، و هزینه به تعداد تکهها حساب میشود.
چون کلید کاوهنگار داخل نشانی است، در Credentials جا نمیگیرد. پس فایل گردشکار و عکس صفحه را با کسی به اشتراک نمیگذاریم و در تنظیمات امنیتی پنل کاوهنگار، IP سرور n8n را ثبت میکنیم.
سامانههای دیگر: ملیپیامک، فراز اساماس و IPPanel
ملیپیامک هم وبسرویس دارد و برای ارسال خودکار پیامک با آن، همین روش گره HTTP Request با مستندات رسمی خودش کار میکند. برای IPPanel نودی به نام n8n-nodes-ippanel و برای فراز اساماس نودی به نام @farazsms_official/n8n-nodes-farazsms در npm منتشر شده است.
اینها نود جامعه هستند. طبق مستندات n8n، نودهای جامعه تاییدنشده روی نسخه ابری در دسترس نیستند و نسخه روی سرور خودمان را لازم دارند. اگر شک داریم، گره HTTP Request همیشه راه بیدردسرتری است.
تست قبل از ارسال واقعی
قبل از روشن کردن ارسال خودکار پیامک برای مشتریها، چند تست ساده میکنیم:
SMS.ir محیط Sandbox دارد: با کلید مخصوص آن پیامک واقعی نمیرود و اعتبار کم نمیشود. قالب آزمایشی آن شناسه ۱۲۳۴۵۶ و متغیر CODE دارد.
در کاوهنگار اگر در متد تنظیمات حساب (
account/config.json) مقدارdebugmodeرا روشن کنیم، درخواستها انجام میشوند ولی پیامکی نمیرود.اول فقط به شماره خودمان میفرستیم و متن، نام و لینک را روی گوشی میخوانیم.
با دکمه «Execute step» فقط همان گره را اجرا میکنیم و جواب سامانه را در خروجی میبینیم.
مدیریت خطا
اگر ارسال خودکار پیامک بیصدا از کار بیفتد، تا شکایت مشتری خبردار نمیشویم. پس از روز اول برای خطا برنامه داریم.
گره HTTP Request وقتی جواب سامانه کد ۲۰۰ نباشد خطا میدهد. SMS.ir برای خطای منطقی کد ۴۰۰، برای کلید اشتباه ۴۰۱ و برای درخواست زیاد ۴۲۹ برمیگرداند. کاوهنگار هم کدهایی مثل ۴۱۸ برای کم بودن اعتبار و ۴۲۴ برای پیدا نشدن الگو دارد.
سه کار ساده خطا را مهار میکند:
در تب Settings گره، گزینه Retry On Fail را روشن میکنیم تا اگر سامانه لحظهای جواب نداد، با کمی فاصله دوباره تلاش شود.
یک گردشکار جدا با گره Error Trigger میسازیم و در تنظیمات گردشکار اصلی آن را بهعنوان Error workflow انتخاب میکنیم تا هر خطا برای ما ایمیل یا پیام بفرستد.
برای فهرست بلند، گزینه Batching در گره HTTP Request را روشن میکنیم تا درخواستها با فاصله بروند.
شش کاربرد آماده برای کسبوکار
۱. تایید سفارش
Webhook فروشگاه سفارش را میگیرد و پیامک پترن با نام مشتری و شماره سفارش میرود. این سادهترین و پرسودترین نمونه ارسال خودکار پیامک است، چون نگرانی بعد از پرداخت را کم میکند.
۲. یادآوری نوبت
Schedule Trigger هر شب نوبتهای فردا را از گوگل شیت میخواند و برای هر نفر یک پیامک پترن میفرستد. برای مطب، سالن زیبایی و مشاوره، ارسال خودکار پیامک یادآوری جای چند تماس تلفنی را میگیرد.
۳. ثبتنام دوره
فرم n8n ثبتنام را میگیرد و پیامک خوشآمد با تاریخ شروع و لینک کلاس میرود. آخر دوره هم میشود لینک نظرسنجی از شاگردان را با همین ارسال خودکار پیامک فرستاد.
۴. پیگیری بعد از خرید
سه روز بعد از خرید، یک پیامک کوتاه میپرسد محصول به دستش رسیده یا نه و اگر سوالی دارد. جوابهای تکراری مشتریها را هم میشود با روش جواب پیامهای تکراری مشتری با هوش مصنوعی آماده کرد.
۵. تخفیف تولد
Schedule Trigger هر صبح تولدهای امروز را از فهرست مشتریها پیدا میکند و یک کد تخفیف میفرستد. این پیامک جنبه تبلیغاتی دارد؛ پس فقط برای کسانی که اجازه دادهاند و از خط تبلیغاتی.
۶. کد ورود یکبار مصرف
سایت یک کد تصادفی میسازد و n8n آن را با پترن میفرستد. این نمونه کلاسیک ارسال خودکار پیامک خدماتی است و باید در چند ثانیه برسد.
جمعبندی
برای ارسال خودکار پیامک با n8n سه چیز لازم داریم: کلید و خط از پنل، قالب تاییدشده و یک گره HTTP Request که درست تنظیم شده باشد. جزییات هر درخواست را همیشه از مستندات رسمی وبسرویس SMS.ir، وبسرویس کاوهنگار و گره HTTP Request در n8n چک میکنیم.
پیشنهاد ما: امروز فقط یک کاربرد را بسازیم، مثلا تایید سفارش. وقتی یک هفته بیخطا کار کرد، کاربرد بعدی را اضافه کنیم. مراحل را هم در یک دستورالعمل یکصفحهای بنویسیم تا هر کس در تیم بتواند ارسال خودکار پیامک را نگه دارد.