Skip to main content
Glama

Update form settings

update_form_settings
Destructive

Change how a form of the current team is delivered, as opposed to what it says (use update_form for title / questions / report / theme). Editable: submissionAccess (who may answer and whether seeing the report needs a login — this is the lead-capture gate), reportGateRequireCode (whether that login gate collects an emailed verification code, trading completion rate against lead quality), timeLimit, sharing (the result-page share button and personalised share card, which is what drives organic spread), answerSheet, crowdCompare (show respondents what share of people picked the same option — off by default, not for knowledge quizzes), booking (the result-page booking block that feeds the 1:1 call queue), feedback (a one-question feedback block on the result page), allowPdfDownload (respondents can download their full report as a PDF — Pro), gaTrackingId, sharedWithAll (whether every team member can see this form), searchIndexable (whether search engines may list the quiz), and slug (the custom path that gives the public link a memorable, SEO-friendly address). Only the keys you pass are changed. Read the current values with get_form_share_info.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugNoCustom path of the public answer link — the SEO-friendly address (e.g. quizster.app/<team>/burnout-test on the platform domain, or <custom-domain>/burnout-test when the team's custom domain is serving). Lowercase letters, digits and hyphens, 2-64 chars, must start and end with a letter or digit, unique within the team. Pass an empty string to clear back to the random address. Changing it breaks the previous custom path right away, but the token address (/a/<publicToken>) always keeps working and the page's canonical URL follows the custom path.
formIdYesThe form UUID
bookingNoThe result-page booking block. The bookable hours live in the team's booking settings, not here — this is only the switch and the copy. Bookings that come in are handled with list_bookings / review_booking.
sharingNoResult-page sharing: the share button, the personalised share card and the public summary. Turning this off stops respondents spreading their results.
feedbackNoResult-page feedback block: one question asked after respondents read their report — tells you whether the result landed. Replaced WHOLESALE: read the current block from get_form_share_info and pass every key you want to keep (omitted copy falls back to the default, omitted choices are dropped).
timeLimitNoAnswer-time countdown. Only knowledge quizzes (knowledge_quiz / random_knowledge_quiz) can turn this on — a countdown makes sense when unanswered means wrong, but rushing a scorecard or a personality quiz just produces careless answers.
answerSheetNoThe answer-sheet sidebar on the answering page
crowdCompareNoShow respondents what share of people picked the same option ("62% of people chose the same as you"). Off by default: it publishes this quiz's answer distribution to whoever answers it, and seeing the majority choice nudges later respondents toward it — leave it off for quizzes used to match courses or place learners. Percentages only, never individual answers, and nothing shows until the quiz has 10+ submissions. Not available for knowledge quizzes at all: the distribution is effectively a crowdsourced answer key.
gaTrackingIdNoGoogle Analytics measurement id (G-XXXXXX) or Universal Analytics id (UA-XXXX-Y). Pass an empty string to clear.
sharedWithAllNoWhether every member of the team can see and open this form
searchIndexableNoWhether search engines may list this quiz: true puts it in the sitemap and marks its public pages indexable, false keeps them out of search results (drafts, funnel pages meant only for one audience). New quizzes default to true.
allowPdfDownloadNoLet respondents download their full report as a PDF. Pro only (switching it on is rejected on the Free plan). Takes effect only on gated quizzes — submissionAccess login_to_view_report or examinee_only — because the download is tied to the signed-in respondent.
submissionAccessNopublic = anyone answers and sees the report; login_to_view_report = anyone answers but must sign in to see the report (the default, this is how leads get captured); examinee_only = a login is required before answering at all
reportGateRequireCodeNoOnly applies when submissionAccess is login_to_view_report. false (the default for newly created quizzes) = the respondent only types an email and a name to see this one result — far more people finish, but the address is unverified and they get no account, and since result links do get forwarded, the report is effectively as reachable as public for whoever opens the link first. true = the respondent must confirm an emailed 6-digit code, so every captured lead has a verified address and the respondent gets an account they can return to. Quizzes created before this setting existed read as true.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugNoCustom path after this change; null when cleared (back to the random address)
formIdNoThe form that was changed
changedNoWhich settings this call changed
deliveryNoDelivery state: { isActive, submissionAccess, reportGateRequireCode, timeLimit, sharing, answerSheet, crowdCompare, booking, feedback, allowPdfDownload, gaTrackingId, sharedWithAll, searchIndexable }; get_form_share_info adds the team-level examineeSignupDisabled (respondent self-signup off = a login-gated quiz turns away anyone not on the roster)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / allowPdfDownload
      Added value: +{
      +  "description": "Let respondents download their full report as a PDF. Pro only (switching it on is rejected on the Free plan). Takes effect only on gated quizzes — submissionAccess login_to_view_report or examinee_only — because the download is tied to the signed-in respondent.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / feedback
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Result-page feedback block: one question asked after respondents read their report — tells you whether the result landed. Replaced WHOLESALE: read the current block from get_form_share_info and pass every key you want to keep (omitted copy falls back to the default, omitted choices are dropped).",
      +  "properties": {
      +    "allowComment": {
      +      "description": "rating / choice only: add an optional free-text comment box under the answer",
      +      "type": "boolean"
      +    },
      +    "answerType": {
      +      "description": "rating = 1-5 stars (default); choice = pick one of choices; text = free text",
      +      "enum": [
      +        "rating",
      +        "choice",
      +        "text"
      +      ],
      +      "type": "string"
      +    },
      +    "buttonText": {
      +      "description": "Submit button label; empty = built-in default",
      +      "maxLength": 30,
      +      "type": "string"
      +    },
      +    "choices": {
      +      "description": "answerType choice only: 2-6 options",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "description": "Existing choice code from get_form_share_info — pass it back to keep past answers attached to this choice; omit for a new choice",
      +            "type": "string"
      +          },
      +          "label": {
      +            "maxLength": 100,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 6,
      +      "type": "array"
      +    },
      +    "description": {
      +      "description": "Block copy; empty = built-in default",
      +      "maxLength": 500,
      +      "type": "string"
      +    },
      +    "enabled": {
      +      "description": "Whether the result page shows the feedback block",
      +      "type": "boolean"
      +    },
      +    "question": {
      +      "description": "The one question respondents answer, e.g. \"How useful was this report?\"; required when enabling",
      +      "maxLength": 200,
      +      "type": "string"
      +    },
      +    "title": {
      +      "description": "Block heading; empty = built-in default",
      +      "maxLength": 100,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "enabled"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / searchIndexable
      Added value: +{
      +  "description": "Whether search engines may list this quiz: true puts it in the sitemap and marks its public pages indexable, false keeps them out of search results (drafts, funnel pages meant only for one audience). New quizzes default to true.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / delivery / description
      Previous value: -"Delivery state: { isActive, submissionAccess, reportGateRequireCode, timeLimit, sharing, answerSheet, booking, gaTrackingId, sharedWithAll }; get_form_share_info adds the team-level examineeSignupDisabled (respondent self-signup off = a login-gated quiz turns away anyone not on the roster)"New value: +"Delivery state: { isActive, submissionAccess, reportGateRequireCode, timeLimit, sharing, answerSheet, crowdCompare, booking, feedback, allowPdfDownload, gaTrackingId, sharedWithAll, searchIndexable }; get_form_share_info adds the team-level examineeSignupDisabled (respondent self-signup off = a login-gated quiz turns away anyone not on the roster)"
  2. Changed1 schema field changed
    • changedInput schema / properties / crowdCompare / description
      Previous value: -"Show respondents what share of people picked the same option (\"62% of people chose the same as you\"). Off by default: it publishes this quiz's answer distribution to whoever answers it, and seeing the majority choice nudges later respondents toward it — leave it off for quizzes used to match courses or place learners. Percentages only, never individual answers, and nothing shows until the quiz has 20+ submissions. Knowledge quizzes show it only in the answer review after submitting, since mid-quiz it would give the answer away."New value: +"Show respondents what share of people picked the same option (\"62% of people chose the same as you\"). Off by default: it publishes this quiz's answer distribution to whoever answers it, and seeing the majority choice nudges later respondents toward it — leave it off for quizzes used to match courses or place learners. Percentages only, never individual answers, and nothing shows until the quiz has 10+ submissions. Not available for knowledge quizzes at all: the distribution is effectively a crowdsourced answer key."
  3. Changed1 schema field changed
    • addedInput schema / properties / crowdCompare
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Show respondents what share of people picked the same option (\"62% of people chose the same as you\"). Off by default: it publishes this quiz's answer distribution to whoever answers it, and seeing the majority choice nudges later respondents toward it — leave it off for quizzes used to match courses or place learners. Percentages only, never individual answers, and nothing shows until the quiz has 20+ submissions. Knowledge quizzes show it only in the answer review after submitting, since mid-quiz it would give the answer away.",
      +  "properties": {
      +    "enabled": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "enabled"
      +  ],
      +  "type": "object"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / timeLimit / properties / minutes / description
      Previous value: -"Minutes allowed; required (>= 1) when enabling"New value: +"Minutes allowed; required when enabling, between 1 and 600"
    • addedInput schema / properties / timeLimit / properties / minutes / maximum
      Added value: +600
  5. Changed1 schema field changed
    • changedInput schema / properties / timeLimit / description
      Previous value: -"Answer-time countdown"New value: +"Answer-time countdown. Only knowledge quizzes (knowledge_quiz / random_knowledge_quiz) can turn this on — a countdown makes sense when unanswered means wrong, but rushing a scorecard or a personality quiz just produces careless answers."
  6. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the agent knows this is a mutating operation. The description adds important behavioral context: 'Only the keys you pass are changed' (partial update semantics) and points to get_form_share_info for reading current state. It stops short of explaining permissions, rate limits, or what happens to omitted nested objects.

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?

The purpose and alternative are front-loaded, which is good. However, the description is a very long single paragraph that enumerates and explains every editable setting, duplicating details already present in the 100% coverage schema. Much of that enumeration does not earn its place given the schema already provides the same explanations.

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?

An output schema exists, so return values need not be described. The description covers purpose, alternatives, the full set of editable fields, partial update behavior, and where to read current values. Combined with annotations covering destructive and open-world behavior and the rich schema, nothing essential for correct invocation is missing.

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 description coverage is 100%, so the schema already documents all 14 parameters thoroughly. The description lists the editable fields with brief parenthetical explanations, but this information largely duplicates the schema descriptions (e.g., submissionAccess, crowdCompare). The baseline of 3 is appropriate when the schema does the heavy lifting and the description adds little beyond enumeration.

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 states a specific verb ('Change') and resource ('how a form of the current team is delivered') and explicitly contrasts itself with the sibling tool update_form ('as opposed to what it says'). An agent can distinguish this from update_form immediately without opening either schema.

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 explicitly names the alternative tool for editing form content ('use update_form for title / questions / report / theme') and directs the agent to read current values with get_form_share_info. It also gives conditional usage rules for individual settings, e.g. crowdCompare 'not for knowledge quizzes' and timeLimit only for knowledge quizzes.

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.

Resources