Skip to main content
Glama

create_campaign

Create a draft call, WhatsApp, or SMS campaign. Starts in draft — add leads, then start with update_campaign_status. For channel=call require assistant_id; for whatsapp require whatsapp_sender_id + whatsapp_template_id; for sms require sms_from_phone_number_id + sms_body.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesCampaign name (max 255 chars)
channelNoDefaults to call
sms_bodyNoRequired for channel=sms. Max 1600 chars. Supports {{variable}}.
timezoneNoIANA timezone, e.g. Europe/Berlin
max_retriesNo1–5
allowed_daysNo
assistant_idNoRequired for channel=call. OUTBOUND assistant you own.
retry_intervalNoMinutes between retries (10–4320)
fallback_channelNoOptional call→text follow-up after max call retries
phone_number_idsNoOutbound from-number IDs
schedule_windowsNoDaily windows [{start:"HH:MM", end:"HH:MM"}]. Overnight when end < start.
fallback_sms_bodyNo
retry_on_voicemailNo
scheduled_start_atNoOptional ISO datetime for auto-start
whatsapp_sender_idNoRequired for channel=whatsapp
messages_per_minuteNoPer-campaign send rate 1–10 (WhatsApp/SMS)
whatsapp_template_idNoRequired for channel=whatsapp. Approved template on that sender.
max_calls_in_parallelNoConcurrent calls (max 10)
text_variable_mappingNoTemplate placeholder → lead variable
allowed_hours_end_timeNoLegacy single-window end HH:MM
allowed_hours_start_timeNoLegacy single-window start HH:MM if schedule_windows omitted
goal_completion_variableNo
retry_on_goal_incompleteNo
sms_from_phone_number_idNoRequired for channel=sms. SMS-capable number.
fallback_variable_mappingNoWhatsApp template placeholder → lead variable for fallback
fallback_whatsapp_sender_idNo
mark_complete_when_no_leadsNo
fallback_whatsapp_template_idNo
fallback_sms_from_phone_number_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
messageNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate it's a non-read-only, non-destructive creation. The description adds that it starts in draft and requires leads to be added separately, which provides useful behavioral context beyond annotations. No contradictions.

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?

Two concise sentences. The first sentence clearly states the tool's purpose and scope. The second adds workflow and conditional requirements. No extraneous information, front-loaded structure.

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?

Given the complex input schema (29 parameters) and presence of an output schema, the description provides a sufficient overview: it explains the tool's purpose, the draft state, the workflow, and channel-specific requirements. It does not detail every parameter but covers the essential context for an agent to use the tool correctly.

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?

Schema coverage is 69%, baseline 3. The description adds meaning by specifying which parameters are required per channel (e.g., assistant_id for call, whatsapp_sender_id for WhatsApp), helping the agent understand conditional requirements beyond the schema's individual descriptions.

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?

The description clearly states it creates a draft campaign for call, WhatsApp, or SMS. It specifies the resource (campaign) and the allowed channels, effectively distinguishing it from other create_* tools like create_assistant or create_conversation.

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?

The description gives a brief workflow: create draft, add leads, then use update_campaign_status. It also lists required parameters for each channel. However, it does not explicitly state when not to use this tool or provide alternatives beyond the workflow hint.

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.

TDQS

B3.2/5.0
Disambiguation4/5

Most tools target distinct resources and actions clearly (e.g., create_assistant vs create_campaign). However, there is some overlap like get_outbound_assistants vs get_assistants and list_all_phone_numbers vs get_phone_numbers, causing minor ambiguity.

Naming Consistency4/5

Tools follow a consistent verb_noun pattern with underscores (e.g., create_document, delete_label, get_voices). Only minor deviations exist, such as generate_ai_reply and list_all_phone_numbers, but overall the pattern is maintained.

Tool Count2/5

With 75 tools, the server is excessively large. Although the domain is broad (assistants, calls, messaging, etc.), the number of tools makes it difficult for agents to navigate and select the correct one, reducing coherence.

Completeness4/5

The tool set covers CRUD operations for most resources, plus webhooks, AI replies, and reference data fetching. Minor gaps exist (e.g., no delete_conversation, no attach phone number to assistant), but the surface is largely comprehensive for the platform's purpose.