Skip to main content
Glama

Scribe Mail

Create a marketing campaign

create_marketing_campaign

Create a marketing campaign. name, start_time, end_time, and time_zone are required; a missing one returns 422. The campaign is created as a draft — use schedule_marketing_campaign to activate it. content is a block tree (a stack root whose children are blocks) strict-validated server-side, the same format as signature draft_content; smart_fields_conditions and signature_template_ids set the targeting.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesCampaign name (required).
contentNoCampaign block tree (ILayoutBlock): a `stack` root whose `children` are blocks. Strict-validated server-side. Omit to leave unchanged; null to clear. Every node (block AND token) needs an `id` that is a fresh LOWERCASE uuid — any other string, including an uppercase uuid, is rejected 422. Every numeric size is in PIXELS, never a CSS multiplier: `lineHeight` is a px line box (~1.3x fontSize, e.g. fontSize 14 -> 18), so 1.3 is rejected. Call get_content_schema for the full schema, every enum value, and a worked example.
contextYesExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
end_timeYesISO-8601 end of the campaign window (required).
behaviourNoHow the campaign content combines with the signature (replace or append).
time_zoneYesIANA time zone, e.g. 'Europe/Paris' (required).
send_emailNo
start_timeYesISO-8601 start of the campaign window (required).
filter_kindNoWhich targeting dimension applies: by signature_templates or by smart_fields conditions.
signature_template_idsNoUUIDs of the signature templates to apply the campaign to (replaces the set; [] clears).
smart_fields_conditionsNoSmart-field targeting: an array of OR-groups, each an array of AND-conditions { smart_field_id (uuid), operator, values }.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations cover the write/idempotency profile, and the description goes well beyond them: it discloses the draft lifecycle, the 422 failure mode for missing required fields, server-side strict validation of content, and the lowercase-uuid requirement with a concrete format hint. These are behavioral facts an agent cannot infer from annotations or schema.

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 action and state, then the activation sibling, then content and targeting semantics. Dense but every clause carries load; only the parenthetical detail about block-tree shape edges toward surplus given it also defers to get_content_schema.

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 an 11-parameter creation tool with an output schema, the description covers the riskiest areas (required-field failures, content format, targeting, lifecycle). It leaves behaviour, filter_kind, send_email, and the mandatory `context` argument unmentioned, but the schema documents those adequately.

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?

With 91% schema coverage the baseline is 3, but the description adds real meaning: it names the required fields (albeit omitting the required `context`), explains that content is a strict-validated block tree rooted at `stack`, and clarifies the targeting role of smart_fields_conditions and signature_template_ids. It does not touch behaviour, filter_kind, or send_email, which remain schema-only.

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 ('Create a marketing campaign') and immediately differentiates the resulting state from the activation path: 'The campaign is created as a draft — use schedule_marketing_campaign to activate it.' An agent can distinguish this from schedule_marketing_campaign, update_marketing_campaign, and delete_marketing_campaign without opening any 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?

Explicitly routes the agent to the sibling that activates the campaign once created, and points to get_content_schema for the content format. It stops short of saying when NOT to use it (e.g. versus update_marketing_campaign for existing campaigns), but the create-vs-activate split is clearly drawn.

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.