Skip to main content
Glama

create_survey

Create a survey attached to a sweepstakes, optionally with its full question set. Use fetch_sweepstakes first to get the sweepstakes_token. Requires the Surveys module enabled on the account (disabled by default) — on 403 "module is not enabled", do NOT retry; tell the user to contact Sweeppea support. STRUCTURAL LIMITS: max 5 questions per page, 50 pages, 250 questions total, 30 options per question. Validation is all-or-nothing: any invalid question rejects the whole request and nothing is written. Pages are renumbered 1..N without gaps; question Order comes from array position. Visual configuration (Visuals, Pages, LogoFile) is managed in the web app and ignored here. To modify questions later use update_survey — only possible while the survey has no responses. DISPLAY RULE: never show SurveyToken/QuestionToken UUIDs; the PublicLink IS meant to be shared with participants.

create_survey

When to use

Create a survey attached to a sweepstakes, optionally with its full question set. Use fetch_sweepstakes first to get the sweepstakes_token. Requires the Surveys module enabled on the account (disabled by default) — on 403 "module is not enabled", do NOT retry; tell the user to contact Sweeppea support. STRUCTURAL LIMITS: max 5 questions per page, 50 pages, 250 questions total, 30 options per question. Validation is all-or-nothing: any invalid question rejects the whole request and nothing is written. Pages are renumbered 1..N without gaps; question Order comes from array position. Visual configuration (Visuals, Pages, LogoFile) is managed in the web app and ignored here. To modify questions later use update_survey — only possible while the survey has no responses. DISPLAY RULE: never show SurveyToken/QuestionToken UUIDs; the PublicLink IS meant to be shared with participants.

Pre-calls required

  1. fetch_sweepstakes if the user gave you a sweepstakes name instead of a token

Parameters to validate before calling

  • sweepstakes_token (string, required) — The sweepstakes token (UUID v4) the survey belongs to

  • survey_name (string, required) — Survey name (max 200 characters)

  • status (boolean, optional) — Initial enabled state (optional, default true)

  • settings (object, optional) — Optional settings object with PascalCase keys: Description, QuestionsPerPage (1-5), CollectContactInfo, ShowProgressBar, ShuffleQuestions, AllowMultipleResponses, ThankYouMessage, RedirectUrl, StartDate, EndDate, MaxResponses, ShowCountdown, EnableSharing, Language ("en"|"es")

  • questions (array, optional) — Optional questions array with PascalCase keys per item: {"QuestionText" (required), "FieldType" (required: text|textarea|radio|checkbox|select|slider|rating|nps|yesno|date), "Page", "QuestionDescription", "Layout", "Required", "Options": [...max 30, each option is an object {"Label": "..."}], "Settings": {e.g. RatingMax, RatingIcon}}

Notes

  • Requires the Surveys module enabled on the account — on 403 "module is not enabled", do NOT retry; tell the user to contact Sweeppea support

  • Structural limits: 5 questions/page, 50 pages, 250 questions total, 30 options/question

  • Each Option is an object with a Label key, e.g. "Options": [{"Label": "Friend"}, {"Label": "Social media"}] — never plain strings

  • Validation is all-or-nothing: any invalid question rejects the whole request and nothing is written

  • Questions can only be replaced later (update_survey) while the survey has no responses

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNoInitial enabled state (optional, default true)
settingsNoOptional settings object with PascalCase keys: Description, QuestionsPerPage (1-5), CollectContactInfo, ShowProgressBar, ShuffleQuestions, AllowMultipleResponses, ThankYouMessage, RedirectUrl, StartDate, EndDate, MaxResponses, ShowCountdown, EnableSharing, Language ("en"|"es")
questionsNoOptional questions array with PascalCase keys per item: {"QuestionText" (required), "FieldType" (required: text|textarea|radio|checkbox|select|slider|rating|nps|yesno|date), "Page", "QuestionDescription", "Layout", "Required", "Options": [...max 30], "Settings": {e.g. RatingMax, RatingIcon}}
survey_nameYesSurvey name (max 200 characters)
sweepstakes_tokenYesThe sweepstakes token (UUID v4) the survey belongs to

TDQS

A4.7/5.0
Behavior5/5

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

The description goes far beyond the annotations by disclosing structural limits (max 5 questions per page, 50 pages, 250 questions total, 30 options per question), all-or-nothing validation, page renumbering, question order from array position, and that visual configuration is ignored. It also explains 403 handling and display rules about tokens. Annotations (readOnly=false, destructive=false) are consistent; no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is excessively long and contains obvious duplication: the first paragraph is repeated almost verbatim in the '## When to use' section, and the 'Notes' section repeats the same points about module requirement and structural limits. While well-organized with headers, the redundancy means not every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description is contextually complete for a complex create tool. It covers pre-calls, error handling (403, all-or-nothing), structural limits, parameter validation details, and alternative tools (update_survey). It also includes user-facing display rules (PublicLink shared, token UUIDs hidden), making it robust for an agent to use correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial meaning beyond the schema. It provides a dedicated 'Parameters to validate before calling' section with detailed formats, constraints (e.g., survey_name max 200 chars, QuestionsPerPage 1-5), and examples for Options objects with Label keys. This is valuable extra guidance not present in the raw schema.

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?

Clearly states 'Create a survey attached to a sweepstakes, optionally with its full question set.' The verb+resource structure is specific, and it distinguishes itself from siblings like create_sweepstakes (creates a sweepstakes not a survey) and update_survey (modifies existing surveys).

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?

Explicitly instructs to 'Use fetch_sweepstakes first to get the sweepstakes_token' and mentions that 'To modify questions later use update_survey'. Also provides negative guidance: on 403 'module is not enabled', do NOT retry and instead direct the user to support. This gives clear when-to-use and when-not-to-use context.

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

A3.6/5.0
Disambiguation4/5

Most tools follow a clear resource+action pattern (fetch_* for lists, get_* for single items, create/update/delete for writes), making them distinguishable. A few near-overlaps exist (fetch_billing_transactions vs fetch_wallet_transactions, draw_winners vs schedule_drawing) but the descriptions clarify the boundaries.

Naming Consistency4/5

Tool names consistently use snake_case verb_noun, with fetch_ for list operations and get_ for single-item retrieval. Some verb variation (add_participant, count_participants, draw_winners, schedule_drawing) deviates from the dominant create/fetch/update/delete pattern but remains predictable and readable.

Tool Count1/5

With 83 tools, this is far beyond a well-scoped server (typically 3-15, with 25+ considered too many). Even though the platform has broad functionality, the sheer number of tools creates significant agent confusion and selection overhead.

Completeness4/5

The sweepstakes domain is thoroughly covered: lifecycle management, participants, groups, rules, drawings, winners, calendar, notes, todos, tickets, surveys, invoices, billing, files, and entry settings. A few minor gaps exist (e.g., no general participant field update, no archive action) but the surface is remarkably complete for its scope.

Resources