گوگل تسکز
Google Tasks
مدیریت ساده تسکها - یکپارچه با Gmail و Google Calendar
نمای کلی
نود Google Tasks یک ابزار مدیریت تسک ساده و سبک است که عمیقاً با اکوسیستم Google یکپارچه شده است.
ویژگیهای کلیدی:
- ایجاد و مدیریت تسکها با عنوان، یادداشت و تاریخ سررسید
- ساختار لیست تسک (Task List) برای دستهبندی
- پشتیبانی از زیرتسک (Subtask) با پارامتر parent
- مرتبسازی تسکها با پارامتر previous
- دو وضعیت: needsAction (نیاز به انجام) و completed (تکمیل شده)
- فیلد notes برای توضیحات و جزئیات
- یکپارچگی با Gmail: تبدیل ایمیل به تسک
- نمایش در سایدبار Google Calendar
- پاکسازی تسکهای تکمیل شده با clearCompleted
مقایسه با ابزارهای دیگر:
- Google Tasks vs Todoist: گوگل تسکز سادهتر ولی رایگان و یکپارچه با Google Workspace
- Google Tasks vs Asana: آسانا برای تیمهای بزرگ، گوگل تسکز برای کارهای شخصی
- Google Tasks vs Trello: ترلو بصریتر (Kanban)، گوگل تسکز لیستمحور و سبکتر
چه زمانی از Google Tasks استفاده کنیم:
- برنامهریزی شخصی و تسکهای روزمره
- ردیابی ایمیلهایی که نیاز به پیگیری دارند
- چکلیستهای ساده بدون نیاز به مدیریت پروژه پیچیده
- وقتی از Gmail و Google Calendar استفاده میکنید
- تسکهای سریع بدون overhead تنظیمات
قابلیتهای API:
- CRUD کامل برای تسکها و لیست تسکها
- جابجایی و مرتبسازی تسکها
- پاکسازی خودکار تسکهای انجامشده
- دسترسی از طریق Google Tasks API v1
احراز هویت
احراز هویت Google Tasks
روش 1: OAuth2 (توصیه میشود)
#### مرحله 1: ایجاد پروژه در Google Cloud Console
- 1به [Google Cloud Console](https://console.cloud.google.com/) بروید
- 2پروژه جدید بسازید یا پروژه موجود را انتخاب کنید
- 3به APIs & Services > Library بروید
- 4"Google Tasks API" را جستجو و Enable کنید
#### مرحله 2: تنظیم OAuth Consent Screen
- 1APIs & Services > OAuth consent screen
- 2User Type: External
- 3Scopes مورد نیاز:
https://www.googleapis.com/auth/tasks(خواندن و نوشتن)https://www.googleapis.com/auth/tasks.readonly(فقط خواندن)
- 1Test Users: ایمیل خود را اضافه کنید
#### مرحله 3: ایجاد OAuth Credentials
- 1APIs & Services > Credentials
- 2Create Credentials > OAuth client ID
- 3Application type: Web application
- 4Authorized redirect URIs:
https://your-n8n.com/rest/oauth2-credential/callback
- 1Client ID و Client Secret را کپی کنید
#### مرحله 4: تنظیم در n8n
- 1Credentials > Google Tasks OAuth2 API
- 2Client ID و Client Secret وارد کنید
- 3Connect my account بزنید
- 4دسترسی را تایید کنید
روش 2: Service Account
- 1Google Cloud Console > IAM & Admin > Service Accounts
- 2Service Account بسازید و JSON Key دانلود کنید
- 3Google Tasks API را Enable کنید
- 4در n8n: Service Account JSON وارد کنید
- 5توجه: Service Account به تسکهای اکانت شخصی دسترسی ندارد مگر با Domain-Wide Delegation
عملیاتهای موجود
createTask
ایجاد تسک جدید در یک لیست تسک مشخص
getTask
دریافت جزئیات یک تسک خاص
updateTask
ویرایش عنوان، یادداشت، تاریخ سررسید یا وضعیت تسک
deleteTask
حذف کامل یک تسک از لیست
listTasks
دریافت لیست تمام تسکها در یک لیست تسک
completeTask
علامتگذاری تسک به عنوان انجامشده
moveTask
تغییر مکان تسک در لیست یا تبدیل به زیرتسک
clearCompletedTasks
حذف تمام تسکهای انجامشده از یک لیست
createTaskList
ایجاد لیست تسک جدید
getTaskList
دریافت جزئیات یک لیست تسک خاص
listTaskLists
دریافت تمام لیستهای تسک کاربر
deleteTaskList
حذف کامل یک لیست تسک و تمام تسکهای آن
کاربردهای متداول
1. تبدیل ایمیل به تسک از Gmail
ایجاد خودکار تسک از ایمیلهای مهم:
Gmail Trigger (ایمیل جدید با label: action-needed)
→ Google Tasks (createTask)
TaskListId: "@default"
Title: "پیگیری: {{$json.subject}}"
Notes: "از: {{$json.from}}\nتاریخ: {{$json.date}}\nلینک: {{$json.link}}"
Due: {{$now.plus({days: 2}).toISO()}}2. برنامهریزی خودکار تسکهای روزانه
ایجاد تسکهای تکراری هر صبح:
Schedule (هر روز ساعت 7 صبح)
→ Code (لیست تسکهای روزانه)
[
"بررسی ایمیلها",
"جلسه تیم",
"بررسی تیکتهای پشتیبانی",
"گزارش روزانه"
]
→ Loop
→ Google Tasks (createTask)
TaskListId: "daily-tasks"
Title: {{$json.item}}
Due: {{$now.endOf('day').toISO()}}3. چکلیست پروژه از Template
ایجاد خودکار چکلیست پروژه جدید:
Webhook (پروژه جدید)
→ Google Tasks (createTaskList)
Title: "پروژه: {{$json.projectName}}"
→ Code (تسکهای Template)
→ Loop
→ Google Tasks (createTask)
Title: {{$json.taskTitle}}
Notes: {{$json.taskDescription}}
Due: {{$json.deadline}}4. تسکهای پیگیری بعد از جلسه
ایجاد Follow-up از جلسات Google Calendar:
Google Calendar Trigger (جلسه تمام شد)
→ Google Tasks (createTask)
Title: "پیگیری جلسه: {{$json.summary}}"
Notes: "شرکتکنندگان: {{$json.attendees}}\nخلاصه: {{$json.description}}"
Due: {{$now.plus({days: 1}).toISO()}}5. یادآوری Deadline از Calendar
همگامسازی تسکها با Calendar:
Schedule (هر روز ساعت 8)
→ Google Tasks (listTasks)
ShowCompleted: false
DueMax: {{$now.plus({days: 1}).toISO()}}
→ IF (تسکهای امروز وجود دارد)
→ Telegram (ارسال لیست تسکها)
Text: "تسکهای امروز:\n{{$json.items.map(t => '• ' + t.title).join('\n')}}"6. ردیابی درخواستهای مشتری
ایجاد تسک از فرم تماس:
Webhook (فرم تماس مشتری)
→ Google Tasks (createTask)
TaskListId: "client-requests"
Title: "درخواست: {{$json.name}} - {{$json.subject}}"
Notes: "ایمیل: {{$json.email}}\nتلفن: {{$json.phone}}\nپیام: {{$json.message}}"
Due: {{$now.plus({hours: 24}).toISO()}}
→ Gmail (تایید دریافت به مشتری)7. ایجاد تسکهای بررسی هفتگی
Weekly Review خودکار:
Schedule (هر جمعه ساعت 16)
→ Google Tasks (createTask)
Title: "بررسی هفتگی - {{$now.toFormat('yyyy/MM/dd')}}"
Notes: "1. مرور تسکهای انجامشده\n2. برنامهریزی هفته آینده\n3. بررسی اهداف"
→ Google Tasks (listTasks: تسکهای تکمیلشده)
→ Google Tasks (clearCompletedTasks)8. چکلیست عادتهای روزانه
Habit Tracker ساده:
Schedule (هر روز ساعت 6 صبح)
→ Google Tasks (clearCompletedTasks)
TaskListId: "habits"
→ Code (لیست عادتها)
→ Loop
→ Google Tasks (createTask)
TaskListId: "habits"
Title: {{$json.habit}}
Due: {{$now.endOf('day').toISO()}}9. ردیابی فاکتورهای پرداختنشده
مدیریت پرداختها:
Webhook (فاکتور جدید)
→ Google Tasks (createTask)
TaskListId: "invoices"
Title: "فاکتور #{{$json.invoiceId}} - {{$json.clientName}}"
Notes: "مبلغ: {{$json.amount}} تومان\nتاریخ صدور: {{$json.issueDate}}"
Due: {{$json.dueDate}}
Webhook (پرداخت موفق)
→ Google Tasks (updateTask)
Status: "completed"10. تسکهای تیمی با Google Workspace
اختصاص تسک به اعضای تیم:
Google Sheets (لیست تسکهای جدید)
→ Loop
→ Google Tasks (createTask)
Title: "{{$json.taskTitle}} [{{$json.assignee}}]"
Notes: "اختصاص به: {{$json.assignee}}\nاولویت: {{$json.priority}}"
Due: {{$json.deadline}}
→ Gmail (اعلان به فرد مسئول)نکات حرفهای
نکات حرفهای
- 1**لیست تسک پیشفرض**: از
@defaultبه عنوان taskListId استفاده کنید:
TaskListId: "@default"
// به لیست "My Tasks" اشاره میکند- 1فرمت تاریخ سررسید (RFC 3339):
// فرمت صحیح:
2024-12-31T00:00:00.000Z
// در Expression:
{{$now.plus({days: 7}).toISO()}}
{{$now.endOf('day').toISO()}}
{{DateTime.fromFormat('1403/10/15', 'yyyy/MM/dd').toISO()}}- 1ایجاد زیرتسک با parent:
// ابتدا تسک اصلی
Task 1 (id: "abc123")
// سپس زیرتسک
createTask:
parent: "abc123"
title: "زیرتسک 1"
// توجه: فقط یک سطح زیرتسک مجاز است- 1مرتبسازی با previous:
// تسک جدید بعد از تسک خاص:
createTask:
previous: "task_id_قبلی"
title: "تسک جدید"
// بدون previous: ابتدای لیست- 1وضعیت تسکها:
needsAction → تسک فعال (نیاز به انجام)
completed → تسک انجامشده
// تکمیل تسک:
updateTask: { status: "completed" }
// بازگشت به فعال:
updateTask: { status: "needsAction", completed: null }- 1فیلد notes برای جزئیات:
Notes: "اولویت: بالا\nمرتبط با: پروژه X\nلینک: https://..."
// از notes برای ذخیره اطلاعات اضافی استفاده کنید
// حداکثر 8192 کاراکتر- 1پاکسازی با clearCompleted:
// حذف تمام تسکهای انجامشده از لیست
clearCompletedTasks:
TaskListId: "my-list-id"
// مناسب برای نظافت هفتگی لیستها- 1یکپارچگی با Gmail:
// در Gmail: ایمیل > Add to Tasks
// در n8n: Gmail Trigger → Google Tasks (createTask)
// لینک ایمیل را در notes ذخیره کنید- 1نمایش در Google Calendar:
// تسکهای دارای due date در سایدبار Calendar نمایش داده میشوند
// همیشه due date تنظیم کنید برای یادآوری بهتر- 1لیست تسک به عنوان پروژه:
// هر لیست تسک = یک پروژه یا دستهبندی
createTaskList: "پروژه وبسایت"
createTaskList: "تسکهای شخصی"
createTaskList: "خرید"
createTaskList: "فاکتورها"- 1سادگی بهتر از پیچیدگی: Google Tasks برای تسکهای شخصی و ساده مناسب است. برای مدیریت پروژه تیمی از Asana یا Todoist استفاده کنید.
- 1پردازش دستهای با Loop Node:
Code (لیست تسکها)
→ Split In Batches (10)
→ Google Tasks (createTask)
→ Wait (200ms)- 1فیلد مخفی برای لینک منبع:
// در notes لینک منبع تسک را ذخیره کنید:
Notes: "source: webhook_123\nurl: https://..."
// بعداً با جستجو در notes پیدا کنید- 1محدودیت Pagination (حداکثر 100 نتیجه):
// در هر درخواست listTasks حداکثر 100 تسک
// برای بیشتر از pageToken استفاده کنید:
listTasks (maxResults: 100)
→ IF (nextPageToken)
→ listTasks (pageToken: nextPageToken)
→ Merge Results- 1ترکیب با Google Calendar برای بهرهوری کامل:
// تسکها: کارهایی که باید انجام شوند
// Calendar: زمانهایی که مشغول هستید
Schedule (هر صبح)
→ Google Tasks (listTasks: تسکهای امروز)
→ Google Calendar (رویدادهای امروز)
→ Code (ترکیب و برنامهریزی)
→ Telegram (ارسال برنامه روزانه)رفع مشکلات
خطاهای رایج و راهحلها
1. خطای 401 Unauthorized (توکن OAuth منقضی)
علت: Access Token منقضی شده یا Refresh Token نامعتبر
راهحل
- Credential را در n8n حذف و دوباره Connect کنید
- در Google Cloud Console مطمئن شوید OAuth Consent Screen فعال است
- بررسی کنید Test Users شامل ایمیل شما باشد
- از
/tokenendpoint با Refresh Token جدید استفاده کنید
2. خطای 403 Insufficient Scope
علت: Scope درخواست شده کافی نیست
راهحل
- Scope را از
tasks.readonlyبهtasksتغییر دهید - Credential را حذف و با Scope جدید دوباره بسازید
- در Google Cloud Console: OAuth consent screen > Scopes بررسی کنید
- مطمئن شوید Google Tasks API فعال (Enable) است
3. خطای 404 Task/List Not Found
علت: شناسه تسک یا لیست تسک نامعتبر
راهحل
- شناسه لیست تسک را با listTaskLists بررسی کنید
- برای لیست پیشفرض از
@defaultاستفاده کنید - تسک حذف شده قابل دسترسی نیست
- شناسهها Case-Sensitive هستند
4. خطای Rate Limit (429)
علت: تعداد درخواستها بیش از حد مجاز
راهحل
- بین درخواستها Wait Node اضافه کنید (200ms)
- محدودیتها: حدود 50000 درخواست در روز
- از Split In Batches استفاده کنید
- Retry on Fail فعال کنید
5. خطای فرمت تاریخ سررسید نامعتبر
علت: تاریخ due در فرمت RFC 3339 نیست
راهحل
- فرمت صحیح:
2024-12-31T00:00:00.000Z - از Expression استفاده کنید:
{{$now.plus({days: 7}).toISO()}} - ساعت باید
00:00:00باشد (Tasks فقط تاریخ نگه میدارد) - Timezone در URL encode نشود
6. مشکل ترتیب تسکها (Ordering)
علت: پارامتر previous اشتباه تنظیم شده
راهحل
- previous باید شناسه تسک قبلی در لیست باشد
- اگر خالی باشد، تسک در ابتدای لیست قرار میگیرد
- بعد از move، ترتیب سایر تسکها خودکار تنظیم میشود
- از listTasks برای دیدن ترتیب فعلی استفاده کنید
7. تسکهای تکمیلشده نمایش داده نمیشوند
علت: پارامتر showCompleted روی false است
راهحل
- در listTasks:
showCompleted: trueتنظیم کنید showHidden: trueبرای تسکهای مخفی- تسکهای پاکشده با clearCompleted قابل بازیابی نیستند
- تسکهای حذفشده در Trash نیستند (مستقیم حذف میشوند)
8. خطای Parent Task Not Found (زیرتسک)
علت: شناسه تسک والد نامعتبر یا در لیست دیگری است
راهحل
- تسک والد باید در همان لیست تسک باشد
- ابتدا تسک والد را بسازید، سپس زیرتسک
- تسک والد نباید خودش زیرتسک باشد (فقط یک سطح)
- شناسه والد را از پاسخ createTask بخوانید
