Update personal contact
update_contact_personalChange a person in the caller's OWN contact book. Pass 'contact_id' and only the fields to change; 'name' changes ONLY when passed. phones/emails/aliases/tags are replaced when passed (add_tags/remove_tags edit tags in place). 'birthday' null clears it; 'keep_in_touch_days' null switches it off; 'archived' true hides the person from birthday reminders and people_due (false brings back); 'snooze_until' YYYY-MM-DD. 'relations' [{contact_id, relation}] sets what THIS person is to another contact, 'remove_relations' [contact_id] drops a relation. Personal data only, reversible. 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": {
"contact_id": "<contact_id>"
},
"name": "update_contact_personal"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| note | No | ||
| tags | No | ||
| emails | No | ||
| phones | No | ||
| aliases | No | ||
| company | No | ||
| how_met | No | ||
| starred | No | ||
| summary | No | ||
| add_tags | No | ||
| archived | No | ||
| birthday | No | YYYY-MM-DD, or --MM-DD when the year is unknown; null clears. | |
| position | No | ||
| relations | No | ||
| contact_id | Yes | ||
| remove_tags | No | ||
| snooze_until | No | ||
| remove_relations | No | ||
| keep_in_touch_days | No |