| name | spark-recipe-inbox-zero |
| description | Process inbox to zero using category-first triage: review by category, read threads, then archive, move, or mark done. |
| metadata | {"version":"1.0.0","requires":{"skills":["spark"],"accessLevel":"triage"}} |
Recipe: Inbox Zero
Process the inbox to zero using category-first triage. Work through categories in priority order, then take action on each email.
Prerequisite: Read the spark base skill for tool reference and filter syntax.
Access level required: triage.
Steps
Step 1: Scan by category (use recipe-inbox-by-category)
Process inbox in priority order:
emails { "folder": "Inbox", "filter": "category:priority is:unread" }
emails { "folder": "Inbox", "filter": "category:personal is:unread" }
emails { "folder": "Inbox", "filter": "category:invitation" }
emails { "folder": "Inbox", "filter": "category:notification is:unread" }
emails { "folder": "Inbox", "filter": "category:newsletter newer_than:7d" }
Step 2: Review and act on each email
For emails that need attention, read the thread:
thread { "message_id": "<id>" }
Then decide the action:
Archive - handled or informational, no further action needed:
action { "action_name": "archive", "message_ids": ["<id>"] }
Move to folder - needs filing:
action { "action_name": "moveToFolder", "message_ids": ["<id>"], "folder": "user@example.com:Projects" }
Mark as done - completed/resolved:
action { "action_name": "markAsDone", "message_ids": ["<id>"] }
Pin - important, need to come back to:
action { "action_name": "pin", "message_ids": ["<id>"] }
Snooze - not relevant now, revisit later:
action { "action_name": "snooze", "message_ids": ["<id>"], "date": "2026-04-10" }
Set aside - save for later review:
action { "action_name": "setAside", "message_ids": ["<id>"] }
Step 3: Batch process notifications and newsletters
For categories with many items, batch archive:
action { "action_name": "archive", "message_ids": ["<id1>", "<id2>", "<id3>", "<id4>"] }
Step 4: Verify
emails { "folder": "Inbox", "filter": "is:unread" }
Confirm the inbox is clear or report what's left.
Tips
- Work through categories in order - don't jump to newsletters before handling people mail.
- Batch archive is efficient for notifications: list them, confirm with the user, then archive all at once.
- Pin or snooze items that need future attention rather than leaving them unread.
- If an email needs a reply, use
draft with reply_to and then archive - the draft keeps the task alive.
- If you spot miscategorized contacts while triaging, use
contact-action's changeCategory* actions to reclassify all future mail from that sender.