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

تودویست

Todoist

مدیریت تسک‌ها و پروژه‌ها با Todoist - ساده، قدرتمند و چندپلتفرمی

ابزارهای کاری
مقدماتی
۰ بازدید
n8n 1.0+

نمای کلی

نود Todoist در n8n امکان اتوماسیون کامل مدیریت وظایف و پروژه‌ها را فراهم می‌کند.

Todoist چیست؟

Todoist یکی از محبوب‌ترین اپلیکیشن‌های مدیریت وظایف در جهان است که با بیش از ۳۰ میلیون کاربر، ابزاری قدرتمند برای سازماندهی کارهای شخصی و تیمی ارائه می‌دهد.

مفاهیم کلیدی:

  • Tasks (تسک‌ها): واحد اصلی کار. هر تسک شامل عنوان، توضیحات، تاریخ سررسید، اولویت و لیبل است
  • Projects (پروژه‌ها): دسته‌بندی تسک‌ها در پروژه‌های مختلف (مثل "کار"، "شخصی"، "خرید")
  • Sections (سکشن‌ها): تقسیم‌بندی درون پروژه (مثل "در حال انجام"، "تکمیل شده") - شبیه Kanban
  • Labels (لیبل‌ها): برچسب‌های سراسری برای دسته‌بندی بین‌پروژه‌ای (مثل "فوری"، "جلسه")
  • Filters (فیلترها): کوئری‌های هوشمند برای نمایش تسک‌ها بر اساس شرایط خاص
  • Priorities (اولویت‌ها): ۴ سطح اولویت: Priority 1 (فوری/قرمز)، Priority 2 (بالا/نارنجی)، Priority 3 (متوسط/آبی)، Priority 4 (عادی/بدون رنگ)

تاریخ‌های طبیعی (Natural Language):

Todoist قادر به تشخیص تاریخ از متن طبیعی است: "tomorrow at 3pm"، "every Monday"، "next Friday"، "in 3 days". این قابلیت در API با فیلد due_string قابل استفاده است.

سیستم Karma:

Todoist یک سیستم امتیازدهی (Karma) دارد که بر اساس تکمیل تسک‌ها و فعالیت، به کاربران سطح می‌دهد.

همکاری تیمی:

اشتراک‌گذاری پروژه، واگذاری تسک (Assign)، کامنت‌گذاری روی تسک‌ها، و Activity Log.

محدودیت‌های API:

  • Rate Limit: حداکثر ۴۵۰ درخواست در ۱۵ دقیقه
  • پلن رایگان: ۵ پروژه فعال، ۵ نفر همکار در هر پروژه
  • پلن Pro: پروژه و همکار نامحدود، یادآوری، فیلترهای پیشرفته

احراز هویت

احراز هویت Todoist

روش ۱: API Token (ساده‌ترین روش)

#### دریافت توکن:

  1. 1وارد حساب Todoist شوید
  2. 2به Settings (تنظیمات) بروید
  3. 3بخش Integrations را باز کنید
  4. 4روی Developer کلیک کنید
  5. 5API Token خود را کپی کنید

#### تنظیم در n8n:

  1. 1در n8n به Credentials بروید
  2. 2Todoist API را انتخاب کنید
  3. 3توکن را در فیلد API Token وارد کنید
  4. 4Test Connection بزنید
code
توکن نمونه: 0123456789abcdef0123456789abcdef01234567

روش ۲: OAuth2 (برای اپلیکیشن‌ها)

برای ساخت اپلیکیشن‌هایی که از طرف کاربران دیگر عمل می‌کنند:

  1. 1به [Todoist App Management](https://developer.todoist.com/appconsole.html) بروید
  2. 2یک App جدید بسازید
  3. 3Client ID و Client Secret دریافت کنید
  4. 4Redirect URL را از n8n کپی کنید
  5. 5Scopes مورد نیاز:
  • data:read - خواندن داده‌ها
  • data:read_write - خواندن و نوشتن
  • data:delete - حذف داده‌ها
  • project:delete - حذف پروژه

نکات امنیتی:

  • API Token دسترسی کامل به حساب شما دارد - آن را محرمانه نگه دارید
  • برای اشتراک‌گذاری Workflow با دیگران از OAuth2 استفاده کنید
  • توکن را در Environment Variable ذخیره کنید

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

1

createTask

ایجاد یک تسک جدید در Todoist با تمام جزئیات شامل عنوان، توضیحات، تاریخ سررسید، اولویت و لیبل

2

getTask

دریافت اطلاعات کامل یک تسک بر اساس شناسه

3

updateTask

ویرایش جزئیات یک تسک موجود (عنوان، توضیحات، اولویت، تاریخ و ...)

4

closeTask

علامت‌گذاری تسک به عنوان انجام‌شده (Complete). برای تسک‌های تکراری، تاریخ بعدی تنظیم می‌شود

5

reopenTask

بازگرداندن تسک تکمیل‌شده به حالت فعال

6

deleteTask

حذف دائمی یک تسک از Todoist (غیرقابل بازگشت)

7

listTasks

دریافت لیست تسک‌های فعال با امکان فیلتر بر اساس پروژه، لیبل، فیلتر و تاریخ

8

createProject

ایجاد یک پروژه جدید در Todoist

9

getProject

دریافت اطلاعات کامل یک پروژه بر اساس شناسه

10

updateProject

ویرایش نام، رنگ و تنظیمات یک پروژه موجود

11

deleteProject

حذف یک پروژه و تمام تسک‌های آن (غیرقابل بازگشت)

12

listProjects

دریافت لیست تمام پروژه‌های کاربر

13

createLabel

ایجاد یک لیبل (برچسب) جدید برای دسته‌بندی تسک‌ها

14

listLabels

دریافت لیست تمام لیبل‌های تعریف‌شده کاربر

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

۱. تبدیل خودکار ایمیل به تسک

هر ایمیل مهم به طور خودکار به تسک تبدیل شود:

code
Gmail Trigger (ایمیل جدید با لیبل "Action Required")
  → Todoist (createTask)
    Content: "پیگیری ایمیل: {{$json.subject}}"
    Description: "از: {{$json.from}}\n{{$json.snippet}}"
    Project: پروژه "ایمیل‌ها"
    Priority: 3
    Due_string: "tomorrow"
    Labels: ["ایمیل", "پیگیری"]

۲. ایجاد تسک‌های Daily Standup

هر روز صبح تسک‌های استندآپ تیم ایجاد شود:

code
Schedule (هر روز ساعت 8:30)
  → Todoist (createTask)
    Content: "استندآپ روزانه - {{$now.toFormat('yyyy/MM/dd')}}"
    Description: "- کارهای دیروز\n- کارهای امروز\n- موانع"
    Project: پروژه "تیم"
    Priority: 4
    Due_string: "today at 9am"
    Labels: ["جلسه", "تیم"]

۳. یادآوری ددلاین پروژه

هشدار برای تسک‌هایی که ددلاینشان نزدیک است:

code
Schedule (هر روز ساعت 9)
  → Todoist (listTasks)
    Filter: "due before: +2 days & !completed"
  → IF (تسک‌ها وجود دارد)
    → Loop
      → Telegram (sendMessage)
        Text: "هشدار ددلاین: {{$json.content}}\nسررسید: {{$json.due.string}}"

۴. پیگیری درخواست‌های مشتری

هر درخواست جدید از فرم وبسایت به تسک تبدیل شود:

code
Webhook (فرم تماس)
  → Todoist (createTask)
    Content: "درخواست مشتری: {{$json.name}}"
    Description: "نام: {{$json.name}}\nایمیل: {{$json.email}}\nموضوع: {{$json.subject}}\nپیام: {{$json.message}}"
    Project: پروژه "مشتریان"
    Section: "جدید"
    Priority: 3
    Labels: ["مشتری", "{{$json.category}}"]

۵. تبدیل Bug Report به تسک

گزارش باگ از GitHub Issues به Todoist:

code
GitHub Trigger (Issue جدید با لیبل "bug")
  → Todoist (createTask)
    Content: "باگ #{{$json.number}}: {{$json.title}}"
    Description: "{{$json.body}}\n\nلینک: {{$json.html_url}}"
    Project: پروژه "توسعه"
    Section: "باگ‌ها"
    Priority: {{$json.labels.includes('critical') ? 4 : 2}}
    Labels: ["باگ", "github"]

۶. Action Items جلسات

بعد از هر جلسه، action items به صورت تسک ثبت شوند:

code
Webhook (از Notion/Google Docs)
  → Code (استخراج action items)
  → Loop
    → Todoist (createTask)
      Content: "{{$json.action}}"
      Description: "جلسه: {{$json.meetingTitle}}\nمسئول: {{$json.assignee}}"
      Due_string: "{{$json.deadline}}"
      Labels: ["جلسه", "action-item"]

۷. خط تولید محتوا (Content Pipeline)

مدیریت فرآیند تولید محتوا با سکشن‌ها:

code
Webhook (ایده جدید محتوا)
  → Todoist (createTask)
    Content: "محتوا: {{$json.title}}"
    Project: پروژه "تولید محتوا"
    Section: "ایده‌ها"
    Description: "کلیدواژه: {{$json.keywords}}\nپلتفرم: {{$json.platform}}"
    Labels: ["محتوا", "{{$json.type}}"]

// وقتی تسک تکمیل شد → انتقال به سکشن بعدی
Todoist Trigger (تسک تکمیل در سکشن "نوشتن")
  → Todoist (createTask)
    Content: همان تسک در سکشن "ویرایش"

۸. عادت‌سازی و Habit Tracking

ایجاد تسک‌های تکراری برای عادت‌های روزانه:

code
// تنظیم یکباره
HTTP Request (POST) → Todoist API
  → createTask: "ورزش صبحگاهی" / due_string: "every day at 7am"
  → createTask: "مطالعه" / due_string: "every day at 9pm"
  → createTask: "گزارش هفتگی" / due_string: "every friday at 5pm"

// گزارش عملکرد
Schedule (هر هفته)
  → Todoist API (completed tasks)
  → Code (محاسبه درصد تکمیل)
  → Telegram (ارسال گزارش)

۹. پیگیری فاکتورهای پرداخت‌نشده

برای هر فاکتور صادرشده یک تسک یادآوری:

code
Webhook (فاکتور صادر شد)
  → Todoist (createTask)
    Content: "پیگیری فاکتور #{{$json.invoiceNumber}} - {{$json.clientName}}"
    Description: "مبلغ: {{$json.amount}} تومان\nتاریخ صدور: {{$json.date}}"
    Due_string: "in 7 days"
    Priority: 3
    Labels: ["فاکتور", "مالی"]

// وقتی پرداخت شد → تکمیل تسک
Webhook (پرداخت موفق)
  → Todoist (listTasks)
    Filter: "search: فاکتور #{{$json.invoiceNumber}}"
  → Todoist (closeTask)

۱۰. داشبورد حجم کار تیم

بررسی توزیع تسک‌ها بین اعضای تیم:

code
Schedule (هر روز ساعت 17)
  → Todoist (listProjects)
  → Loop (پروژه‌ها)
    → Todoist (listTasks)
  → Code (گروه‌بندی بر اساس assignee)
  → Code (محاسبه آمار هر نفر)
  → Telegram (sendMessage)
    Text: "گزارش حجم کار تیم:\n{{$json.report}}"

نکات حرفه‌ای

نکات حرفه‌ای

۱. تاریخ‌های طبیعی (Natural Language Dates)

Todoist از عبارات طبیعی برای تاریخ پشتیبانی می‌کند. از فیلد due_string استفاده کنید:

code
"tomorrow at 3pm"          → فردا ساعت ۳ بعدازظهر
"every monday"             → هر دوشنبه (تکراری)
"every weekday"            → هر روز کاری
"next friday at 10am"      → جمعه آینده ساعت ۱۰
"in 3 days"                → ۳ روز بعد
"Jan 15 2025"              → تاریخ مشخص
"every 2 weeks"            → هر ۲ هفته
"every last friday"        → آخرین جمعه هر ماه

۲. سیستم اولویت (توجه به ترتیب معکوس API)

در API مقادیر اولویت برعکس UI است:

code
API Priority 4 = UI Priority 1 (فوری - قرمز)
API Priority 3 = UI Priority 2 (بالا - نارنجی)
API Priority 2 = UI Priority 3 (متوسط - آبی)
API Priority 1 = UI Priority 4 (عادی - بدون رنگ)

۳. سکشن‌ها برای گردش‌کار Kanban

از سکشن‌ها برای ایجاد جریان کار شبیه Kanban استفاده کنید:

code
پروژه: "توسعه محصول"
  ├── سکشن: Backlog
  ├── سکشن: In Progress
  ├── سکشن: Review
  └── سکشن: Done

۴. لیبل‌ها برای دسته‌بندی بین‌پروژه‌ای

لیبل‌ها سراسری هستند و بین همه پروژه‌ها مشترکند - ایده‌آل برای:

  • نوع کار: @meeting, @email, @call
  • انرژی مورد نیاز: @quick, @deep-work
  • ابزار: @laptop, @phone

۵. فیلترهای هوشمند (Smart Filters)

در listTasks از فیلترهای Todoist استفاده کنید:

code
"today"                    → تسک‌های امروز
"overdue"                  → تسک‌های عقب‌افتاده
"priority 1"               → فقط تسک‌های فوری
"no date"                  → تسک‌های بدون تاریخ
"assigned to: me"          → تسک‌های من
"7 days"                   → تسک‌های ۷ روز آینده
"#ProjectName & priority 1" → فوری‌های یک پروژه خاص

۶. توضیحات با Markdown

فیلد description از Markdown پشتیبانی می‌کند:

markdown
**متن Bold**
[لینک](https://example.com)
- لیست آیتم ۱
- لیست آیتم ۲

۷. زیرتسک (Sub-tasks) با parent_id

برای شکستن تسک‌های بزرگ به مراحل کوچک‌تر:

code
createTask: "طراحی وبسایت" → دریافت task_id
  createTask: "طراحی وایرفریم" / parent_id: task_id
  createTask: "طراحی UI" / parent_id: task_id
  createTask: "کدنویسی" / parent_id: task_id

۸. تسک‌های تکراری (Recurring Tasks)

با due_string تسک‌های تکراری بسازید:

code
"every day at 9am"         → هر روز
"every monday,wednesday"   → دوشنبه و چهارشنبه
"every 1st"                → اول هر ماه
"every! day"               → هر روز (تسک عقب‌افتاده ایجاد نمی‌شود)

۹. واگذاری تسک (Assignee) در پروژه‌های مشترک

در پروژه‌های اشتراکی می‌توانید تسک‌ها را به اعضا واگذار کنید:

  • ابتدا collaborator ID را از API دریافت کنید
  • در createTask از assignee_id استفاده کنید
  • کاربر مسئول اعلان دریافت می‌کند

۱۰. کامنت‌گذاری روی تسک‌ها

از Comments API برای افزودن یادداشت و بروزرسانی وضعیت استفاده کنید:

code
HTTP Request (POST) → https://api.todoist.com/rest/v2/comments
  Body: { "task_id": "123", "content": "وضعیت بروزرسانی شد" }

۱۱. Activity Log برای گزارش‌گیری

از Sync API برای دریافت تاریخچه فعالیت‌ها استفاده کنید:

code
HTTP Request → https://api.todoist.com/sync/v9/activity/get
  → تسک‌های تکمیل‌شده، ایجادشده، حذف‌شده

۱۲. دریافت تسک‌های تکمیل‌شده

REST API فقط تسک‌های فعال را برمی‌گرداند. برای تکمیل‌شده‌ها:

code
HTTP Request → https://api.todoist.com/sync/v9/completed/get_all
  Query: project_id=XXXXX&limit=50

۱۳. Template Projects (پروژه‌های الگو)

یک پروژه الگو بسازید و برای هر پروژه جدید، تسک‌ها را کپی کنید:

code
Todoist (listTasks) → Filter: project_id = TEMPLATE_PROJECT
  → Loop → Todoist (createTask) → project_id = NEW_PROJECT

۱۴. Quick Add Syntax

در فیلد content می‌توانید از سینتکس سریع استفاده کنید:

code
"خرید شیر #خرید @فوری p1 tomorrow"
  → پروژه: خرید
  → لیبل: فوری
  → اولویت: 1
  → سررسید: فردا

(توجه: این فقط در Quick Add UI کار می‌کند، در API فیلدها جداگانه ارسال شوند)

۱۵. عملیات دسته‌ای (Bulk Operations)

برای ایجاد چندین تسک از Loop استفاده کنید و Rate Limit رعایت کنید:

code
Spreadsheet (لیست تسک‌ها)
  → Split In Batches (10)
    → Loop
      → Todoist (createTask)
      → Wait (2 seconds)
    → Next Batch

رفع مشکلات

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

۱. خطای 401 Unauthorized - توکن نامعتبر

علت: API Token اشتباه، منقضی شده یا کپی ناقص

راه‌حل

  • به Settings > Integrations > Developer بروید و توکن جدید بگیرید
  • مطمئن شوید توکن کامل (۴۰ کاراکتر) کپی شده
  • فاصله یا کاراکتر اضافی در ابتدا/انتها نباشد
  • Credential در n8n را بروزرسانی و Test کنید

۲. خطای 403 Forbidden - قابلیت Premium

علت: دسترسی به قابلیتی که فقط در پلن Pro/Business موجود است

راه‌حل

  • Reminders فقط در پلن Pro موجود است
  • فیلترهای پیشرفته ممکن است نیاز به پلن Pro داشته باشند
  • پلن خود را ارتقا دهید یا از قابلیت‌های پلن رایگان استفاده کنید

۳. خطای 404 Not Found - تسک یا پروژه یافت نشد

علت: شناسه (ID) اشتباه یا آیتم حذف/آرشیو شده

راه‌حل

  • شناسه تسک/پروژه را مجدداً بررسی کنید
  • تسک ممکن است قبلاً حذف یا تکمیل شده باشد
  • از listTasks یا listProjects برای دریافت شناسه‌های صحیح استفاده کنید
  • شناسه‌ها در Todoist عددی هستند (مثل: 2995104339)

۴. خطای 429 Too Many Requests - محدودیت Rate Limit

علت: ارسال بیش از ۴۵۰ درخواست در ۱۵ دقیقه

راه‌حل

  • بین درخواست‌ها Wait Node اضافه کنید (حداقل 2 ثانیه)
  • عملیات Bulk را Batch کنید
  • از Retry on Fail استفاده و Retry-After header را رعایت کنید
code
Loop → Todoist (createTask) → Wait (2 seconds) → Next

۵. خطای Invalid due_string - تاریخ نامعتبر

علت: فرمت تاریخ قابل تشخیص نیست

راه‌حل

  • از عبارات استاندارد انگلیسی استفاده کنید: "tomorrow", "next monday", "Jan 15"
  • برای تاریخ دقیق از due_date (YYYY-MM-DD) استفاده کنید
  • تاریخ‌های فارسی مستقیماً پشتیبانی نمی‌شوند - از due_date بجای due_string استفاده کنید

۶. خطای project_id Not Found

علت: شناسه پروژه اشتباه یا پروژه حذف شده

راه‌حل

  • ابتدا listProjects اجرا کنید و شناسه صحیح را پیدا کنید
  • شناسه پروژه Inbox: با listProjects قابل دریافت است (پروژه با is_inbox_project: true)
  • مطمئن شوید پروژه آرشیو نشده باشد

۷. تداخل Sync (Sync Conflicts)

علت: تغییرات همزمان از چند منبع (اپ موبایل + API)

راه‌حل

  • همیشه آخرین وضعیت را با getTask بخوانید سپس تغییر دهید
  • از Sync API بجای REST API برای عملیات پیچیده استفاده کنید
  • در Workflow خود بررسی وجود تسک قبل از ویرایش اضافه کنید

۸. خطای Label Not Found

علت: نام لیبل اشتباه یا لیبل وجود ندارد

راه‌حل

  • در REST API v2، لیبل‌ها با نام (string) ارسال می‌شوند نه ID
  • نام لیبل Case-Sensitive است
  • ابتدا listLabels اجرا کنید و نام صحیح را بررسی کنید
  • برای ایجاد خودکار: لیبل‌ها در createTask اگر وجود نداشته باشند، خودکار ساخته می‌شوند
اشتراک‌گذاری:

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