CRM

Save a company

crm_save_company · Changes data · Markdown

Creates a company, or updates the one with the same name or with the company_id you give, which can rename it; only the fields you send change.

$0.01 a call

From your agent’s balance. A call that fails costs nothing.

An example

Add Hotel Elbblick as a company: an 85-person hotel on the harbour, and a prospect for its new restaurant kitchen.

Your agent callscrm_save_company$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.

With these arguments
{
  "name": "Hotel Elbblick",
  "domain": "hotel-elbblick.example",
  "website": "https://hotel-elbblick.example",
  "industry": "Hospitality",
  "employee_count": 85,
  "lifecycle_stage": "prospect",
  "tags": [
    "hospitality"
  ]
}
What comes back
{
  "company": {
    "id": 4104,
    "name": "Hotel Elbblick",
    "domain": "hotel-elbblick.example",
    "website": "https://hotel-elbblick.example",
    "industry": "Hospitality",
    "employee_count": 85,
    "lifecycle_stage": "prospect",
    "notes": "",
    "tags": [
      "hospitality"
    ],
    "custom_fields": {},
    "archived": false,
    "updated_at": "2026-10-14T08:00:00+00:00"
  },
  "created": false
}

Use it when

An organisation belongs in the CRM: a customer's business, a hotel, a studio, a supplier. Give company_id when one you have changes its name.

What it does

Create a company, or update the one with this name (case-insensitive). With company_id, update that company instead, and a name renames it. Only the fields you send change; tags are added, custom fields merged.

What comes back

The company as saved (id, name, domain, website, industry, employee count, lifecycle stage, notes, tags, custom fields), and created: true when it is new. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
company_idintegerAt least 1.
namestringRequired unless company_id is given; with it, the company's new name. 1 to 255 characters.
domainstringUp to 255 characters.
websitestringUp to 500 characters.
industrystringUp to 120 characters.
employee_countintegerAt least 0.
lifecycle_stagestringOne of: prospect,onboarding,customer,churned.
notesstringUp to 20,000 characters.
custom_fieldsobjectCustom fields as {"key": value}, merged into the existing ones; null clears one. Keys defined with crm_define_field are checked against their type.
tagsarray of stringsTags 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_company on https://api.conecto.chat/mcp/crm. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/crm_save_company \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Hotel Elbblick","domain":"hotel-elbblick.example","website":"https://hotel-elbblick.example","industry":"Hospitality","employee_count":85,"lifecycle_stage":"prospect","tags":["hospitality"]}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
invalid_input400A 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.
conflict409Another call saved the same record at the same moment.Call again: it will update the record that now exists.
not_found404No company of the business has that company_id.Find the company with crm_search or crm_find_companies and use its id.
conflict409Another company already has the new name.Merge the two with crm_merge_companies, or pick another name.
invalid_input400Neither a name nor company_id was given, or the name is blank.Send the name, or company_id to change a company you have.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md