update_contact
Update a contact's profile fields and/or contact-variable values. Requires the manage_broadcasts permission. Only the fields you pass are changed — omitted fields keep their current value — so the call is idempotent. The variables map takes variable NAMES (or full folder paths when a name is ambiguous), not ids; an unknown name fails with 422 before anything is written. Variable writes propagate to the live bot immediately (the runtime's cached values are invalidated). Setting status to "unsubscribed" stops broadcasts and sequences for the contact.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| No | New email. Omit to leave unchanged; empty string clears it. | ||
| phone | No | New phone. Omit to leave unchanged; empty string clears it. | |
| status | No | New subscription status ("subscribed" or "unsubscribed"). Omit to leave unchanged. | |
| lastName | No | New last name. Omit to leave unchanged; empty string clears it. | |
| username | No | New platform username. Omit to leave unchanged; empty string clears it. | |
| contactId | Yes | Required. Contact id, as returned by list_contacts. | |
| firstName | No | New first name. Omit to leave unchanged; empty string clears it. | |
| variables | No | Contact variable values to set, as { "variableName": "value" }. Keys are variable NAMES or full folder paths (not ids). Only the listed variables change. | |
| applicationId | No | Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id. |