N8n SMS.ir

n8n

اتصال n8n به SMS.ir یکی از سریع‌ترین راه‌ها برای خودکارسازی ارسال پیامک در فرآیندهای کاری است. n8n یک ابزار اتوماسیون بصری و low-code است که به شما کمک می‌کند بدون نیاز به کدنویسی پیچیده، کارهای تکراری بین سرویس‌ها، وب‌سرویس‌ها و دیتابیس‌ها را خودکار کنید

n8n چیست و چرا به کار ما می‌آید؟

n8n یک ابزار اتوماسیون بصری و low-code است که به شما کمک می‌کند بدون نیاز به کدنویسی پیچیده، کارهای تکراری را بین سرویس‌ها، وب‌سرویس‌ها و دیتابیس‌ها خودکار کنید. با استفاده از چند «گره» (Node) ساده—مثل دریافت ورودی، تمیز کردن داده و ارسال درخواست—می‌توانید سناریوهای واقعی بسازید: از ثبت فرم در Google Sheets گرفته تا ارسال اعلان‌ها، تأیید هویت کاربران و ده‌ها جریان کاری دیگر.

مزیت اصلی n8n این است که:

  • خیلی سریع راه‌اندازی می‌شود (فقط با چند کلیک)،
  • به راحتی قابل توسعه است (می‌توانید در هر زمان Nodeهای جدید اضافه کنید)،
  • برای تیم‌های فنی و حتی غیرفنی شفاف است (کل فرایند جلوی چشم شماست).

n8n

هدف این مقاله

در این آموزش قصد داریم اتصال n8n به وب‌سرویس SMS.ir را بررسی کنیم و نشان دهیم چطور می‌توان دو نیاز پرتکرار پیامکی را پوشش داد:

  • ارسال گروهی پیامک (Bulk): وقتی می‌خواهید یک پیام واحد را به چند شماره موبایل ارسال کنید (اعلان‌ها، یادآوری‌ها یا کمپین‌های تبلیغاتی).
  • ارسال پیامک با پترن (Verify): وقتی نیاز به پیامک مهم مثل کد تأیید (OTP) یا اعلان حساس دارید که با اولویت بالا از خطوط خدماتی ارسال می‌شود.

این آموزش برای چه کسانی مناسب است؟

برای دولوپرها، اوپراتورهای اتوماسیون و تیم‌های پشتیبانی/عملیات که می‌خواهند سریع، ساده و بدون دردسر، ارسال پیامک با n8n و سرویس پیامکی SMS.ir را در فرآیندهای کاری خود ادغام کنند—بدون اینکه نیاز به پیاده‌سازی سرویس‌های دست‌ساز و نگهداری دشوار باشد.

چه چیزی می‌سازیم؟

در این مقاله دو فلو (Workflow) ساده پیاده‌سازی می‌کنیم: یکی برای ارسال گروهی (Bulk) و دیگری برای ارسال با پترن (Verify). برای نسخه‌ی آموزشی، ورودی‌ها را با یک فرم ساده تست می‌گیریم تا حس داده واقعی داشته باشید؛ اما در پروژه‌های عملی می‌توانید همین ورودی‌ها را از هر منبع دیگری مثل Webhook، دیتابیس، فایل یا خروجی فلوهای قبلی در n8n تغذیه کنید.

  • توضیحات افزونه

توضیحات افزونه

معماری کلی فلوها در n8n برای اتصال به SMS.ir

برای اینکه بتوانید ارسال پیامک با n8n را به‌صورت استاندارد و بدون پیچیدگی انجام دهید، کافی است از یک الگوی ثابت استفاده کنید. این الگو هم برای ارسال گروهی (Bulk) و هم برای ارسال با پترن (Verify) کاربرد دارد:

Form Trigger Set HTTP Request

  1. Form Trigger — نقطه‌ی ورود داده‌ها

در نسخه‌ی آموزشی، داده‌های تستی از طریق Form Trigger دریافت می‌شوند. مزیت این روش این است که در پروژه‌های واقعی می‌توانید همین نقطه‌ی ورود را با منابع دیگری مثل Webhook، دیتابیس یا حتی خروجی فلوهای قبلی در n8n جایگزین کنید؛ بدون اینکه منطق اصلی فلو تغییر کند.

  1. Set — آماده‌سازی داده برای API

در این مرحله داده‌ی خام ورودی به فرمت موردنیاز وب‌سرویس SMS.ir تبدیل می‌شود تا بدنه‌ی درخواست (Request Body) یک‌دست و استاندارد باشد:

  • در حالت Bulk: لیست شماره موبایل‌ها ساخته و نرمال‌سازی می‌شود.
  • در حالت Verify: آرایه‌ای از پارامترهای قالب (Template Parameters) ساخته می‌شود.
  1. HTTP Request — ارسال درخواست به SMS.ir

در گام پایانی، داده‌ی آماده‌شده با یک درخواست HTTP مستقیم به API SMS.ir ارسال می‌شود.

  • برای ارسال گروهی: https://api.SMS.ir/v1/send/bulk
  • برای ارسال با پترن : https://api.SMS.ir/v1/send/verify

خلاصه معماری

ورودی از Form گرفته می‌شود، در مرحله‌ی Set به فرمت درست تبدیل می‌گردد و در نهایت با HTTP Request به endpoint مناسب SMS.ir ارسال می‌شود. این الگوی ساده باعث می‌شود اتصال n8n به SMS.ir سریع، شفاف و مقیاس‌پذیر باشد.

بخش اول: ارسال گروهی (Bulk) در n8n با SMS.ir

یکی از رایج‌ترین سناریوها در اتوماسیون پیامکی، ارسال یک متن واحد به چند شماره موبایل است. در این بخش یک فلو ساده در n8n می‌سازیم که ورودی‌ها را از طریق فرم دریافت کرده، داده‌ها را در گام Set آماده‌سازی می‌کند و در نهایت با یک HTTP Request به وب‌سرویس SMS.ir ارسال می‌کند.

این همان چیزی است که به آن ارسال پیامک گروهی (Bulk SMS) گفته می‌شود. در پروژه‌های واقعی می‌توانید ورودی را به جای فرم از دیتابیس، Webhook یا هر منبع دیگری تأمین کنید و بقیه مراحل ثابت خواهد بود.

ارسال پیامک با N8N

1) Form Trigger  فیلدهای ورودی
برای تست شفاف و کامل، چهار فیلد زیر در فرم تعریف می‌شود:

  • ApiKey (required): کلید وب‌سرویس SMS.ir برای احراز هویت.
  • LineNumber (required): شماره خط ارسال‌کننده پیامک.
  • MessageText (required): متن پیامک مشترک برای تمام مخاطبین.
  • Mobiles (required): لیست شماره‌ها (امکان وارد کردن با کاما یا خط جدید).

اتصال SMS.ir به نیتن

2) Set  نرمال‌سازی شماره‌ها (Normalize Inputs)

هدف این مرحله، تبدیل ورودی‌های کاربر به فرمت استانداردی است که API ارسال گروهی SMS.ir انتظار دارد (یعنی آرایه‌ای از شماره‌ها).

نمونه اکسپرشن مورد استفاده:

{{

(function(mobiles) {

if (Array.isArray(mobiles)) {

return mobiles.map(m => String(m).trim());

}

if (typeof mobiles === ‘number’) {

return [String(mobiles)];

}

if (typeof mobiles === ‘string’) {

return mobiles

.split(/[\n,]+/)

.map(m => m.trim())

.filter(Boolean);

}

return [];

})($json.Mobiles)

}}

این اکسپرشن ورودی‌ها را به شکل درست تبدیل می‌کند:

  • “09120000001” → [“09120000001”]
  • 9120000002 → [“9120000002”]
  • “0912…,0913…” یا “0912…\n0913…” → [“0912…”,”0913…”]

ارسال پیامک با نیتن

3) HTTP Request  ارسال به API Bulk

در این مرحله داده‌های آماده‌شده (شماره خط، متن پیام و لیست شماره‌ها) با یک درخواست HTTP به سرویس ارسال گروهی SMS.ir فرستاده می‌شود.

  • Method: POST
  • URL: https://api.SMS.ir/v1/send/bulk
  • Send Headers: On
    • Specify Headers: Using Fields Below
    • Header Parameters:
      • Name: X-API-KEY | Value: {{$json.ApiKey}}
      • (در صورت نیاز: Content-Type به صورت پیش‌فرض JSON است و نیازی به تعریف جداگانه ندارد.)
  • Send Body: On
    • Body Content Type: JSON
    • Specify Body: Using Fields Below
    • Body Parameters (دقیقاً با همین حروف):
      • Name: lineNumber | Value: {{$json.LineNumber}}
      • Name: messageText | Value: {{$json.MessageText}}
      • Name: mobiles | Value: {{$json.Mobiles}} (حتماً به صورت آرایه باشد؛ خروجی Set باید براکت [ ] داشته باشد)

📌 نکات مهم:

  • کلیدها را دقیقاً با حروف مشخص‌شده بنویسید (lineNumber, messageText, mobiles).
  • مطمئن شوید خروجی نود Set واقعاً یک آرایه است (نه رشته).
  • مقدار X-API-KEY حتماً باید در Header ارسال شود.

آموزش اتصال پنل پیامکی به n8n

4) نتیجه موفق و پاسخ API

در صورت موفقیت، پاسخ وب‌سرویس چیزی شبیه به این خواهد بود:

{

“status”: 1,

“message”: “موفق”,

“data”: {

“packId”: “…”,

“messageIds”: [86522023, 86522024],

“cost”: 2.0

}

}

  • status = 1 یعنی درخواست پذیرفته شده است.
  • packId شناسه مجموعه ارسال (برای گزارش‌گیری و پیگیری).
  • messageIds[] شناسه هر پیامک ارسال‌شده.

N8n - SMS.ir

این ساختار ساده به شما کمک می‌کند خیلی سریع، ارسال پیامک گروهی با n8n را از طریق SMS.ir پیاده‌سازی کنید.

بخش دوم: ارسال پیامک با پترن (Verify) در n8n و SMS.ir

گاهی اوقات متن پیام از قبل در سامانه SMS.ir به صورت یک قالب (Template) تعریف می‌شود. در این حالت کافی است فقط TemplateId و مقادیر متغیرها (مثلاً Code یا OTP) را ارسال کنید.
این روش برای ارسال پیامک‌های مهم مثل کد تأیید (OTP)، اعلان‌های حساس یا پیامک‌های خدماتی استفاده می‌شود، چون از خطوط خدماتی و با اولویت بالا ارسال می‌گردد.

ارسال پیامک otp با n8n

1) Form Trigger — فیلدهای ورودی

برای تست سریع و شفاف، در فرم چهار فیلد زیر کافی است:

  • ApiKey (required): کلید وب‌سرویس برای احراز هویت در SMS.ir.
  • Mobile (required): شماره موبایل گیرنده پیامک.
  • TemplateId (required): شناسه قالبی که در پنل SMS.ir ساخته‌اید.
  • Code (required): مقدار متغیر (مثلاً کد تأیید) که در قالب تعریف شده است.

ارسال پیامک با پترن در n8n

2) Set — ساخت آرایه‌ی parameters

در این سناریو باید یک آرایه به نام parameters ایجاد شود تا مقدار متغیرهای قالب در آن قرار بگیرد

  • . در نود Set یک فیلد جدید بسازید به نام parameters
  • Type: روی Array بگذارید (خیلی مهم)
  • Value (Expression): این اکسپرشن را دقیقاً قرار دهید تا از فیلد «Code» فرم، آرایهٔ پارامتر بسازد:

{{

(function(c){

const val = String(c ?? ”).trim();

return val ? [{ name: ‘Code’, value: val }] : [];

})($json.Code)

}}

 

📌 نکات مهم:

  • اگر در قالب به جای #Code# از #OTP# استفاده کرده‌اید، کافی است مقدار name را به OTP تغییر دهید و یا هر نام متغیر دیگری که در قالب شما وجود دارد.
  • برای چند متغیر، می‌توانید چند فیلد در فرم بگذارید (مثل Code و Name) و در خروجی Set چند آبجکت {name, value} اضافه کنید.

.n8n چیست

  • 3) HTTP Request —فراخوانی API Verify

در این مرحله داده‌ها (شماره گیرنده، شناسه قالب و پارامترها) به سرویس ارسال سریع SMS.ir ارسال می‌شوند.

  Method: POST

  URL: https://api.SMS.ir/v1/send/verify

  Send Headers: On

  • Specify Headers: Using Fields Below
  • Header Parameters:

 Name: X-API-KEY | Value: {{$json.ApiKey}}

  Send Body: On

  • Body Content Type: JSON
  • Specify Body: Using Fields Below
  • Body Parameters (دقیقاً با همین حروف):
    • Name: Mobile | Value: {{$json.Mobile}}
    • Name: TemplateId | Value: {{$json.TemplateId}}
    • Name: Parameters | Value: {{$json.Parameters}} (حتماً آرایه باشد

 

استفاده از متد Verify SMS در نیتن

4) نتیجه موفق و پاسخ API (Verify)

بعد از اجرای موفق فلو، پاسخ وب‌سرویس Verify SMS.ir به این شکل خواهد بود:

{

“data”: {

“messageId”: 262290516,

“cost”: 1

},

“status”: 1,

“message”: “موفق”

}

  status = 1 یعنی درخواست با موفقیت پذیرفته شده است.

  message مقدار متنی پاسخ است (در صورت موفق معمولاً «موفق»).

  data.messageId شناسه‌ی یکتای پیامک ارسال‌شده است (برای پیگیری و گزارش).

  data.cost نشان‌دهنده تعداد پیامک مصرف‌شده یا هزینه‌ی ارسال است.

 

نیتن چیست

با همین سه گام، ارسال Verify آماده است: داده‌ها را در فرم می‌گیرید، فقط parameters را بر اساس نام‌های قالب می‌سازید و درخواست JSON را به endpoint مخصوص SMS.ir می‌فرستید.

دانلود و ایمپورت ورک‌فلوها در n8n

برای اینکه سریع‌تر شروع کنید، می‌توانید هر دو ورک‌فلو آماده (Bulk و Verify) را از گیت‌هاب دانلود کرده و به‌طور مستقیم در n8n ایمپورت کنید:

🔗 مشاهده و دانلود ورک‌فلوها در GitHub

روش ایمپورت از فایل (Import from File)

  1. در صفحه‌ی Overview روی Create Workflow کلیک کنید.
  2. در بوم خالی، منوی سه‌نقطه (کنار دکمه Save) را باز کرده و Import from File… را بزنید.
  3. یکی از فایل‌های آماده را انتخاب کنید:
    • smsir-bulk-send.json (برای ارسال گروهی)
    • smsir-verify-send.json (برای ارسال با پترن)
  4. روی Save Execute بزنید؛ فرم ورودی باز می‌شود. ApiKey و سایر فیلدها را وارد کنید و ارسال را تست نمایید.

روش ایمپورت از URL (Import from URL)

اگر ترجیح می‌دهید مستقیماً از URL استفاده کنید:

  1. در گیت‌هاب روی فایل موردنظر کلیک کنید.
  2. روی Raw بزنید و آدرس را کپی کنید.
  3. در n8n گزینه Import from URL… را انتخاب کرده و همان آدرس را Paste کنید.

با این دو روش، در کمتر از چند دقیقه می‌توانید ورک‌فلوهای آماده‌ی ارسال پیامک با n8n و SMS.ir را اجرا کنید و بلافاصله آن‌ها را مطابق نیاز خود سفارشی‌سازی نمایید.

جمع‌بندی

در این آموزش دیدیم که چطور می‌توان با یک الگوی ساده و تکرارشونده در n8n (یعنی Form Set HTTP Request) دو نیاز مهم پیامکی را پیاده‌سازی کرد:

  • ارسال گروهی پیامک (Bulk SMS) برای اعلان‌ها، یادآوری‌ها و کمپین‌ها
  • ارسال پیامک با پترن (Verify SMS) برای کد تأیید (OTP) و پیام‌های حساس از طریق خطوط خدماتی

با اتصال n8n به وب‌سرویس SMS.ir، فرآیند ارسال پیامک هم سریع‌تر می‌شود، هم شفاف‌تر و هم بدون نیاز به کدنویسی پیچیده.

حالا شما می‌توانید همین الگو را به جای فرم آزمایشی، با منابع داده واقعی مثل دیتابیس، وب‌هوک یا حتی خروجی فلوهای قبلی جایگزین کنید و در مقیاس دلخواه کسب‌وکار خود به کار بگیرید.

به این ترتیب، یکپارچه‌سازی ارسال پیامک در n8n با SMS.ir نه‌تنها ساده است، بلکه قابلیت سفارشی‌سازی و مقیاس‌پذیری بالایی هم دارد.

اطلاعات افزونه

دانلودافزونه
ورود به حساب شروع سریع مشاوره رایگان