bulk.run
Run one safe action on up to 200 records: customers.addTags, customers.removeTags, customers.archive, customers.unarchive, jobs.addTags, jobs.removeTags, visits.assign. Each item goes through the shop's approval rules like a single call and is reported as done, approval_required or failed.
| Who | Agents can call this |
| REST | POST /v1/bulk |
| MCP tool | bulk_run |
| Writes | yes, send an Idempotency-Key |
| Area | Imports, custom fields, tags and search |
When to use it
Tag, untag, archive or unarchive up to 200 records in one call. Each record gets its own result, so one bad id does not stop the rest.
What to tell the owner
Say what you did in plain words and what happens next.
Input
| Field | Type | Required |
|---|---|---|
shop_id | string (uuid) | yes |
action | string (one of customers.addTags, customers.removeTags, customers.archive, customers.unarchive, jobs.addTags, jobs.removeTags, visits.assign) | yes |
ids | array | yes |
tags | array | no |
person_ids | array | no |
Example
POST https://doingwork.work/v1/bulk
content-type: application/json
Idempotency-Key: 3f1c...
{
"shop_id": "00000000-0000-4000-8000-000000000000",
"action": "customers.addTags",
"ids": [
"00000000-0000-4000-8000-000000000000"
]
}Output
JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are {code, message, status}.
Errors
| Code | Status | What to do |
|---|---|---|
invalid_input, invalid_token, rate_limited | Can happen on any call. See errors. |