🔗

وب‌هوک

Webhook

دریافت درخواست HTTP از سرویس‌های خارجی و فعال‌سازی workflow

ابزارهای توسعه
مقدماتی
ویژه
۰بازدید
اشتراک‌گذاری:
مستندات رسمی

نمای کلی

نود Webhook یکی از قدرتمندترین نودهای n8n است که به شما اجازه می‌دهد workflowها را با یک درخواست HTTP فعال کنید.

قابلیت‌های کلیدی:

  • دریافت درخواست‌های GET, POST, PUT, DELETE, PATCH
  • پردازش داده‌های JSON, Form Data, XML
  • پاسخ به درخواست‌ها
  • احراز هویت درخواست‌ها
  • کار با Query Parameters و Headers

کاربردها:

  • دریافت Webhook از سرویس‌های خارجی (GitHub, Stripe, Shopify)
  • ساخت API برای اپلیکیشن‌ها
  • فعال‌سازی workflow از سرور
  • یکپارچه‌سازی با سیستم‌های دیگر

تفاوت با HTTP Request:

  • HTTP Request: ارسال درخواست به API خارجی (فعال)
  • Webhook: دریافت درخواست از خارج (منفعل)

کاربردهای متداول

1. دریافت Webhook از GitHub

زمانی که Push یا Pull Request جدید در GitHub ایجاد می‌شود:

  • در GitHub تنظیمات Repository > Webhooks
  • URL webhook n8n را وارد کنید
  • رویداد مورد نظر را انتخاب کنید
  • پیام در تلگرام دریافت کنید

2. پردازش پرداخت Stripe

زمانی که پرداخت موفق انجام شد:

  • Webhook Stripe را به n8n متصل کنید
  • اطلاعات پرداخت را دریافت و ذخیره کنید
  • ایمیل تایید به مشتری ارسال کنید

3. ساخت API ساده

ایجاد یک API برای دریافت داده:

  • Webhook با متد POST
  • اعتبارسنجی داده دریافتی
  • ذخیره در دیتابیس
  • پاسخ JSON برگردانید

4. فرم ارسال از وب‌سایت

دریافت داده فرم از سایت:

  • کاربر فرم را در سایت پر می‌کند
  • فرم به webhook ارسال می‌شود
  • داده پردازش و ذخیره می‌شود
  • ایمیل تایید ارسال می‌شود

نکات حرفه‌ای

💡 نکات حرفه‌ای:

  1. 1Production URL: همیشه از Production URL استفاده کنید (نه Test URL).
  1. 1Response Mode:
  • onReceived: فوراً پاسخ می‌دهد (برای webhookهای سریع)
  • lastNode: بعد از اتمام workflow پاسخ می‌دهد
  1. 1دسترسی به داده:
  • Body: {{$json.body}}
  • Query Params: {{$json.query}}
  • Headers: {{$json.headers}}
  1. 1پاسخ سفارشی: از Respond to Webhook Node برای پاسخ دلخواه استفاده کنید.
  1. 1لاگ درخواست‌ها: برای Debug، از Set Node داده را ذخیره کنید.
  1. 1امنیت:
  • از IP Whitelist استفاده کنید
  • Webhook Secret اضافه کنید
  • HTTPS را فعال کنید
  1. 1تست Webhook: از Postman یا curl برای تست استفاده کنید:
bash
curl -X POST https://your-n8n.com/webhook/test \
     -H "Content-Type: application/json" \
     -d '{"name":"test","value":123}'
  1. 1Retry Logic: سرویس‌هایی مثل Stripe چندبار تلاش می‌کنند. برای جلوگیری از تکرار، از idempotency key استفاده کنید.

رفع مشکلات

خطاهای رایج

1. Webhook 404 Not Found

علت: URL اشتباه است یا Workflow فعال نیست

راه‌حل

  • مطمئن شوید Workflow فعال (Active) است
  • URL webhook را از Production URL کپی کنید
  • مسیر webhook را بررسی کنید

2. Workflow اجرا نمی‌شود

علت: متد HTTP مطابقت ندارد

راه‌حل

  • متد Webhook (GET/POST/etc) را با درخواست تطبیق دهید
  • یا از متد ALL استفاده کنید

3. داده دریافت نمی‌شود

علت: فرمت داده اشتباه است

راه‌حل

  • Content-Type درخواست را بررسی کنید
  • از {{$json}} برای دسترسی به داده استفاده کنید
  • برای فرم‌ها از {{$json.body}} استفاده کنید

4. خطای Authentication

علت: Header یا اطلاعات احراز هویت اشتباه

راه‌حل

  • Header Name و Value را بررسی کنید
  • Username/Password را چک کنید
  • از Test URL برای تست استفاده کنید

5. Timeout Error

علت: Workflow خیلی طول می‌کشد

راه‌حل

  • Response Mode را onReceived بگذارید
  • پردازش سنگین را بعد از پاسخ انجام دهید

آیا این مستندات مفید بود؟