Skip to main content
Glama

create_form

Create a new form page for lead capture or submissions.

Use this tool when a merchant wants to publish a form that collects customer information, optionally shows custom confirmation copy, and can deliver downloadable files after submission.

Prefer a minimal request when the user is vague, and only add optional fields like custom copy, redirects, images, files, or tracking when requested.

For the page's design and customer-facing labels (including translations), set themeOverrides and hostedLayoutType; list_theme_properties lists what can be set. Set themeId (from list_themes) to use a theme.

After creation, return:

  • data.id: the form page ID

  • data.name: the internal page name

  • data.hostedUrl: the live form URL

  • data.dashboardUrl: the dashboard edit URL

If the user is building or editing a website, call add_to_website next with pageId set to data.id and pageType: "form", and put the returned code in the site. Do not wait for the user to ask for this step.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesInternal page name used in your dashboard and API responses.
slugNoPage URL slug. For events and forms the slug defaults to the slugified version of your `title`. For checkouts the slug defaults to the slugified version of your `productData.title`.
titleNoPublic title shown to customers on the page.
fieldsNoCustom checkout fields to create. When provided, at least one field must be an `email` element with `type` `email` and `required` `true`. When omitted, the page gets Name and Email address fields, plus a required billing Address on checkout and event pages. Forms get Name and Email address only.
localeNo
fileIdsNoArray of file IDs for downloadable files. All file IDs must exist and belong to your account.
themeIdNoThe theme the page uses: one of your themes or a built-in one (see List themes). `themeOverrides` apply on top. Leave it out to use your store's default theme.
imageIdsNoArray of images for the page gallery. All referenced file IDs must exist and belong to your account.
redirectNoIf enabled, redirects the customer to the specified URL before the page loads.
testmodeNoPuts the page in test mode. While it is on, every purchase on this page is a test purchase: no money is taken, the buyer still receives everything the page delivers, and the records are created with `livemode: false`. Turn it off to take real payments again.
descriptionNoPage description shown to customers. Accepts HTML or plain text.
formDetailsNoForm behaviour settings.
funnelStepsNoOrdered funnel configuration for this page. Supports intermediate checkout steps, one-click upsells, and confirmation behavior.
googleIndexNoAllow Google to index this page for search results. Defaults to `true`.
notifyEmailNoEmail addresses to send notifications to. Supports comma separated emails.
redirectUrlNoURL to redirect to after payment. Applies if `afterPaymentAction` is `redirect`.
trackingCodesNoCustom tracking scripts to include on the page. Supports HTML `<script>` tags.
redirectPageIdNoID of the page (checkout, event or form) to redirect to after payment. Applies when `afterPaymentAction` is `checkout`.
themeOverridesNoThe page's design and labels, set on top of its theme and nested by theme property path: `tokens.colorPrimary` is sent as `{ "tokens": { "colorPrimary": { "light": "#1A73E8" } } }`. Keys you leave out keep their current value, and `null` resets a property, or everything under a key, to the theme default. Call `list_theme_properties` for the supported properties, their value formats and, where a property has a fixed one, its default.
invoiceSettingsNo
redirectUrlPathNoAdditional path parameters appended to the `redirectUrl`. Applies if `afterPaymentAction` is `redirect` and `redirectUrl` is set. [Learn more](https://checkoutpage.com/docs/articles/add-field-and-variant-data-to-redirect-url)
hostedLayoutTypeNo
redirectUrlQueryNoQuery parameters for the `redirectUrl`. Applies if `afterPaymentAction` is `redirect` and `redirectUrl` is set. [Learn more](https://checkoutpage.com/docs/articles/add-field-and-variant-data-to-redirect-url)
allowDynamicTitleNoAllow page title to be overridden via URL query parameters.
afterPaymentActionNoBehavior after checkout. `confirmation` shows the confirmation page. `checkout` redirects to `redirectPageId`. `redirect` sends the customer to `redirectUrl`. Defaults to `confirmation`.
sendEmailConfirmationNoSend an email confirmation to the customer. Defaults to `true`.
redirectUrlInsideEmbedNoIf the page is embedded, redirect the customer within the embed instead of redirecting the main browser window. Defaults to `false`.
allowDynamicDescriptionNoAllow page description to be overridden via URL query parameters.
sendPaymentNotificationNoSend payment/submission notification emails to the store owner.
closePopupOnClickOutsideNoWhether a popup embed closes when clicking outside the container. Defaults to `false`.
confirmationEmailMessageNoCustom confirmation email message. Accepts HTML or plain text.
confirmationEmailSubjectNoCustom confirmation email subject.
confirmationCheckoutTitleNoConfirmation title.
confirmationEmailShowLogoNoShow store logo in confirmation email.
customizeEmailConfirmationNoUse a custom email confirmation template. If enabled, provide `confirmationEmailSubject` and `confirmationEmailMessage`.
confirmationCheckoutMessageNoConfirmation message. Accepts HTML or plaintext.
customizeCheckoutConfirmationNoIf set to true `confirmationCheckoutMessage` and `confirmationCheckoutTitle` will be displayed on the confirmation page. Defaults to `false`.
confirmationEmailShowStoreNameNoShow store name in confirmation email.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful operational context — the post-creation workflow and the mandate to call add_to_website next — but says nothing about auth requirements, rate limits, or side effects of creation beyond what annotations imply.

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 purpose and conditional usage, then workflow. The bulleted list of return fields (data.id, data.name, data.hostedUrl, data.dashboardUrl) is partially redundant with the output schema, which is the only real slack in an otherwise tight description.

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?

Given a create tool with 38 params, 1 required, a rich schema, and an output schema, the description supplies what the structured fields cannot: the minimal-vs-rich request heuristic and the mandatory next-step routing to add_to_website. Nothing essential is missing.

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 92%, so the baseline is 3. The description goes beyond the schema by telling the agent to use themeOverrides/hostedLayoutType for design and labels and to consult list_theme_properties and list_themes, which is real navigational value for the most complicated optional parameters.

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 opens with a specific verb+resource+domain: 'Create a new form page for lead capture or submissions.' That cleanly distinguishes it from sibling tools like create_checkout_page, create_event, and create_booking, and an agent can pick it without opening the 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?

It gives strong positive guidance ('use this tool when a merchant wants to publish a form...', 'Prefer a minimal request when the user is vague, and only add optional fields...when requested') and calls out related tools (list_theme_properties, list_themes, add_to_website). It does not explicitly state when NOT to use it versus create_checkout_page/create_event, so it stops short of a 5.

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