`

۱) مروری کوتاه و پیش‌نیازها

پیش‌نیازهای حداقلی:

  • دسترسی به یک سرور/کامپیوتر برای اجرای n8n یا ثبت‌نام در n8n Cloud. (اگر تازه‌کارید، استفاده از n8n Cloud ساده‌تر است؛ برای کنترل کامل داده‌ها، خودهاست کنید.)

  • Docker (یا آشنایی با راه‌اندازی محلی/نصب با npm).

  • حساب Google (برای Google Sheets) و یک سرویس ایمیل با دسترسی SMTP (یا سرویس‌هایی مثل SendGrid که با SMTP کار می‌کنند).

نکته: n8n هم به صورت Cloud و هم Self-hosted قابل استفاده است؛ مستندات رسمی تفاوت‌ها و نیازمندی‌ها را توضیح داده‌اند. n8n Docs


۲) نصب سریع — روش پیشنهادی: Docker / Docker-Compose

برای شروع سریع و تست، استفاده از Docker راحت‌ترین روش است. مستندات رسمی نصب به کمک Docker و docker-compose را توضیح داده است. نمونهٔ پایه‌ی docker run:

 
docker run -it -- rm \  --name n8n \  -p 5678:5678 \  -v ~/.n8n:/home/node/.n8n \  n8nio/n8n:latest 

یا نمونهٔ سادهٔ docker-compose.yml (برای توسعه):

 
version: '3.1' services:    n8n:      image: n8nio/n8n:latest      ports:        - "5678:5678"      environment:        - TZ=Asia/Baku        - N8N_BASIC_AUTH_ACTIVE=true        - N8N_BASIC_AUTH_USER=admin        - N8N_BASIC_AUTH_PASSWORD=your-password        - N8N_ENCRYPTION_KEY=some-strong-random-key      volumes:        - ~/.n8n:/home/node/.n8n   

نکات مهم:

  • پورت پیش‌فرض داخلی n8n ۵۶۷۸ است و می‌توانید با -p hostPort:5678 آن را در میزبان نگاشت کنید. n8n Docs +1

  • برای تولید (Production) حتماً از docker-compose و تنظیمات محیطی (مثل N8N_ENCRYPTION_KEY،‌ دیتابیس مناسب مثل Postgres، و SSL / reverse proxy) استفاده کنید؛ docs نصب و پیکربندی کامل را دارد. n8n Docs +1


۳) نکتهٔ دیتابیس و حالت پیش‌فرض

  • n8n به‌صورت پیش‌فرض از SQLite برای ذخیره‌ی ورک‌فلوها، اعتبارات و تاریخچهٔ اجراها استفاده می‌کند. برای محیط‌های تولید بزرگ‌تر توصیه می‌شود از Postgres استفاده کنید. n8n Docs


۴) باز کردن رابط وب و امنیت پایه

  • پس از اجرای کانتینر، مرورگر را باز کرده و به http://<HOST>:5678 بروید (مثلاً http://localhost:5678). اگر basic auth فعال کرده باشید، صفحه ورود را خواهید دید.

  • برای محافظت بهتر در تولید: فعال‌سازی basic auth (متغیرهای محیطی N8N_BASIC_AUTH_*)، استفاده از reverse proxy (nginx/Caddy) با HTTPS و ذخیرهٔ امن کلیدها توصیه می‌شود. (متغیرهای محیطی و نحوهٔ تنظیم در مستندات توضیح داده شده.) n8n Docs +1


۵) آماده‌سازی اعتبارنامه‌ها (Credentials)

قبل از ساخت ورک‌فلو، چند Credential باید در n8n ایجاد کنید:

  1. Google (برای Google Sheets):

    • در n8n به بخش Credentials بروید و یک Google OAuth2 credential بسازید.

    • برای این کار معمولاً باید یک پروژه در Google Cloud بسازید، Google Sheets API را فعال کنید و client id / secret دریافت کنید. n8n مستنداتِ نحوهٔ ساخت این credential را دارد. n8n Docs +1

  2. Send Email (SMTP):

    • در n8n یک credential از نوع SMTP (Send Email credential) تعریف کنید؛ نیاز به اطلاعات SMTP سرور (host, port, username, password) دارید. بعضی ارائه‌دهندگان ایمیل نیاز دارند «app password» بسازید. مستندات Send Email این مراحل را شرح می‌دهد. n8n Docs +1

  3. (اختیاری) Slack/Telegram webhook:

    • اگر می‌خواهید اطلاع تیم را از طریق Slack یا Telegram بفرستید، می‌توانید یک Incoming Webhook در آن سرویس بسازید و از HTTP Request node در n8n برای فرستادن پیام استفاده کنید. (برای Slack: ساخت incoming webhook در تنظیمات اپ workspace).


۶) ساخت اولین ورک‌فلو — گام‌به‌گام در UI

گام A — ایجاد ورک‌فلو جدید

  1. وارد n8n UI شوید.

  2. از بالای منو، Create → Workflow را انتخاب کنید. مستندات نحوهٔ ساخت ویرایشگر را توضیح داده‌اند. n8n Docs

نکته: به‌صورت پیش‌فرض، ورک‌فلوهای تازه غیرفعال (Inactive) هستند — تا زمانی که شما آمادهٔ تولید شوید، روی حالت توسعه (Inactive) کار کنید. بعداً برای اجرأ خودکار باید آن‌ها را Active کنید. n8n Docs


گام B — اضافه کردن Webhook Trigger

  1. روی کانواس کلیک کنید و یک Webhook node اضافه کنید.

  2. در تنظیمات node:

    • HTTP Method را روی POST (یا روشی که نیاز دارید) قرار دهید.

    • Path را مثلاً بگذارید new-lead (در مثال ما مسیر webhook/new-lead خواهد شد).

    • هنگام توسعه از Test URL استفاده کنید (Test URL در حالت توسعه فعال می‌شود و برای debug مفید است). توجه: تست webhook در حالت «Listen for test event» برای ۱۲۰ ثانیه فعال می‌ماند؛ مستندات Webhook این محدودیت تست را توضیح داده‌اند. n8n Docs +1


گام C — اضافه کردن Google Sheets (Append)

  1. یک Google Sheets node اضافه کنید و آن را به Webhook خروجی متصل کنید.

  2. در Google Sheets node:

    • Operation را Append (یا Create/Update بسته به نیاز) انتخاب کنید.

    • Spreadsheet ID و Sheet Name را وارد کنید (Spreadsheet ID را از URL برگهٔ گوگل بردارید).

    • فیلدهای مورد نظر را نگاشت (Map) کنید: مثلاً {name}, {email}, {message} را از ورودی Webhook به ستون‌های Google Sheet نگاشت کنید.

  3. از credential گوگل‌ای که قبلاً ساختید استفاده کنید. (راهنمای Google Sheets node جزئیات فیلدها و مجوزها را دارد). n8n Docs +1


گام D — اضافه کردن Send Email (SMTP)

  1. بعد از Google Sheets، یک Send Email node اضافه کنید.

  2. تنظیمات:

    • Operation: Send

    • To: مقدار {{$json["email"]}} (برداشتِ ایمیل از payload ورودی)

    • Subject و Body: متن موردنظر (می‌توانید HTML یا متن ساده بگذارید و از متغیرها استفاده کنید).

    • در Credential، SMTP credential که ساختید را انتخاب کنید. مستندات مربوط به Send Email نحوهٔ پیکربندی را دارد. n8n Docs +1


گام E — اطلاع تیم با HTTP Request (مثلاً Slack)

  1. یک HTTP Request node اضافه کنید و آن را به Send Email متصل کنید.

  2. اگر از Slack Webhook استفاده می‌کنید:

    • Method: POST

    • URL: آدرس incoming webhook که در Slack ساخته‌اید.

    • Body: JSON مانند { "text": "Lead جدید: {{$json["name"]}} — {{$json["email"]}}" }

  3. برای Telegram هم به‌صورت مشابه از URL API استفاده کنید. (HTTP Request node اَشکال مختلف احراز هویت را پشتیبانی می‌کند). n8n Docs


گام F — ذخیره، تست و دیباگ

  1. Save کنید.

  2. در Webhook node حالت Listen for test event را فعال کنید (یا از Test URL استفاده کنید).

  3. با یک curl یا ابزار مثل Postman‌، یک درخواست POST به Test URL بفرستید. مثال curl:

 
curl -X POST 'http://localhost:5678/webhook/new-lead' \  -H 'Content-Type: application/json' \  -d '{"name":"Omid","email":"omid@example.com","message":"سلام"}'   
  1. بازگشت به UI: در تب Executions می‌توانید جزئیات هر اجرای ورک‌فلو را ببینید — ورودی، خروجیِ هر نود، و خطاها برای رفعِ اشکال. مستندات بخش تست و توسعه وبهوک توضیحات مهمی دارد (مثل مدت زمان فعال بودن Test URL و حالت tunnel برای localhost). n8n Docs +1

نکتهٔ مهم: هنگام توسعه روی localhost اگر نیاز به تست با سرویس‌های بیرونی دارید، از تونل‌زنی (ngrok یا قابلیت tunnel خود n8n در مستندات) استفاده کنید تا یک URL عمومی بسازید. مستندات webhook برای حالت local/tunnel هشدارها و راهنمایی دارد. n8n Docs


۷) فعال‌سازی (Activate) و نکات تولید

  • وقتی همه‌چیز تست شد، workflow را Active کنید تا در حالت تولید (Production) هر بار که Webhook تولیدی فراخوانی شود، workflow اجرا شود. (نکته: ورک‌فلوهای تازه به‌طور پیش‌فرض غیرفعال هستند.) n8n Docs

  • در حالت تولید:

    • از آدرس Production Webhook URL استفاده کنید (نه Test URL).

    • اطمینان حاصل کنید که آدرسِ وبهوک (Base URL) در متغیر محیطی WEBHOOK_URL یا در پیکربندی reverse proxy صحیح تنظیم شده تا URLهای webhook درست ساخته شوند. docs روی این موضوع توضیحات دارد. n8n Docs +1


۸) عیب‌یابیِ رایج

  • Webhook unreachable: مطمئن شوید پورت‌ها درست نگاشت شده (مثلاً -p 5678:5678)، firewall باز است و reverse proxy به درستی هدایت می‌کند. اگر روال OAuth‌ یا callback دارید، مطمئن شوید آدرس بازگشتی (redirect) درست ثبت شده. n8n Docs +1

  • مشکلات اعتبارنامه Google: اگر Google Sheets کار نمی‌کند، بررسی کنید Google API فعال باشد و کلاینت ID/secret را بدرستی در credential وارد کرده باشید. n8n Docs

  • ایمیل ارسال نمی‌شود: با تنظیمات SMTP و لاگ‌های نود Send Email شروع کنید؛ بعضی سرویس‌دهنده‌ها نیاز به app password یا فعال‌سازی ارسال از طریق SMTP دارند. n8n Docs


۹) نکات امنیتی و بهترین شیوه‌ها

  • در محیط تولید از Postgres به جای SQLite استفاده کنید برای مقیاس و پایداری بهتر. n8n Docs

  • از N8N_ENCRYPTION_KEY قوی برای رمزنگاری داده‌های حساس استفاده کنید. n8n Docs

  • همیشه رابط n8n را پشت یک reverse proxy با HTTPS قرار دهید و دسترسی‌ها را محدود کنید. همچنین متغیرهای N8N_BASIC_AUTH_* را برای محافظت اولیه فعال کنید. Osher Digital +1


۱۰) جمع‌بندی (آنچه ساختیم)

در این راهنما:

  • n8n را با Docker نصب کردیم (سرور یا لوکال). n8n Docs

  • Credentialهای Google Sheets و SMTP را آماده کردیم. n8n Docs +1

  • یک ورک‌فلو ساختیم که از Webhook ورودی می‌گیرد → Google Sheets را بروز می‌کند → ایمیل تایید ارسال می‌کند → تیم را مطلع می‌سازد.

  • نحوهٔ تست با Test Webhook و curl را نشان دادیم و نکات فعال‌سازی/عیب‌یابی را گفتیم. n8n Docs +1


منابع رسمی و خواندنی (برای مطالعهٔ بیشتر)

  • مستندات نصب Docker n8n — Installation with Docker / Docker-Compose. n8n Docs +1

  • Webhook node — راهنمای استفاده و تست Webhook. n8n Docs +1

  • Google credentials & Google Sheets node. n8n Docs +1

  • Send Email node / SMTP credentials. n8n Docs +1

  • پایگاه‌داده‌ها: پیش‌فرض SQLite و پشتیبانی Postgres. n8n Docs

امید اسماعیلی
امید اسماعیلی