---
title: Todoist
description: Create and manage Todoist tasks from the current page, with natural-language due dates.
---

Turn the page you are on into a Todoist task in one step, and create, update, complete or list tasks from a workflow.

Pick a saved connection in the **Credential** field, or create one from there. It signs in with a Bearer Token.

## Try it

## What it does

The Todoist node works on three kinds of things (**Resource**):

* **Task**: create a task, update it, close it (mark it complete), or list your open tasks.
* **Project**: list your projects, to find a **Project ID**.
* **Label**: list your labels.

**Due (natural language)** takes dates the way you type them in Todoist, like `tomorrow 9am`, `next Monday` or `every Friday`. When you fill **Source URL** on **Task → Create**, a `Source:` line with the link is added at the end of the description, so the task always points back to its page.

Without a **Project ID**, new tasks go to your Inbox, and **Task → List** returns open tasks from all projects.

## When to use it

* Save the page you are reading as a "read later" or "follow up" task, with a hotkey.
* Create a task with a due date when a form, an email or a page change needs action.
* Mark a task complete when a workflow has done the work.
* List today's tasks and send them to an AI node or a chat.

For team issue tracking, use [Linear](/nodes/builtin/integration/linear/) or [GitHub](/nodes/builtin/integration/github/). For Microsoft To Do, use [Microsoft 365](/nodes/builtin/integration/microsoft-graph/).

## Inputs and settings

Call the Todoist API yourself with the HTTP Request node, and pick the same connection in its **Credential** field.

* **Content** is the task title. Markdown links work, for example `[Read: {{ $input.title }}]({{ $input.url }})`.
* **Priority 1 (urgent)** is Todoist's red p1; **Priority 4 (normal)** is the default with no flag.
* **Labels** take label names as you see them in Todoist, one per entry.
* **Project ID** and **Task ID** are ids, not names. Run **Project → List** or **Task → List** and copy the `id`.

## Outputs

* **Task → Create** and **Update** return the task, including its `id`, `content`, `description`, `due`, `priority`, `labels` and `url` (the link to open it in Todoist).
* **Task → Close** returns an empty result when it worked.
* **Task → List**, **Project → List** and **Label → List** return one item per task, project or label, each with its `id` and name.

## Dependencies and credentials

* **Credential** (connection, Bearer Token): required. See [Connect Todoist](/app/connections/todoist/).

Use your Todoist API token, saved as a Bearer Token credential. In Todoist, open **Settings → Integrations → Developer** and copy the **API token**. See [Create a credential](/app/connections/create/).

The token gives full access to your Todoist account. If it leaks, issue a new one on the same page and update the credential.

## Example workflow

1. A [Hotkey](/nodes/builtin/trigger/hotkey/) trigger starts the workflow with a keyboard shortcut.
2. [Get Page Metadata](/nodes/extension/getpagemetadata/) reads the page's `title` and `url`.
3. Todoist, **Task → Create**, **Content** `Read: {{ $input.title }}`, **Source URL** `{{ $input.url }}`, **Due (natural language)** `tomorrow 9am`, **Labels** `reading`.
4. [Browser Notification](/nodes/extension/browsernotification/) confirms the task was added.

## Common issues

* **"Todoist API Error: 401 Unauthorized" or "403 Forbidden".** The token is wrong or was replaced. Copy the current token from **Settings → Integrations → Developer** and update the credential.
* **"Todoist API Error: 400 Bad Request…".** Usually a **Project ID** or **Task ID** that does not exist, or a due date Todoist cannot read. Check the id with a List operation, or try a simpler date like `tomorrow`.
* **"Todoist API Error: 404 Not Found" on Update or Close.** The task does not exist or is already completed.
* **The task went to the Inbox.** **Project ID** was empty. Copy the project's `id` from **Project → List**.
* **The run is blocked in the web app.** Todoist runs through the browser extension. Install the extension and allow Todoist for this workflow when asked, or run the workflow from the extension. See [Running extension-only integrations in the web app](/app/troubleshooting/extension-only-integrations-in-the-web-app/).

## Recipes with this node

## Related nodes

* [Hotkey](/nodes/builtin/trigger/hotkey/): capture the current page with a keyboard shortcut.
* [Get Page Metadata](/nodes/extension/getpagemetadata/): the page's title and address for the task.
* [Linear](/nodes/builtin/integration/linear/): issues for a team instead of personal tasks.
* [Trello](/nodes/builtin/integration/trello/): cards on a board.