نود On Form Submission در N8N
نود On Form Submission وقتی به کار میآید که میخواهید با هر بار ارسال یک فرم (Form) در n8n، یک ورکفلو به صورت خودکار اجرا شود. این نود در عمل نقش «درِ ورودی» ورکفلو را بازی میکند: کاربر فرم را پر میکند، ارسال میکند، و بلافاصله دادهها وارد جریان اتوماسیون شما میشود.
معرفی نود در N8N
نود On Form Submission یک نود تریگر است که با ثبت شدن یک ارسال جدید از فرمهای داخلی n8n (n8n Forms) فعال میشود و دادههای فرم را به عنوان خروجی در اختیار ادامه ورکفلو قرار میدهد.
- کارکرد اصلی: اجرای خودکار ورکفلو بعد از Submit شدن یک فرم
- دستهبندی نود: Trigger
- اهمیت در ورکفلوها: شروع جریانهای ثبتنام، دریافت لید، تیکت پشتیبانی، درخواست همکاری، نظرسنجی و هر سناریویی که ورودی آن «فرم» است
موارد استفاده
1) ثبت لید (Lead) و ارسال به CRM
کاربر فرم «درخواست دمو» را پر میکند. ورکفلو با On Form Submission شروع میشود، سپس:
- با نود Set فیلدها را یکدست میکنید (نام، ایمیل، شرکت)
- با نود HubSpot یا Salesforce لید را ثبت میکنید
- با نود Email یا Gmail ایمیل تایید ارسال میکنید
2) ساخت تیکت پشتیبانی و نوتیفیکیشن تیم
فرم «پشتیبانی» ارسال میشود. سپس:
- با IF شدت مشکل (Severity) را بررسی میکنید
- در Jira یا Zendesk تیکت میسازید
- در Slack یا Telegram به تیم اطلاع میدهید
3) مدیریت درخواستهای استخدام
فرم «استخدام» با لینک رزومه یا فایل پیوست ثبت میشود. سپس:
- با HTTP Request لینک فایل را دانلود میکنید (اگر لینک باشد)
- با Google Drive یا S3 ذخیره میکنید
- با Notion یا Airtable رکورد متقاضی را ایجاد میکنید
4) ساخت ورکفلوهای تایید (Approval) داخلی
فرم «درخواست خرید» ارسال میشود. سپس:
- با Switch بر اساس مبلغ، مسیر تایید را تغییر میدهید
- برای مدیر پیام ارسال میکنید
- پس از تایید، سفارش/درخواست ثبت میشود
5) اتصال به دیتابیس و گزارشگیری
فرم نظرسنجی ارسال میشود. سپس با Postgres یا MySQL ذخیره و با Google Sheets گزارش بهروزرسانی میشود.
پارامترها و تنظیمات
این نود معمولاً تنظیمات پیچیدهای ندارد و تمرکز اصلی آن روی انتخاب فرم و دریافت رویداد ارسال است. بسته به نسخه n8n و نحوه فعالسازی Forms، نام برخی فیلدها ممکن است کمی متفاوت نمایش داده شود، اما منطق کلی یکسان است.
فهرست پارامترها
- Form (نوع داده: انتخابی / Dropdown)
توضیح: مشخص میکند ارسال مربوط به کدام فرم، تریگر را فعال کند.
مثال عملی: انتخاب فرم «Demo Request» تا هر بار کاربر این فرم را Submit کرد، ورکفلو اجرا شود.
- Mode / Event (نوع داده: انتخابی، در برخی نسخهها ممکن است نمایش داده نشود)
توضیح: نوع رویداد. معمولاً رویداد اصلی همان Submission است.
مثال عملی: اجرای ورکفلو فقط روی «ارسال نهایی» و نه تغییرات در فرم.
- Options (نوع داده: مجموعه تنظیمات اختیاری، بسته به نسخه)
توضیح: تنظیمات تکمیلی مرتبط با خروجی، متادیتا، یا شیوه ارسال دادهها.
مثال عملی: اگر گزینهای برای شامل کردن متادیتا وجود داشته باشد، برای ذخیره زمان ارسال و شناسه ارسال، آن را فعال میکنید.
نکات مهم هنگام پیکربندی
- نامگذاری فیلدهای فرم: در Forms بهتر است فیلدها نامهای واضح و بدون فاصلههای عجیب داشته باشند (مثل firstName, email, company). این کار در مرحله مپکردن دادهها در نودهای بعدی بسیار کمک میکند.
- اعتبارسنجی (Validation): اگر فرم اجازه ارسال داده ناقص بدهد، در ادامه ورکفلو مجبور به کنترل خطا میشوید. تا جای ممکن اعتبارسنجی را در خود فرم فعال کنید (مثل Required بودن ایمیل).
- یکسانسازی نوع داده: برخی فیلدها ممکن است به صورت رشته بیایند (حتی اعداد). اگر قرار است در دیتابیس ذخیره کنید، قبل از Insert نوع داده را تبدیل کنید.
- تست با داده واقعی: بهترین تست برای این نود، ارسال واقعی فرم است تا خروجی دقیق فیلدها را ببینید و بر اساس آن مپ کنید.
ورودیها و خروجیها
ورودی (Input)
این نود تریگر است و ورودی ندارد. اجرای ورکفلو را با وقوع رویداد «ارسال فرم» آغاز میکند.
خروجی (Output)
خروجی معمولاً یک آیتم (Item) شامل دادههای ارسالشده و مقداری متادیتا است. ساختار دقیق به تنظیمات Forms و نسخه n8n وابسته است، اما الگوی رایج به شکل زیر است:
نمونه JSON خروجی
نمونه زیر یک نمای نزدیک به واقعیت از دادههایی است که معمولاً دریافت میشود:
{ "form": { "id": "frm_123456", "name": "Demo Request" }, "submission": { "id": "sub_987654", "createdAt": "2026-02-17T10:25:12.345Z" }, "fields": { "fullName": "Ali Ahmadi", "email": "ali@example.com", "company": "Example Co", "message": "لطفاً برای دموی محصول تماس بگیرید", "budget": "50000000", "agreeToTerms": true }}
- fields: مهمترین بخش، شامل مقادیر فیلدهای فرم
- submission: اطلاعات ارسال (شناسه و زمان)
- form: اطلاعات فرم
نکته درباره فایلها (Attachments)
اگر فرم امکان آپلود فایل داشته باشد، خروجی ممکن است به جای فایل خام، لینک/متادیتا بدهد یا فایل را به صورت داده باینری در آیتم قرار دهد. در این حالت:
- اگر لینک میدهد، با HTTP Request دانلود و سپس با نود مقصد (Drive/S3) ذخیره کنید.
- اگر باینری میدهد، در نودهای بعدی قسمت Binary را برای انتقال فایل استفاده کنید.
نکات پیشرفته و ترفندها
استانداردسازی دادهها با Set و Code
برای جلوگیری از آشفتگی در مپکردن، بلافاصله بعد از On Form Submission از نود Set استفاده کنید و خروجی استاندارد بسازید:
- نام فیلدها را یکسان کنید (مثلاً fullName به name)
- مقادیر خالی را مقدار پیشفرض بدهید
- اعداد را تبدیل کنید (budget به Number)
اگر تبدیلها پیچیده شد، از Code (JavaScript) برای پاکسازی استفاده کنید.
جلوگیری از اسپم و ارسالهای تکراری
- Rate limit ساده: ایمیل را با یک کلید یکتا در دیتابیس/Google Sheets ذخیره کنید و اگر در بازه زمانی کوتاه تکرار شد، مسیر را قطع کنید (با IF).
- Duplicate check: قبل از ساخت لید/تیکت، در CRM جستجو کنید؛ اگر وجود داشت، فقط یک Note اضافه کنید.
مسیریابی پیشرفته با Switch
اگر فرم چند نوع درخواست دارد (Sales / Support / Partnership)، با Switch بر اساس fields.requestType مسیرهای جدا بسازید و برای هر مسیر نودهای اختصاصی قرار دهید.
ثبت لاگ قابل پیگیری
برای عیبیابی، یک نسخه از داده خام خروجی را در یک جدول لاگ (Airtable/DB) ذخیره کنید. سپس در خطاها راحتتر علت را پیدا میکنید.
بهینهسازی: کم کردن حجم داده در ادامه مسیر
اگر خروجی فرم شامل فیلدهای زیاد یا متادیتای غیرضروری است، با Set گزینه Keep Only Set را فعال کنید تا فقط فیلدهای مورد نیاز به مراحل بعد برود. این کار هم خوانایی ورکفلو را بهتر میکند و هم انتقال داده را سبکتر.
محدودیتها و خطاها
محدودیتها
- وابستگی به Forms: این تریگر برای فرمهای داخلی n8n طراحی شده است و برای فرمهای خارجی (Typeform, Google Forms و …) باید از نودهای اختصاصی آن سرویس یا وبهوک استفاده شود.
- تفاوت ساختار خروجی: ساختار دقیق داده ممکن است با تغییر نسخه n8n یا تنظیمات فرم کمی تغییر کند؛ همیشه خروجی اجرای واقعی را مبنا قرار دهید.
- فایلها: مدیریت فایلها ممکن است نیازمند مراحل اضافی (دانلود/انتقال باینری) باشد.
خطاهای رایج و راهحلها
- ورکفلو اجرا نمیشود
علتهای احتمالی: فرم اشتباه انتخاب شده، ورکفلو Active نیست، یا ارسال از فرم دیگری انجام شده است.
راهحل: فرم صحیح را در نود انتخاب کنید، ورکفلو را Active کنید، یک ارسال تست از همان فرم انجام دهید.
- فیلد مورد انتظار در خروجی وجود ندارد
علتهای احتمالی: نام فیلد در فرم تغییر کرده یا فیلد اختیاری بوده و کاربر پر نکرده است.
راهحل: در Set مقدار پیشفرض قرار دهید و در IF وجود فیلد را چک کنید.
- خطا در ذخیره در دیتابیس به خاطر نوع داده
علتهای احتمالی: مقدار عددی به شکل رشته ارسال شده یا مقدار boolean به شکل متن آمده است.
راهحل: قبل از Insert تبدیل نوع انجام دهید (Number(), Boolean()) یا از Code node استفاده کنید.
- ارسالهای تکراری و ایجاد رکوردهای چندگانه
علتهای احتمالی: کاربر چند بار Submit کرده یا صفحه را رفرش کرده است.
راهحل: کنترل تکراری با جستجو در مقصد (CRM/DB) و استفاده از کلید یکتا مثل email + createdAt (یا email + روز) انجام شود.
ایده ها
- سیستم ثبت درخواست جلسه: بعد از ارسال فرم، به صورت خودکار یک رویداد در Google Calendar بسازید و لینک جلسه را ایمیل کنید.
- پیشفاکتور خودکار: اطلاعات سفارش از فرم گرفته شود، در Google Docs/HTML یک پیشفاکتور تولید و PDF شود، سپس ارسال گردد.
- غربالگری اولیه متقاضیان: با چند سوال کلیدی، امتیازدهی کنید و فقط موارد بالای امتیاز مشخص را به مدیر منابع انسانی ارسال کنید.
- نظرسنجی NPS و هشدار برای امتیاز پایین: اگر امتیاز کمتر از 7 بود، تیکت پیگیری بسازید و به تیم موفقیت مشتری اطلاع دهید.
- بانک ایده داخلی: ایدهها با فرم ثبت شوند، در Notion ذخیره شوند، و با برچسبها (Tag) دستهبندی و برای رایگیری ارسال شوند.
