Skip to main content
Glama

Create Alert Run

create_alert_run

Create a run that tells each record's OWNER something, over Slack. This is the tool for 'let the reps know about their accounts that X', 'alert the owners of these contacts'. It does nothing until dispatched, and it WRITES NOTHING TO THE CRM -- no field changes, no tasks, no records. ONE MESSAGE PER OWNER, NOT PER RECORD. Forty contacts held by three reps is three messages, each naming how many of their records it concerns. So write the message to a person about their records, not to a record. SAY WHAT THE READER SHOULD DO, NOT WHAT HAPPENED. A message is written when the plan is composed and sends when the alert step runs, so a sentence in the past tense claims an outcome the plan cannot know -- four composed plans in a row told reps that duplicates "were merged" when a deduplication run only QUEUES groups for a person to merge afterwards, and that ownership "was reassigned" by a step that declines entirely when no routing is configured. NAME THE RECORDS AND THE NEXT ACTION INSTEAD. "Your Texas contacts have been through a cleanup -- review the duplicate groups waiting for you" is true when it is written, true when it sends, and survives a step declining or matching nothing; the future tense is no safer, since what a person does with a review queue is not the plan's to promise. IT CANNOT BE UNDONE. A sent message cannot be recalled, so a plan containing this step reverses everything else and says this one stays. IT NEEDS SLACK AND OWNER MAPPINGS. A tenant with no Slack connection sends nothing and the run fails; an owner with no Slack mapping is reported per record rather than skipped quietly, and a run that reaches nobody fails rather than reporting success.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesA name for the run, shown in the Runs tab. It sends a Slack message to the owners of the records in scope.
messageYesWhat each record's owner is told, sent to them over Slack as written. Required and must not be blank.
filter_specNoWhich records this run covers, as a filter tree. Omit for the whole object. It DESCRIBES a population and is resolved when the run is DISPATCHED, so write what you mean -- the CRO at Skypoint is `account_name is Skypoint AND title contains CRO` -- and never look a record up to write one. You need no ids and no counts. Call list_filterable_fields first, for the field names and operators only.
object_typeYesWhich CRM object the run targets: contact, account or lead.
connection_idYesThe CRM connection. Required. Call list_crm_connections to get one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / message / description
      Added value: +"What each record's owner is told, sent to them over Slack as written. Required and must not be blank."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: nothing happens until dispatched, one message per owner (not per record, with a concrete 40-contacts/3-reps example), no CRM writes, and crucially that a sent message cannot be recalled. It also discloses preconditions and failure modes (needs Slack + owner mappings; no Slack connection fails the run; an unmapped owner is reported per record). The irreversibility note is consistent with destructiveHint=false, which refers to data destruction, not message recall.

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

Conciseness3/5

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

Core purpose is front-loaded in the first sentence, which is good. But the message-writing guidance balloons into a verbose past/future-tense essay with a 'four composed plans in a row' anecdote and heavy all-caps emphasis — the actionable rule ('say what the reader should do, not what happened') could be stated in a fraction of the space.

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

Completeness5/5

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

For a moderately complex mutation tool with no output schema and 100% schema coverage, the description leaves nothing essential out: it explains dispatch semantics, the no-disposition constraint, the per-owner batching, aliases for the surrounding workflow (list_filterable_fields, list_crm_connections), and the failure modes.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning: filter_spec 'DESCRIBES a population' resolved at dispatch, object_type is the scope of whose owners get told, and the message should be written to a person about their records rather than to a record. That is value beyond the field descriptions.

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?

Specific verb+resource ('Create a run') with the exact behavior stated: it tells each record's OWNER something over Slack. It actively distinguishes itself from sibling create_*_run tools by stating it changes no records, writes nothing to the CRM, and creates no tasks. An agent can tell it apart from create_assignment_run/create_mass_update_run without opening their 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 when-to-use triggers ('let the reps know about their accounts that X', 'alert the owners of these contacts') and a when-not by contrasting it with 'every other one that carries a filter.' It stops short of naming a specific alternative sibling tool by name, so routing is implied rather than explicit.

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.