bulk-updatelisted
Install: claude install-skill n24q02m/claude-plugins
# Bulk Update
Update properties or content across many pages in a database safely.
## Pagination (Critical)
Notion returns max 100 results per query. You MUST paginate to process all pages:
```
# First query
databases(action="query", database_id="<id>", filter={...}, page_size=100)
# Response includes: has_more=true, next_cursor="abc123"
# Continue until has_more=false
databases(action="query", database_id="<id>", filter={...}, page_size=100, start_cursor="abc123")
```
Never assume a single query returns all results. Always check `has_more`.
## Dry-Run Mode
Before making any changes, ALWAYS show the user what will change:
1. Query the database with the filter
2. For each matching page, show:
- Page title (current value)
- What will change (old value -> new value)
- Total count of affected pages
3. Ask for explicit confirmation before proceeding
Example dry-run output:
```
Found 23 pages matching filter. Changes:
1. "Project Alpha" -- Status: "Active" -> "Archived"
2. "Project Beta" -- Status: "Active" -> "Archived"
...
(21 more)
Proceed with update? (yes/no)
```
## Update Execution
After user confirms:
1. **Track progress** -- maintain counters:
- `succeeded`: pages updated successfully
- `failed`: pages that errored (with page ID and error message)
- `skipped`: pages already in target state
2. **Update each page**:
```
pages(action="update", page_id="<id>", properties={
"Status": { "select": { "name": "Archived" } }
})
```