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

کلیک‌آپ

ClickUp

مدیریت خودکار Tasks، Lists، Spaces، Time Tracking، Goals و Custom Fields در ClickUp

مدیریت پروژه
متوسط
۰ بازدید
n8n 1.0+

نمای کلی

نود ClickUp چیست؟

نود ClickUp امکان اتصال و خودکارسازی فرآیندهای مدیریت پروژه و بهره‌وری تیمی را در n8n فراهم می‌کند. ClickUp یک پلتفرم همه‌کاره (All-in-One) است که مدیریت Task، مستندات، Goals، Whiteboards، Chat و Time Tracking را در یک ابزار واحد ارائه می‌دهد.

ساختار سلسله‌مراتبی ClickUp:

code
Workspace (فضای کاری - سازمان)
  └── Space (فضا - تیم یا دپارتمان)
       └── Folder (پوشه - پروژه یا دسته‌بندی) [اختیاری]
            └── List (لیست - مجموعه تسک‌ها)
                 └── Task (تسک - واحد کار)
                      └── Subtask (زیرتسک)
                           └── Checklist (چک‌لیست)

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

  • مدیریت Tasks: ایجاد، ویرایش، حذف، assign، تغییر وضعیت و جابجایی تسک‌ها
  • مدیریت Lists: ایجاد و دریافت لیست‌ها در Folder یا مستقیم در Space
  • مدیریت Folders: ایجاد و دریافت پوشه‌ها برای سازماندهی لیست‌ها
  • مدیریت Spaces: دریافت اطلاعات فضاهای کاری تیم‌ها
  • Comments: ارسال و مدیریت کامنت روی تسک‌ها
  • Checklists: ایجاد و مدیریت چک‌لیست‌ها و آیتم‌های آن
  • Time Tracking: ثبت زمان کار، شروع/توقف تایمر و گزارش‌گیری
  • Custom Fields: مدیریت فیلدهای سفارشی برای داده‌های اختصاصی
  • Tags: مدیریت برچسب‌ها برای دسته‌بندی تسک‌ها
  • Goals: مدیریت اهداف و KPI‌ها
  • Teams & Members: مدیریت تیم‌ها و اعضا

ClickUp Trigger:

  • ایجاد تسک جدید
  • تغییر وضعیت تسک
  • تغییر Assignee
  • تغییر Priority
  • تغییر Due Date
  • اضافه شدن کامنت
  • جابجایی تسک بین لیست‌ها
  • تکمیل Checklist Item

مقایسه ClickUp Automations با n8n:

  • ClickUp Automations: اتوماسیون داخلی محدود به اکوسیستم ClickUp
  • n8n: اتصال ClickUp به صدها سرویس خارجی مثل Telegram، Slack، Gmail، GitHub، دیتابیس‌ها و CRM
  • n8n امکان ساخت workflow‌های پیچیده بین ClickUp و هر سرویس دیگری را فراهم می‌کند

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

  • Rate Limit: ۱۰۰ درخواست در دقیقه برای هر Token
  • Pagination: حداکثر ۱۰۰ نتیجه در هر درخواست
  • Attachment Size: حداکثر ۱۰۰ مگابایت
  • Webhook Events: حداکثر ۵ webhook برای هر Workspace در پلن رایگان

احراز هویت

احراز هویت ClickUp

روش ۱: API Token (شخصی - توصیه شده برای شروع)

#### مرحله ۱: دریافت Personal API Token

  1. 1وارد اکانت ClickUp خود شوید
  2. 2روی آواتار خود در پایین سمت چپ کلیک کنید
  3. 3به Settings بروید
  4. 4از منوی سمت چپ Apps را انتخاب کنید
  5. 5در بخش API Token، روی Generate کلیک کنید
  6. 6Token ساخته شده را کپی کنید:
code
pk_12345678_ABCDEFGHIJKLMNOPQRSTUVWXYZ

#### مرحله ۲: تنظیم در n8n

  1. 1به Credentials بروید
  2. 2ClickUp API را انتخاب کنید
  3. 3فیلدها را پر کنید:
  • API Token: توکن شخصی دریافتی
  1. 1Test Connection بزنید

⚠️ نکته مهم: Personal API Token با دسترسی‌های کامل اکانت شما عمل می‌کند. برای محیط Production از OAuth2 استفاده کنید.

روش ۲: OAuth2 (برای اپلیکیشن‌ها - توصیه شده برای Production)

#### مرحله ۱: ایجاد OAuth App

  1. 1به [ClickUp API Documentation](https://clickup.com/api) بروید
  2. 2یک OAuth App جدید بسازید
  3. 3فیلدها را پر کنید:
  • App Name: نام اپلیکیشن (مثل: "n8n Automation")
  • Redirect URL(s): آدرس callback n8n شما
  1. 1Client ID و Client Secret دریافت کنید

#### مرحله ۲: تنظیم در n8n

  1. 1Credentials > ClickUp OAuth2 API
  2. 2فیلدها را پر کنید:
  • Client ID: شناسه دریافتی
  • Client Secret: کلید محرمانه دریافتی
  1. 1روی Connect کلیک کنید و دسترسی‌ها را تایید کنید

مزایای OAuth2:

  • دسترسی‌های محدودتر و امن‌تر
  • قابل revoke بدون تغییر password
  • مناسب برای اپلیکیشن‌های چندکاربره
  • Token خودکار refresh می‌شود

یافتن شناسه‌ها (IDs)

#### Team (Workspace) ID:

code
GET https://api.clickup.com/api/v2/team
→ {"teams": [{"id": "1234567", "name": "My Workspace"}]}

#### Space ID:

code
GET https://api.clickup.com/api/v2/team/{team_id}/space
→ {"spaces": [{"id": "89012345", "name": "Engineering"}]}

#### List ID (از URL):

code
https://app.clickup.com/1234567/v/li/89012345
                                       ^^^^^^^^
                                       List ID

#### Task ID (از URL):

code
https://app.clickup.com/t/abc123xyz
                          ^^^^^^^^^
                          Task ID

نکات امنیتی:

  • Token شخصی را هرگز به اشتراک نگذارید
  • برای Production از OAuth2 استفاده کنید
  • Token را در Environment Variables ذخیره کنید
  • در صورت نشت Token، فوراً از تنظیمات ClickUp آن را regenerate کنید
  • برای workspace‌های حساس، از اکانت سرویس (Service Account) جداگانه استفاده کنید

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

1

task-create

ایجاد تسک جدید در لیست مشخص با تمام جزئیات

2

task-get

دریافت اطلاعات کامل یک تسک شامل وضعیت، assignee، فیلدهای سفارشی و وابستگی‌ها

3

task-update

ویرایش فیلدهای تسک موجود شامل عنوان، وضعیت، اولویت، assignee و فیلدهای سفارشی

4

task-delete

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

5

task-list

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

6

list-create

ایجاد لیست جدید در Folder یا مستقیماً در Space (Folderless List)

7

list-get

دریافت اطلاعات یک لیست شامل تنظیمات، وضعیت‌ها و آمار تسک‌ها

8

folder-create

ایجاد پوشه جدید در Space برای سازماندهی لیست‌ها

9

folder-get

دریافت اطلاعات پوشه شامل لیست‌های داخل آن

10

space-get

دریافت لیست فضاهای کاری یک Workspace

11

comment-create

ارسال کامنت جدید روی تسک با امکان mention کاربران

12

checklist-create

ایجاد چک‌لیست جدید روی تسک

13

checklist-item-create

اضافه کردن آیتم جدید به چک‌لیست موجود

14

time-entry-create

ثبت زمان صرف شده روی یک تسک برای گزارش‌دهی و حسابداری

15

custom-field-set

تنظیم مقدار فیلد سفارشی روی تسک

16

tag-add

اضافه کردن برچسب به تسک

17

goal-get

دریافت لیست اهداف و KPI‌های تعریف شده در Workspace

18

member-list

دریافت لیست اعضای Workspace با نقش‌ها و اطلاعات پروفایل

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

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

۱. مدیریت خودکار پروژه‌های مشتریان (Client Project Management)

وقتی مشتری جدید ثبت‌نام می‌کند، خودکار ساختار پروژه ایجاد شود:

code
Webhook (ثبت‌نام مشتری جدید از CRM)
  -> ClickUp (folder-create)
    Space: "Client Projects"
    Name: "{{$json.companyName}}"
  -> ClickUp (list-create)
    Folder: folder ایجاد شده
    Name: "Phase 1 - Discovery"
  -> ClickUp (list-create)
    Name: "Phase 2 - Design"
  -> ClickUp (list-create)
    Name: "Phase 3 - Development"
  -> ClickUp (task-create - در لیست Phase 1)
    Name: "جلسه معرفی و شناخت نیازها"
    Assignee: مدیر پروژه
    Due Date: یک هفته بعد
  -> ClickUp (task-create)
    Name: "تحلیل نیازمندی‌ها و مستندسازی"
  -> ClickUp (checklist-create)
    Name: "مراحل Onboarding"
  -> ClickUp (checklist-item-create)
    Items: ["ارسال خوش‌آمدگویی", "تنظیم دسترسی‌ها", "جلسه Kickoff", "تحویل Timeline"]
  -> Email (ارسال خوش‌آمدگویی به مشتری)

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

هر ایمیل دریافتی مهم به تسک در ClickUp تبدیل شود:

code
Email Trigger (ایمیل جدید با label "task")
  -> ClickUp (task-create)
    List: "Inbox"
    Name: "\[Email] ${subject}"
    Description: "از: ${from}\n---\n${body}"
    Priority: 3 (Normal)
    Due Date: 7 روز بعد
  -> IF (ایمیل از مشتری VIP)
    -> ClickUp (task-update)
      Priority: 1 (Urgent)
    -> ClickUp (tag-add: "vip-client")
  -> IF (ایمیل دارای پیوست)
    -> ClickUp (comment-create)
      Text: "پیوست‌های ایمیل: [${attachment.name}]"
  -> ClickUp (comment-create)
    Text: "تسک از ایمیل ایجاد شده - \[مشاهده ایمیل اصلی]"

۳. خودکارسازی Sprint Planning

شروع خودکار اسپرینت و انتقال تسک‌ها از Backlog:

code
Schedule (هر ۲ هفته - شنبه ساعت ۹)
  -> ClickUp (list-create)
    Space: "Engineering"
    Name: "Sprint ${sprintNumber} - ${startDate}"
  -> ClickUp (task-list)
    List: "Backlog"
    Statuses: ["Ready for Sprint"]
    Order By: priority
  -> Loop (حداکثر ۱۵ تسک)
    -> ClickUp (task-update)
      Move to: لیست Sprint جدید
      Status: "To Do"
  -> ClickUp (task-create - Sprint Summary)
    Name: "Sprint ${sprintNumber} Goals"
    Description: "تعداد تسک: ${count}\nمجموع تخمین: ${totalEstimate}"
  -> Telegram (اعلان شروع Sprint به تیم)
  -> Slack (ارسال Sprint Goals به کانال #engineering)

۴. گزارش‌دهی Time Tracking

جمع‌آوری خودکار گزارش زمان کار تیم:

code
Schedule (آخر هر هفته - پنج‌شنبه ساعت ۱۸)
  -> ClickUp (time entries - این هفته)
  -> Code (محاسبه آمار)
    - مجموع ساعات هر عضو تیم
    - زمان Billable vs Non-billable
    - پروژه‌هایی با بیشترین زمان
    - میانگین ساعات روزانه
  -> Google Sheets (ذخیره گزارش هفتگی)
  -> Code (ساخت گزارش مدیریتی)
  -> Email (ارسال گزارش به مدیر)
  -> Telegram (ارسال خلاصه به کانال تیم)

۵. به‌روزرسانی خودکار وضعیت پروژه مشتری

وقتی تسک‌های کلیدی تغییر وضعیت می‌دهند، مشتری مطلع شود:

code
ClickUp Trigger (تغییر وضعیت تسک)
  -> IF (Tag = "client-visible")
    -> IF (Status = "complete")
      -> ClickUp (task-get: دریافت جزئیات)
      -> Email (ارسال به مشتری)
        Subject: "به‌روزرسانی پروژه: ${taskName} تکمیل شد"
        Body: "با سلام، مرحله ${taskName} از پروژه شما تکمیل شده..."
      -> ClickUp (comment-create)
        Text: "اعلان به مشتری ارسال شد"
    -> IF (Status = "blocked")
      -> Telegram (هشدار به مدیر پروژه)
      -> ClickUp (task-update: Priority = Urgent)

۶. یکپارچه‌سازی با GitHub/GitLab

همگام‌سازی کد و تسک‌ها:

code
GitHub Trigger (Pull Request)
  -> Code (استخراج Task ID از branch name: feature/CU-abc123-add-login)
  -> IF (action = opened)
    -> ClickUp (task-update)
      Status: "In Review"
    -> ClickUp (comment-create)
      Text: "PR ایجاد شد: ${prUrl}\nBranch: ${branchName}"
  -> IF (action = closed AND merged)
    -> ClickUp (task-update)
      Status: "Done"
    -> ClickUp (comment-create)
      Text: "PR merge شد. Ready for QA."
    -> ClickUp (time-entry-create)
      Description: "Development completed"

۷. سیستم ردیابی باگ خودکار

گزارش و مدیریت باگ‌ها از منابع مختلف:

code
Webhook (گزارش باگ از فرم وبسایت / Sentry / Grafana)
  -> ClickUp (task-create)
    List: "Bug Reports"
    Name: "[Bug] ${title}"
    Description: "\n**گزارش‌دهنده:** ${reporter}\n**محیط:** ${environment}\n**مرورگر:** ${browser}\n**توضیحات:** ${description}\n**مراحل بازتولید:**\n${steps}"
    Priority: بر اساس severity
    Tags: ["bug", "${severity}"]
  -> ClickUp (checklist-create)
    Name: "Bug Fix Checklist"
  -> ClickUp (checklist-item-create)
    Items: ["بازتولید باگ", "شناسایی Root Cause", "نوشتن Fix", "نوشتن Unit Test", "Code Review", "QA Testing", "Deploy"]
  -> ClickUp (custom-field-set)
    Field: "Severity"
    Value: "${severity}"
  -> IF (severity = critical)
    -> ClickUp (task-update: Priority = 1)
    -> Telegram (هشدار فوری به تیم)
    -> Slack (alert به #incidents)

۸. پایپلاین استخدام و HR

مدیریت فرآیند استخدام:

code
Webhook (رزومه جدید از فرم)
  -> ClickUp (task-create)
    List: "Candidates"
    Name: "${candidateName} - ${position}"
    Description: "ایمیل: ${email}\nموبایل: ${phone}\nسابقه: ${experience} سال"
    Tags: ["${position}", "${source}"]
  -> ClickUp (custom-field-set)
    Field: "Position": "${position}"
    Field: "Experience": ${years}
    Field: "Source": "${source}"
  -> ClickUp (checklist-create: "Hiring Pipeline")
  -> ClickUp (checklist-item-create)
    Items: ["بررسی رزومه", "تماس اولیه HR", "تست فنی", "مصاحبه فنی", "مصاحبه فرهنگی", "بررسی رفرنس", "ارسال پیشنهاد"]
  -> ClickUp (comment-create)
    Text: "کاندید جدید از طریق ${source} ثبت شد"
  -> Email (تایید دریافت رزومه به کاندید)

۹. مدیریت محتوا و تقویم انتشار

برنامه‌ریزی و مدیریت تولید محتوا:

code
Schedule (هر روز صبح ساعت ۹)
  -> ClickUp (task-list)
    List: "Content Calendar"
    Due Date: امروز
    Status: "Ready to Publish"
  -> Loop (تسک‌های آماده انتشار)
    -> ClickUp (task-get: جزئیات محتوا)
    -> IF (Tag = "blog")
      -> WordPress (انتشار پست)
      -> ClickUp (task-update: Status = "Published")
    -> IF (Tag = "telegram")
      -> Telegram (ارسال به کانال)
      -> ClickUp (task-update: Status = "Published")
    -> IF (Tag = "social")
      -> Twitter / Instagram API (انتشار)
    -> ClickUp (comment-create)
      Text: "محتوا منتشر شد - ${platforms}"
    -> ClickUp (time-entry-create)
      Description: "Content publishing"

۱۰. مانیتورینگ SLA و هشدار ددلاین

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

code
Schedule (هر روز ساعت ۸ صبح)
  -> ClickUp (task-list)
    List: "Client Tasks"
    Due Date < فردا
    Status != "complete"
  -> Loop
    -> IF (Due Date = امروز)
      -> Telegram (هشدار: "تسک '${name}' امروز ددلاین دارد!")
      -> ClickUp (comment-create)
        Text: "یادآوری: ددلاین امروز!"
    -> IF (Due Date < امروز - Overdue)
      -> ClickUp (task-update: Priority = 1 Urgent)
      -> ClickUp (tag-add: "overdue")
      -> Email (هشدار به مدیر پروژه)
      -> Slack (alert به کانال #deadlines)
  -> Code (خلاصه وضعیت: تعداد overdue, at risk, on track)
  -> Telegram (گزارش وضعیت به مدیر)

۱۱. همگام‌سازی ClickUp با Google Calendar

سینک تسک‌ها با تقویم:

code
ClickUp Trigger (تسک جدید با Due Date)
  -> IF (Due Date موجود)
    -> Google Calendar (ایجاد رویداد)
      Title: "[ClickUp] ${taskName}"
      Date: ${dueDate}
      Description: "Link: ${taskUrl}\nAssignee: ${assignee}\nPriority: ${priority}"
    -> ClickUp (comment-create)
      Text: "رویداد تقویم ایجاد شد"

ClickUp Trigger (تغییر Due Date)
  -> Google Calendar (ویرایش رویداد)
    Date: ${newDueDate}

۱۲. گزارش هفتگی خودکار تیم

ساخت و ارسال گزارش عملکرد تیم:

code
Schedule (جمعه ساعت ۱۷)
  -> ClickUp (task-list: Status = "complete", Updated This Week)
  -> ClickUp (task-list: Status = "in progress")
  -> ClickUp (task-list: Status = "blocked")
  -> Code (محاسبه آمار)
    - تسک‌های تکمیل شده: ${doneCount}
    - در حال انجام: ${progressCount}
    - مسدود شده: ${blockedCount}
    - مجموع ساعات Time Tracking
    - بهره‌وری هر عضو تیم
  -> Telegram (گزارش هفتگی)
  -> Google Sheets (ذخیره آمار)
  -> Notion (ایجاد صفحه گزارش هفتگی)

نکات حرفه‌ای

نکات حرفه‌ای

۱. ساختار سلسله‌مراتبی ClickUp

درک صحیح سلسله‌مراتب برای طراحی workflow ضروری است:

code
Workspace (سازمان)
  Space (تیم/دپارتمان - مثل: Engineering, Marketing, HR)
    Folder (پروژه - اختیاری)
      List (مجموعه تسک - مثل: Sprint 1, Backlog, In Progress)
        Task (واحد کار)
          Subtask (زیرتسک)
            Checklist (چک‌لیست)
              Checklist Item (آیتم چک‌لیست)

Folder اختیاری است - می‌توانید مستقیماً در Space لیست بسازید (Folderless List).

۲. یافتن شناسه‌ها (IDs) به راحتی

code
// Team (Workspace) ID:
GET /api/v2/team

// Space ID:
GET /api/v2/team/{team_id}/space

// Folder ID:
GET /api/v2/space/{space_id}/folder

// List ID:
GET /api/v2/folder/{folder_id}/list
// یا Folderless:
GET /api/v2/space/{space_id}/list

// Task ID از URL:
https://app.clickup.com/t/abc123xyz -> Task ID: abc123xyz

// Member IDs:
GET /api/v2/team/{team_id}/member

۳. مدیریت وضعیت‌های سفارشی (Custom Statuses)

هر لیست می‌تواند وضعیت‌های منحصربه‌فرد داشته باشد:

code
// دریافت وضعیت‌های یک لیست
GET /api/v2/list/{listId}
-> statuses: [
    {"status": "to do", "type": "open", "color": "#d3d3d3"},
    {"status": "in progress", "type": "custom", "color": "#4194f6"},
    {"status": "review", "type": "custom", "color": "#a875ff"},
    {"status": "complete", "type": "done", "color": "#6bc950"},
    {"status": "closed", "type": "closed", "color": "#6bc950"}
  ]

وقتی Status تسک را تغییر می‌دهید، نام باید دقیقاً مطابق باشد.

۴. Custom Fields - انواع و فرمت‌ها

فیلدهای سفارشی قدرتمندترین ویژگی ClickUp هستند:

code
// دریافت Custom Fields یک لیست:
GET /api/v2/list/{listId}/field

// تنظیم مقدار:
POST /api/v2/task/{taskId}/field/{fieldId}

// فرمت مقادیر:
Text/Short Text: {"value": "متن"}
Number: {"value": 42}
Money/Currency: {"value": 50000}
Dropdown: {"value": "option_orderindex"} // UUID گزینه
Date: {"value": 1704067200000, "value_options": {"time": true}}
Checkbox: {"value": true}
Rating: {"value": 4}
Labels: {"value": ["label_uuid_1"]}
Email: {"value": "test@example.com"}
Phone: {"value": "+989121234567"}
Location: {"value": {"location": {"lat": 35.6892, "lng": 51.3890}, "formatted_address": "Tehran"}}

۵. Task Dependencies (وابستگی تسک‌ها)

ClickUp از سه نوع وابستگی پشتیبانی می‌کند:

code
// اضافه کردن وابستگی
POST /api/v2/task/{taskId}/dependency
{
  "depends_on": "other_task_id",  // این تسک منتظر تسک دیگر است
  "dependency_of": "other_task_id"  // تسک دیگر منتظر این تسک است
}

// Blocking: تسک A باید قبل از تسک B تکمیل شود
// Waiting On: تسک B منتظر تکمیل تسک A است
// Linked: تسک‌ها مرتبط هستند (بدون ترتیب)

در workflow می‌توانید قبل از تغییر وضعیت، وابستگی‌ها را بررسی کنید.

۶. Time Estimates و Time Tracking

code
// تخمین زمان (در میلی‌ثانیه)
1 ساعت = 3600000
30 دقیقه = 1800000
1 روز (8 ساعت) = 28800000

// ثبت Time Entry:
POST /api/v2/team/{team_id}/time_entries
{
  "tid": "task_id",
  "start": 1704067200000,  // Unix timestamp ms
  "duration": 7200000,     // 2 ساعت
  "description": "کدنویسی API",
  "billable": true,
  "tags": [{"name": "development"}]
}

// شروع تایمر:
POST /api/v2/team/{team_id}/time_entries/start
{"tid": "task_id", "description": "شروع کار"}

// توقف تایمر:
POST /api/v2/team/{team_id}/time_entries/stop

۷. Markdown در ClickUp

ClickUp از Markdown پشتیبانی می‌کند:

markdown
**Bold** / *Italic* / ~~Strikethrough~~
[Link](https://example.com)
- لیست نامرتب
1. لیست مرتب
> نقل قول
\`کد inline\`
\`\`\`
بلوک کد
\`\`\`
| جدول | ستون |
|-------|------|
| مقدار | مقدار |
/mention @username

۸. Batch Operations با مدیریت Rate Limit

code
ClickUp (task-list: لیست تسک‌ها)
  -> Split In Batches (batch size: 10)
  -> Loop
    -> ClickUp (عملیات روی تسک)
    -> Wait (700ms)  // رعایت rate limit (100 req/min)
  -> Merge Results

با Wait 700ms بین هر درخواست، حداکثر ~85 درخواست در دقیقه ارسال می‌کنید.

۹. فیلتر کردن تسک‌ها با Query Parameters

code
GET /api/v2/list/{listId}/task?
  archived=false&
  page=0&
  order_by=due_date&
  reverse=false&
  subtasks=true&
  statuses[]=in%20progress&
  statuses[]=to%20do&
  assignees[]=12345678&
  due_date_gt=1704067200000&
  due_date_lt=1706745600000&
  tags[]=urgent&
  include_closed=false

۱۰. Goals و Key Results

code
// Goals ساختار OKR دارند:
Goal (هدف بلندمدت)
  └── Key Result / Target (نتیجه کلیدی)

// دریافت Goals:
GET /api/v2/team/{team_id}/goal

// هر Goal شامل Targets است که می‌تواند:
- Number: رسیدن به عدد مشخص (مثل: ۱۰۰ مشتری)
- Percentage: درصد پیشرفت
- Currency: مبلغ درآمد
- True/False: انجام شد / نشد
- Task: تکمیل تسک‌های مشخص
- List: تکمیل تمام تسک‌های یک لیست

۱۱. استفاده از Tags برای Workflow Automation

Tags ابزار قدرتمندی برای اتوماسیون هستند:

code
// اضافه کردن Tag به تسک:
POST /api/v2/task/{task_id}/tag/{tag_name}

// حذف Tag:
DELETE /api/v2/task/{task_id}/tag/{tag_name}

// کاربرد در workflow:
ClickUp Trigger (Tag Added: "needs-review")
  -> Telegram (اعلان به reviewer)
  -> ClickUp (task-update: Assignee = reviewer)

ClickUp Trigger (Tag Added: "approved")
  -> ClickUp (task-update: Status = "Ready for Deploy")
  -> ClickUp (tag-add: "ready-to-deploy")

۱۲. Folderless Lists vs Folder Lists

code
// Folderless List: لیست مستقیم در Space
POST /api/v2/space/{space_id}/list
{"name": "Quick Tasks"}  // بدون Folder - ساده‌تر

// Folder List: لیست داخل Folder
POST /api/v2/folder/{folder_id}/list
{"name": "Sprint 1"}  // داخل Folder - سازماندهی بهتر

// توصیه: از Folder برای پروژه‌های بزرگ و از Folderless برای لیست‌های عمومی استفاده کنید

۱۳. Multiple Assignees

ClickUp از چند Assignee پشتیبانی می‌کند:

code
// در ایجاد تسک:
{"assignees": [12345678, 87654321]}

// در ویرایش تسک (اضافه/حذف):
{
  "assignees": {
    "add": [12345678],
    "rem": [87654321]
  }
}

۱۴. ClickUp vs سایر ابزارها - انتخاب صحیح

code
ClickUp: مدیریت پروژه جامع، Custom Fields قوی، Time Tracking داخلی
Jira: توسعه نرم‌افزار، Sprint/Scrum پیشرفته، JQL
Trello: Kanban ساده، یادگیری آسان
Notion: مستندات + دیتابیس، ویکی تیمی
Asana: مدیریت وظایف، Timeline View

نکته: n8n می‌تواند داده‌ها را بین همه این ابزارها همگام‌سازی کند!

۱۵. Custom Task IDs

ClickUp امکان تعریف شناسه سفارشی تسک را می‌دهد:

code
// فعال کردن: Space Settings > Custom Task IDs
// فرمت: PREFIX-NUMBER (مثل: DEV-001)

// استفاده در API:
GET /api/v2/task/DEV-001?custom_task_ids=true&team_id=123456

Custom Task ID خوانایی بهتری نسبت به ID داخلی (abc123xyz) دارد.

۱۶. Template‌های تسک با n8n

ایجاد تسک‌های تکراری با الگوی ثابت:

code
Webhook (نوع درخواست)
  -> Switch
    -> type = "bug_report":
      -> ClickUp (task-create)
        Name: "[Bug] ${title}"
        Description: Template باگ
        Priority: 2 (High)
        Tags: ["bug"]
      -> ClickUp (checklist-create: "QA Steps")
    -> type = "feature_request":
      -> ClickUp (task-create)
        Name: "[Feature] ${title}"
        Description: Template فیچر
        Priority: 3 (Normal)
        Tags: ["feature-request"]
      -> ClickUp (checklist-create: "Definition of Done")
    -> type = "onboarding":
      -> ClickUp (task-create)
        Name: "[Onboarding] ${clientName}"
        Tags: ["onboarding"]
      -> ClickUp (checklist-create: "Onboarding Steps")
      -> ClickUp (checklist-item-create: items...)

رفع مشکلات

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

خطای 401 Unauthorized

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

راه‌حل

  • Token را از تنظیمات ClickUp > Apps بررسی کنید
  • اگر Token تغییر کرده، Credential در n8n را بروز کنید
  • برای OAuth2، token ممکن است revoke شده باشد - دوباره Connect کنید
  • مطمئن شوید Token به صورت کامل کپی شده (بدون فاصله اضافی)
  • Token شخصی با pk_ شروع می‌شود

خطای 403 Forbidden

علت: دسترسی کافی به resource مورد نظر ندارید

راه‌حل

  • مطمئن شوید کاربر Token عضو Workspace مورد نظر است
  • بررسی کنید آیا کاربر به Space، Folder و List دسترسی دارد
  • برای عملیات Admin، نیاز به دسترسی Owner یا Admin دارید
  • Guest users فقط دسترسی محدود دارند
  • بررسی کنید Permission Level در Space setting

خطای 404 Not Found

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

راه‌حل

  • شناسه تسک در ClickUp با فرمت abc123 است (نه عددی)
  • Task ID را از URL یا API دریافت کنید:
code
از URL: https://app.clickup.com/t/abc123xyz
  از API: GET /api/v2/list/{listId}/task
  • مطمئن شوید تسک یا لیست آرشیو نشده باشد
  • Space ID، Folder ID و List ID عددی هستند
  • اگر از Custom Task ID استفاده می‌کنید، پارامتر custom_task_ids=true را اضافه کنید

خطای 429 Rate Limit Exceeded

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

راه‌حل

  • بین درخواست‌ها Wait node اضافه کنید:
code
Loop -> ClickUp -> Wait (700ms) -> Next
  • از Retry on Fail استفاده کنید:
code
Retry on Fail: ON
  Max Tries: 3
  Wait Between: 5000ms
  • عملیات Batch را به قطعات کوچکتر تقسیم کنید
  • Header X-RateLimit-Remaining را بررسی کنید
  • عملیات سنگین را در ساعات غیر پیک اجرا کنید

خطای 400 Bad Request

علت: پارامترهای ارسالی نادرست

راه‌حل

  • مقادیر تاریخ باید Unix timestamp (میلی‌ثانیه) باشند:
code
صحیح: 1704067200000
  نادرست: "2024-01-01"
  نادرست: 1704067200 (ثانیه بدون میلی‌ثانیه)
  • Priority عددی است: 1=Urgent, 2=High, 3=Normal, 4=Low
  • Assignees باید آرایه‌ای از شناسه‌های عددی باشد (نه email)
  • نام Status باید دقیقاً مطابق با وضعیت‌های تعریف شده لیست باشد
  • Custom Field ID فرمت UUID دارد (مثل: a1b2c3d4-e5f6-...)

خطای وضعیت (Status) نامعتبر

علت: نام وضعیت با وضعیت‌های تعریف شده در لیست مطابقت ندارد

راه‌حل

  • هر لیست وضعیت‌های مخصوص به خود را دارد
  • ابتدا وضعیت‌های مجاز را دریافت کنید:
code
GET /api/v2/list/{listId}
  -> statuses: [{"status": "to do", "type": "open"}, {"status": "in progress", "type": "custom"}, ...]
  • نام وضعیت case-insensitive است ولی باید دقیقاً مطابق باشد
  • وضعیت‌های پیش‌فرض: "to do", "in progress", "complete", "closed"

Custom Fields مقدار نمی‌گیرند

علت: فرمت مقدار فیلد سفارشی اشتباه

راه‌حل

  • هر نوع Custom Field فرمت مقدار متفاوتی دارد:
code
Text: {"value": "متن"}
  Number: {"value": 42}
  Dropdown: {"value": "option_uuid"} (UUID گزینه، نه متن)
  Date: {"value": 1704067200000} (Unix timestamp ms)
  Checkbox: {"value": true}
  Email: {"value": "user@example.com"}
  Phone: {"value": "+989121234567"}
  URL: {"value": "https://example.com"}
  Currency: {"value": 50000}
  Labels: {"value": ["label_uuid_1", "label_uuid_2"]}
  • Dropdown فیلدها نیاز به UUID گزینه دارند، نه متن
  • ابتدا فیلدها را بگیرید: GET /api/v2/list/{listId}/field

Webhook/Trigger رویداد دریافت نمی‌کند

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

راه‌حل

  • URL باید publicly accessible باشد (HTTPS)
  • n8n Webhook URL باید فعال و listening باشد
  • بررسی کنید محدودیت تعداد webhook (۵ عدد در پلن رایگان)
  • Events صحیح انتخاب شده باشند
  • Workspace و Space مورد نظر فیلتر شده باشند
  • از ClickUp API لیست webhookهای فعال را بررسی کنید:
code
GET /api/v2/team/{team_id}/webhook

تسک ایجاد می‌شود ولی Assignee اضافه نمی‌شود

علت: شناسه Assignee اشتباه

راه‌حل

  • Assignee ID باید عددی باشد (مثل: 12345678)، نه email
  • شناسه کاربران را از API دریافت کنید:
code
GET /api/v2/team/{team_id}/member
  -> [{"user": {"id": 12345678, "username": "john", "email": "john@example.com"}}]
  • کاربر باید عضو Workspace و دسترسی به لیست داشته باشد
  • مقدار assignees آرایه‌ای از اعداد است: [12345678, 87654321]
اشتراک‌گذاری:

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