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