Loading endpoint details...
Bot update.
/api/v1/contacts/{id}/bot-updateBrowse API endpoints
Conversations
Contacts
Calendar and booking
Contacts / CRM REST API
/api/v1/contacts/{id}/bot-updateContacts / CRM REST API
Loading endpoint details...
Scope: contacts:write
Some chatbot custom-tool builders can only substitute scalar values into a request body, so they cannot send a nested object - a template like {"customFields": {{updates_json}}} is rejected as invalid JSON and the bot ends up sending an empty update that succeeds and writes nothing. This companion endpoint takes one instruction at a time, using only single values, and does the shaping server-side:
| Operation | What it does |
|---|---|
set_field | Set one standard field (field names it, value is the new value) |
set_custom_field | Set one custom field (field is the exact custom-field key) |
add_tag | Add one tag (value) - merged against the stored list for you; idempotent and case-insensitive |
remove_tag | Remove one tag (value) |
An empty-string value clears a field or custom field, and the bot never has to send or preserve the whole tag list. Deliberate boundary: source and assignedTo are not settable by a bot - anything outside the allowlisted fields is a 400. Same authentication, rate-limit bucket, and sub-account isolation as the JSON endpoints; returns the updated contact.