Handles bulk Monday.com operations with parallel processing, rate limiting, and error recovery.
From opspal-mondaynpx claudepluginhub revpalsfdc/opspal-commercial --plugin opspal-mondaysonnetDesigns, builds, and optimizes data pipelines, ETL/ELT processes, data platforms, infrastructure, orchestration, quality checks, and costs for scalability and reliability.
Specializes in architecting, implementing, and optimizing end-to-end AI systems, from model selection and training pipelines to production deployment and monitoring.
Senior data analyst for business intelligence: extracts insights from data via SQL, builds dashboards/reports with Tableau/Power BI/Looker, performs statistical analysis for decision-making.
Automatically routes when user mentions:
MONDAY_API_TOKEN environment variableInput Data
│
▼
┌─────────────────┐
│ Validation │ ← Verify data format, required fields
└────────┬────────┘
│
▼
┌─────────────────┐
│ Chunking │ ← Split into batches (default: 50 items)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Parallel Exec │ ← Process chunks concurrently (default: 3)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Rate Limiting │ ← Respect API limits, backoff on errors
└────────┬────────┘
│
▼
┌─────────────────┐
│ Result Agg │ ← Collect results, report failures
└─────────────────┘
| Option | Default | Description |
|---|---|---|
batchSize | 50 | Items per batch |
parallelism | 3 | Concurrent batches |
retryAttempts | 3 | Retry failed operations |
retryDelay | 1000ms | Delay between retries |
continueOnError | true | Continue if batch fails |
CSV Format:
name,status,date,owner_email,priority
Task 1,Working on it,2024-01-15,john@example.com,High
Task 2,Done,2024-01-10,jane@example.com,Medium
JSON Format:
[
{
"name": "Task 1",
"columns": {
"status": "Working on it",
"date4": "2024-01-15",
"person": "john@example.com",
"priority": "High"
}
}
]
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js validate \
--file data.csv \
--board 12345
Validation Checks:
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js preview \
--file data.csv \
--board 12345 \
--limit 5
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js import \
--file data.csv \
--board 12345 \
--group new_group \
--batch-size 50 \
--parallel 3
# Update all items in a group
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js update \
--board 12345 \
--filter "group=topics" \
--set "status=Done"
# Update items matching criteria
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js update \
--board 12345 \
--filter "status=Stuck" \
--set "priority=Critical"
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js update-file \
--board 12345 \
--file updates.json
updates.json format:
[
{ "item_id": "123456", "columns": { "status": "Done" } },
{ "item_id": "123457", "columns": { "status": "Done", "date4": "2024-01-20" } }
]
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js export \
--board 12345 \
--format csv \
--output board_export.csv
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js export \
--board 12345 \
--format json \
--include-subitems \
--output board_export.json
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js export \
--board 12345 \
--filter "status=Done" \
--columns "name,status,date4,person" \
--format csv \
--output done_items.csv
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js copy \
--source-board 12345 \
--target-board 67890 \
--filter "status=Done" \
--column-mapping mapping.json
column-mapping.json:
{
"status": "status_1",
"date4": "date",
"person": "owner"
}
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js move \
--source-board 12345 \
--target-board 67890 \
--items "item1,item2,item3"
# One-way sync from source to target
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js sync \
--source-board 12345 \
--target-board 67890 \
--match-field "external_id" \
--update-only
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js archive \
--board 12345 \
--filter "status=Done,date4<2024-01-01" \
--dry-run
# Execute if dry-run looks good
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js archive \
--board 12345 \
--filter "status=Done,date4<2024-01-01"
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js delete \
--items "123,456,789" \
--confirm
The batch manager automatically:
# Conservative mode (slower, safer)
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js import \
--file data.csv \
--board 12345 \
--batch-size 25 \
--parallel 1 \
--rate-limit 100
# Aggressive mode (faster, uses more quota)
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js import \
--file data.csv \
--board 12345 \
--batch-size 100 \
--parallel 5
Large operations create checkpoints for recovery:
# Start operation (creates checkpoint)
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js import \
--file large_data.csv \
--board 12345 \
--checkpoint-dir ./checkpoints
# Resume from checkpoint after failure
node .claude-plugins/opspal-monday/scripts/lib/monday-batch-manager.js resume \
--checkpoint ./checkpoints/import_20240115_123456.json
Failed operations generate detailed error reports:
Batch Operation Report
═══════════════════════════════════════════════════════
Operation: import
Board: 12345
Started: 2024-01-15 10:00:00
Completed: 2024-01-15 10:15:32
Results:
✓ Succeeded: 485 items
✗ Failed: 15 items
○ Skipped: 0 items
Success Rate: 97.0%
Failed Items:
┌─────┬──────────────────┬────────────────────────────────┐
│ Row │ Name │ Error │
├─────┼──────────────────┼────────────────────────────────┤
│ 23 │ Invalid Task │ Invalid date format │
│ 45 │ Missing Owner │ Person 'x@y.com' not found │
│ 67 │ Bad Status │ Status 'Unknown' not in board │
└─────┴──────────────────┴────────────────────────────────┘
Error Details: ./errors/import_20240115_errors.json
| Operation | Items | Time (50/batch, 3 parallel) |
|---|---|---|
| Create | 100 | ~15 seconds |
| Create | 500 | ~60 seconds |
| Create | 1000 | ~120 seconds |
| Update | 100 | ~10 seconds |
| Update | 500 | ~45 seconds |
| Export | 1000 | ~20 seconds |
User: "Import 500 tasks from tasks.csv to the Project board"
Agent:
User: "Update all Stuck items to have Critical priority"
Agent:
User: "Export all completed items from last month to CSV"
Agent:
Monday.com Batch Import
═══════════════════════════════════════════════════════
Board: Project Tasks (12345)
Source: tasks.csv
Items: 500
Progress: [████████████████████░░░░░░░░░░] 67%
Batches: 7/10 complete
Items: 335/500 created
Current Rate: 45 items/minute
ETA: ~3 minutes remaining
✓ Batch 1: 50 items created
✓ Batch 2: 50 items created
✓ Batch 3: 50 items created
✓ Batch 4: 50 items created
✓ Batch 5: 50 items created
✓ Batch 6: 50 items created
✓ Batch 7: 35 items created
◐ Batch 8: In progress...
Monday.com Batch Import Complete
═══════════════════════════════════════════════════════
Board: Project Tasks (12345)
Duration: 11 minutes 23 seconds
Results:
✓ Created: 487 items
✗ Failed: 13 items
○ Skipped: 0 items
Success Rate: 97.4%
Performance:
- Average: 43 items/minute
- Peak: 52 items/minute
- API Calls: 312
Errors saved to: ./errors/import_20240115_errors.json
Next Steps:
- Review failed items in error report
- Verify imported data in Monday.com
- Run /asana-update if linked