در دنیای اتوماسیون، Make (که قبلاً Integromat نام داشت) یکی از قدرتمندترین پلتفرم‌ها برای ساخت سناریوهای پیچیده چندشاخه‌ای است و ساختار ماژول، Filter، Router و Error Handler، پایه معماری اتوماسیون حرفه‌ای محسوب می‌شود. بدون Router و Filter مناسب، هر سناریو در مقیاس بزرگ به مجموعه‌ای از مسیرهای تکراری تبدیل می‌شود و بدون مدیریت خطا، یک قطعی کوتاه در سرویس خارجی می‌تواند کل فرآیند را متوقف کند. مدل قیمت‌گذاری مبتنی بر Operation در Make، تصمیم‌های معماری را به تصمیم‌های مالی متصل می‌کند و بدون بهینه‌سازی، هزینه ماهانه می‌تواند چند برابر شود. تفاوت سناریو و اتوماسیون ساده در Make، در امکان شاخه‌بندی، تجمیع و پردازش موازی است که آن را به انتخاب اول تیم‌های فنی برای اتوماسیون پیچیده تبدیل می‌کند. تست سناریو در سه سطح ماژول، شاخه و End-to-End انجام می‌شود و بدون آن، انتشار به تولید ریسک بالایی دارد. در این راهنما از ساختار پایه تا استقرار تولیدی Make را با نگاه مهندسی و مثال عملی پوشش می‌دهیم.

در پروژه‌های واقعی، اولین سناریو در Make ساده است، اما در هفته دوم مشخص می‌شود که بدون Router و Error Handler، همان سناریو ساده به گلوگاه تبدیل می‌شود. این راهنما از همان نقطه‌ای شروع می‌کند که تجربه می‌گوید بیشترین ارزش را دارد.

Make چیست و چه تفاوتی با Zapier دارد؟

Make یک پلتفرم اتوماسیون بصری است که با کشیدن و رها کردن ماژول‌ها، سناریوهای پیچیده را ممکن می‌کند. تفاوت اصلی با Zapier در سه حوزه است: امکان شاخه‌بندی پیشرفته، پردازش داده‌های پیچیده با Iterator و Aggregator، و مدل قیمت‌گذاری Operation-based.

پیش از ادامه، راهنمای Zapier برای اتصال سرویس‌ها و n8n برای اتوماسیون self-host را مطالعه کنید تا تصویر کامل‌تری داشته باشید.

مقایسه سریع سه پلتفرم

ویژگیZapierMaken8n
مدل قیمتTaskOperationSelf-host
شاخه‌بندیPath محدودRouter پیشرفتهنامحدود
پردازش دادهمحدودIterator و AggregatorCode Node
Error Handlerسادهپیشرفتهکامل

ساختار سناریو، ماژول و اتصال‌ها

هر سناریو در Make از چند ماژول تشکیل می‌شود که با خطوط به هم متصل هستند. هر ماژول، یک عملیات روی سرویس خارجی یا یک عملیات داده انجام می‌دهد.

[Trigger: New Order]
       │
       ▼
[Filter: Total > 500000]
       │
       ▼
[Router]
   ├──► [Path A: HubSpot → Create Contact]
   ├──► [Path B: Slack → Send Message]
   └──► [Path C: Google Sheets → Add Row]

الگوی حرفه‌ای این است که هر سناریو یک وظیفه مشخص داشته باشد و منطق پیچیده در Router سازمان‌دهی شود.

Bundle و ساختار داده در Make

داده در Make به‌صورت Bundle بین ماژول‌ها منتقل می‌شود. هر Bundle می‌تواند یک یا چند Item داشته باشد. درک این ساختار برای کار با Iterator و Aggregator ضروری است.

Trigger و انتخاب نقطه شروع

انواع Trigger در Make شامل Instant Trigger (Webhook)، Polling Trigger (زمان‌بندی‌شده) و Manual Trigger است. انتخاب درست، مستقیماً بر تأخیر و مصرف Operation اثر می‌گذارد.

Instant Trigger: Webhook from WooCommerce
  - تأخیر: زیر ۱ ثانیه
  - Operation: 0

Polling Trigger: Every 15 minutes
  - تأخیر: تا ۱۵ دقیقه
  - Operation: 1 در هر اجرا

توصیه می‌کنم برای رویدادهای مهم، از Instant Trigger استفاده کنید و از وردپرس Webhook ارسال کنید. راهنمای Webhook و اتصال سرویس‌ها نقطه شروع مناسبی است.

Webhook و Custom Webhook در Make

Make از Custom Webhook پشتیبانی می‌کند که به شما امکان تعریف Endpoint سفارشی با ساختار دلخواه را می‌دهد. این قابلیت، انعطاف بالایی برای اتصال به سرویس‌های بدون اپلیکیشن رسمی فراهم می‌کند.

Filter و شرط‌های پیشرفته

Filter در Make امکان توقف اجرای سناریو در صورت عدم تطابق شرط را می‌دهد. برخلاف Zapier، Filter در Make می‌تواند شرط‌های پیچیده‌تری داشته باشد.

Condition:
  Total (numeric) > 500000
  AND
  Currency (text) = "IRR"
  AND
  Customer Email (text) does not contain "+test"

الگوی حرفه‌ای این است که Filter را قبل از هر ماژول گران‌قیمت قرار دهید. این کار، مصرف Operation را کاهش می‌دهد.

Filter در شاخه‌های Router

در هر شاخه Router، می‌توانید Filter مستقل تعریف کنید. این ساختار، اجازه می‌دهد سناریو با یک Trigger، چند مسیر مستقل داشته باشد.

Router و شاخه‌بندی سناریو

Router ابزار اصلی شاخه‌بندی در Make است. با Router می‌توانید داده را به چند مسیر موازی هدایت کنید و هر مسیر، Filter و ماژول‌های مستقل داشته باشد.

[Router]
  ├─ Path 1: Total > 1000000 → VIP Flow
  ├─ Path 2: 500000 ≤ Total ≤ 1000000 → Standard Flow
  └─ Path 3: Total < 500000 → Small Order Flow

نکته مهم، در Router می‌توانید تعیین کنید که فقط اولین مسیر منطبق اجرا شود یا همه مسیرهای منطبق. این تصمیم، بر مصرف Operation اثر مستقیم دارد.

Router تودرتو

در سناریوهای پیچیده، Router می‌تواند در داخل Router دیگر قرار گیرد. توصیه می‌کنم عمق را حداکثر دو سطح نگه دارید تا خوانایی حفظ شود.

Iterator و Aggregator برای پردازش داده

Iterator و Aggregator دو ابزار قدرتمند Make برای پردازش داده‌های ساختاریافته هستند. Iterator یک آرایه را به چند Bundle تبدیل می‌کند و Aggregator چند Bundle را به یک آرایه تبدیل می‌کند.

[Trigger: New Order with items[]]
       │
       ▼
[Iterator: items]
       │
       ▼
[For each item: Update inventory]
       │
       ▼
[Aggregator: Collect results]
       │
       ▼
[Action: Send summary to Slack]

ترکیب Iterator و Aggregator، امکان پردازش سفارش‌های چندمحصولی و به‌روزرسانی انبار را در یک سناریو ممکن می‌کند.

Array Aggregator و Text Aggregator

Make از چند نوع Aggregator پشتیبانی می‌کند: Array، Text، Numeric، Table و JSON. انتخاب درست، ساختار داده نهایی را تعیین می‌کند.

Error Handler و مدیریت خطا

Error Handler یکی از پیشرفته‌ترین قابلیت‌های Make است. با این ابزار می‌توانید برای هر ماژول، مسیر خطای مستقل تعریف کنید.

[Module: Create Contact in HubSpot]
       │
       ├─ Success → [Action: Continue Flow]
       └─ Error   → [Error Handler: Retry / Break / Resume / Rollback / Commit]

Make پنج نوع Error Handler دارد:

  1. Resume: اجرا را با داده جایگزین ادامه می‌دهد.
  2. Break: اجرا را متوقف می‌کند و در صف می‌گذارد.
  3. Retry: چند بار تلاش می‌کند.
  4. Ignore: خطا را نادیده می‌گیرد و ادامه می‌دهد.
  5. Rollback: تغییرات را برمی‌گرداند.

توصیه می‌کنم برای هر ماژول حساس، Error Handler مناسب تعریف کنید. بدون آن، یک خطای کوچک، کل سناریو را متوقف می‌کند.

Break و صف خطا

Break خطا را در صف ذخیره می‌کند و پس از رفع مشکل، اجرا از همان نقطه ادامه می‌یابد. این الگو، برای پردازش‌های مالی حیاتی است.

مدیریت Operation و بهینه‌سازی هزینه

Make بر اساس Operation قیمت‌گذاری می‌کند. هر ماژول اجراشده، حداقل یک Operation مصرف می‌کند. Filter و Router و Error Handler مصرف نمی‌کنند.

سه راهکار کاهش هزینه:

  1. استفاده از Filter قبل از ماژول‌های گران.
  2. تجمیع چند عملیات در یک ماژول با Bulk API.
  3. استفاده از Sleep و Delay برای تجمیع رویدادها.

محاسبه هزینه واقعی سناریو

Operations per Order = 5 (Filter + HubSpot + Slack + Sheets + Aggregator)
Orders per Day       = 200
Ops per Month        = 200 × 5 × 30 = 30,000 Ops
Plan Required        = Core یا Pro

تست و دیباگ سناریو

تست سناریو در Make در سه سطح انجام می‌شود: سطح ماژول (Run once)، سطح شاخه (Router Path) و End-to-End با داده واقعی.

ابزارهای دیباگ:
- Run Once: اجرای یک بار سناریو با داده واقعی
- History: مشاهده اجراهای گذشته با جزئیات
- Dev Tool: بررسی Bundle ورودی/خروجی هر ماژول
- Scenario Debugger: ردیابی جریان داده

برای تست خودکار در سمت وردپرس، راهنمای تست E2E وردپرس با Playwright را ببینید.

اشتباهات رایج در تست سناریو

اشتباه اول، نبود تست با داده واقعی. اشتباه دوم، نبود تست شاخه‌های Router. اشتباه سوم، نبود تست Error Handler. اشتباه چهارم، نبود تست با Payload حجیم. اشتباه پنجم، نبود تست با خطای احراز هویت.

امنیت و مدیریت Credential

در Make، همه Credentialها رمزنگاری‌شده ذخیره می‌شوند. توصیه می‌کنم هر سناریو Credential اختصاصی داشته باشد تا در زمان چرخش کلید، فقط یک سناریو متوقف شود.

Setting: Connection
  - Name: WooCommerce - Production
  - Scope: فقط دسترسی به Orders
  - Rotation: هر ۹۰ روز

الگوی حرفه‌ای این است که اصل Least Privilege را در Credential اعمال کنید. برای مطالعه بیشتر، راهنمای امن‌سازی API Key و Secret را ببینید.

Webhook Security در Make

Custom Webhook در Make می‌تواند با Header سفارشی یا Basic Auth محافظت شود. توصیه می‌کنم همیشه یک لایه احراز هویت اضافه کنید. همچنین مفهوم Integromat را در ویکی‌پدیا مرور کنید.

پرسش‌های پرتکرار درباره Make

تفاوت Operation و Task چیست؟

Operation واحد اندازه‌گیری Make است و در هر ماژول اجراشده، یک Operation مصرف می‌شود. Task واحد Zapier است.

آیا Make از Self-host پشتیبانی می‌کند؟

خیر، Make کاملاً ابری است. برای Self-host از n8n استفاده کنید.

تفاوت Filter و Router چیست؟

Filter اجرا را متوقف می‌کند، Router اجرا را به شاخه‌ها هدایت می‌کند.

آیا Make با WooCommerce کار می‌کند؟

بله، اپلیکیشن رسمی WooCommerce در Make موجود است. راهنمای ساخت افزونه ووکامرس حرفه‌ای را ببینید.

چرا سناریو من در Make کند اجرا می‌شود؟

احتمالاً تعداد Operation زیاد است یا از Polling Trigger به‌جای Instant استفاده می‌کنید.

آیا Make از Version Control پشتیبانی می‌کند؟

Make امکان Export Blueprint دارد که می‌توانید در Git نگه دارید.

نتیجه و مسیر ادامه

Make ابزار اصلی اتوماسیون پیچیده بدون کد است. کلید موفقیت، طراحی ساده سناریو، استفاده درست از Router و Filter، مدیریت Error، بهینه‌سازی Operation و تست در سه سطح است. اگر این لایه‌ها با دقت طراحی شوند، اتوماسیون در طول سال‌ها پایدار می‌ماند.

پیشنهاد می‌کنم مسیر یادگیری را با Zapier برای اتصال سرویس‌ها ادامه دهید و سپس n8n برای اتوماسیون self-host را به‌عنوان رویکرد پیشرفته مطالعه کنید.

اگر روی پروژه واقعی خود Make پیاده کرده‌اید، برایم جالب است بدانید کدام بخش — Router یا Error Handler — بیشترین چالش را ایجاد کرده است. تجربه خودتان را در دیدگاه‌ها بنویسید.