Add or update a lead contact channel
lead_upsert_channelAdd or update one contact point of a lead — e.g. record that a phone has a Telegram account. 'lead_id', 'kind', 'value' (a number in any format, @username, a profile URL); optional 'status' (available / not_found / unknown / invalid / opted_out / unverified), 'checked_at' (default now when a status is set), 'check_method' (manual, agent_browser, messenger_check, import), 'label', 'source_url' (where you saw it), 'notes', 'is_primary' (the primary phone / e-mail is also the lead's phone / email), 'agent_name'. The same handle in another format is the SAME point (063… = +38063…) → action 'updated', never a duplicate. Checking must never message anybody. Runs on the call; making a point primary is confirmed first. At most 30 points per lead. CONFIRMATION: this tool runs immediately when the caller asks for it — it writes only their own record, and they can undo it from this same surface, so the request is taken as the instruction. You get an ordinary result, not a plan_token. Everything destructive, outbound or financial still proposes and waits.
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>",
"kind": "<kind>",
"value": "<value>"
},
"name": "lead_upsert_channel"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| label | No | ||
| notes | No | ||
| value | Yes | ||
| status | No | ||
| lead_id | Yes | ||
| agent_name | No | ||
| checked_at | No | ||
| is_primary | No | ||
| source_url | No | ||
| check_method | No |