پرش به مطلب اصلی
فعال‌سازی Webhook URL در n8n

فعال‌سازی Webhook URL در n8n

بازارچه ابریخواندن 5 دقیقه

این راهنما نحوه کار نود Webhook Trigger در n8n و تنظیماتی که برای درست نمایش‌داده‌شدن آدرس Webhook روی دامنه واقعی سرویس لازم است را پوشش می‌دهد.

هر بار که نود Webhook Trigger به یک جریان‌داده اضافه شود، n8n یک Webhook URL منحصربه‌فرد برای آن می‌سازد؛ آدرسی که سرویس‌های خارج از n8n با ارسال درخواست به آن، جریان‌داده را اجرا می‌کنند. با این قابلیت، n8n به ابزارهای دیگر متصل می‌شود.

پیش‌نیازها

  • یک سرویس فعال n8n و دسترسی ویرایش جریان‌داده
  • یک دامنه HTTPS که از بیرون شبکه به n8n دسترسی دارد
  • دسترسی به تنظیمات متغیرهای محیطی سرویس در کنسول هم‌روش
  • ابزاری مانند curl یا Postman برای ارسال درخواست آزمایشی

هر Webhook Trigger دو آدرس جداگانه دارد:

  • Test URL: با زدن دکمه «Listen for test event» در ادیتور فعال می‌شود و فقط یک درخواست را می‌پذیرد. داده دریافتی مستقیماً در ادیتور نمایش داده می‌شود، به همین دلیل برای توسعه و دیباگ جریان‌داده مناسب است.
  • Production URL: پس از ذخیره و Publish کردن جریان‌داده در دسترس قرار می‌گیرد و نسخه منتشرشده آماده دریافت درخواست می‌ماند. در نسخه‌های قدیمی‌تر n8n این وضعیت با عنوان Active نمایش داده می‌شود. برخلاف Test URL، داده‌های دریافتی در ادیتور نمایش داده نمی‌شوند و باید از تب Executions بررسی شوند.

برای توسعه و آزمایش جریان‌داده از Test URL و برای استفاده واقعی و اتصال به سرویس‌های خارجی از Production URL استفاده می‌شود.


استفاده از Webhook در محیط Production

به‌صورت پیش‌فرض، Production URL بر اساس دامنه پیش‌فرضی ساخته می‌شود که هم‌روش هنگام راه‌اندازی سرویس n8n در اختیارتان قرار می‌دهد. اگر یک دامنه اختصاصی هم به سرویس اضافه شود، دامنه پیش‌فرض همچنان فعال می‌ماند؛ اما n8n به‌طور خودکار از دامنه جدید باخبر نمی‌شود و همچنان همان دامنه پیش‌فرض را برای ساخت و نمایش Production URL به کار می‌برد.

برای اینکه n8n دامنه اختصاصی شما را برای Webhook URL به کار ببرد، باید دو متغیر محیطی زیر (WEBHOOK_URL و N8N_PROXY_HOPS) به سرویس n8n اضافه شوند. این کار از طریق کنسول هم‌روش و در صفحه سرویس n8n انجام می‌شود: به تنظیمات سرویس و بخش متغیرهای محیطی (Environment Variables) مراجعه شده و این دو متغیر اضافه می‌شوند. جزئیات کامل این دو متغیر در مستند رسمی «Configure webhook URLs with reverse proxy» آمده است.

متغیرهایی که برای استفاده از webhook با دامین اختصاصی لازم هستند به‌صورت زیر تعریف می‌شوند:

WEBHOOK_URL=https://<your-domain.xyz>/
N8N_PROXY_HOPS=1

مقدار WEBHOOK_URL باید یک URL کامل باشد؛ یعنی با https:// شروع شود، دامین اختصاصی موردنظر را داشته باشد و با / تمام شود. اگر این مقدار بدون scheme (فقط نام دامنه) یا با http:// تنظیم شود، آدرس Webhook نمایش‌داده‌شده هم به همان شکل ناقص یا با http ساخته می‌شود و ممکن است توسط سرویس‌های خارجی که فقط https را می‌پذیرند رد شود. متغیر N8N_PROXY_HOPS تعداد لایه‌های پروکسی را مشخص می‌کند و مقدار آن بسته به معماری پروکسی (مثلاً وجود پروکسی معکوس) تنظیم می‌شود. پس از اعمال تغییرات، دکمه «اعمال تغییرات» زده می‌شود تا تنظیمات ذخیره شوند.


استفاده از ابزارها و Agent‌های خارجی

اگر ابزار یا Agentی که قرار است با webhook به n8n متصل شود، داخل ایران میزبانی شود، نیازی به تنظیمات این بخش نیست. اما اگر آن ابزار یا Agent خارج از ایران میزبانی شود، ممکن است به دلیل تحریم نتواند مستقیماً با دامنه سرویس n8n ارتباط برقرار کند؛ این محدودیت با قرار دادن یک CDN با قابلیت رفع تحریم جلوی دامنه n8n، یا راه‌اندازی یک reverse proxy اختصاصی که درخواست‌ها را به n8n هدایت کند (بخش «استفاده از پروکسی معکوس»)، برطرف می‌شود.


استفاده از پروکسی معکوس (Reverse Proxy)

سرویس‌های خارجی تحریمی نمی‌توانند مستقیم به n8n وصل شوند؛ برای دریافت درخواست از این سرویس‌ها باید یک Nginx به‌عنوان پروکسی معکوس جلو سرویس قرار بگیرد:

  1. Nginx با دامنه اختصاصی راه‌اندازی می‌شود.
  2. درخواست‌ها با proxy_pass به دامنه پیش‌فرض n8n هدایت می‌شوند.
  3. متغیرهای WEBHOOK_URL و N8N_PROXY_HOPS مطابق بخش قبل روی سرویس n8n تنظیم می‌شوند.
این راهنمایی کاربردی بود؟

با ثبت بازخوردتان در بهبود کیفیت مستندات مشارکت داشته باشید.