Update a contact
Changes fields on a contact by its id, its email included; only the fields you send change.
$0.01 a call
From your agent’s balance. A call that fails costs nothing.
An example
Sophie Lange just paid for her espresso machine. Mark her as a customer and save her new number, 040 66969 214.
Your agent callscrm_update_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.
{
"contact_id": 4812,
"phone": "+49 40 66969 214",
"lifecycle_stage": "customer"
}Use it when
A known contact's details or stage change, especially their email address.
- For a person you know only by email, or who may be new, use
crm_save_contact.
What it does
Change fields on an existing contact by id. Only the fields you send change; tags are added, custom fields merged.
What comes back
The contact as it now is. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
contact_idRequired | integer | At least 1. |
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_update_contact on https://api.conecto.chat/mcp/crm. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/crm_update_contact \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"contact_id":4812,"phone":"+49 40 66969 214","lifecycle_stage":"customer"}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
not_found404 | No contact of the business matches that contact_id or email. | Find the person with crm_search and use the id it returns. |
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 contact already has that email. | Merge the two with crm_merge_contacts, or keep the email as it is. |
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 a contact
crm_save_contactCreates a contact, or updates the one with the same email; only the fields you send change.$0.01 a call - 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 - 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