Todoist
Also an agent toolTodoist integration on the unified REST API v1 (https://api.todoist.com/api/v1). Core task-management surface: Projects CRUD + archive/unarchive/move, Sections CRUD, Tasks CRUD + close/reopen/move, Comments (notes) CRUD, Labels CRUD + shared-label rename/remove, and the authenticated User identity endpoint. OAuth 2.0 authorization-code flow (comma-separated scopes) presented as a standard Authorization: Bearer token (same handler serves OAuth2 access tokens and personal API tokens). Real signed webhook system: X-Todoist-Hmac-SHA256 = base64(HMAC-SHA256(raw_body, app client_secret)) -> generic_hmac handler, 20 event types discriminated by the payload event_name field. Sync batch endpoint, binary uploads/backups/template-export, and the extended Sync-only groups (reminders, filters, folders, workspaces, activity, colors) are deferred for v1 (see compatibility todoist-05 + api-reference deferred notes).
35 actions · 20 triggers
The Todoist integration lets you connect Todoist to your automations with 35 actions and 20 triggers — and every action is also a tool an AI agent can call. Examples: Get User, Get Projects, Create Project, Get Project, Update Project. No blank-canvas wiring — connect it and use it in your workflows.
Every action below is also a tool an AI agent can call — the same pack powers your workflows and your agents.
Triggers 20
Events in Todoist that can start a workflow.
Task Added
Fires when a task is created (event_name item:added). Discriminated by the payload event_name field.
Task Updated
Fires when a task is updated (event_name item:updated). Discriminated by the payload event_name field.
Task Completed
Fires when a task is completed (event_name item:completed). Discriminated by the payload event_name field.
Task Uncompleted
Fires when a completed task is reopened (event_name item:uncompleted). Discriminated by the payload event_name field.
Task Deleted
Fires when a task is deleted (event_name item:deleted). Discriminated by the payload event_name field.
Project Added
Fires when a project is created (event_name project:added). Discriminated by the payload event_name field.
Project Updated
Fires when a project is updated (event_name project:updated). Discriminated by the payload event_name field.
Project Deleted
Fires when a project is deleted (event_name project:deleted). Discriminated by the payload event_name field.
Project Archived
Fires when a project is archived (event_name project:archived). Discriminated by the payload event_name field.
Project Unarchived
Fires when a project is unarchived (event_name project:unarchived). Discriminated by the payload event_name field.
Comment Added
Fires when a comment is added (event_name note:added). Discriminated by the payload event_name field.
Comment Updated
Fires when a comment is updated (event_name note:updated). Discriminated by the payload event_name field.
Comment Deleted
Fires when a comment is deleted (event_name note:deleted). Discriminated by the payload event_name field.
Label Added
Fires when a label is created (event_name label:added). Discriminated by the payload event_name field.
Label Updated
Fires when a label is updated (event_name label:updated). Discriminated by the payload event_name field.
Label Deleted
Fires when a label is deleted (event_name label:deleted). Discriminated by the payload event_name field.
Filter Added
Fires when a filter is created (event_name filter:added). Discriminated by the payload event_name field.
Filter Updated
Fires when a filter is updated (event_name filter:updated). Discriminated by the payload event_name field.
Filter Deleted
Fires when a filter is deleted (event_name filter:deleted). Discriminated by the payload event_name field.
Reminder Fired
Fires when a reminder triggers (event_name reminder:fired). Discriminated by the payload event_name field.
Actions 35
What Zervanor can do in Todoist.
Labels8
Get Labels
Get personal labels. GET /labels.
Create Label
Create a personal label. POST /labels.
Get Label
Get a single personal label by id. GET /labels/{label_id}.
Update Label
Update a personal label by id. POST /labels/{label_id}.
Delete Label
Delete a personal label by id. DELETE /labels/{label_id}. Returns 204 No Content.
Get Shared Labels
Get all shared (string) labels in use. GET /labels/shared.
Rename Shared Label
Rename a shared label across all tasks. POST /labels/shared/rename.
Remove Shared Label
Remove a shared label from all tasks. POST /labels/shared/remove.
Projects8
Get Projects
List projects (cursor-paginated). GET /projects.
Create Project
Create a project. POST /projects. Returns the created project with the new id at top-level 'id'.
Get Project
Get a single project by id. GET /projects/{project_id}.
Update Project
Update a project by id. POST /projects/{project_id}.
Delete Project
Delete a project by id. DELETE /projects/{project_id}. Returns 204 No Content.
Archive Project
Archive a project. POST /projects/{project_id}/archive.
Unarchive Project
Unarchive a project. POST /projects/{project_id}/unarchive.
Move Project
Move (reparent) a project. POST /projects/{project_id}/move.
Tasks8
Get Tasks
Get active tasks, optionally filtered. GET /tasks.
Create Task
Create a task. POST /tasks. Returns the created task with the new id at top-level 'id'.
Get Task
Get a single task by id. GET /tasks/{task_id}.
Update Task
Update a task by id. POST /tasks/{task_id}.
Delete Task
Delete a task by id. DELETE /tasks/{task_id}. Returns 204 No Content.
Close Task
Close (complete) a task. POST /tasks/{task_id}/close. Returns 204 No Content.
Reopen Task
Reopen a closed task. POST /tasks/{task_id}/reopen. Returns 204 No Content.
Move Task
Move a task to a different project, section, or parent. POST /tasks/{task_id}/move.
Comments5
Get Comments
Get comments for a task or project. GET /comments.
Create Comment
Create a comment on a task or project. POST /comments.
Get Comment
Get a single comment by id. GET /comments/{comment_id}.
Update Comment
Update a comment by id. POST /comments/{comment_id}.
Delete Comment
Delete a comment by id. DELETE /comments/{comment_id}. Returns 204 No Content.
Sections5
Get Sections
Get sections, optionally filtered by project. GET /sections.
Create Section
Add a section to a project. POST /sections.
Get Section
Get a single section by id. GET /sections/{section_id}.
Update Section
Update a section by id. POST /sections/{section_id}.
Delete Section
Delete a section by id. DELETE /sections/{section_id}. Returns 204 No Content.
User1
Get User
Get the authenticated user (identity / connectivity check). GET /user.
Nothing matches your search.
Automations using Todoist
Build your own automation with Todoist in the visual builder.
Frequently asked questions
What can I automate with Todoist?
35 actions are available — for example: Get User, Get Projects, Create Project, Get Project, Update Project, and more.
Which Todoist events can start a workflow?
20 triggers — for example: Task Added, Task Updated, Task Completed, Task Uncompleted.
Can Todoist be used as an AI agent tool?
Yes. Every Todoist action automatically becomes a tool an AI agent can call — the same pack powers both your workflows and your agents.
How is the Todoist integration modelled?
Todoist is modelled as a versioned connector pack, and the steps that need reasoning fall to first-party agents hosted in the same runtime as the workflows.