ترلو
Trello
مدیریت خودکار بوردها، کارتها، لیستها و تیمها در Trello با متد Kanban
نمای کلی
نود Trello چیست؟
نود Trello امکان اتصال و خودکارسازی مدیریت پروژه با روش Kanban را در n8n فراهم میکند. Trello یکی از محبوبترین ابزارهای مدیریت پروژه در ایران است که تیمهای مختلف از آن برای سازماندهی وظایف، پیگیری پیشرفت و همکاری تیمی استفاده میکنند.
قابلیتهای کلیدی:
- مدیریت بوردها: ایجاد، ویرایش، دریافت و حذف بوردهای پروژه
- مدیریت لیستها: ایجاد، ویرایش، جابجایی و آرشیو لیستها (ستونهای Kanban)
- مدیریت کارتها: ایجاد، ویرایش، جابجایی، کپی، آرشیو و حذف کارتها
- مدیریت اعضا: دریافت اطلاعات، لیست و اضافه/حذف اعضای بورد و کارت
- لیبلها: ایجاد، ویرایش، حذف و اضافه کردن لیبل به کارتها
- چکلیستها: ایجاد، حذف چکلیست و مدیریت آیتمهای آن
- پیوستها: آپلود، دریافت و حذف فایلهای پیوست
- کامنتها: ایجاد، ویرایش و حذف کامنت روی کارتها
- Custom Fields: مدیریت فیلدهای سفارشی
- Webhooks: دریافت رویدادها از Trello
Trello Trigger:
- ایجاد کارت جدید
- جابجایی کارت بین لیستها
- تغییر وضعیت چکلیست
- اضافه شدن عضو جدید
- کامنت جدید روی کارت
- تغییرات لیبل
مقایسه Trello Butler با n8n:
- Butler: اتوماسیون داخلی Trello با قوانین ساده (محدود به Trello)
- n8n: اتوماسیون پیشرفته با اتصال به صدها سرویس دیگر
- n8n امکان ساخت workflowهای پیچیده بین Trello و سرویسهای خارجی مثل تلگرام، ایمیل، دیتابیس و CRM را فراهم میکند
محدودیتهای API:
- Rate Limit: 100 درخواست در 10 ثانیه برای هر Token
- حداکثر 300 درخواست در 10 ثانیه برای هر API Key
- حداکثر اندازه پیوست: 10 مگابایت (Free) و 250 مگابایت (Business)
احراز هویت
احراز هویت Trello
دریافت API Key و Token
#### مرحله 1: دریافت API Key
- 1وارد اکانت Trello خود شوید
- 2به آدرس [trello.com/power-ups/admin](https://trello.com/power-ups/admin) بروید
- 3یک Power-Up جدید بسازید یا به Developer API Keys بروید
- 4API Key را کپی کنید:
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6#### مرحله 2: دریافت Token
- 1در همان صفحه، روی لینک "Token" کلیک کنید
- 2دسترسیهای مورد نیاز را تایید کنید:
- Read: خواندن بوردها، لیستها و کارتها
- Write: ایجاد و ویرایش محتوا
- Account: دسترسی به اطلاعات حساب
- 1Token را کپی کنید:
abc123def456ghi789jkl012mno345pqr678stu901vwx234yz#### مرحله 3: تنظیم در n8n
- 1به Credentials بروید
- 2Trello API را انتخاب کنید
- 3فیلدها را پر کنید:
- API Key: کلید API دریافتی
- API Token: توکن دریافتی
- 1Test Connection بزنید
روش OAuth2 (برای اپلیکیشنها)
برای اپلیکیشنهایی که چندین کاربر دارند:
- 1در صفحه Power-Ups، OAuth را تنظیم کنید
- 2Allowed Origins را اضافه کنید
- 3Client ID و Client Secret دریافت کنید
- 4در n8n از Trello OAuth2 API استفاده کنید
نکات امنیتی:
- Token را به اشتراک نگذارید (دسترسی کامل به حساب دارد)
- برای هر پروژه Token جداگانه بسازید
- در صورت نیاز Token را از تنظیمات Trello Revoke کنید
- از Environment Variables برای ذخیره Key و Token استفاده کنید
- دسترسی Token را به حداقل لازم محدود کنید
عملیاتهای موجود
board-create
ایجاد بورد جدید در Trello
board-get
دریافت اطلاعات یک بورد شامل تنظیمات، لیستها و اعضا
board-update
ویرایش نام، توضیحات و تنظیمات بورد
board-delete
حذف دائمی بورد (غیرقابل بازگشت)
list-create
ایجاد لیست (ستون) جدید در بورد
list-get
دریافت اطلاعات لیست و کارتهای آن
list-update
ویرایش نام، جابجایی یا آرشیو لیست
card-create
ایجاد کارت جدید در لیست مشخص
card-get
دریافت اطلاعات کامل کارت شامل چکلیست، پیوست و کامنتها
card-update
ویرایش عنوان، توضیحات، تاریخ سررسید و سایر فیلدهای کارت
card-delete
حذف دائمی کارت از بورد (غیرقابل بازگشت)
card-move
انتقال کارت به لیست یا بورد دیگر
member-get
دریافت اطلاعات پروفایل عضو
member-list
دریافت لیست اعضای یک بورد
label-create
ایجاد لیبل جدید در بورد
checklist-create
ایجاد چکلیست جدید روی کارت
checklist-item-create
اضافه کردن آیتم جدید به چکلیست
attachment-create
اضافه کردن پیوست (فایل یا URL) به کارت
comment-create
ارسال کامنت روی کارت
comment-update
ویرایش متن کامنت موجود
کاربردهای متداول
کاربردهای رایج
1. تقویم محتوا و برنامه انتشار
مدیریت تولید محتوا با بورد Kanban:
Schedule (هر روز صبح)
-> Trello (queryDatabase - کارتهای با due امروز)
-> Loop
-> IF (لیست = "آماده انتشار")
-> WordPress (انتشار پست)
-> Trello (card-update)
idList: "منتشر شده"
-> Telegram (اعلان: "مطلب منتشر شد")
-> IF (لیست = "در حال نگارش")
-> Telegram (یادآوری به نویسنده)2. سیستم ردیابی باگ (Bug Tracking)
مدیریت باگها از گزارش تا رفع:
Webhook (گزارش باگ از سایت)
-> Trello (card-create)
idList: "باگهای جدید"
name: "[Bug] {{$json.title}}"
desc: "گزارشدهنده: {{$json.reporter}}\nمرورگر: {{$json.browser}}\nتوضیحات: {{$json.description}}"
idLabels: [labelId_bug]
due: {{$now.plus({days: 3}).toISO()}}
-> Trello (checklist-create)
name: "مراحل رفع باگ"
-> Trello (checklist-item-create)
items: ["بازتولید باگ", "شناسایی علت", "رفع کد", "تست", "Deploy"]
-> Telegram (اعلان به تیم فنی)3. پایپلاین مشتریان (Customer Onboarding)
مدیریت فرآیند ورود مشتری جدید:
Webhook (ثبتنام مشتری جدید)
-> Trello (card-create)
idList: "مشتریان جدید"
name: "{{$json.companyName}} - {{$json.contactName}}"
desc: "ایمیل: {{$json.email}}\nموبایل: {{$json.phone}}\nپلن: {{$json.plan}}"
-> Trello (checklist-create: "مراحل Onboarding")
-> Trello (checklist-item-create)
items: ["ارسال ایمیل خوشآمدگویی", "تنظیم حساب کاربری", "جلسه معرفی محصول", "آموزش اولیه", "پیگیری هفته اول"]
-> Trello (comment-create)
text: "مشتری جدید از طریق وبسایت ثبتنام کرد"
-> Email (ارسال خوشآمدگویی)4. پایپلاین فروش (Sales Pipeline)
مدیریت سرنخها تا فروش نهایی:
Trello Trigger (کارت به لیست "پیشنهاد ارسال شد" منتقل شد)
-> Wait (3 روز)
-> Trello (card-get)
-> IF (هنوز در لیست "پیشنهاد ارسال شد")
-> Trello (comment-create)
text: "یادآوری: 3 روز از ارسال پیشنهاد گذشته. پیگیری شود."
-> Telegram (اعلان به فروشنده)
-> IF (در لیست "بسته شده - موفق")
-> MySQL (ثبت فروش)
-> Telegram (تبریک به تیم)5. اتوماسیون بورد Sprint
مدیریت خودکار اسپرینتها:
Schedule (شروع اسپرینت - هر دو هفته)
-> Trello (list-create)
name: "Sprint {{$json.sprintNumber}} - To Do"
idBoard: boardId
-> Trello (لیست کارتهای Backlog با اولویت بالا)
-> Loop
-> Trello (card-move)
idList: "Sprint To Do"
-> Telegram (اعلان شروع اسپرینت)
Schedule (پایان اسپرینت)
-> Trello (لیست کارتهای باقیمانده)
-> Loop (کارتهای ناتمام)
-> Trello (card-move: بازگشت به Backlog)
-> Trello (list-update: آرشیو لیست اسپرینت)
-> Code (محاسبه Velocity)
-> Telegram (گزارش اسپرینت)6. برنامهریزی شبکههای اجتماعی
مدیریت پستها در کانالهای مختلف:
Trello Trigger (کارت به "آماده انتشار" منتقل شد)
-> Trello (card-get: دریافت پیوست و توضیحات)
-> Trello (attachment-get: دریافت تصویر)
-> IF (لیبل "اینستاگرام")
-> Instagram API (انتشار پست)
-> IF (لیبل "تلگرام")
-> Telegram (sendPhoto به کانال)
-> IF (لیبل "توییتر")
-> Twitter (ارسال توییت)
-> Trello (card-move: "منتشر شده")
-> Trello (comment-create: "منتشر شد در {{$json.platforms}}")7. پایپلاین استخدام (Hiring Pipeline)
مدیریت فرآیند استخدام:
Email Trigger (دریافت رزومه)
-> Trello (card-create)
idList: "رزومههای دریافتی"
name: "{{$json.senderName}} - {{$json.subject}}"
desc: "ایمیل: {{$json.from}}\nتاریخ: {{$now}}"
-> Trello (attachment-create)
file: PDF رزومه از ایمیل
-> Trello (label-add)
label: بر اساس عنوان شغلی
-> Trello (checklist-create: "مراحل استخدام")
-> Trello (checklist-item-create)
items: ["بررسی رزومه", "تماس اولیه", "مصاحبه فنی", "مصاحبه مدیریتی", "پیشنهاد شغلی"]8. تبدیل ایمیل به تسک
ایجاد خودکار کارت از ایمیل:
Email Trigger (ایمیل جدید با label "task")
-> Trello (card-create)
idList: "Inbox"
name: {{$json.subject}}
desc: "از: {{$json.from}}\n---\n{{$json.text}}"
due: {{$now.plus({days: 7}).toISO()}}
-> IF (ایمیل دارای پیوست)
-> Loop (پیوستها)
-> Trello (attachment-create)
-> Trello (comment-create)
text: "ایجاد خودکار از ایمیل دریافتی"9. هشدار کارتهای معوق (Card Aging Alert)
اعلان کارتهایی که مدت طولانی بدون تغییر ماندهاند:
Schedule (هر روز ساعت 9 صبح)
-> Trello (دریافت کارتهای بورد)
-> Filter (کارتهای بدون تغییر بیش از 7 روز)
-> Loop
-> Trello (comment-create)
text: "هشدار: این کارت بیش از 7 روز بدون تغییر مانده!"
-> IF (بدون تغییر بیش از 14 روز)
-> Trello (label-add: "معوق")
-> Telegram (گزارش کارتهای معوق به مدیر)10. ردیابی زمان و گزارشدهی
جمعآوری و گزارش پیشرفت تیم:
Schedule (آخر هر هفته)
-> Trello (لیست کارتهای Done این هفته)
-> Code (شمارش کارتها و محاسبه آمار)
-> Trello (لیست کارتهای In Progress)
-> Code (ساخت گزارش هفتگی)
Text:
"گزارش هفته {{$json.weekNumber}}
تکمیل شده: {{$json.doneCount}} کارت
در حال انجام: {{$json.progressCount}} کارت
عقبمانده: {{$json.overdueCount}} کارت"
-> Telegram (ارسال گزارش)
-> Google Sheets (ذخیره آمار)11. همگامسازی Trello با Notion
سینک دوطرفه بین Trello و Notion:
Trello Trigger (کارت جدید)
-> Notion (createDatabaseItem)
Database: "تسکها"
Properties:
Title: {{$json.card.name}}
Status: "To Do"
TrelloLink: {{$json.card.url}}
-> Trello (comment-create)
text: "سینک شد با Notion"نکات حرفهای
نکات حرفهای
1. پیدا کردن شناسهها (IDs)
سادهترین روش برای یافتن Board/List/Card ID:
1. URL بورد: https://trello.com/b/BOARD_SHORT_ID/name
2. اضافه کردن .json به URL: https://trello.com/b/BOARD_ID.json
3. یا از API:
GET https://api.trello.com/1/members/me/boards?key=KEY&token=TOKEN2. Markdown در Trello
Trello از Markdown محدود پشتیبانی میکند:
**Bold**
*Italic*
~~Strikethrough~~
[Link](https://example.com)
- لیست
1. لیست شمارهدار
> نقل قول
`کد`3. استفاده هوشمند از لیبلها
لیبلها را با رنگبندی معنادار تنظیم کنید:
سبز (green): تکمیل شده / تایید شده
زرد (yellow): در حال بررسی / نیاز به توجه
نارنجی (orange): فوری / اولویت متوسط
قرمز (red): بحرانی / مسدودکننده
بنفش (purple): ایده / پیشنهاد
آبی (blue): در حال انجام / جاری
آسمانی (sky): در انتظار / بلاک شده
صورتی (pink): درخواست مشتری4. ساختار بورد Kanban استاندارد
Backlog -> To Do -> In Progress -> Review -> Testing -> Done -> Archiveهر لیست یک مرحله از فرآیند است. کارتها از چپ به راست حرکت میکنند.
5. Card Templates با n8n
بسازید Card Template برای استفاده مکرر:
Webhook (نوع تسک)
-> IF (type == "bug")
-> Trello (card-create)
name: "[Bug] {{$json.title}}"
desc: Template باگ
-> Trello (checklist-create: "QA Checklist")
-> IF (type == "feature")
-> Trello (card-create)
name: "[Feature] {{$json.title}}"
desc: Template فیچر
-> Trello (checklist-create: "Definition of Done")6. Power-Up های مفید با n8n
n8n میتواند جایگزین بسیاری از Power-Upهای Trello شود:
- Calendar Power-Up -> Schedule Trigger + Google Calendar
- Slack Power-Up -> Telegram/Slack نود مستقیم
- GitHub Power-Up -> GitHub Trigger + Trello نود
- Custom Fields -> Trello API + Code نود
- Butler -> n8n Workflow (بسیار قدرتمندتر)7. فیلتر کارتها با API
// کارتهای یک لیست
GET /lists/{listId}/cards
// کارتهای یک بورد
GET /boards/{boardId}/cards
// کارتهای با فیلتر
GET /boards/{boardId}/cards/open (فقط باز)
GET /boards/{boardId}/cards/closed (فقط آرشیو)
GET /boards/{boardId}/cards/all (همه)8. WIP Limit با n8n
پیادهسازی محدودیت Work In Progress:
Trello Trigger (کارت به "In Progress" منتقل شد)
-> Trello (لیست کارتهای In Progress)
-> IF (تعداد > 3)
-> Trello (card-move: بازگشت به To Do)
-> Trello (comment-create: "WIP Limit! حداکثر 3 کارت همزمان")
-> Telegram (اعلان به عضو)9. ارسال یادآوری Due Date
Schedule (هر روز ساعت 8)
-> Trello (لیست کارتهای بورد)
-> Filter (due < فردا AND dueComplete == false)
-> Loop
-> Telegram (یادآوری: "کارت {{name}} فردا سررسید میشود")10. آرشیو vs حذف
- آرشیو (closed: true): کارت/لیست پنهان میشود ولی قابل بازیابی است. توصیه شده.
- حذف (DELETE): حذف دائمی و غیرقابل بازگشت. فقط در موارد ضروری.
- همیشه ابتدا آرشیو کنید، سپس در صورت نیاز حذف.
11. Batch Operations
برای عملیات روی چند کارت:
HTTP Request (GET /boards/{boardId}/cards)
-> Split In Batches (10 تا)
-> Loop
-> Trello (عملیات روی هر کارت)
-> Wait (100ms)
-> Merge Results12. Custom Fields
فیلدهای سفارشی در Trello (نیاز به Power-Up):
// دریافت Custom Fields یک بورد
GET /boards/{boardId}/customFields
// تنظیم مقدار Custom Field روی کارت
PUT /cards/{cardId}/customField/{fieldId}/item
Body: {"value": {"text": "مقدار"}}13. نحوه صحیح جابجایی کارت بین بوردها
Trello (card-update)
cardId: "..."
idBoard: "بورد مقصد"
idList: "لیست مقصد در بورد جدید"حتماً هم idBoard و هم idList بورد مقصد را مشخص کنید.
14. حفظ تاریخچه تغییرات
از Comment برای ثبت تاریخچه استفاده کنید:
Trello Trigger (هر تغییر)
-> Trello (comment-create)
text: "تغییر خودکار: {{$json.action.type}} توسط n8n - {{$now}}"15. استفاده از Cover Image
هر کارت میتواند تصویر Cover داشته باشد:
// اضافه کردن Cover از URL
Trello (attachment-create)
cardId: "..."
url: "https://example.com/image.jpg"
setCover: trueCover Image اولین پیوست تصویری کارت است مگر تنظیم دیگری شود.
16. جداسازی بوردها برای محیطهای مختلف
از بوردهای جداگانه برای Development, Staging و Production استفاده کنید و با n8n بین آنها workflow بسازید:
Trello Trigger (کارت Done در Dev Board)
-> Trello (card-create در Staging Board)
-> Trello (comment-create: "از Dev Board منتقل شد")رفع مشکلات
خطاهای رایج و راهحلها
1. خطای 401 Unauthorized
علت: API Key یا Token نامعتبر یا منقضی شده
راهحل
- API Key و Token را بررسی کنید
- Token ممکن است Revoke شده باشد، دوباره از Trello دریافت کنید
- مطمئن شوید Token هنوز فعال است
- Credential در n8n را بروز کنید
- Token را از [trello.com/1/members/me/tokens](https://trello.com/1/members/me/tokens) بررسی کنید
2. خطای 404 Not Found
علت: شناسه بورد، لیست یا کارت اشتباه است
راهحل
- شناسه را از URL کپی کنید:
بورد: https://trello.com/b/BOARD_ID/board-name
کارت: https://trello.com/c/CARD_ID/card-name- مطمئن شوید آیتم آرشیو یا حذف نشده باشد
- برای لیست: از API بورد لیست IDها را دریافت کنید
- دسترسی Token به بورد مورد نظر را بررسی کنید
3. خطای 429 Rate Limit Exceeded
علت: تعداد درخواستها بیش از حد مجاز (100 در 10 ثانیه)
راهحل
- بین درخواستها Wait اضافه کنید:
Loop -> Trello -> Wait (200ms) -> Next- درخواستها را Batch کنید
- از Retry on Fail استفاده کنید:
Retry on Fail: ON
Max Tries: 3
Wait Between: 2000ms- عملیات سنگین را در ساعات غیر پیک انجام دهید
4. خطای 400 Bad Request
علت: پارامترهای ارسالی نادرست
راهحل
- نام فیلدها را بررسی کنید (مثلاً idList نه listId)
- فرمت تاریخ ISO 8601 باشد:
2024-12-31T23:59:59.000Z - مقادیر enum صحیح باشند (مثل color برای لیبل)
- شناسهها 24 کاراکتر هگزادسیمال هستند
- برای Move کارت: هم idList و هم idBoard باید معتبر باشند
5. خطای "Invalid Token"
علت: Token دسترسی لازم را ندارد
راهحل
- Token جدید با scope
read,write,accountبسازید - مطمئن شوید Token به بورد مورد نظر دسترسی دارد
- برای Workspace بوردها، عضویت در Workspace لازم است
- Token باید متعلق به کاربری باشد که به بورد دسترسی دارد
6. کارت ایجاد میشود ولی لیبل/عضو اضافه نمیشود
علت: شناسه لیبل یا عضو اشتباه است
راهحل
- لیبلها مختص هر بورد هستند، از شناسه لیبل همان بورد استفاده کنید
- شناسه اعضا را از API بورد دریافت کنید:
GET /boards/{boardId}/members- لیبل بدون اسم نمیتوان ساخت، حتماً نام تعیین کنید
7. Webhook/Trigger رویداد دریافت نمیکند
علت: تنظیمات Webhook نادرست
راهحل
- URL باید publicly accessible باشد
- HTTPS الزامی است
- مطمئن شوید n8n Webhook URL فعال است
- Callback URL باید با 200 پاسخ دهد
- از Trello Webhook API لیست webhookهای فعال را بررسی کنید
8. خطای "Board is closed"
علت: بورد آرشیو شده و عملیات روی آن ممکن نیست
راهحل
- ابتدا بورد را از آرشیو خارج کنید:
Trello (board-update)
boardId: "..."
closed: false- سپس عملیات مورد نظر را انجام دهید
- یا از بورد فعال دیگری استفاده کنید
