Update lead
update_leadUpdate fields of a CRM lead in the caller's active workspace (e.g. status, priority, name, contact). Only a lead in the caller's tenant is reachable. Pass 'lead_id' plus the fields to change. Status 'unqualified' needs 'lostReason' (not_target, spam, duplicate, no_budget, no_response, chose_competitor, other; optional 'lostComment'); 'spam' implies reason spam; 'closed' is retired — use 'unqualified' with a reason. A lead in one of the workspace's pipelines (crm_pipeline_get) takes its status from its stage: a status change there is refused with use_stage — call crm_set_stage. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"lead_id": "<lead_id>"
},
"name": "update_lead"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| No | |||
| phone | No | ||
| custom | No | The workspace's own fields (keys from crm_list_fields): {key: value} sets, {key: null} removes, other keys stay. Values are validated by type — an enum lists its allowed options, money_eur accepts EUR only. | |
| status | No | ||
| comment | No | ||
| company | No | ||
| lead_id | Yes | ||
| lastName | No | ||
| priority | No | ||
| firstName | No | ||
| lostReason | No | ||
| lostComment | No |