Kaizen Update Todo
Batch-update todos with partial field updates (title, notes, priority, visibility, tags, buckets, schedule, location, links, sub tasks, completion options) and optional AI Optimize
The Kaizen Update Todo block updates one or more todos with partial field changes. Only provided fields are applied; leave fields empty to keep existing values. You can also enable AI Optimize to have the block suggest improvements (title, notes, priority, sub tasks, tags, schedule, etc.); AI suggestions are merged with any values you set, and your values take precedence on conflict.
Block Type
kaizen_update_todoInput Fields
Todo Selection
| Field | Description |
|---|---|
todoIds | Comma-separated todo IDs or block reference like <block_id.todoIds>. In the block UI this is the Todos selector; the API accepts an array of IDs. |
Use the <block_id.todoIds> syntax to reference todos from a Kaizen Todos or other block. Example: <kaizen_todos_1.todoIds>
Update Fields (all optional — leave empty to keep current)
| Field | Options / Format | Description |
|---|---|---|
title | string (1–500 chars) | New title |
notes | string | New notes. Omit to keep; send null to clear. |
priority | "", LOW, MEDIUM, HIGH, URGENT | New priority. Use "" to keep current; use Clear to remove. |
visibility | "", PUBLIC, PRIVATE, FOLLOWERS | New visibility. Use "" to keep current |
tagIds / tags | Comma-separated tag IDs, or array of tag IDs/names | Tags to set (replaces existing). In the block UI use the tag selector; API accepts tags (array). Leave empty to keep current. |
bucketIds | Comma-separated or array of bucket IDs | Buckets to set (replaces existing). Leave empty to keep current. |
| Schedule | See below | Start/end date and time, timezone; or clear schedule. |
location | Object: { latitude, longitude, title?, address? } | Location. Leave empty to keep; use Clear Location to remove. |
links | Array of { url, title?, description? } | Links (replaces existing). Leave empty to keep current. |
subTodos | Array of { title, description?, isRequired? } | Sub tasks (replaces existing). Leave empty to keep current. |
conditionsForCompletion | Object: requireAllSubTodos, minSubTodosRequired, withComment, workflow, etc. | Completion conditions. Leave empty to keep current. |
mediaIds | Array of media attachment IDs | Media attachments. Leave empty to keep; [] to clear. |
skipErrors | boolean (default: true) | If true, continue updating other todos when one fails. Recommended for batch updates. |
Schedule fields (block exposes separate inputs; API accepts a single schedule object):
scheduleStartDate,scheduleEndDate—YYYY-MM-DDscheduleStartTime,scheduleEndTime—HH:mmscheduleTimezone— IANA timezone (e.g.America/New_York)- Clear Schedule — removes schedule from selected todos
AI Optimize
When you enable AI Optimize in the block, the block fetches each todo, calls an AI model for the options you turned on, then merges AI suggestions with any fields you provided. Your values always override AI suggestions when both are present.
| Option | Description |
|---|---|
| Improve title | AI improves the title for clarity and actionability. |
| Improve notes | AI improves or expands the notes. |
| Improvement mode | How AI improves title/notes: Clarity, Priority, Context, or All. |
| Generate sub tasks | AI suggests 2–10 sub tasks (maxSubTodos caps the count). |
| Suggest priority | AI suggests priority from content and context. |
| Suggest visibility | AI suggests visibility (e.g. PRIVATE for personal). |
| Suggest tags | AI suggests tags. |
| Suggest buckets | AI suggests bucket IDs when context is clear. |
| Replace tags/buckets (vs append) | If on, AI suggestions replace existing tags/buckets; if off, they are appended. |
| Optimize schedule | AI infers schedule from notes/title. |
| Suggest links | AI suggests relevant URLs (docs, references). |
| Optimize completion conditions | AI recommends requireAllSubTodos / minSubTodosRequired from sub tasks. |
AI options are optional. You can set only the manual fields, only AI options, or both; when both are set, the final patch is merged with user values winning on conflict.
Outputs
| Output | Type | Description |
|---|---|---|
success | boolean | Whether the operation succeeded (all requested todos updated). |
updatedCount | number | Number of todos updated |
results | array | Per-todo result { todoId, success, error? } |
message | string | Human-readable summary |
failureSummary | string | When some todos failed: list of todoId – error for each failure. Omitted when all succeeded. |
Common Use Cases
Update Title and Priority from Fetch
inputs:
todoIds: "<fetch_todos.todoIds>"
title: "Updated title"
priority: HIGHSet Tags Only (Keep Everything Else)
inputs:
todoIds: "<kaizen_todos_1.todoIds>"
tagIds: "tag-id-1,tag-id-2"Clear Priority (Keep Current in UI)
inputs:
todoIds: "<kaizen_todos_1.todoIds>"
priority: ""Batch Update with Skip Errors
When updating many todos, enable Skip Errors so one failure does not stop the rest. Check results or failureSummary for failures.
inputs:
todoIds: "<kaizen_todos_1.todoIds>"
priority: HIGH
skipErrors: trueAI Optimize: Improve Title and Suggest Priority
Enable AI: Improve title and AI: Suggest priority in the block. Leave other fields empty to let AI suggest, or set e.g. title to override AI for that field only.
inputs:
todoIds: "<kaizen_todos_1.todoIds>"
# Optional overrides (AI still runs for other options):
# title: "My custom title"
# priority: HIGH
# In the block UI, turn on: AI: Improve title, AI: Suggest priorityReferencing Outputs
Reference todo IDs from upstream blocks:
todoIds: "<kaizen_todos_1.todoIds>"Or use a manual comma-separated list when not chaining from another block.
Complete Workflow Example
# 1. Fetch incomplete todos
- type: kaizen_todos
name: Fetch Todos
inputs:
collectionFilter: library
completionStatus: NOT_COMPLETED
limit: 5
# 2. Update their priority to HIGH
- type: kaizen_update_todo
name: Set High Priority
inputs:
todoIds: "<fetch_todos.todoIds>"
priority: HIGH