New to Kestra?
Use blueprints to kickstart your first workflows.
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.
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.
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 }}.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.errors block posts a distinct Slack alert on failure, so a missing digest is never mistaken for a clear agenda.Schedule trigger runs the digest daily at 07:00.rows output, ready for downstream processing.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.
TODOIST_API_TOKEN: Todoist personal API token.SLACK_WEBHOOK_URL: Slack incoming webhook URL.disabled: false on the daily trigger.projectId.7 days | overdue for a weekly outlook.{{ outputs.list_agenda.rows }} into a script task to render a per-task summary.