Skip to main content
Glama

Update a contact

update_contact
DestructiveIdempotent

Update fields on an existing contact — move it to a new pipeline stage, change lifecycle, set email/phone/name, or mark do_not_contact. Only the fields you pass are changed; tags replaces the tag set (use add_tag to merge instead).

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"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagsNoReplacement tag list — this REPLACES existing tags. Use add_tag to merge.
emailNoThe contact email address. Use to locate a contact when you do not have its id, or to set a new email on update_contact.
phoneNoPhone number.
last_nameNoLast name.
lifecycleNo
contact_idYesThe contact id (uuid) from find_contact / list_contacts / search_leads.
first_nameNoFirst name.
do_not_contactNotrue → suppress all outbound messaging to this contact.
pipeline_stageNoStage name — must match a stage from list_pipeline_stages.

Output Schema

NameRequiredDescriptionDefault
okNo
errorNoPresent only when ok is false.
contactNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint and idempotent, so the bar is lower; the description still adds real value by stating that only passed fields change and that tags is a full replacement rather than a merge. It stops short of explaining why the call is flagged destructive (e.g., that omitted tags are dropped).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences with the core mutation semantics front-loaded and the tag caveat immediately following; nothing is redundant with the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with an output schema and strong annotation coverage, the description supplies the essential mental model: partial updates and tag replacement. The remaining gap is disambiguation from upsert_contact and a note on why the call is destructive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 89% schema coverage the baseline is 3; the description earns one more by summarizing the meaning of the field groups and by calling out the replace-vs-merge behavior of tags, which is the most error-prone parameter. It adds no detail on pipeline_stage validation beyond what the schema says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update fields on an existing contact') and enumerates the concrete field families it can change (pipeline stage, lifecycle, email/phone/name, do_not_contact). This clearly separates it from siblings like add_tag and upsert_contact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use context (partial update of an existing contact) and explicitly routes tag merging to add_tag, with the replacement semantics spelled out. It does not, however, distinguish itself from upsert_contact, which is the nearest ambiguous sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources