Skip to main content
Glama
crm-lifecycle-ops

crm-lifecycle-ops

Check a campaign or journey

check_campaign
Read-only

Run QA on Braze, Klaviyo, or Iterable campaigns and journeys: validate every email, push, SMS, and in-app message plus audience, conversion events, naming, and journey structure before launch.

Instructions

QA every message in a campaign or journey (Canvas/flow): emails with content blocks expanded, push, SMS and in-app, plus its settings: audience, conversion events, naming and journey structure (dead ends, unreachable steps).

Input Schema

NameRequiredDescriptionDefault
platformYesWhich platform.
workspaceNoWorkspace label. Defaults to the connected one, or "demo" when nothing is connected.
name_or_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.1

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds real value by disclosing the depth of inspection ('content blocks expanded') and the breadth of what is examined (audience, conversion events, naming, dead ends and unreachable steps). It stops short of saying what a failed check looks like or whether the scan is expensive/long-running on large canvases.

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?

A single dense sentence that front-loads the action and scope before the parenthetical detail. It is efficient, though the nested parentheticals (Canvas/flow) and (dead ends, unreachable steps) make it slightly list-heavy; splitting the settings clause out would read better.

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 read-only, three-parameter check with no output schema, the description covers enough: it enumerates exactly what surfaces are validated, which stands in for describing return content. The remaining gap is the identifier format for name_or_id and whether results are per-message or summarized.

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%: platform's enum is self-documenting and workspace's default is spelled out in the schema, but name_or_id has no description anywhere. The description never clarifies whether name_or_id accepts a campaign name, a numeric ID, or both, which is the one genuinely ambiguous parameter for this tool.

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?

The description gives a concrete verb ('QA') plus a precise scope: every message in a campaign or journey, enumerated across emails (with content blocks expanded), push, SMS, in-app, and settings like audience, conversion events, naming and journey structure. The plural 'campaign or journey' scope implicitly distinguishes it from the singular check_email/check_message siblings, but it never names them outright, so the differentiation is inferred rather than stated.

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 only implied: the agent can gather that this is the batch-level QA entry point rather than the single-message check, but there is no explicit when-to-use, when-not-to-use, or named alternative. Nothing tells the agent whether to run show_journey or what_breaks first, or what to do if the campaign is a draft.

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