نود Facebook Trigger در N8N
نود Facebook Trigger نقطه شروع یک ورکفلو مبتنی بر رویدادهای فیسبوک و سرویسهای مرتبط با Meta است. این نود با استفاده از Webhook، تغییرات و رویدادهایی مانند ثبت لید جدید، انتشار محتوا، دریافت نظر، منشن شدن صفحه یا تغییر اطلاعات یک حساب را دریافت میکند و بلافاصله ورکفلو را به اجرا درمیآورد.
برخلاف روشهای زمانبندیشده که هر چند دقیقه یکبار اطلاعات را بررسی میکنند، Facebook Trigger رویدادها را تقریباً در لحظه دریافت میکند. این ویژگی باعث کاهش تعداد درخواستهای API، افزایش سرعت واکنش و بهینهتر شدن اتوماسیون میشود.
معرفی نود در N8N
Facebook Trigger یک نود از نوع Trigger و Integration است که از سیستم Webhooks در Facebook Graph API استفاده میکند. این نود یک آدرس Webhook در اختیار Meta قرار میدهد و پس از وقوع رویداد موردنظر، دادههای رویداد را دریافت میکند.
- دستهبندی: Trigger / Integration
- نوع اجرا: رویدادمحور یا Event-driven
- سرویس مقصد: Facebook Graph API و سرویسهای پشتیبانیشده Meta
- ورودی عادی: ندارد
- خروجی: داده JSON مربوط به رویداد دریافتشده
- کاربرد اصلی: شروع خودکار ورکفلو پس از وقوع رویداد در فیسبوک
این نود باید در ابتدای ورکفلو قرار بگیرد، زیرا Trigger Nodeها ورودی عادی ندارند و اجرای ورکفلو را آغاز میکنند. پس از دریافت رویداد میتوان دادهها را به نودهایی مانند IF، Switch، Set یا Edit Fields، HTTP Request، Google Sheets، Slack، Telegram، Gmail و ابزارهای CRM ارسال کرد.
نحوه کار Facebook Trigger
- N8N یک آدرس Webhook عمومی ایجاد میکند.
- نود، آدرس Webhook را برای اپلیکیشن Meta ثبت میکند.
- Meta برای اعتبارسنجی، یک درخواست Verification به Webhook ارسال میکند.
- پس از وقوع رویداد انتخابشده، Meta یک درخواست HTTP POST به Webhook میفرستد.
- Facebook Trigger محتوای درخواست را به داده قابل استفاده در ورکفلو تبدیل میکند.
- ورکفلو با داده رویداد اجرا میشود.
پیشنیازهای راهاندازی
- یک حساب Meta for Developers
- یک اپلیکیشن فعال در Meta Developers
- افزودن محصول یا قابلیت Webhooks به اپلیکیشن
- یک Access Token معتبر با سطح دسترسی مناسب
- دسترسی مدیریتی یا نقش مناسب روی Page، App یا Business موردنظر
- یک نمونه N8N با آدرس عمومی HTTPS
- فعال بودن ورکفلو برای استفاده از Production Webhook
- تأیید App Review برای دسترسیهایی که در حالت Live به مجوز Meta نیاز دارند
موارد استفاده
دریافت لیدهای Facebook Lead Ads
یکی از رایجترین کاربردهای این نود، دریافت رویداد leadgen از یک Facebook Page است. رویداد اولیه معمولاً شناسه لید، شناسه فرم و شناسه صفحه را برمیگرداند. برای دریافت نام، شماره تماس، ایمیل و پاسخهای فرم باید با استفاده از Lead ID یک درخواست جداگانه به Graph API ارسال شود.
- Facebook Trigger رویداد leadgen را دریافت میکند.
- نود HTTP Request اطلاعات کامل لید را از Graph API دریافت میکند.
- نود Edit Fields نام فیلدها را استاندارد میکند.
- اطلاعات در CRM، Airtable یا Google Sheets ذخیره میشود.
- پیام اطلاعرسانی برای تیم فروش ارسال میشود.
مانیتور کردن فعالیتهای یک صفحه
با انتخاب آبجکت Page و فیلدهای پشتیبانیشده میتوان تغییرات فید، نظرها، منشنها یا سایر رویدادهای صفحه را دریافت کرد. نوع دقیق فیلدهای قابل انتخاب به نسخه Graph API، نوع اپلیکیشن و مجوزهای تأییدشده بستگی دارد.
نمونه ورکفلو:
- Facebook Trigger برای دریافت رویداد Page
- Switch برای تشخیص نوع رویداد
- HTTP Request برای دریافت جزئیات پست یا نظر
- Slack یا Telegram برای اطلاعرسانی به مدیر شبکههای اجتماعی
ثبت رویدادها در پایگاه داده
برای تهیه گزارش و تاریخچه فعالیتها میتوان تمام رویدادهای دریافتی را در PostgreSQL، MySQL، MongoDB یا یک Data Warehouse ذخیره کرد.
- دریافت رویداد با Facebook Trigger
- استخراج شناسه رویداد، زمان، نوع آبجکت و نوع تغییر
- جلوگیری از ثبت تکراری با شناسه رویداد
- ذخیره داده خام و داده پردازششده در پایگاه داده
ارسال هشدار برای رویدادهای مهم
رویدادهای حساس مانند دریافت لید جدید، تغییر وضعیت حساب، ثبت نظر منفی یا ایجاد محتوای جدید میتوانند بهصورت خودکار به کانالهای ارتباطی ارسال شوند.
- Facebook Trigger برای دریافت رویداد
- IF برای بررسی اهمیت رویداد
- Code برای محاسبه امتیاز یا اولویت
- Slack، Microsoft Teams، Telegram یا Email برای ارسال هشدار
اتصال فیسبوک به CRM
پس از دریافت یک لید میتوان ابتدا با ایمیل یا شماره تماس، وجود مخاطب را در CRM بررسی کرد. اگر مخاطب وجود نداشت رکورد جدید ساخته میشود و در غیر این صورت اطلاعات قبلی بهروزرسانی خواهد شد.
- Facebook Trigger
- HTTP Request برای دریافت جزئیات لید
- HubSpot، Salesforce، Pipedrive یا Zoho CRM
- IF برای تشخیص مخاطب جدید یا موجود
- Create یا Update Contact
پارامترها و تنظیمات
نام و تعداد گزینههای Facebook Trigger ممکن است با توجه به نسخه N8N، نسخه Facebook Graph API و تغییرات Meta کمی متفاوت باشد. پارامترهای اصلی و پایدار این نود در ادامه آمدهاند.
Credential to connect with
- نام پارامتر: Credential to connect with
- نوع داده: Credential
- کاربرد: انتخاب اعتبارنامه Facebook Graph API برای احراز هویت و ثبت Webhook
- مثال: Facebook Graph API – Marketing App
Access Token موجود در Credential باید به اپلیکیشن و آبجکت موردنظر دسترسی داشته باشد. صرفاً معتبر بودن توکن کافی نیست و مجوزهای لازم نیز باید برای همان صفحه، حساب یا Business صادر شده باشند.
Object
- نام پارامتر: Object
- نوع داده: Options / String
- کاربرد: تعیین نوع آبجکتی که نود باید تغییرات آن را از Webhooks دریافت کند
- مثال عملی: انتخاب Page برای دریافت رویدادهای یک Facebook Page
آبجکتهای قابل نمایش به نسخه نود و پشتیبانی Meta بستگی دارند. گزینههای متداول ممکن است شامل موارد زیر باشند:
- Application: رویدادهای مرتبط با اپلیکیشن Meta
- Page: رویدادهای مربوط به صفحات فیسبوک
- User: برخی تغییرات مربوط به کاربران، در محدوده مجوزهای قابل دریافت
- Permissions: تغییرات مربوط به دسترسیها و مجوزها
- Instagram: رویدادهای حساب حرفهای Instagram متصل به Meta
- WhatsApp Business Account: رویدادهای حساب WhatsApp Business در نسخههای پشتیبانیشده
- Ad Account: رویدادهای حساب تبلیغاتی در صورت پشتیبانی نسخه API
- Certificate Transparency: رویدادهای مرتبط با شفافیت گواهی در نسخههای پشتیبانیشده
نمایش یک Object در رابط کاربری به معنای در دسترس بودن تمام رویدادهای آن نیست. Meta ممکن است بعضی آبجکتها یا فیلدها را منسوخ کند یا فقط برای اپلیکیشنهای تأییدشده ارائه دهد.
Field Names or IDs
- نام پارامتر: Field Names or IDs یا Fields
- نوع داده: Multi Options / Array of Strings
- کاربرد: مشخص کردن فیلدها یا رویدادهایی که اپلیکیشن باید برای آنها اعلان Webhook دریافت کند
- مثال عملی: انتخاب leadgen برای دریافت لیدهای جدید Facebook Lead Ads
فهرست Fields بعد از انتخاب Object تغییر میکند. برای Object از نوع Page ممکن است فیلدهایی مانند leadgen، feed، mention، name، picture یا فیلدهای دیگر نمایش داده شوند. فهرست نهایی به Graph API و دسترسیهای اپلیکیشن وابسته است.
Webhook URLs
- نام تنظیم: Test URL و Production URL
- نوع داده: URL
- کاربرد: دریافت درخواست Verification و رویدادهای ارسالی Meta
- مثال: https://automation.example.com/webhook/…
این آدرسها توسط N8N تولید میشوند و معمولاً بهصورت پارامتر قابل ویرایش نمایش داده نمیشوند. Test URL هنگام اجرای دستی و گوشدادن موقت به رویدادها استفاده میشود. Production URL پس از فعال شدن ورکفلو در دسترس دائمی قرار میگیرد.
تنظیمات Credential
بسته به نوع Credential و نسخه N8N، اطلاعات زیر ممکن است در بخش اعتبارنامه Facebook Graph API وجود داشته باشند:
- Access Token: توکن دسترسی برای فراخوانی Graph API
- Graph API Version: نسخه API مانند v23.۰ یا نسخه پشتیبانیشده در زمان پیکربندی
- App ID: شناسه اپلیکیشن Meta در Credentialهایی که آن را درخواست میکنند
- App Secret: کلید محرمانه اپلیکیشن در روشهای احراز هویت مبتنی بر App
نسخه Graph API باید با قابلیتها و مجوزهای اپلیکیشن سازگار باشد. استفاده از یک نسخه منسوخ میتواند باعث حذف فیلدها، شکست ثبت Subscription یا پاسخ خطای API شود.
تنظیمات عمومی نود
مانند سایر نودهای N8N، از تب Settings میتوان رفتار اجرایی نود را مدیریت کرد. گزینههای دقیق به نسخه N8N بستگی دارند، اما تنظیمات عمومی ممکن است شامل Notes، نمایش توضیحات در فلو و برخی تنظیمات مربوط به اجرای نود باشند.
نکات مهم هنگام پیکربندی
- آدرس N8N باید از اینترنت قابل دسترسی باشد.
- برای محیط عملیاتی باید از HTTPS معتبر استفاده شود.
- آدرسهای localhost مستقیماً توسط Meta قابل دسترسی نیستند.
- Workflow باید برای استفاده از Production URL فعال باشد.
- Access Token باید مجوزهای مناسب Object و Field انتخابشده را داشته باشد.
- اپلیکیشن در حالت Development فقط برای مدیران، توسعهدهندگان و کاربران آزمایشی اپ کار میکند.
- برای کاربران واقعی معمولاً باید اپلیکیشن در حالت Live باشد.
- برخی مجوزها به App Review و در مواردی Business Verification نیاز دارند.
- تغییر دامنه، پروتکل یا مسیر Webhook ممکن است به ثبت دوباره Subscription نیاز داشته باشد.
- نام Fields باید دقیقاً مطابق مقادیر مورد قبول Graph API باشد.
ورودیها و خروجیها
ورودی نود
Facebook Trigger ورودی عادی از نود قبلی دریافت نمیکند. ورودی واقعی آن یک درخواست Webhook از طرف Meta است. بنابراین این نود باید در ابتدای ورکفلو قرار بگیرد.
درخواست دریافتی معمولاً شامل مشخصات آبجکت، شناسه منبع، زمان رویداد، نام فیلد تغییرکرده و مقدار رویداد است. ساختار دقیق داده برای هر Object و Field متفاوت است.
خروجی نود
خروجی نود یک یا چند آیتم JSON است که از بدنه درخواست Webhook ساخته میشود. نودهای بعدی میتوانند با Expressionهای N8N به فیلدهای آن دسترسی پیدا کنند.
نمونه خروجی برای Facebook Lead Ads
{ "object": "page", "entry": [ { "id": "123456789012345", "time": 1760000000, "changes": [ { "field": "leadgen", "value": { "ad_id": "23850000000000001", "form_id": "987654321098765", "leadgen_id": "112233445566778", "created_time": 1760000000, "page_id": "123456789012345", "adgroup_id": "23850000000000002" } } ] } ]}
Expressionهای کاربردی
- نوع آبجکت:
{{$json.object}} - شناسه صفحه:
{{$json.entry[0].id}} - نام فیلد رویداد:
{{$json.entry[0].changes[0].field}} - شناسه لید:
{{$json.entry[0].changes[0].value.leadgen_id}} - شناسه فرم:
{{$json.entry[0].changes[0].value.form_id}} - زمان رویداد:
{{$json.entry[0].time}}
استفاده مستقیم از اندیس صفر برای ورکفلوهای ساده مناسب است، اما Meta میتواند چند Entry یا چند Change را در یک درخواست ارسال کند. در ورکفلوهای عملی بهتر است آرایههای entry و changes با نود Split Out یا Code به آیتمهای مستقل تبدیل شوند.
نمونه تبدیل چند Change به آیتمهای مستقل
const output = [];for (const entry of $json.entry ?? []) { for (const change of entry.changes ?? []) { output.push({ json: { object: $json.object, sourceId: entry.id, eventTime: entry.time, field: change.field, value: change.value } }); }}return output;
دریافت اطلاعات کامل لید
Webhook مربوط به leadgen معمولاً پاسخهای فرم را مستقیماً ارسال نمیکند. برای دریافت اطلاعات کامل باید یک نود HTTP Request بعد از Trigger قرار گیرد.
- Method: GET
- URL:
https://graph.facebook.com/{GRAPH_API_VERSION}/{{$json.entry[0].changes[0].value.leadgen_id}} - Authentication: Facebook Graph API Credential یا Bearer Token
- Query Fields:
created_time,field_data,form_id,ad_id
پاسخ احتمالی Graph API برای اطلاعات یک لید:
{ "created_time": "2026-07-20T10:30:00+0000", "id": "112233445566778", "form_id": "987654321098765", "field_data": [ { "name": "full_name", "values": ["علی رضایی"] }, { "name": "email", "values": ["ali@example.com"] }, { "name": "phone_number", "values": ["+989121234567"] } ]}
نکات پیشرفته و ترفندها
مدیریت چند Entry و چند Change
هر درخواست Webhook الزاماً فقط یک رویداد ندارد. Meta میتواند چند رویداد را در یک Payload تجمیع کند. طراحی ورکفلو بر اساس entry[0] و changes[0] ممکن است باعث نادیده گرفته شدن بخشی از دادهها شود.
- آرایه entry را به آیتمهای مجزا تبدیل کنید.
- آرایه changes هر Entry را نیز جدا کنید.
- پس از نرمالسازی، پردازش هر رویداد را مستقل انجام دهید.
- شناسه منبع، زمان و نوع Field را همراه هر آیتم نگه دارید.
جلوگیری از پردازش تکراری
سیستمهای Webhook ممکن است در صورت تأخیر یا خطای پاسخ، یک رویداد را دوباره ارسال کنند. برای عملیات حساس مانند ساخت مخاطب در CRM یا ارسال پیام باید از الگوی Idempotency استفاده شود.
- برای رویداد leadgen از leadgen_id بهعنوان کلید یکتا استفاده کنید.
- کلید رویداد را در Data Store، Redis یا پایگاه داده ذخیره کنید.
- قبل از پردازش، وجود کلید را بررسی کنید.
- روی ستون شناسه رویداد در پایگاه داده Unique Index قرار دهید.
پاسخ سریع و پردازش غیرهمزمان
Webhook باید در زمان کوتاهی پاسخ موفق دریافت کند. اجرای عملیات سنگین، فراخوانی چند API یا پردازش فایل در همان مسیر میتواند احتمال Timeout و ارسال مجدد رویداد را افزایش دهد.
- ورکفلو دریافتکننده را سبک نگه دارید.
- داده خام را سریع در Queue یا Data Store ثبت کنید.
- پردازش سنگین را با Execute Workflow به یک ورکفلو جداگانه منتقل کنید.
- در محیطهای پرترافیک از Queue Mode در N8N استفاده کنید.
استفاده از Switch برای چند نوع رویداد
اگر نود چند Field را دریافت میکند، نود Switch میتواند مسیر اجرا را بر اساس نام Field جدا کند.
- اگر Field برابر leadgen بود، اطلاعات لید دریافت شود.
- اگر Field برابر feed بود، اطلاعات پست یا نظر پردازش شود.
- اگر Field برابر mention بود، برای تیم محتوا هشدار ارسال شود.
- اگر نوع رویداد ناشناخته بود، داده خام برای بررسی ثبت شود.
ذخیره Payload خام
قبل از تغییر ساختار داده، یک نسخه از Payload خام را ذخیره کنید. این کار برای بررسی خطا، تطبیق با مستندات Meta و بازپردازش رویدادهای ناموفق مفید است.
- ذخیره object و entry بهصورت JSON
- ثبت زمان دریافت در N8N
- ثبت Workflow Execution ID
- ثبت نسخه Graph API مورد استفاده
- حذف یا رمزنگاری اطلاعات شخصی حساس
استفاده از Error Workflow
یک Error Workflow جداگانه برای ثبت و گزارش شکستها تعریف کنید. این ورکفلو میتواند نام ورکفلو، شناسه اجرا، پیام خطا و زمان رخداد را به Slack، Email یا سیستم مانیتورینگ ارسال کند.
مدیریت اطلاعات شخصی
لیدهای فیسبوک ممکن است شامل نام، ایمیل، تلفن و سایر دادههای شخصی باشند. این اطلاعات باید فقط در سیستمهای ضروری ذخیره شوند و دسترسی به Execution Data نیز محدود باشد.
- از ذخیره غیرضروری Access Token در دادههای خروجی خودداری کنید.
- Execution Data را بر اساس سیاست نگهداری اطلاعات پاکسازی کنید.
- اطلاعات حساس را در Logها نمایش ندهید.
- Credentialها را فقط در بخش Credentials نگهداری کنید.
- برای پایگاه داده و نسخه پشتیبان از رمزنگاری مناسب استفاده کنید.
محدودیتها و خطاها
محدودیتهای اصلی
- این نود رویدادهای گذشته را دریافت نمیکند و فقط رویدادهای بعد از ثبت Subscription را میگیرد.
- همه Objectها و Fields برای تمام اپلیکیشنها در دسترس نیستند.
- برخی مجوزها به App Review و Business Verification نیاز دارند.
- در حالت Development دامنه دریافت رویدادها معمولاً به کاربران دارای نقش در اپ محدود است.
- Webhook به آدرس عمومی HTTPS نیاز دارد.
- ساختار Payload میان Objectها و Fields مختلف یکسان نیست.
- بعضی رویدادها فقط شناسه منبع را ارسال میکنند و برای جزئیات به درخواست Graph API نیاز دارند.
- Graph API دارای محدودیت نرخ درخواست و سیاستهای استفاده است.
- Meta ممکن است با انتشار نسخههای جدید API، Fields یا مجوزها را تغییر دهد.
- این نود جایگزین نود Action برای ایجاد پست، ارسال درخواست یا ویرایش داده نیست.
Webhook verification failed
علتهای احتمالی:
- آدرس N8N از اینترنت قابل دسترسی نیست.
- گواهی SSL نامعتبر است.
- Reverse Proxy آدرس یا پروتکل را اشتباه بازنویسی میکند.
- Test Webhook در حالت Listening قرار ندارد.
- دامنه عمومی N8N بهدرستی پیکربندی نشده است.
راهحل: دسترسی عمومی URL را بررسی کنید، HTTPS معتبر قرار دهید، تنظیمات WEBHOOK_URL و Reverse Proxy را کنترل کنید و هنگام آزمایش، نود را در حالت Listen for Test Event نگه دارید.
Invalid OAuth access token
علت: توکن منقضی، لغو یا اشتباه است.
راهحل: یک Access Token معتبر ایجاد کنید، Credential را بهروزرسانی کنید و مطمئن شوید توکن متعلق به اپلیکیشن و حساب صحیح است.
Unsupported get request یا Object does not exist
علتهای احتمالی:
- شناسه Object اشتباه است.
- توکن به Object دسترسی ندارد.
- نسخه Graph API از آن endpoint پشتیبانی نمیکند.
- Page یا Asset به Business یا کاربر دیگری تعلق دارد.
راهحل: شناسه را با Graph API Explorer بررسی کنید، مجوزهای توکن را کنترل کنید و نسخه API را با مستندات Meta تطبیق دهید.
Permissions error یا OAuthException با کد ۲۰۰
علت: اپلیکیشن یا توکن مجوز لازم برای Object یا Field انتخابشده را ندارد.
راهحل: مجوزهای موردنیاز را در App Dashboard اضافه کنید، App Review را تکمیل کنید، دسترسی کاربر یا Page را بررسی کنید و توکن جدیدی با مجوزهای صحیح بسازید.
رویداد در حالت تست دریافت میشود اما در Production اجرا نمیشود
علتهای احتمالی:
- Workflow فعال نشده است.
- Meta هنوز به Test URL متصل است.
- Production URL پس از تغییر دامنه دوباره ثبت نشده است.
- ورکفلو پس از تغییر Credential یا تنظیمات دوباره فعال نشده است.
راهحل: Workflow را Active کنید، Subscription ثبتشده را بررسی کنید و در صورت نیاز نود را غیرفعال و دوباره فعال کنید تا Production Webhook مجدداً ثبت شود.
لید دریافت میشود اما نام و شماره تلفن وجود ندارد
علت: رویداد leadgen فقط شناسه لید و اطلاعات پایه را ارسال کرده است.
راهحل: با Lead ID و یک Page Access Token معتبر، اطلاعات کامل لید را از Graph API دریافت کنید. دسترسی مرتبط با مدیریت و دریافت لیدها نیز باید برای اپلیکیشن تأیید شده باشد.
دریافت چندباره یک رویداد
علت: پاسخ Webhook با تأخیر ارسال شده، اجرای N8N شکست خورده یا Meta رویداد را دوباره تحویل داده است.
راهحل: پردازش را Idempotent طراحی کنید، از شناسه یکتا استفاده کنید و عملیات سنگین را به یک ورکفلو جداگانه انتقال دهید.
خالی بودن فهرست Fields
علتهای احتمالی:
- Credential نامعتبر است.
- Object انتخابشده در نسخه API پشتیبانی نمیشود.
- دسترسی لازم برای دریافت فهرست Fields وجود ندارد.
- نسخه N8N یا Graph API قدیمی است.
راهحل: Credential و نسخه API را بررسی کنید، N8N را به نسخه پایدار جدید ارتقا دهید و پشتیبانی Object را در مستندات Meta کنترل کنید.
نکات عیبیابی
- Payload دریافتی را قبل از پردازش در یک پایگاه داده ثبت کنید.
- Executionهای ناموفق را از بخش Executions بررسی کنید.
- Access Token را با ابزار Access Token Debugger ارزیابی کنید.
- اشتراک Webhook و Fields ثبتشده را در Meta App Dashboard بررسی کنید.
- از Graph API Explorer برای آزمایش endpointها استفاده کنید.
- نسخه Graph API ثبتشده در Credential را با endpointهای استفادهشده یکسان نگه دارید.
- پس از تغییر دامنه یا Credential، ثبت مجدد Webhook را انجام دهید.
ایدهها
- سیستم پاسخ سریع به لید: دریافت لید Facebook Lead Ads، محاسبه امتیاز لید، ثبت در CRM و ارسال اعلان فوری برای کارشناس فروش.
- داشبورد تحلیل منشنها: دریافت رویدادهای مرتبط با منشن، ذخیره در پایگاه داده و نمایش روند روزانه در ابزارهای گزارشگیری.
- سیستم توزیع خودکار لید: تخصیص لیدها بین کارشناسان بر اساس شهر، محصول، ساعت کاری یا ظرفیت هر کارشناس.
- آرشیو فعالیتهای صفحه: ذخیره رویدادهای مهم Page در PostgreSQL همراه با زمان، نوع رویداد و Payload خام برای تحلیل و گزارش.
- هشدار هوشمند شبکههای اجتماعی: تحلیل متن رویداد یا نظر با مدل هوش مصنوعی و ارسال هشدار فوری در صورت تشخیص نارضایتی، بحران یا فرصت فروش.
