Prerequisites
Before continuing, you should have already completed the following for this connector:Configure the Connector
Connector Profile
Link an Account
Link Account
Retrieve the Native Webhook URL
StackOne generates a unique Native Webhook URL for this connection, which you paste into your Todoist app’s webhook settings.
Copy the Native Webhook URL
Open this connection in StackOne and copy the Native Webhook URL field. It is unique to this connection and already contains the security token Todoist will call, so keep it secret.
Configure the webhook on your Todoist app
Todoist webhooks are set on the OAuth app you created for this connection (the one whose Client ID and Client Secret you entered), in the App Management Console.
Open your app in the App Management Console
Sign in to Todoist, open the App Management Console, and click the app you use for this connection to open its settings.
Configure the Webhooks section
Scroll to the Webhooks section and fill it in.
- Callback URL: paste the Native Webhook URL from this connection.
- Webhook version: select Todoist API v1.
- Webhook Events: tick the events you want to receive (match the events you enabled in StackOne), then save.
Note the verification token
Todoist signs every delivery with an X-Todoist-Hmac-SHA256 header computed from your app’s Verification token (shown in the app settings). No action is needed — StackOne authorizes each delivery by the Todoist user id it maps to a connected account.
Available webhook events
The events below can be enabled for this connection. Each delivered payload carries the firing event in event_name and the affected entity in event_data. Only the events you tick in the app’s Webhook Events (and enable in StackOne) are delivered.
Review task events
Fired for tasks (Todoist “items”).
- Task Added (
item:added) — Fired when a task is created. - Task Updated (
item:updated) — Fired when a task is updated. - Task Completed (
item:completed) — Fired when a task is completed. - Task Uncompleted (
item:uncompleted) — Fired when a completed task is reopened. - Task Deleted (
item:deleted) — Fired when a task is deleted.
Review comment events
Fired for comments (Todoist “notes”).
- Comment Added (
note:added) — Fired when a comment is added. - Comment Updated (
note:updated) — Fired when a comment is updated. - Comment Deleted (
note:deleted) — Fired when a comment is deleted.
Review project events
Fired for projects.
- Project Added (
project:added) — Fired when a project is created. - Project Updated (
project:updated) — Fired when a project is updated. - Project Deleted (
project:deleted) — Fired when a project is deleted. - Project Archived (
project:archived) — Fired when a project is archived. - Project Unarchived (
project:unarchived) — Fired when a project is unarchived.
Review section events
Fired for sections within projects.
- Section Added (
section:added) — Fired when a section is created. - Section Updated (
section:updated) — Fired when a section is updated. - Section Deleted (
section:deleted) — Fired when a section is deleted. - Section Archived (
section:archived) — Fired when a section is archived. - Section Unarchived (
section:unarchived) — Fired when a section is unarchived.
Review label events
Fired for personal labels.
- Label Added (
label:added) — Fired when a label is created. - Label Updated (
label:updated) — Fired when a label is updated. - Label Deleted (
label:deleted) — Fired when a label is deleted.
Review filter events
Fired for saved filters.
- Filter Added (
filter:added) — Fired when a filter is created. - Filter Updated (
filter:updated) — Fired when a filter is updated. - Filter Deleted (
filter:deleted) — Fired when a filter is deleted.
Review reminder events
Fired for reminders.
- Reminder Fired (
reminder:fired) — Fired when a reminder triggers.
Delivery format
How Todoist delivers events to StackOne.
Inspect event payloads
Todoist sends each event as an HTTP POST with a JSON body containing event_name (the firing event, e.g. item:added), user_id (the Todoist user the event belongs to), event_data (the affected entity, whose id is used as the event id), event_data_extra (present on updates), initiator (the user who triggered the event), version, and triggered_at (ISO 8601 time). One event is sent per request.
Understand signed deliveries
Todoist signs each delivery with an X-Todoist-Hmac-SHA256 header — a base64-encoded HMAC-SHA256 of the raw request body using your app’s Verification token. StackOne resolves and authorizes each delivery by the Todoist user id it maps to a connected account.