نود Notion در N۸N

نود Notion در n8n

نود Notion در n8n یک پل آماده بین ورکفلوهای اتوماسیون و فضای کاری Notion است. با این نود می‌توانید دیتابیس‌ها و صفحات Notion را بخوانید، ایجاد کنید، به‌روزرسانی کنید و آیتم‌ها را جستجو کنید؛ یعنی دقیقاً همان کاری که معمولاً به‌صورت دستی داخل Notion انجام می‌دهید را می‌توانید به یک فرآیند خودکار تبدیل کنید.

معرفی نود در n8n

نود Notion برای اتصال n8n به Notion API استفاده می‌شود و امکان کار با «Database» و «Page» و در بسیاری از سناریوها «Block» را فراهم می‌کند. این نود معمولاً برای ساخت سیستم‌های مدیریت کار، CRM ساده، ثبت درخواست‌ها، آرشیو محتوا و گزارش‌گیری از داده‌ها به‌کار می‌رود.

  • کارکرد اصلی: خواندن/نوشتن داده در Notion (ایجاد صفحه، آپدیت پراپرتی‌ها، کوئری دیتابیس، گرفتن اطلاعات صفحات و…)
  • دسته‌بندی نود: Integration (یکپارچه‌سازی با سرویس خارجی)
  • اهمیت در ورکفلوها: Notion اغلب نقش «مرکز داده» یا «داشبورد تیم» را دارد. وقتی Notion به n8n وصل شود، می‌تواند نقطه ورود/خروج داده برای ده‌ها سرویس دیگر (ایمیل، فرم، Slack/Telegram، Google Sheets، Jira و…) باشد.

موارد استفاده

۱) ثبت خودکار لیدها (Leads) در دیتابیس Notion

سناریو: فرم سایت (Webhook) داده می‌فرستد و شما می‌خواهید هر لید به‌صورت یک آیتم در دیتابیس Notion ذخیره شود، با فیلدهایی مثل نام، شماره تماس، منبع، وضعیت.

  • ترکیب پیشنهادی: Webhook → Set → Notion (Create Page) → Slack (Notify)

۲) تبدیل پیام‌های پشتیبانی به تسک

سناریو: هر پیام جدید در یک کانال (مثلاً Telegram یا Slack) به یک تسک در Notion تبدیل شود و برای آن Priority و Assignee تنظیم شود.

  • ترکیب پیشنهادی: Telegram Trigger → Notion (Create Page) → Notion (Update Page برای افزودن برچسب‌ها)

۳) گزارش‌گیری روزانه از دیتابیس Notion

سناریو: هر روز ساعت ۹ صبح، آیتم‌های «Due Today» از دیتابیس تسک‌ها خوانده شود و یک خلاصه برای تیم ارسال شود.

  • ترکیب پیشنهادی: Cron → Notion (Query Database با فیلتر تاریخ) → Function (ساخت متن خلاصه) → Email/Slack

۴) همگام‌سازی Notion با Google Sheets

سناریو: آیتم‌های دیتابیس Notion خوانده شوند و در یک شیت ثبت/به‌روزرسانی شوند (برای تحلیل یا بکاپ).

  • ترکیب پیشنهادی: Cron → Notion (Query Database) → Split In Batches → Google Sheets (Upsert)

۵) آرشیو خودکار محتوا

سناریو: لینک‌های ذخیره‌شده در Pocket/RSS خوانده شوند و به‌عنوان آیتم‌های دیتابیس «Reading List» در Notion با Tag و تاریخ ثبت شوند.

  • ترکیب پیشنهادی: RSS Trigger → Notion (Create Page) → Notion (Append Block برای خلاصه)

پارامترها و تنظیمات

در n8n ممکن است نام دقیق برخی گزینه‌ها با نسخه نود/اپراتورها کمی تفاوت داشته باشد، اما مفاهیم و ساختار کلی ثابت است. تنظیمات اصلی این نود معمولاً حول محور «Credentials»، «Resource»، «Operation» و «پارامترهای بدنه درخواست» می‌چرخد.

۱) Credentials (اعتبارنامه اتصال)

  • Notion API Token

    نوع داده: Secret/String

    کاربرد: توکن یک Integration در Notion برای دسترسی به صفحات/دیتابیس‌ها

    مثال عملی: ساخت Integration در Notion و قرار دادن Internal Integration Token در n8n

    نکته مهم: دیتابیس/صفحه باید با Integration شما Share شود، وگرنه Notion خطای دسترسی می‌دهد.

۲) Resource (منبع)

  • Resource

    نوع داده: Option (مثل Database / Page / Block)

    کاربرد: تعیین می‌کند با کدام نوع آبجکت Notion کار دارید

    مثال عملی: برای افزودن ردیف جدید به دیتابیس: Resource = Page (چون هر ردیف دیتابیس یک Page است)

۳) Operation (عملیات)

عملیات‌ها بسته به Resource تغییر می‌کنند. رایج‌ترین‌ها:

  • Create (ایجاد)

    نوع داده: Option

    کاربرد: ساخت یک Page جدید (در یک Database یا زیر یک Page)

    مثال عملی: ساخت آیتم جدید تسک با Title و Due Date

  • Update (به‌روزرسانی)

    نوع داده: Option

    کاربرد: تغییر پراپرتی‌ها (Properties) یک Page موجود

    مثال عملی: تغییر Status از “Todo” به “Done”

  • Get (دریافت)

    نوع داده: Option

    کاربرد: دریافت جزئیات یک Page/Database

    مثال عملی: دریافت پراپرتی‌ها برای استفاده در یک شرط (IF)

  • Search / Query (جستجو/کوئری)

    نوع داده: Option

    کاربرد: پیدا کردن صفحات یا فیلتر کردن رکوردهای دیتابیس

    مثال عملی: پیدا کردن همه تسک‌های Due Today یا همه لیدهایی که Status=New دارند

۴) Database ID / Page ID

  • Database ID

    نوع داده: String

    کاربرد: مشخص می‌کند روی کدام دیتابیس عملیات انجام شود (خصوصاً در Query یا Create داخل دیتابیس)

    مثال عملی: قراردادن ID دیتابیس CRM برای ایجاد لید

    نکته مهم: ID را معمولاً از URL یا از خروجی نودهای Get/Search می‌گیرید. بهتر است به‌جای هاردکد، از Expression استفاده شود تا قابل‌تغییر و محیطی باشد.

  • Page ID

    نوع داده: String

    کاربرد: برای Update/Get یک صفحه مشخص

    مثال عملی: وقتی یک رکورد را با Query پیدا کردید، از id همان برای Update استفاده کنید

۵) Properties (پراپرتی‌های Notion)

بخش Properties مهم‌ترین قسمت است. باید نام پراپرتی‌ها دقیقاً مطابق نام فیلدهای دیتابیس در Notion باشد و نوع داده هم با نوع فیلد همخوانی داشته باشد.

  • Title

    نوع داده: Rich Text/Title

    کاربرد: عنوان آیتم (معمولاً فیلد اصلی دیتابیس)

    مثال عملی: Title = {{$json.name}} یا “Lead: {{$json.email}}”

    نکته: اگر Title ارسال نشود، ساخت Page در دیتابیس غالباً خطا می‌دهد.

  • Rich Text

    نوع داده: String

    کاربرد: توضیحات کوتاه، یادداشت داخلی، پیام مشتری

    مثال عملی: Notes = {{$json.message}}

  • Select / Multi-select

    نوع داده: String یا Array

    کاربرد: وضعیت، اولویت، دسته‌بندی

    مثال عملی: Status = “New” یا Tags = [“Support”,”VIP”]

    نکته: مقدار باید یکی از گزینه‌های موجود در Notion باشد؛ در غیر این صورت ممکن است خطا بدهد یا نیاز به ساخت گزینه داشته باشد (بسته به API/تنظیمات).

  • Date

    نوع داده: ISO 8601 String

    کاربرد: Due date، تاریخ تماس، تاریخ ثبت

    مثال عملی: Due = {{$now.toISO()}} یا “۲۰۲۶-۰۲-۱۰”

    نکته: منطقه زمانی و فرمت تاریخ مهم است؛ برای زمان‌دار بودن بهتر است ISO کامل با ساعت ارسال شود.

  • Number

    نوع داده: Number

    کاربرد: مبلغ، امتیاز، تخمین زمان

    مثال عملی: Amount = {{$json.amount}}

  • Checkbox

    نوع داده: Boolean

    کاربرد: انجام شد/نشد، تایید شد/نشد

    مثال عملی: Approved = true

  • URL / Email / Phone

    نوع داده: String

    کاربرد: نگهداری اطلاعات تماس یا لینک‌ها

    مثال عملی: Email = {{$json.email}} ، Website = {{$json.url}}

  • People

    نوع داده: Array (User IDs)

    کاربرد: Assign کردن آیتم به افراد

    مثال عملی: Assignee = [“”]

    نکته: باید user_id درست داشته باشید؛ گرفتن لیست کاربران معمولاً با API و سطح دسترسی مناسب انجام می‌شود.

  • Relation

    نوع داده: Array (Page IDs)

    کاربرد: لینک کردن رکوردها بین دیتابیس‌ها (مثلاً لید به شرکت)

    مثال عملی: Company = [“”]

۶) Query Filters و Sorts (برای Query Database)

  • Filter

    نوع داده: Object

    کاربرد: فیلتر کردن رکوردها بر اساس پراپرتی‌ها

    مثال عملی: فیلتر تسک‌هایی که Status برابر “Todo” است

    نکته: ساختار فیلتر دقیق و حساس به نوع پراپرتی است (text، select، date، number و…).

  • Sorts

    نوع داده: Array

    کاربرد: مرتب‌سازی خروجی (مثلاً جدیدترین‌ها اول)

    مثال عملی: مرتب‌سازی بر اساس Created time نزولی

  • Limit / Return All

    نوع داده: Number / Boolean

    کاربرد: کنترل حجم داده و جلوگیری از کندی یا مصرف زیاد

    مثال عملی: Limit = ۲۰ برای گزارش روزانه

نکات مهم هنگام پیکربندی

  • Share کردن دیتابیس/صفحه با Integration: اگر انجام نشود، با وجود توکن درست هم خطای ۴۰۳ یا Not authorized می‌گیرید.
  • نام پراپرتی‌ها دقیقاً مطابق Notion: تفاوت کوچک (فاصله، حروف بزرگ/کوچک) باعث خطا یا خالی ماندن فیلد می‌شود.
  • نوع فیلد را رعایت کنید: مثلا برای Date باید تاریخ معتبر بدهید؛ برای Select باید مقدار موجود باشد.
  • کنترل نرخ درخواست: در حجم بالا از Split In Batches و Wait استفاده کنید.

ورودی‌ها و خروجی‌ها

ورودی‌ها (Input)

این نود معمولاً داده‌ها را از نودهای قبلی به شکل JSON می‌گیرد. برای مثال، اگر از Set یا Webhook آمده باشد:

نمونه ورودی:

{  "name": "Ali Ahmadi",  "email": "ali@example.com",  "source": "Website Form",  "message": "I need a demo",  "amount": 1200000,  "due": "2026-02-10T09:00:00.000Z"}

خروجی‌ها (Output)

خروجی معمولاً پاسخ Notion API است که شامل id، اطلاعات parent، properties و زمان‌های ایجاد/ویرایش می‌شود.

نمونه خروجی (خلاصه‌شده):

{  "object": "page",  "id": "c2f6a1d1-xxxx-xxxx-xxxx-xxxxxxxxxxxx",  "created_time": "2026-02-10T09:01:10.000Z",  "last_edited_time": "2026-02-10T09:01:10.000Z",  "parent": {    "type": "database_id",    "database_id": "9a8b7c6d-xxxx-xxxx-xxxx-xxxxxxxxxxxx"  },  "properties": {    "Name": {      "type": "title",      "title": [        { "type": "text", "text": { "content": "Ali Ahmadi" } }      ]    },    "Status": {      "type": "select",      "select": { "name": "New" }    },    "Email": {      "type": "email",      "email": "ali@example.com"    }  },  "url": "https://www.notion.so/...."}

نکته عملی برای کار با خروجی

  • برای گرفتن آیدی صفحه ساخته‌شده در نودهای بعدی از {{$json.id}} استفاده می‌شود.
  • برای لینک مستقیم صفحه معمولاً {{$json.url}} کاربردی است (ارسال به Slack/Email).

نکات پیشرفته و ترفندها

۱) Upsert واقعی با Query + IF + Create/Update

Notion مثل برخی دیتابیس‌ها عملیات Upsert مستقیم ندارد. راه استاندارد در n8n:

  • Notion (Query Database) با فیلتر (مثلاً Email = email ورودی)
  • IF: اگر نتیجه وجود داشت → Update Page، اگر نبود → Create Page

این الگو برای CRM، ثبت مشتری تکراری، و جلوگیری از ساخت رکوردهای مشابه بسیار مهم است.

۲) مدیریت خروجی‌های حجیم با Split In Batches

اگر دیتابیس بزرگ است و Return All فعال باشد، هم اجرای ورکفلو کند می‌شود و هم احتمال خطا/محدودیت API بالا می‌رود. الگوی عملی:

  • Notion (Query Database با Limit منطقی)
  • Split In Batches برای پردازش آیتم‌ها به‌صورت مرحله‌ای
  • در صورت نیاز Wait برای کاهش فشار روی API

۳) تمیز کردن و نرمال‌سازی داده قبل از ارسال به Notion

  • برای تاریخ‌ها از Date & Time node یا Expressionهای زمانی استفاده کنید تا همیشه ISO معتبر ارسال شود.
  • برای Select مقادیر را استاندارد کنید (مثلاً با Switch) تا خطای گزینه نامعتبر نگیرید.
  • برای متن‌های طولانی، بهتر است خلاصه را در Properties ذخیره کنید و متن کامل را در Blockها (Append Block) قرار دهید.

۴) ذخیره ساختارمند خطاها در Notion

اگر در ورکفلو خطایی رخ می‌دهد، می‌توانید Error Trigger را فعال کنید و خطاها را در یک دیتابیس Notion ذخیره کنید (نام ورکفلو، زمان، پیام خطا، Stack خلاصه، ورودی‌های حساس با حذف اطلاعات شخصی).

محدودیت‌ها و خطاها

محدودیت‌ها

  • محدودیت نرخ درخواست (Rate Limit): Notion API محدودیت دارد؛ در پردازش انبوه باید کنترل سرعت داشته باشید.
  • وابستگی به ساختار دیتابیس: تغییر نام پراپرتی‌ها یا نوع آن‌ها در Notion می‌تواند ورکفلو را بشکند.
  • پشتیبانی متفاوت عملیات‌ها: همه قابلیت‌های UI در API دقیقاً مشابه نیست (خصوصاً برخی تنظیمات پیشرفته، رول‌آپ‌ها یا فرمول‌ها قابل نوشتن مستقیم نیستند و بیشتر خروجی محاسبه‌ای دارند).
  • فیلدهای فرمول/رول‌آپ: معمولاً قابل set کردن نیستند و فقط خواندنی هستند.

خطاهای رایج و راه‌حل‌ها

  • 403 Forbidden / Not authorized

    علت: صفحه/دیتابیس با Integration share نشده یا توکن اشتباه است.

    راه‌حل: در Notion روی دیتابیس/صفحه Share بزنید و Integration را اضافه کنید؛ سپس مجدد تست Credentials.

  • Validation error: property does not exist

    علت: نام پراپرتی را اشتباه فرستاده‌اید یا در Notion تغییر کرده است.

    راه‌حل: نام دقیق پراپرتی را کپی کنید؛ از Get Database برای بررسی schema استفاده کنید.

  • Validation error: invalid select option

    علت: مقدار Select/Multi-select در گزینه‌های موجود نیست.

    راه‌حل: قبل از ارسال، با Switch/IF نگاشت درست انجام دهید یا گزینه‌ها را از قبل در Notion بسازید.

  • Validation error: invalid date

    علت: فرمت تاریخ اشتباه یا ناسازگار با ISO است.

    راه‌حل: تاریخ را با Date & Time node یا Expression مانند {{$now.toISO()}} تولید کنید.

  • Too many requests / rate limited

    علت: ارسال درخواست‌های پشت سر هم در حلقه‌های بزرگ.

    راه‌حل: Split In Batches + Wait، کاهش Return All، و اجرای زمان‌بندی‌شده (Cron) به جای اجرای لحظه‌ای.

ایده ها

  • ساخت سیستم «ثبت و پیگیری باگ» که از GitHub Issues یا Jira تیکت‌ها را به Notion منتقل می‌کند و وضعیت را هر روز همگام می‌کند.
  • اتومات کردن تولید محتوای تیم: دریافت ایده‌ها از فرم، ساخت رکورد در دیتابیس Content Calendar، و ارسال پیام به نویسنده مسئول.
  • آرشیو خودکار فاکتورها: دریافت PDF از ایمیل، ذخیره در Google Drive، و ثبت لینک + مبلغ + تاریخ در Notion.
  • داشبورد KPI ساده: جمع‌آوری داده از Google Analytics/Ads، ذخیره نتایج روزانه در Notion و ساخت گزارش هفتگی.
  • بانک دانش پشتیبانی: تبدیل مکالمات حل‌شده به صفحه‌های Notion با برچسب محصول و نوع مشکل.

منابع و مستندات اصلی

دسته بندی: N8N برچسب ها:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

6 − 1 =