bulk_update_bars
Update multiple roadmap bars in one call—recolor, move lanes, retag, reschedule, or set progress. Validates all changes before writing, with dry-run support.
Instructions
Update many bars in one call: recolor, move lanes, retag, reschedule, set progress.
USE WHEN: "Color all these bars Committed", "Move these 12 bars to the Backend lane", "Set percent_done on every Q3 bar" For a single bar, use manage_bar instead. Put values shared by every bar in set (e.g. set:{"legend":"Committed"}) and per-bar values in items; an item's own fields override set. Up to 100 items; each bar_id may appear once. Every item is validated before anything is written: legend, lane, custom field labels, and dropdown values are checked against each bar's roadmap (one roadmap fetch per distinct roadmap; pass roadmap_id to skip looking up each bar's roadmap). One invalid item means nothing is sent, and the error lists every problem with the valid options. dry_run:true returns the exact PATCH payload per bar without writing. Writes run 4 at a time under the client's rate limiter. Returns per-item {index, bar_id, ok, error} and a summary like "Updated 28 of 30 bars; 2 failed". The result is an error only when no bar was updated. A partial failure is a normal result whose summary counts the failures; retry only the failed items. FAILS WHEN: items empty or over 100, a bar_id missing or repeated, a name not on the roadmap, legend_id or effort passed (see manage_bar).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Fields applied to every item unless the item sets them itself, e.g. {"legend":"Committed"}. Same fields as items | |
| items | Yes | Bars to update: [{bar_id, ...fields}]. Fields are the same as manage_bar update: name, lane, lane_id, legend, clear_legend, starts_on, ends_on, description, percent_done, is_container, container_bar_id, parked, strategic_value, notes, tags, custom_text_fields, custom_dropdown_fields. Optional per-item roadmap_id. | |
| dry_run | No | True to validate and return the payloads without writing | |
| roadmap_id | No | Roadmap all bars are on; skips one bar lookup per item when names need validating |