Short answer: Drop the "Todoist → Task Completed" trigger on your workflow canvas, add filters if you want them, and publish. It fires within seconds of the event in Todoist, not on a polling schedule.
Drop it on the canvas. Configure a couple of fields. Publish.
You don’t need to read this. Tiny Command auto-maps every field into the visual picker so downstream nodes can pull values by clicking. We show it here for power users who want to know what’s on the wire.
{"id": "7891011122","due": {"date": "2026-04-22","string": "Apr 22","is_recurring": false},"url": "https://todoist.com/showTask?id=7891011122","labels": ["billing"],"content": "Send invoice to client","priority": 2,"parent_id": null,"created_at": "2026-04-20T14:00:00.000000Z","creator_id": "123456","project_id": "2203456789","section_id": "7025","description": "Monthly retainer invoice for April","completed_at": "2026-04-23T11:30:00.000000Z","is_completed": true}
Every field below can be referenced by name in any action or filter that comes after this trigger.
| Field | Type | Example |
|---|---|---|
| id | string | "7891011122" |
| due | object | { … } |
| due.date | string | "2026-04-22" |
| due.string | string | "Apr 22" |
| due.is_recurring | boolean | false |
| url | string | "https://todoist.com/showTask?id=7891011122" |
| labels | array | ["billing"] |
| content | string | "Send invoice to client" |
| priority | number | 2 |
| parent_id | null | null |
| created_at | string | "2026-04-20T14:00:00.000000Z" |
| creator_id | string | "123456" |
| project_id | string | "2203456789" |
| section_id | string | "7025" |
| description | string | "Monthly retainer invoice for April" |
| completed_at | string | "2026-04-23T11:30:00.000000Z" |
| is_completed | boolean | true |
One trigger. 27+ downstream actions. Zero glue.