Skip to main content
Glama
SetLuca

SetLuca

Official

Enroll leads in a campaign

luca_campaigns_enroll
Destructive

Enroll a lead in the active campaign version to trigger the live campaign automation for that lead.

Instructions

Enroll a lead in the latest published campaign version. Triggers the live campaign's automation for that lead.

Luca operation: POST /api/campaigns/{id}/enrollments Required scopes: campaigns:write Required OAuth scope: luca:queue_ops; data sensitivity: full_content Requires Idempotency-Key. Provide idempotencyKey for safe retries, or the server will generate one. Destructive: has a real-world side effect. You must pass confirm: true; the call is rejected without it. Use workspaceId or workspaceSlug to override the default workspace configured by environment.

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": {
      "id": "<id>",
      "body": "<body>"
    },
    "name": "luca_campaigns_enroll"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYes
bodyYes
confirmNoThis tool has a real-world side effect: it messages real leads, books, moves, or cancels a call, changes a lead's consent, imports leads, writes to a connected calendar or CRM, sends workspace events to an outside URL, or re-triggers downstream automations. Pass confirm: true to proceed; the call is rejected without it.
workspaceIdNoOptional Luca workspace id override.
workspaceSlugNoOptional Luca workspace slug override.
idempotencyKeyNoStable key for safe retries. If omitted, the MCP server generates a unique key for this call.

Output Schema

NameRequiredDescriptionDefault
resultYes
provenanceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.2
    • addedOutput schema / properties / result / properties / enrollment / properties / keptParkedByCoach
      Added value: +{
      +  "type": "boolean"
      +}
  2. First observedv0.4.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, but the description goes beyond them by naming the concrete effect (fires the live campaign's automation for that lead), stating the required scopes (campaigns:write, luca:queue_ops), the full_content data sensitivity, and the confirm: true rejection behavior. It also explains that omitting idempotencyKey causes the server to generate one, which clarifies the non-idempotent default declared in annotations rather than contradicting it.

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-loaded with the purpose and effect in two short sentences, followed by scannable operational lines for endpoint, scopes, idempotency, confirmation, and workspace override. The endpoint/scope lines are somewhat boilerplate but each carries a distinct operational fact.

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 destructive, open-world mutation with six parameters and an output schema, the description covers safety gating, retry semantics, workspace scoping, and authorization requirements, so an agent can call it safely without further context. It is silent on edge cases such as an already-enrolled lead or failure behavior, which is a minor gap given the output schema exists.

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

Parameters3/5

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

Schema coverage is 67%, with the two most important fields (id and body.leadId) carrying no schema descriptions; the description only indirectly implies that id is the campaign and leadId the lead via 'Enroll a lead in ... campaign'. For confirm, workspaceId, workspaceSlug and idempotencyKey the description largely restates what the schema already documents, so it adds modest value over structured data.

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

Purpose4/5

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

States a specific verb and resource ('Enroll a lead in the latest published campaign version') and adds the important qualifier that only the latest published version is used, plus the side effect of triggering the live automation. It does not name or distinguish itself from adjacent tools such as luca_campaigns_enrollments_resume or luca_campaigns_enrollments_list, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is implied by the purpose statement (enroll a lead, which fires automation), and the description gives operational guidance on workspace override and the confirm gate. It never states when not to use it or how it relates to sibling enrollment tools (resume, list, timeline), leaving the agent to infer alternatives.

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

Deploy Server

Other Tools