مستندات n8n
74+ نود
📋

نوکو‌دی‌بی

NocoDB

مدیریت داده‌ها با رابط Airtable-like روی دیتابیس موجود - open-source و self-hosted

دیتابیس
مقدماتی
۰ بازدید
n8n 1.0+

نمای کلی

نود NocoDB چیست؟

نود NocoDB امکان اتصال و مدیریت داده‌ها از طریق NocoDB API را در n8n فراهم می‌کند. NocoDB یک Smart Spreadsheet اپن‌سورس است که روی هر دیتابیس SQL قرار می‌گیرد.

چرا NocoDB؟

  • Open Source & Self-hosted: کنترل کامل روی داده‌ها (مهم برای ایران)
  • Database Agnostic: روی MySQL, PostgreSQL, SQLite, MariaDB, SQL Server کار می‌کند
  • Airtable Alternative: رابط کاربری مشابه Airtable بدون محدودیت‌های قیمتی
  • REST API: API کامل برای هر جدول
  • Views: Grid, Gallery, Kanban, Form, Calendar views
  • Collaboration: کار تیمی با roles مختلف

قابلیت‌های کلیدی در n8n:

  • CRUD کامل: ایجاد، خواندن، ویرایش و حذف ردیف‌ها
  • فیلتر و مرتب‌سازی: فیلتر پیشرفته با عملگرهای مختلف
  • Lookup & Rollup: دسترسی به فیلدهای محاسباتی
  • Link Records: کار با روابط بین جداول
  • File Attachments: آپلود و مدیریت فایل‌ها
  • Webhook Trigger: دریافت event هنگام تغییر داده

مقایسه NocoDB vs Airtable:

| ویژگی | NocoDB | Airtable | |--------|--------|----------| | هزینه | رایگان (self-hosted) | پولی (محدودیت رکورد) | | Self-hosted | بله | خیر | | دسترسی از ایران | بله (روی سرور خودتان) | نیاز به VPN | | دیتابیس پشتیبان | SQL واقعی | اختصاصی | | API Rate Limit | نامحدود | محدود | | ظرفیت رکورد | نامحدود | ۵۰,۰۰۰ (پلن رایگان) |

احراز هویت

احراز هویت NocoDB

روش ۱: API Token (توصیه شده)

  1. 1وارد NocoDB Dashboard شوید
  2. 2روی آیکون پروفایل کلیک کنید
  3. 3API Tokens را انتخاب کنید
  4. 4"Create API Token" کلیک کنید
  5. 5نام و description توکن را وارد کنید
  6. 6Token را کپی و در n8n وارد کنید

تنظیم در n8n:

  • **API URL**: آدرس NocoDB شما (مثلاً https://nocodb.example.com)
  • API Token: توکن ایجاد شده

روش ۲: Auth Token (Session-based)

  1. 1با ایمیل و رمز عبور وارد NocoDB شوید
  2. 2از API /api/v1/auth/user/signin توکن بگیرید
  3. 3توکن را در header xc-auth ارسال کنید

⚠️ نکته: Auth Token بعد از مدتی منقضی می‌شود. برای automation از API Token استفاده کنید.

نصب NocoDB (Self-hosted):

Docker (ساده‌ترین):

bash
docker run -d --name nocodb \
  -p 8080:8080 \
  -e NC_DB="pg://host:5432?u=user&p=pass&d=dbname" \
  nocodb/nocodb:latest

با SQLite (بدون نیاز به دیتابیس خارجی):

bash
docker run -d --name nocodb \
  -p 8080:8080 \
  -v nocodb_data:/usr/app/data \
  nocodb/nocodb:latest

تنظیمات مهم:

  • NC_DB: connection string دیتابیس
  • NC_AUTH_JWT_SECRET: secret برای JWT
  • NC_PUBLIC_URL: آدرس عمومی NocoDB
  • NC_DISABLE_TELE: غیرفعال کردن telemetry

عملیات‌های موجود

1

row-create

ایجاد ردیف جدید در جدول

2

row-get

دریافت یک ردیف با ID

3

row-update

ویرایش ردیف موجود

4

row-delete

حذف ردیف از جدول

5

row-list

دریافت لیست ردیف‌ها با فیلتر و مرتب‌سازی

6

row-bulk-create

ایجاد چندین ردیف با یک درخواست

7

row-bulk-update

ویرایش چندین ردیف با یک درخواست

8

row-bulk-delete

حذف چندین ردیف با یک درخواست

9

row-count

دریافت تعداد ردیف‌ها (با فیلتر اختیاری)

10

row-link

ایجاد رابطه بین ردیف‌های دو جدول

11

table-list

دریافت لیست جداول یک base

12

attachment-upload

آپلود فایل به فیلد Attachment

کاربردهای متداول

کاربردهای رایج

۱. CRM ساده (مدیریت مشتریان)

NocoDB را به عنوان CRM استفاده کنید و لیدهای جدید از فرم‌ها یا ایمیل را خودکار اضافه کنید.

code
Webhook (فرم تماس) → NocoDB (ایجاد ردیف در جدول Leads) → Email (ارسال تأیید) → Telegram (اطلاع تیم فروش)

۲. همگام‌سازی با Google Sheets

داده‌های NocoDB را با Google Sheets دو طرفه همگام نگه دارید.

code
Schedule (هر ساعت) → NocoDB (ردیف‌های جدید) → Google Sheets (اضافه ردیف)
Schedule → Google Sheets (تغییرات) → NocoDB (ویرایش ردیف)

۳. Content Management System

از NocoDB به عنوان headless CMS استفاده کنید و محتوا را در سایت publish کنید.

code
NocoDB Webhook (ردیف جدید در جدول Posts) → Code (Markdown→HTML) → Webflow/WordPress (انتشار)

۴. Inventory Management

مدیریت موجودی محصولات و اطلاع‌رسانی خودکار وقتی موجودی کم می‌شود.

code
Schedule → NocoDB (لیست محصولات با فیلتر stock < 10) → Telegram (alert موجودی کم) → Email (سفارش به تأمین‌کننده)

۵. Task/Project Management

جایگزین Trello/Asana با NocoDB Kanban view و خودکارسازی تغییر وضعیت.

code
NocoDB Webhook (Status changed) → IF (Status=Done) → Telegram (اطلاع تیم) → NocoDB (update completion date)

۶. Import داده از CSV/Excel

فایل‌های CSV یا Excel را خودکار به NocoDB import کنید.

code
Email Trigger (فایل CSV) → Code (parse CSV) → NocoDB (bulk create ردیف‌ها)

۷. گزارش‌گیری خودکار

هر هفته گزارش آماری از داده‌های NocoDB ارسال شود.

code
Schedule (هفتگی) → NocoDB (لیست ردیف‌ها) → Code (محاسبه آمار) → Email/Telegram (ارسال گزارش)

۸. Multi-Table Workflow

داده‌ها از چندین جدول مرتبط خوانده شده و ترکیب شود.

code
NocoDB (لیست سفارش‌ها) → NocoDB (اطلاعات مشتری linked) → Code (ساخت فاکتور) → Email (ارسال فاکتور)

۹. Form Handler

فرم‌های NocoDB (Form View) را پردازش و اقدامات خودکار انجام دهید.

code
NocoDB Webhook (form submission) → IF (نوع درخواست) → Telegram/Email/Slack (routing به تیم مناسب)

۱۰. Backup خودکار

از داده‌های NocoDB به صورت دوره‌ای بک‌آپ بگیرید.

code
Schedule (روزانه) → NocoDB (لیست همه ردیف‌ها) → Code (تبدیل به CSV) → Google Drive (آپلود فایل backup)

نکات حرفه‌ای

نکات حرفه‌ای

۱. Self-hosted NocoDB برای ایران

NocoDB self-hosted بهترین گزینه برای تیم‌های ایرانی است: بدون نیاز به VPN، سرعت بالا، و بدون محدودیت رکورد.

۲. از Bulk Operations استفاده کنید

بجای ایجاد تک‌تک ردیف‌ها، از bulk create/update/delete استفاده کنید. تا ۱۰ برابر سریع‌تر و کم‌تر rate limit مصرف می‌کند.

۳. Filter Syntax

فیلترهای NocoDB از syntax خاصی استفاده می‌کنند:

  • (field,eq,value) - برابر
  • (field,neq,value) - نابرابر
  • (field,gt,value) - بزرگتر
  • (field,lt,value) - کوچکتر
  • (field,like,%value%) - شامل
  • (field,is,null) - خالی
  • ترکیب: (field1,eq,val1)~and(field2,gt,val2)

۴. View-based Filtering

بجای نوشتن فیلتر پیچیده در API، یک View با فیلتر در NocoDB بسازید و از View ID استفاده کنید.

۵. Webhook بجای Polling

بجای Schedule + List، از NocoDB Webhooks استفاده کنید. real-time و بدون overhead است.

۶. فیلدهای Attachment

برای آپلود فایل، ابتدا فایل را به storage آپلود کنید و سپس URL را در فیلد Attachment قرار دهید.

۷. Sort Syntax

  • fieldName: مرتب‌سازی صعودی (A-Z)
  • -fieldName: مرتب‌سازی نزولی (Z-A)
  • چندین فیلد: -CreatedAt,Name

۸. Pagination برای داده‌های زیاد

NocoDB حداکثر ۱,۰۰۰ ردیف در هر صفحه برمی‌گرداند. برای داده‌های بیشتر از limit و offset استفاده کنید.

۹. از Fields Parameter استفاده کنید

فقط فیلدهای مورد نیاز را درخواست کنید: fields=Name,Email,Status. این کار سرعت را بالا می‌برد.

۱۰. NocoDB v2 API

نسخه v2 API بسیاری بهبودها دارد: pagination بهتر، filter syntax ساده‌تر، و bulk operations بهینه‌تر. همیشه از آخرین نسخه استفاده کنید.

۱۱. Shared Views

از Shared Views (فقط خواندن) برای embed کردن داده‌ها در سایت استفاده کنید. بدون نیاز به API Token.

۱۲. Formula Fields

از Formula fields برای محاسبات سمت دیتابیس استفاده کنید. این فیلدها در خروجی API قابل خواندن هستند.

۱۳. Form Views

از NocoDB Form View برای جمع‌آوری داده از کاربران استفاده کنید. فرم‌ها بدون لاگین قابل دسترسی هستند.

۱۴. Docker Compose

برای production از Docker Compose با PostgreSQL backend استفاده کنید:

yaml
nocodb:
  image: nocodb/nocodb:latest
  environment:
    NC_DB: "pg://postgres:5432?u=user&p=pass&d=nocodb"
  ports: ["8080:8080"]

۱۵. Backup Strategy

از NocoDB export و n8n Schedule برای بک‌آپ خودکار استفاده کنید. داده‌ها را به Google Drive یا S3 ارسال کنید.

رفع مشکلات

رفع مشکلات رایج

❌ خطای 401 Unauthorized

علت: API Token نامعتبر یا منقضی

راه‌حل

  • Token را بررسی و در صورت نیاز regenerate کنید
  • مطمئن شوید API URL شامل protocol (https://) است
  • اگر از Auth Token استفاده می‌کنید، ممکن است منقضی شده باشد

❌ خطای 404 Not Found

علت: Table ID یا Row ID نامعتبر

راه‌حل

  • Table ID را از URL یا API دریافت کنید (نه نام جدول)
  • مطمئن شوید ردیف حذف نشده باشد
  • NocoDB v2 از /api/v2/ استفاده می‌کند (بجای v1)

❌ خطای "Field not found"

علت: نام فیلد نادرست

راه‌حل

  • نام فیلد باید exact match باشد (case-sensitive)
  • از API لیست فیلدها را دریافت کنید
  • فیلدهای computed (Lookup, Rollup, Formula) قابل نوشتن نیستند

❌ خطای "Required field missing"

علت: فیلد اجباری مقدار ندارد

راه‌حل

  • فیلدهای required را در NocoDB بررسی کنید
  • مطمئن شوید همه فیلدهای اجباری در data ارسال شده‌اند

❌ خطای Rate Limit

علت: تعداد درخواست‌ها زیاد (در نسخه cloud)

راه‌حل

  • Self-hosted NocoDB محدودیت rate ندارد
  • بین درخواست‌ها Wait node اضافه کنید
  • از bulk operations (bulk create/update/delete) استفاده کنید

❌ Webhook Event دریافت نمی‌شود

علت: تنظیمات Webhook نادرست

راه‌حل

  • در NocoDB به Table > Webhooks بروید
  • URL n8n Webhook را وارد کنید
  • Event type صحیح (After Insert, After Update, After Delete) را انتخاب کنید
  • مطمئن شوید n8n از NocoDB قابل دسترسی است

❌ خطای Connection Timeout

علت: NocoDB سرور قابل دسترسی نیست

راه‌حل

  • آدرس NocoDB را بررسی کنید
  • مطمئن شوید پورت باز است (معمولاً 8080)
  • اگر Docker استفاده می‌کنید، network settings را بررسی کنید
  • SSL certificate معتبر باشد

❌ داده‌های Linked Record نمایش داده نمی‌شود

علت: فیلد Link/LinkToAnotherRecord به صورت پیش‌فرض expand نمی‌شود

راه‌حل

  • از nested read API استفاده کنید
  • یا ابتدا ردیف اصلی و سپس linked records را جداگانه بخوانید
اشتراک‌گذاری:

آیا این مستندات مفید بود؟