contacts_add_channel
🔗 Link a channel identity (email, phone, Telegram/WhatsApp handle) to an existing contact.
When to use:
User learns a contact's email or phone and wants to save it
Adding a second channel for an existing person
Email/phone are stamped as the contact's identity keys, so channel sync attaches the matching conversation to the same contact automatically. If the identity already belongs to a DIFFERENT contact, the call fails unless merge_if_linked=true — which IRREVERSIBLY merges the two contacts into one. Requires contact_id (entity_id) from contacts.find.
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": {
"contact_id": "<contact_id>",
"channel": "<channel>",
"value": "<value>"
},
"name": "contacts_add_channel"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Email address, phone number, or username for this channel | |
| channel | Yes | Channel type to add | |
| contact_id | Yes | entity_id from contacts.find/contacts.sync; when sync returned no entity_id, pass its person_id instead | |
| display_name | No | Optional display label for this identity | |
| in_workspace | No | Run this one call in this workspace id instead of the session's. Nothing is stored; other sessions are not affected. | |
| merge_if_linked | No | If the identity already belongs to a DIFFERENT contact, merge that contact into this one (IRREVERSIBLE — the other contact record is deleted). Default false: the call fails instead of merging. |