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.

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": {
      "deal_id": "<deal_id>"
    },
    "name": "update_deal"
  }
}

Input 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, linkedin_slug (their LinkedIn slug or profile URL) or linkedin_provider_id. 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_ofNoA teammate's email, or an agency client's from list_agency_clients, to run this call in that 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. Changed1 schema field changed
    • changedInput schema / properties / on_behalf_of / description
      Previous value: -"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."New value: +"A teammate's email, or an agency client's from list_agency_clients, to run this call in that account: their agents, settings, connected accounts, and credits. Omit it to act on your own account."
  2. Changed2 schema fields changed
    • changedInput schema / properties / new_person / anyOf
      Previous value: -[
      -  {
      -    "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"
      -  }
      -]New value: +[
      +  {
      +    "description": "A contact not yet in Sliq. Needs an email, a LinkedIn slug (or profile URL) or a LinkedIn\nprovider id; an existing person with the same email/LinkedIn is reused, not duplicated.",
      +    "properties": {
      +      "email": {
      +        "default": "",
      +        "type": "string"
      +      },
      +      "linkedin_provider_id": {
      +        "default": "",
      +        "description": "The contact's LinkedIn provider id (ACoAA…), if known.",
      +        "type": "string"
      +      },
      +      "linkedin_slug": {
      +        "default": "",
      +        "type": "string"
      +      },
      +      "name": {
      +        "default": "",
      +        "type": "string"
      +      }
      +    },
      +    "title": "NewPerson",
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / new_person / description
      Previous value: -"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."New value: +"A contact to add and link: name plus email, linkedin_slug (their LinkedIn\nslug or profile URL) or linkedin_provider_id. Someone Sliq already has with that email\nor LinkedIn is reused.\nUsed instead of person_id."
  3. Changed1 schema field changed
    • changedInput schema / properties / amount / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  4. 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"
      +  }
      +]
  5. 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."
      +}
  6. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false and destructiveHint=false, which is thin for a tool that exposes deletion. The description closes that gap by explaining that archived=true is a soft, reversible hide ('hides the deal everywhere but keeps it') and that archived=false restores it, so the agent won't mistake it for an irreversible purge. It stops short of stating permission requirements or side effects like stage-change automation or credit use.

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?

Two tight paragraphs, front-loaded with the full capability list, then the two non-obvious semantics (status/stage, archive/restore), then a returns note. Slight redundancy: the archived behavior is restated in the schema's own archived parameter description, so one clause could be dropped.

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 the description covers the capability set, the id source, the status/stage distinction, and delete/restore semantics, plus a returns note ('same shape as a query_deals row') despite no output schema. It leaves unaddressed what happens on an invalid stage name, whether omitted fields are untouched, and permission requirements for owner reassignment or on_behalf_of.

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 baseline would be 3, but the description adds the conceptual model the schema lacks: status vs stage are different axes, and delete is modeled as archived=true rather than a separate argument. That meaning beyond the raw field descriptions justifies a bump.

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 ('Change a deal') and then enumerates the mutation surface: rename, move stage, mark won/lost/reopen, change amount, close date, owner, notes, linked person/company, delete and restore. An agent can distinguish this from create_deal or query_deals without opening the schema.

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 the prerequisite for the required id ('Get the id from query_deals') and resolves the non-obvious modeling choice: won/lost are statuses, not stages, with status='open' to reopen. It does not explicitly say when to prefer update_deal over siblings like update_prospect or create_deal, but the enumerated field list makes the boundary obvious.

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