Skip to main content
Glama

Update Deal

update_deal

Won and lost are statuses, not stages: use status='won' / 'lost', and status='open' to reopen. Deleting (archived=true) hides the deal everywhere but keeps it, so archived=false brings it back. The updated deal, same shape as a query_deals row.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoNew name.
clearNoFields to empty: 'amount', 'expected_close_date', 'person', 'company'. A deal must keep a person or a company.
notesNoReplace the notes entirely. To add to them, use notes_append instead.
stageNoMove to this stage, by name or id.
amountNoNew value as a plain number, e.g. 15000.
statusNo'open', 'won', or 'lost'.
deal_idYesThe deal's id (query_deals).
archivedNotrue deletes the deal (reversible), false restores it. A deleted deal can only be changed in a call that also restores it (archived=false).
person_idNoLink this person instead (query_people `id`).
company_idNoLink this company instead (query_companies `id`).
new_personNoA contact to add and link: name plus email or LinkedIn URL. Someone Sliq already has with that email or LinkedIn is reused. Used instead of person_id.
new_companyNoA company to add and link: name plus domain. A company Sliq already has with that domain is reused. Used instead of company_id.
notes_appendNoAdd this as a new paragraph at the end of the notes.
on_behalf_ofNoAn agency client's email, from list_agency_clients, to run this call in that client's account: their agents, settings, connected accounts, and credits. Omit it to act on your own account.
assignee_emailNoNew owner, an active teammate's email from list_teammates (not an invited one).
expected_close_dateNoYYYY-MM-DD.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / on_behalf_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "An agency client's email, from list_agency_clients, to run this call in that client's account: their agents, settings, connected accounts, and credits. Omit it to act on your own account."
      +}
    • changedInput schema / properties / status / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "open",
      -      "won",
      -      "lost"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "open",
      +      "won",
      +      "lost"
      +    ],
      +    "title": "Status",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • addedInput schema / properties / new_company
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "A company not yet in Sliq. Needs a domain; an existing company with that domain is\nreused.",
      +      "properties": {
      +        "domain": {
      +          "default": "",
      +          "type": "string"
      +        },
      +        "name": {
      +          "default": "",
      +          "type": "string"
      +        }
      +      },
      +      "title": "NewCompany",
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "A company to add and link: name plus domain. A company Sliq already has\nwith that domain is reused. Used instead of company_id."
      +}
    • addedInput schema / properties / new_person
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "A contact not yet in Sliq. Needs an email or a LinkedIn URL; an existing person with the\nsame email/LinkedIn is reused, not duplicated.",
      +      "properties": {
      +        "email": {
      +          "default": "",
      +          "type": "string"
      +        },
      +        "linkedin_url": {
      +          "default": "",
      +          "type": "string"
      +        },
      +        "name": {
      +          "default": "",
      +          "type": "string"
      +        }
      +      },
      +      "title": "NewPerson",
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "A contact to add and link: name plus email or LinkedIn URL. Someone Sliq\nalready has with that email or LinkedIn is reused. Used instead of person_id."
      +}
  3. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare non-read-only and non-destructive, so the safety bar is partly covered, but the description adds real context beyond them: archived=true is a reversible soft-delete that hides the deal everywhere while keeping it, and a deleted deal can only be modified in a call that also sets archived=false. That is the kind of non-obvious constraint annotations cannot express.

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

Conciseness4/5

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

Front-loads the full mutation surface in one sentence, then adds the two highest-risk clarifications (status vs stage, soft-delete) immediately after. Dense but every clause carries information; the XML tag wrapper is slightly awkward but harmless.

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 16-parameter mutation tool with no output schema, the definition covers purpose, id sourcing, the status/stage ambiguity, and reversible deletion. The return value is stated as 'same shape as a query_deals row', which is adequate given the missing output schema. Nested-object reuse semantics (new_person/new_company) are left to the schema, which is acceptable at 100% coverage.

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?

Schema description coverage is 100%, so the schema already documents each field and the baseline is 3. The description nevertheless adds cross-parameter meaning: the status-vs-stage distinction for the status/stage fields, and the notes-vs-notes_append relationship, which the schema confirms but the description frames as a decision rule.

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?

The first sentence names a specific verb (change) and exhaustively enumerates the mutable surface: rename, move stage, mark won/lost/reopen, amount, close date, owner, notes, linked contact/company, delete/restore. It clearly distinguishes itself from query_deals (read) and create_deal (new record), so an agent can route without opening schemas.

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 concrete routing: get the id from query_deals, and clarifies that won/lost are statuses rather than stages (status='won' vs stage=...). It also distinguishes notes from notes_append via the schema text. It stops short of explicit when-not-to-use guidance versus other update tools like update_prospect or create_deal.

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