Skip to main content
Glama

Send Email Campaign

send_email_campaign
Destructive

Use for reviewed email invitations (emailType event_promotion), newsletters and recurring mailings. Attendee updates use emailType announcement with audienceType event_participants and the exact eventId. App invitations remain in send_invitations; never route managed email through its legacy transport. reviseScheduled (campaignId, expectedRevision, stable requestId) atomically cancels a not-yet-started schedule and creates an unapproved draft; it never sends or preserves approval. After human review: approve/schedule an exact campaignId and expectedRevision (optional scheduledAtMs; optional stable requestId so a retried approval reads back the recorded one instead of failing), send a test only to the connected verified account inbox (test with requestId), or cancel pending work. First inspect review and show sender, content, audience count and timing to the organizer. Pass review.sender.domain as expectedSenderDomain when approving; managed sending requires it. Approval binds the current web draft and prepared audience. Permission, domain and frequency checks apply again at delivery. Queued/scheduled is not delivered. Already accepted email cannot be recalled. Workflow guide (MCP resource): socialloop://guides/email-campaigns.

Input Schema

NameRequiredDescriptionDefault
actionYes
payloadYesAction parameters used by the web workspace: IDs, expectedRevision, draft/definition, cursor, and reviewHash where required. Identity is supplied by the connected account.
confirmedYesTrue only after the connected user approves the exact reviewed action.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "approve",
      -  "test",
      -  "cancel"
      -]New value: +[
      +  "approve",
      +  "test",
      +  "cancel",
      +  "reviseScheduled"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / confirmed / description
      Previous value: -"True only after the organizer approves the exact reviewed action."New value: +"True only after the connected user approves the exact reviewed action."
  3. Added

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the destructive/openWorld annotations, it discloses atomic cancellation semantics for reviseScheduled, that approval binds the current draft and prepared audience, that permission/domain/frequency checks re-apply at delivery, that queued/scheduled is not delivered, and that accepted email cannot be recalled. This is unusually rich behavioral context.

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?

Information-dense but delivered as one long, run-on paragraph with multiple parentheticals and no headings or bullets, making it hard to parse which clause applies to which action. It is not padded, but the structure impedes fast scanning.

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 complex multi-action mutation tool with no output schema, the description covers checks, idempotency, lifecycle, and a linked workflow guide resource. It omits what the response returns, though the guide reference partly compensates.

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 the payload being a free-form object and only 67% schema coverage, the description carries most of the meaning: it explains campaignId, expectedRevision, stable requestId (for idempotent retry readback), scheduledAtMs, and expectedSenderDomain. Minor keys (cursor, reviewHash, identity) remain under-explained.

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 names concrete resources and use cases (reviewed email invitations with emailType event_promotion, newsletters, recurring mailings) and explicitly distinguishes itself from siblings like send_invitations and the legacy transport. However, the tool name 'send_email_campaign' implies direct sending while the description clarifies it only approves/schedules/cancels, which slightly muddies the primary purpose.

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?

It gives explicit when-to-use routing across all four actions (approve, test, cancel, reviseScheduled), states prerequisites ('First inspect review and show sender, content, audience count and timing'), and names alternatives ('App invitations remain in send_invitations'). Conditions for expectedSenderDomain and requestId reuse are spelled out.

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.