Skip to content
Recued
Menu
← Back to recipes

Create Todoist task with closure watch

by recued-core v1

Workflow origin for the Todoist task closure loop. It reads an optional Todoist project for context, creates exactly one owner-approved task through recued-core.todoist.task.create, and when the task succeeds it seeds durable data.shared closure state for todoist-task-closure-watcher. It uses deterministic owner-provided fields rather than AI and does not update, move, close, reopen, delete, comment on, label, section, remind, template, webhook, or otherwise mutate Todoist beyond the approved task create.

Complete workflow

Todoist Task Closure Loop 4 pinned recipes

Workflow pack for Recued-created Todoist tasks. It composes the Todoist capability pack with a closure ledger: create one owner-approved task, optionally in one live Todoist project, persist only the connection/task/project linkage in data.shared, and let a scheduled watcher re-read that exact task until Todoist reports it checked, completed, or deleted. Completion closes the Recued row; deletion marks it for owner review instead of silently treating it as done. This pack does not replace Todoist due dates, reminders, filters, labels, sections, projects, recurring-task behavior, templates, automations, webhooks, native task completion controls, or general task reporting; it adds Recued-visible closure state for Todoist tasks Recued created.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

Workflow origin for the Todoist task closure loop. It reads an optional Todoist project for context, creates exactly one owner-approved task through recued-core.todoist.task.create, and when the task succeeds it seeds durable data.shared closure state for todoist-task-closure-watcher. It uses deterministic owner-provided fields rather than AI and does not update, move, close, reopen, delete, comment on, label, section, remind, template, webhook, or otherwise mutate Todoist beyond the approved task create.

todoisttasksprojectsproductivity
by recued-core pinned v1
Todoist task closure watcher
Background automation

Scheduled adopter for Todoist task closure rows seeded by create-todoist-task-with-closure. It lists only Recued-originated Todoist task watches, re-reads a bounded batch of Todoist task, closes the shared row when Todoist explicitly reports the task checked or completed, and marks the row for owner review when Todoist reports the task deleted before completion. It can notify the owner on terminal state, but it never creates, updates, moves, closes, reopens, deletes, labels, sections, projects, reminds, templates, webhooks, comments on, or otherwise mutates Todoist tasks.

todoisttasksprojectsproductivity
by recued-core pinned v1
Todoist task closure watcher timeout
Background automation

Low-frequency timeout role for recued-core/todoist-task-closure. It moves a bounded batch of expired rows from active to timed_out, deletes the active copy only after the durable timeout write succeeds, and notifies the owner once per batch.

todoistwatchertimeoutowner-review
by recued-core pinned v1

Owner-visible list/close role for recued-core/todoist-task-closure. It lists bounded active, timed-out, and closed rows. Supplying a timed-out or closed key deletes only that exact terminal row; active watches cannot be deleted here.

todoistwatcherreviewclose
by recued-core pinned v1
View pack details, dependencies, and permissions →
How it works 48 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Process (48 steps)
content_value trim
Trim whitespace from setting content
description_value trim
Trim whitespace from setting description
project_id_value trim
Trim whitespace from setting project id
has_connection compare
Check if setting todoist has data
has_content compare
Check if content value has data
has_project_id compare
Check if project id value has data
skip_project_read any
Check if any of the conditions are true
project ?
skip: step.skip_project_read equal true
live_project_id default
Apply default
has_live_project compare
Check if live project id has data
project_archived_value default
Apply default
project_archived compare
Check if project archived value equals true
project_deleted_value default
Apply default
project_deleted compare
Check if project deleted value equals true
project_available all
Check if all conditions are true
project_invalid all
Check if all conditions are true
skip_task_create any
Check if any of the conditions are true
skip_project_task_create any
Check if any of the conditions are true
create_project_task ?
skip: step.skip_project_task_create equal true
skip_inbox_task_create any
Check if any of the conditions are true
create_inbox_task ?
skip: step.skip_inbox_task_create equal true
created_task ternary
Apply ternary
created_task_id default
Apply default
created_project_id default
Apply default
has_created_task compare
Check if created task id has data
created_checked_value default
Apply default
created_checked compare
Check if created checked value equals true
created_completed_at default
Apply default
created_completed_at_present compare
Check if created completed at has data
created_deleted_value default
Apply default
created_deleted compare
Check if created deleted value equals true
created_terminal any
Check if any of the conditions are true
created_at date_add
Add 0 days to
raw_task_key join
Join items with ":"
task_key_colon replace
Replace text in raw task key
task_key_slash replace
Replace text in task key colon
task_key_dot replace
Replace text in task key slash
task_key_at replace
Replace text in task key dot
task_key_space replace
Replace text in task key at
task_key_left_angle replace
Replace text in task key space
task_key_right_angle replace
Replace text in task key left angle
task_key_plus replace
Replace text in task key right angle
task_key_equals replace
Replace text in task key plus
task_key_question replace
Replace text in task key equals
skip_closure_seed any
Check if any of the conditions are true
closure_timeout_at date_add
Add setting no response timeout days days to
seed_todoist_task_closure_watch ?
skip: step.skip_closure_seed equal true
summary to_summary
Format results as a summary card
Settings 6 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

content setting =
todoist setting =
priority setting = 1
project id setting =
description setting =
no response timeout days setting = 30

Trust & control

What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.

Where it runs

Device + server Runs on your device (browser) or your server.

Permissions it requires

Read your Todoist connection
Declared by the recipe — Recued grants these at install, where you review them before approving.

Data it touches

Warehousedata.shared

About

Tags

todoist todoisttasksprojectsproductivitytask-managementapprovalclosed-loopstate:todoist-task-closure-watcherpack:todoist-task-closure

Details

48 steps 6 configurable settings recipe_id: create-todoist-task-with-closure