Create personal contact
create_contact_personalSave a person to the caller's OWN contact book (never a company CRM — for a company contact use erp_create_contact, for a lead create_lead). Provide 'name' and/or 'phones'/'emails'; optional 'company', 'position', 'note' and the person card: 'aliases' (other spellings), 'birthday' (YYYY-MM-DD, or --MM-DD when the year is unknown — keeps ONE yearly birthday reminder), 'how_met', 'tags', 'summary' (one line «who this is»), 'starred', 'keep_in_touch_days' (7/30/90/180/365) and 'relations' [{contact_id, relation}] — what THIS person is to an existing contact (spouse, partner, parent, child, sibling, relative, friend, colleague, manager, report, introduced_by, introduced, other). Same phone/email = merged into the existing card (deduplicated=true). A similar NAME is never merged: the card is created and 'possible_duplicates' lists look-alikes — call find_contact_personal first when unsure. Undo with delete_contact_personal. 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
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "create_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 | ||
| birthday | No | YYYY-MM-DD, or --MM-DD when the year is unknown; null clears. | |
| position | No | ||
| relations | No | ||
| keep_in_touch_days | No |