Skip to content

feat(agent-toolkit): add change_item_column_values_batch tool#345

Open
shifrinnitzan wants to merge 6 commits into
mondaycom:masterfrom
shifrinnitzan:feat/change-column-values-batch-tool
Open

feat(agent-toolkit): add change_item_column_values_batch tool#345
shifrinnitzan wants to merge 6 commits into
mondaycom:masterfrom
shifrinnitzan:feat/change-column-values-batch-tool

Conversation

@shifrinnitzan
Copy link
Copy Markdown

Summary

  • Adds a change_item_column_values_batch tool that accepts an array of { itemId, columnValues } objects and dispatches them via Promise.allSettled
  • Handles partial failures gracefully — each item is updated independently, with per-item success/failure reporting
  • Max 50 items per batch, enforced via Zod schema
  • Reuses the existing changeItemColumnValues GraphQL mutation (no server-side changes needed)

Motivation

Sidekick agents currently dispatch 70+ individual change_item_column_values mutations sequentially when bulk-updating items (e.g., assigning deal owners). This amplifies API call overhead and rate-limit exposure. The batch tool cuts round-trips and makes the agent resilient to partial failures.

Traced in LangSmith: ai-agents-staging trace 019e24d3 — 70 sequential mutations, 47 failed due to non-subscriber assignment errors.

Test plan

  • 6 unit tests covering: batch success, partial failure, all-fail, boardId context vs input, createLabelsIfMissing passthrough
  • Full test suite: 50 suites, 943 tests, 0 failures
  • After merge, bump @mondaydotcomorg/agent-toolkit in DaPulse/hosted-mcp and add change_item_column_values_batch to DEFAULT_TOOLS

🤖 Generated with Claude Code

shifrinnitzan and others added 6 commits May 14, 2026 13:16
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ing tests for batch tool

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…index

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add conditional boardId schema (omit when context provides it)
- Use identical columnValues .describe() text with full JSON example
- Add both preconditions (get_board_info + link_board_items_workflow)
- Extract GraphQL response errors in failed items (same as rethrowWithContext)
- Align itemId/createLabelsIfMissing .describe() text verbatim
- Add 3 new tests: GraphQL error extraction, schema conditional tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…mise.allSettled

Replace N individual HTTP requests with a single GraphQL request containing
aliased change_multiple_column_values mutations. This reduces API round-trips
from O(n) to O(1) and avoids rate-limit exposure on large batches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Per-item success entries now use item_id, item_name, item_url and include
a "Item {id} successfully updated" message — matching the singular
change_item_column_values tool response contract.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant