Save a contact
Creates a contact, or updates the one with the same email; only the fields you send change.
$0.01 a call
From your agent’s balance. A call that fails costs nothing.
An example
Add Jana Weber from Weber Küchenplanung as a trade lead. She plans restaurant kitchens and came to the test kitchen today.
Your agent callscrm_save_contact$0.01 a call
The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.
{
"email": "jana@weber-kuechenplanung.example",
"name": "Jana Weber",
"title": "Kitchen planner",
"company": "Weber Küchenplanung",
"phone": "+49 40 66969 120",
"location": "Hamburg",
"lifecycle_stage": "lead",
"tags": [
"trade",
"test-kitchen-visit"
]
}Use it when
A person belongs in the CRM: a new lead, a customer, or new details for someone already there.
- For an organisation rather than a person, use
crm_save_company. - For more than a few people at once, use
crm_save_contacts. - For a contact you know by id, including a new email, use
crm_update_contact.
What it does
Create a contact, or update the one with this email if it already exists. Only the fields you send change; tags are added, custom fields merged. Without an email a new contact is always created.
What comes back
The contact as saved (with company_id when a company was named), and created: true when it is new. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
email | string (email) | Up to 254 characters. |
name | string | Up to 255 characters. |
title | string | Up to 255 characters. |
company | string | Company name; also links or creates the company record. Up to 255 characters. |
phone | string | Up to 60 characters. |
location | string | Up to 255 characters. |
timezone | string | Up to 60 characters. |
language | string | Up to 60 characters. |
lifecycle_stage | string | One of: lead,trial,onboarding,customer,at_risk,churned,advocate. |
notes | string | Up to 20,000 characters. |
custom_fields | object | Custom fields as {"key": value}, merged into the existing ones; null clears one. Keys defined with crm_define_field are checked against their type. |
tags | array of strings | Tags to add, e.g. ["vip"]; a new tag is made on first use. crm_tag_records removes tags. Up to 20 items. |
The call
Over MCP, call crm_save_contact on https://api.conecto.chat/mcp/crm. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/crm_save_contact \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"jana@weber-kuechenplanung.example","name":"Jana Weber","title":"Kitchen planner","company":"Weber Küchenplanung","phone":"+49 40 66969 120","location":"Hamburg","lifecycle_stage":"lead","tags":["trade","test-kitchen-visit"]}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
invalid_input400 | A custom field value does not fit the field's type, or the record would hold too many custom fields. | Send a value of the type crm_list_fields shows for that key, or null to clear it. |
conflict409 | Another call saved the same record at the same moment. | Call again: it will update the record that now exists. |
More CRM tools
All 41 tools- Search the CRM
crm_searchFinds contacts, companies and deals from whatever you have: a name, an email, a phone number in any format, a domain or a deal title.Free* - Find contacts
crm_find_contactsFinds contacts by name, email, company or phone, by filters on any field or tag, or by a saved segment, one page at a time.Free* - Get a contact
crm_get_contactOne contact, by id or email, with its tags, custom fields, recent activity, open tasks and deals.Free* - Everything open with a customer
crm_get_customerEverything open with one customer in one read: deals, tickets, invoices, quotes, signatures, meetings and their last messages.Free* - Save many contacts
crm_save_contactsCreates or updates up to 100 contacts in one call, each like crm_save_contact; you pay only for the ones saved.$0.01 per record saved - Update a contact
crm_update_contactChanges fields on a contact by its id, its email included; only the fields you send change.$0.01 a call - Archive a contact
crm_archive_contactHides a contact from searches and lists; its history is kept.$0.001 a call - Restore a contact
crm_restore_contactBrings an archived contact back into searches and lists.$0.001 a call
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md