Skip to main content
Glama

Enroll contacts in automation

enroll_contacts
Destructive

Enrolls contacts in an ACTIVE automation without waiting for its trigger: they enter from the first step and the sending nodes really send. Pass exactly ONE audience among listId (from list_lists), segmentId (from list_segments) and contactIds (from list_contacts, max 1000). On drafts and paused automations it fails with not_active. Execution is asynchronous: the response says it is queued, per-contact outcomes are read with get_automation_log. Contacts already enrolled are ignored (one enrollment per contact).

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": {
      "automationId": "<automationId>"
    },
    "name": "enroll_contacts"
  }
}

Input Schema

NameRequiredDescriptionDefault
listIdNo
segmentIdNo
contactIdsNo
automationIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Adds substantial context beyond the single destructiveHint annotation: the automation must be ACTIVE, drafts/paused return not_active, execution is asynchronous with a queued response, and already-enrolled contacts are silently ignored (one enrollment per contact). This is exactly the behavioral detail an agent needs.

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?

Front-loads the core behavior, then constraints, then failure/async semantics in four dense sentences. No filler and every clause carries actionable information.

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 4-param mutation tool with no output schema and no schema descriptions, the description covers prerequisites, failure modes, async behavior, idempotency, and result retrieval. An agent can invoke and interpret it correctly without further context.

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

Parameters5/5

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

With schema description coverage at 0%, the description fully compensates: it names the source of each audience param (list_lists, list_segments, list_contacts), the 1000-item cap on contactIds, and the critical 'exactly ONE audience' constraint absent from the schema.

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+resource+scope: 'Enrolls contacts in an ACTIVE automation without waiting for its trigger', making the bypass-the-trigger behavior explicit. It is clearly distinguishable from siblings like restart_enrollments and add_contacts_to_list.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (only ACTIVE automations), when-not (drafts/paused fail with not_active), the mutual-exclusion rule for the audience, and the follow-up tool (get_automation_log) for per-contact outcomes. Nothing is left to inference.

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