کلیکآپ
ClickUp
مدیریت خودکار Tasks، Lists، Spaces، Time Tracking، Goals و Custom Fields در ClickUp
نمای کلی
نود ClickUp چیست؟
نود ClickUp امکان اتصال و خودکارسازی فرآیندهای مدیریت پروژه و بهرهوری تیمی را در n8n فراهم میکند. ClickUp یک پلتفرم همهکاره (All-in-One) است که مدیریت Task، مستندات، Goals، Whiteboards، Chat و Time Tracking را در یک ابزار واحد ارائه میدهد.
ساختار سلسلهمراتبی ClickUp:
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وارد اکانت ClickUp خود شوید
- 2روی آواتار خود در پایین سمت چپ کلیک کنید
- 3به Settings بروید
- 4از منوی سمت چپ Apps را انتخاب کنید
- 5در بخش API Token، روی Generate کلیک کنید
- 6Token ساخته شده را کپی کنید:
pk_12345678_ABCDEFGHIJKLMNOPQRSTUVWXYZ#### مرحله ۲: تنظیم در n8n
- 1به Credentials بروید
- 2ClickUp API را انتخاب کنید
- 3فیلدها را پر کنید:
- API Token: توکن شخصی دریافتی
- 1Test Connection بزنید
⚠️ نکته مهم: Personal API Token با دسترسیهای کامل اکانت شما عمل میکند. برای محیط Production از OAuth2 استفاده کنید.
روش ۲: OAuth2 (برای اپلیکیشنها - توصیه شده برای Production)
#### مرحله ۱: ایجاد OAuth App
- 1به [ClickUp API Documentation](https://clickup.com/api) بروید
- 2یک OAuth App جدید بسازید
- 3فیلدها را پر کنید:
- App Name: نام اپلیکیشن (مثل: "n8n Automation")
- Redirect URL(s): آدرس callback n8n شما
- 1Client ID و Client Secret دریافت کنید
#### مرحله ۲: تنظیم در n8n
- 1Credentials > ClickUp OAuth2 API
- 2فیلدها را پر کنید:
- Client ID: شناسه دریافتی
- Client Secret: کلید محرمانه دریافتی
- 1روی Connect کلیک کنید و دسترسیها را تایید کنید
مزایای OAuth2:
- دسترسیهای محدودتر و امنتر
- قابل revoke بدون تغییر password
- مناسب برای اپلیکیشنهای چندکاربره
- Token خودکار refresh میشود
یافتن شناسهها (IDs)
#### Team (Workspace) ID:
GET https://api.clickup.com/api/v2/team
→ {"teams": [{"id": "1234567", "name": "My Workspace"}]}#### Space ID:
GET https://api.clickup.com/api/v2/team/{team_id}/space
→ {"spaces": [{"id": "89012345", "name": "Engineering"}]}#### List ID (از URL):
https://app.clickup.com/1234567/v/li/89012345
^^^^^^^^
List ID#### Task ID (از URL):
https://app.clickup.com/t/abc123xyz
^^^^^^^^^
Task IDنکات امنیتی:
- Token شخصی را هرگز به اشتراک نگذارید
- برای Production از OAuth2 استفاده کنید
- Token را در Environment Variables ذخیره کنید
- در صورت نشت Token، فوراً از تنظیمات ClickUp آن را regenerate کنید
- برای workspaceهای حساس، از اکانت سرویس (Service Account) جداگانه استفاده کنید
عملیاتهای موجود
task-create
ایجاد تسک جدید در لیست مشخص با تمام جزئیات
task-get
دریافت اطلاعات کامل یک تسک شامل وضعیت، assignee، فیلدهای سفارشی و وابستگیها
task-update
ویرایش فیلدهای تسک موجود شامل عنوان، وضعیت، اولویت، assignee و فیلدهای سفارشی
task-delete
حذف یک تسک به صورت دائمی (غیرقابل بازگشت)
task-list
دریافت لیست تسکهای یک لیست با امکان فیلتر و مرتبسازی
list-create
ایجاد لیست جدید در Folder یا مستقیماً در Space (Folderless List)
list-get
دریافت اطلاعات یک لیست شامل تنظیمات، وضعیتها و آمار تسکها
folder-create
ایجاد پوشه جدید در Space برای سازماندهی لیستها
folder-get
دریافت اطلاعات پوشه شامل لیستهای داخل آن
space-get
دریافت لیست فضاهای کاری یک Workspace
comment-create
ارسال کامنت جدید روی تسک با امکان mention کاربران
checklist-create
ایجاد چکلیست جدید روی تسک
checklist-item-create
اضافه کردن آیتم جدید به چکلیست موجود
time-entry-create
ثبت زمان صرف شده روی یک تسک برای گزارشدهی و حسابداری
custom-field-set
تنظیم مقدار فیلد سفارشی روی تسک
tag-add
اضافه کردن برچسب به تسک
goal-get
دریافت لیست اهداف و KPIهای تعریف شده در Workspace
member-list
دریافت لیست اعضای Workspace با نقشها و اطلاعات پروفایل
کاربردهای متداول
کاربردهای رایج
۱. مدیریت خودکار پروژههای مشتریان (Client Project Management)
وقتی مشتری جدید ثبتنام میکند، خودکار ساختار پروژه ایجاد شود:
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 تبدیل شود:
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:
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
جمعآوری خودکار گزارش زمان کار تیم:
Schedule (آخر هر هفته - پنجشنبه ساعت ۱۸)
-> ClickUp (time entries - این هفته)
-> Code (محاسبه آمار)
- مجموع ساعات هر عضو تیم
- زمان Billable vs Non-billable
- پروژههایی با بیشترین زمان
- میانگین ساعات روزانه
-> Google Sheets (ذخیره گزارش هفتگی)
-> Code (ساخت گزارش مدیریتی)
-> Email (ارسال گزارش به مدیر)
-> Telegram (ارسال خلاصه به کانال تیم)۵. بهروزرسانی خودکار وضعیت پروژه مشتری
وقتی تسکهای کلیدی تغییر وضعیت میدهند، مشتری مطلع شود:
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
همگامسازی کد و تسکها:
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"۷. سیستم ردیابی باگ خودکار
گزارش و مدیریت باگها از منابع مختلف:
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
مدیریت فرآیند استخدام:
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 (تایید دریافت رزومه به کاندید)۹. مدیریت محتوا و تقویم انتشار
برنامهریزی و مدیریت تولید محتوا:
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 و هشدار ددلاین
بررسی تسکهای نزدیک به ددلاین:
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
سینک تسکها با تقویم:
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}۱۲. گزارش هفتگی خودکار تیم
ساخت و ارسال گزارش عملکرد تیم:
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 ضروری است:
Workspace (سازمان)
Space (تیم/دپارتمان - مثل: Engineering, Marketing, HR)
Folder (پروژه - اختیاری)
List (مجموعه تسک - مثل: Sprint 1, Backlog, In Progress)
Task (واحد کار)
Subtask (زیرتسک)
Checklist (چکلیست)
Checklist Item (آیتم چکلیست)Folder اختیاری است - میتوانید مستقیماً در Space لیست بسازید (Folderless List).
۲. یافتن شناسهها (IDs) به راحتی
// 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)
هر لیست میتواند وضعیتهای منحصربهفرد داشته باشد:
// دریافت وضعیتهای یک لیست
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 هستند:
// دریافت 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 از سه نوع وابستگی پشتیبانی میکند:
// اضافه کردن وابستگی
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
// تخمین زمان (در میلیثانیه)
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 پشتیبانی میکند:
**Bold** / *Italic* / ~~Strikethrough~~
[Link](https://example.com)
- لیست نامرتب
1. لیست مرتب
> نقل قول
\`کد inline\`
\`\`\`
بلوک کد
\`\`\`
| جدول | ستون |
|-------|------|
| مقدار | مقدار |
/mention @username۸. Batch Operations با مدیریت Rate Limit
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
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
// 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 ابزار قدرتمندی برای اتوماسیون هستند:
// اضافه کردن 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
// 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 پشتیبانی میکند:
// در ایجاد تسک:
{"assignees": [12345678, 87654321]}
// در ویرایش تسک (اضافه/حذف):
{
"assignees": {
"add": [12345678],
"rem": [87654321]
}
}۱۴. ClickUp vs سایر ابزارها - انتخاب صحیح
ClickUp: مدیریت پروژه جامع، Custom Fields قوی، Time Tracking داخلی
Jira: توسعه نرمافزار، Sprint/Scrum پیشرفته، JQL
Trello: Kanban ساده، یادگیری آسان
Notion: مستندات + دیتابیس، ویکی تیمی
Asana: مدیریت وظایف، Timeline View
نکته: n8n میتواند دادهها را بین همه این ابزارها همگامسازی کند!۱۵. Custom Task IDs
ClickUp امکان تعریف شناسه سفارشی تسک را میدهد:
// فعال کردن: Space Settings > Custom Task IDs
// فرمت: PREFIX-NUMBER (مثل: DEV-001)
// استفاده در API:
GET /api/v2/task/DEV-001?custom_task_ids=true&team_id=123456Custom Task ID خوانایی بهتری نسبت به ID داخلی (abc123xyz) دارد.
۱۶. Templateهای تسک با n8n
ایجاد تسکهای تکراری با الگوی ثابت:
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 دریافت کنید:
از 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 اضافه کنید:
Loop -> ClickUp -> Wait (700ms) -> Next- از Retry on Fail استفاده کنید:
Retry on Fail: ON
Max Tries: 3
Wait Between: 5000ms- عملیات Batch را به قطعات کوچکتر تقسیم کنید
- Header
X-RateLimit-Remainingرا بررسی کنید - عملیات سنگین را در ساعات غیر پیک اجرا کنید
خطای 400 Bad Request
علت: پارامترهای ارسالی نادرست
راهحل
- مقادیر تاریخ باید Unix timestamp (میلیثانیه) باشند:
صحیح: 1704067200000
نادرست: "2024-01-01"
نادرست: 1704067200 (ثانیه بدون میلیثانیه)- Priority عددی است: 1=Urgent, 2=High, 3=Normal, 4=Low
- Assignees باید آرایهای از شناسههای عددی باشد (نه email)
- نام Status باید دقیقاً مطابق با وضعیتهای تعریف شده لیست باشد
- Custom Field ID فرمت UUID دارد (مثل:
a1b2c3d4-e5f6-...)
خطای وضعیت (Status) نامعتبر
علت: نام وضعیت با وضعیتهای تعریف شده در لیست مطابقت ندارد
راهحل
- هر لیست وضعیتهای مخصوص به خود را دارد
- ابتدا وضعیتهای مجاز را دریافت کنید:
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 فرمت مقدار متفاوتی دارد:
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های فعال را بررسی کنید:
GET /api/v2/team/{team_id}/webhookتسک ایجاد میشود ولی Assignee اضافه نمیشود
علت: شناسه Assignee اشتباه
راهحل
- Assignee ID باید عددی باشد (مثل: 12345678)، نه email
- شناسه کاربران را از API دریافت کنید:
GET /api/v2/team/{team_id}/member
-> [{"user": {"id": 12345678, "username": "john", "email": "john@example.com"}}]- کاربر باید عضو Workspace و دسترسی به لیست داشته باشد
- مقدار assignees آرایهای از اعداد است: [12345678, 87654321]
