ListTasks icon
SlackIncomingWebhook icon
Schedule icon

Morning Slack Digest of Today's and Overdue Todoist Tasks

Post a morning Slack digest of Todoist tasks due today or overdue with Kestra. One scheduled query and the day starts with the full picture.

Categories
Business

The most useful Todoist query is the one nobody remembers to run: what is due today, plus what already slipped. This blueprint runs it on a schedule. io.kestra.plugin.todoist.ListTasks evaluates the Todoist filter today | overdue, and a Slack message delivers the count every morning, so the day starts with an honest number instead of a 16:00 surprise.

How it works

  1. list_agenda (io.kestra.plugin.todoist.ListTasks) runs the Todoist filter query today | overdue with fetchType: FETCH, pulling every matching task into the execution. The matched tasks are available as {{ outputs.list_agenda.rows }} and the count as {{ outputs.list_agenda.size }}.
  2. post_digest posts the count to Slack, pointing readers at the same filter in Todoist for the full list, since the count is the scalar that belongs in a JSON payload.
  3. The errors block posts a distinct Slack alert on failure, so a missing digest is never mistaken for a clear agenda.
  4. A disabled-by-default Schedule trigger runs the digest daily at 07:00.

What you get

  • A daily, automatic answer to the only planning question that matters at 07:00: how much is on the plate.
  • Overdue items surfaced every single day instead of quietly aging in the app.
  • The full task list attached to the execution as rows output, ready for downstream processing.
  • A failure alert that distinguishes a broken digest from an empty agenda.

Who it's for

  • Team leads who run standup against a shared Todoist project.
  • Ops teams tracking recurring duties in Todoist who need slippage visible in Slack.
  • Individuals who want their task manager to report to them, not the other way around.

Why orchestrate this with Kestra

Todoist shows the filter to whoever opens the app; Kestra pushes it to where the team already looks. The schedule, the API token handling, the retry on a flaky API call, and the audit trail of every digest come from a few lines of YAML, and the same execution exposes the raw rows for any downstream automation.

Prerequisites

  • A Todoist account and a personal API token.
  • A Slack incoming webhook for the digest and failure alerts.

Secrets

  • TODOIST_API_TOKEN: Todoist personal API token.
  • SLACK_WEBHOOK_URL: Slack incoming webhook URL.

Quick start

  1. Add the two secrets to your Kestra namespace.
  2. Execute the flow manually and check the Slack digest count against the Todoist app.
  3. Set disabled: false on the daily trigger.

How to extend

  • Scope the digest to one project by adding projectId.
  • Change the filter to any Todoist query, for example 7 days | overdue for a weekly outlook.
  • Chain the overdue escalation blueprint after the digest to raise priorities automatically.
  • Feed {{ outputs.list_agenda.rows }} into a script task to render a per-task summary.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.