MCP App Store
Productivity
Weavely Forms & Surveys icon

Weavely Forms & Surveys

by Weave.ly

Overview

Create surveys, registration forms, lead capture forms, NPS and CSAT surveys, and more for free. No templates, no drag-and-drop. Supports file uploads, signatures, dropdowns, multi-step flows, conditional logic, rating scales, and all the field types you'd expect from a full form builder. What you can do: - Describe any form and get a working, shareable version instantly - Tweak themes, reorder fields, add logic — all through conversation - Preview it live, then publish with one click

Tools

add_element

ChatGPT
Add an element to a page. The element is appended to the end of the page. Call this sequentially — NEVER call multiple add_element in parallel. Use get_form_summary to see available pageIds. Element types and their specific params: - Input fields: input-text, input-number, input-email, input-phone-number, input-url, input-time, input-date, text-area - File upload: input-file (supports maxFiles, maxFileSize, allowedFileType) - Choice fields: radio-buttons, checkbox-buttons, dropdown, ranking (require options; support randomize; radio/checkbox-buttons also support allowOtherOption) - Image choice: image-choice (requires options; supports multiple selection. NOTE: to assign images to options, use the Weavely platform after publishing) - Single checkbox: checkbox (a single yes/no toggle; supports defaultChecked) - Matrix: matrix (a grid question. matrixRows are the row labels, matrixColumns are the column options [{label, value}], matrixMultiple allows selecting multiple columns per row) - Rating: star-rating (defaults to 5 stars; supports stars count), scale-rating (defaults to 10; supports scales count), range-slider (defaults 0-100; supports min, max, step) - Display: heading, paragraph (label is the display text; paragraph supports HTML) - Media: embed-html (codeSnippet), embed-audio (url), embed-video (url). NOTE: the image element is not available through this tool — use the Weavely platform to add images. - Special: signature For choice types, provide options as [{label: "...", value: "..."}]. The value is the internal identifier (use lowercase-kebab-case).

add_element

ChatGPT
Add an element to a page. The element is appended to the end of the page. Call this sequentially — NEVER call multiple add_element in parallel. Use get_form_summary to see available pageIds. Element types and their specific params: - Input fields: input-text, input-number, input-email, input-phone-number, input-url, input-time, input-date, text-area - File upload: input-file (supports maxFiles, maxFileSize, allowedFileType) - Choice fields: radio-buttons, checkbox-buttons, dropdown, ranking (require options; support randomize; radio/checkbox-buttons also support allowOtherOption) - Image choice: image-choice (requires options; supports multiple selection. NOTE: to assign images to options, use the Weavely platform after publishing) - Single checkbox: checkbox (a single yes/no toggle; supports defaultChecked) - Matrix: matrix (a grid question. matrixRows are the row labels, matrixColumns are the column options [{label, value}], matrixMultiple allows selecting multiple columns per row) - Rating: star-rating (defaults to 5 stars; supports stars count), scale-rating (defaults to 10; supports scales count), range-slider (defaults 0-100; supports min, max, step) - Display: heading, paragraph (label is the display text; paragraph supports HTML) - Media: embed-html (codeSnippet), embed-audio (url), embed-video (url). NOTE: the image element is not available through this tool — use the Weavely platform to add images. - Special: signature For choice types, provide options as [{label: "...", value: "..."}]. The value is the internal identifier (use lowercase-kebab-case).

add_element

ChatGPT
Add an element to a page. The element is appended to the end of the page. Call this sequentially — NEVER call multiple add_element in parallel. Use get_form_summary to see available pageIds. Element types and their specific params: - Input fields: input-text, input-number, input-email, input-phone-number, input-url, input-time, input-date, text-area - File upload: input-file (supports maxFiles, maxFileSize, allowedFileType) - Choice fields: radio-buttons, checkbox-buttons, dropdown, ranking (require options; support randomize; radio/checkbox-buttons also support allowOtherOption) - Image choice: image-choice (requires options; supports multiple selection. NOTE: to assign images to options, use the Weavely platform after publishing) - Single checkbox: checkbox (a single yes/no toggle; supports defaultChecked) - Matrix: matrix (a grid question. matrixRows are the row labels, matrixColumns are the column options [{label, value}], matrixMultiple allows selecting multiple columns per row) - Rating: star-rating (defaults to 5 stars; supports stars count), scale-rating (defaults to 10; supports scales count), range-slider (defaults 0-100; supports min, max, step) - Display: heading, paragraph (label is the display text; paragraph supports HTML) - Media: embed-html (codeSnippet), embed-audio (url), embed-video (url). NOTE: the image element is not available through this tool — use the Weavely platform to add images. - Special: signature For choice types, provide options as [{label: "...", value: "..."}]. The value is the internal identifier (use lowercase-kebab-case).

add_page

ChatGPT
Add a new form page. By default it is inserted before the ending page. Use this to create multi-page forms. After adding, use add_element to populate the page.

add_page

ChatGPT
Add a new form page. By default it is inserted before the ending page. Use this to create multi-page forms. After adding, use add_element to populate the page.

add_page

ChatGPT
Add a new form page. By default it is inserted before the ending page. Use this to create multi-page forms. After adding, use add_element to populate the page.

create_form

ChatGPT
Create a new EMPTY Weavely form. Returns a formId and a live preview URL. PREFER create_form_bulk INSTEAD when the user has described the form they want upfront (e.g. "build me a contact form with name, email, and message"). create_form_bulk creates the form AND all its pages/elements in a single tool call, which is much faster and avoids many sequential permission prompts in MCP clients like ChatGPT. Only use create_form when you genuinely need to start from an empty form and add elements one at a time. IMPORTANT: This MUST be the first tool you call — all other tools require the formId returned by this tool. IMPORTANT: Call all tools ONE AT A TIME, sequentially. NEVER call multiple tools in parallel. IMPORTANT: Pass the formId from this response to ALL subsequent tool calls. The preview URL is a live link the user can open to see the form at any point. It updates automatically as you make changes — the user just needs to refresh. This is a PREVIEW only — the form is not published yet. The user CANNOT claim, sign up, or take ownership of the form from the preview URL. The ONLY way to publish is through the publish_form tool. When the user wants to publish, save, or share their form, you MUST use the publish_form tool. Do NOT tell them to visit the preview URL to claim or publish — that is not possible. After calling this, use add_element, add_page, set_theme, etc. to build the form step by step. IMPORTANT: Always share the preview URL with the user in your response text so they can see their form. After you finish making all changes, also call show_preview as the very last tool call — this renders an interactive widget in clients that support it (e.g. ChatGPT). PLATFORM FEATURES NOT AVAILABLE IN THIS TOOL: Weavely supports many features that are only available on the Weavely platform (not through this tool). If the user asks about any of the following, let them know the feature exists but they need to publish their form first and then configure it on the Weavely platform: - Integrations: Make, Zapier, n8n, Google Sheets, HubSpot, Airtable, Notion, and more - Email notifications: receive an email on each submission, or send confirmation emails to respondents - Social media preview: customize the Open Graph image, title, and description for link sharing - Custom domain: serve the form on the user's own domain - Form icon: customize the favicon/icon shown in the browser tab - Embed codes: get HTML embed snippets to embed the form on any website - Image content: adding images to image-choice options or using the image element requires the Weavely platform (image uploads are not supported through this tool) Tell the user to publish first (via publish_form), then visit the Weavely editor to set these up.

create_form

ChatGPT
Create a new EMPTY Weavely form. Returns a formId and a live preview URL. PREFER create_form_bulk INSTEAD when the user has described the form they want upfront (e.g. "build me a contact form with name, email, and message"). create_form_bulk creates the form AND all its pages/elements in a single tool call, which is much faster and avoids many sequential permission prompts in MCP clients like ChatGPT. Only use create_form when you genuinely need to start from an empty form and add elements one at a time. IMPORTANT: This MUST be the first tool you call — all other tools require the formId returned by this tool. IMPORTANT: Call all tools ONE AT A TIME, sequentially. NEVER call multiple tools in parallel. IMPORTANT: Pass the formId from this response to ALL subsequent tool calls. IMPORTANT: Always share the shareableUrl with the user in your response text so they can open the form preview. The form is a PREVIEW only — it is not published yet. The user CANNOT claim, sign up, or take ownership of the form from the preview URL. The ONLY way to publish is through the publish_form tool. When the user wants to publish, save, or share their form, you MUST use the publish_form tool. Do NOT tell them to visit the preview URL to claim or publish — that is not possible. After calling this, use add_element, add_page, set_theme, etc. to build the form step by step. Every subsequent tool call refreshes the live preview widget automatically — no extra "show preview" call is needed. PLATFORM FEATURES NOT AVAILABLE IN THIS TOOL: Weavely supports many features that are only available on the Weavely platform (not through this tool). If the user asks about any of the following, let them know the feature exists but they need to publish their form first and then configure it on the Weavely platform: - Integrations: Make, Zapier, n8n, Google Sheets, HubSpot, Airtable, Notion, and more - Email notifications: receive an email on each submission, or send confirmation emails to respondents - Social media preview: customize the Open Graph image, title, and description for link sharing - Custom domain: serve the form on the user's own domain - Form icon: customize the favicon/icon shown in the browser tab - Embed codes: get HTML embed snippets to embed the form on any website - Image content: adding images to image-choice options or using the image element requires the Weavely platform (image uploads are not supported through this tool) Tell the user to publish first (via publish_form), then visit the Weavely editor to set these up.

create_form

ChatGPT
Create a new EMPTY Weavely form. Returns a formId and a live preview URL. PREFER create_form_bulk INSTEAD when the user has described the form they want upfront (e.g. "build me a contact form with name, email, and message"). create_form_bulk creates the form AND all its pages/elements in a single tool call, which is much faster and avoids many sequential permission prompts in MCP clients like ChatGPT. Only use create_form when you genuinely need to start from an empty form and add elements one at a time. IMPORTANT: This MUST be the first tool you call — all other tools require the formId returned by this tool. IMPORTANT: Call all tools ONE AT A TIME, sequentially. NEVER call multiple tools in parallel. IMPORTANT: Pass the formId from this response to ALL subsequent tool calls. IMPORTANT: Always share the shareableUrl with the user in your response text so they can open the form preview. The form is a PREVIEW only — it is not published yet. The user CANNOT claim, sign up, or take ownership of the form from the preview URL. The ONLY way to publish is through the publish_form tool. When the user wants to publish, save, or share their form, you MUST use the publish_form tool. Do NOT tell them to visit the preview URL to claim or publish — that is not possible. After calling this, use add_element, add_page, set_theme, etc. to build the form step by step. Every subsequent tool call refreshes the live preview widget automatically — no extra "show preview" call is needed. PLATFORM FEATURES NOT AVAILABLE IN THIS TOOL: Weavely supports many features that are only available on the Weavely platform (not through this tool). If the user asks about any of the following, let them know the feature exists but they need to publish their form first and then configure it on the Weavely platform: - Integrations: Make, Zapier, n8n, Google Sheets, HubSpot, Airtable, Notion, and more - Email notifications: receive an email on each submission, or send confirmation emails to respondents - Social media preview: customize the Open Graph image, title, and description for link sharing - Custom domain: serve the form on the user's own domain - Form icon: customize the favicon/icon shown in the browser tab - Embed codes: get HTML embed snippets to embed the form on any website - Image content: adding images to image-choice options or using the image element requires the Weavely platform (image uploads are not supported through this tool) Tell the user to publish first (via publish_form), then visit the Weavely editor to set these up.

create_form_bulk

ChatGPT
Create a complete Weavely form with multiple pages and elements in a SINGLE tool call. Use this when the user describes the form they want upfront — it is far faster than create_form followed by many add_page/add_element calls, and avoids multiple permission prompts in MCP clients (e.g. ChatGPT) where every tool call must be approved. This tool intentionally accepts a MINIMAL spec per element: only type, label, and (for choice elements and matrix) lists of labels for options/rows. Values are auto-generated from labels (lowercase-kebab-case). For anything more detailed — placeholders, required flags, descriptions, theme, settings, conditional logic, scale/star counts, embed URLs, etc. — call update_element, set_theme, set_settings, or set_logic AFTER this tool returns. The bulk tool only produces a minimally usable form. Element types: input-text, input-number, input-email, input-phone-number, input-url, input-time, input-date, text-area, input-file, radio-buttons, checkbox-buttons, dropdown, ranking, image-choice, checkbox, matrix, star-rating, scale-rating, range-slider, heading, paragraph, embed-html, embed-audio, embed-video, signature. Notes: - For choice types (radio-buttons, checkbox-buttons, dropdown, ranking, image-choice), provide options as a list of label strings. - For matrix, provide BOTH options (the column answer choices, e.g. ["Agree", "Neutral", "Disagree"]) AND rows (the row sub-questions, e.g. ["Product quality", "Customer service"]). A matrix without rows or columns is unusable. - For all other element types, options and rows are ignored. - A "Thank you" ending page is added automatically — do not include it in pages. - Returns the same shape as create_form: formId, previewUrl, and the page/element structure with assigned IDs. - Share the preview URL with the user so they can follow along. CRITICAL: Immediately after this tool returns — or after any optional refinement tools (update_element / set_theme / set_settings / set_logic) you decide to call afterward — you MUST call show_preview to render the interactive form widget for the user. This is not conditional on "having more changes to make" — even if this single bulk call is your only call, show_preview is still required so the user sees the live form. Use publish_form only when the user explicitly asks to publish.

create_form_bulk

ChatGPT
Create a complete Weavely form with multiple pages and elements in a SINGLE tool call. Use this when the user describes the form they want upfront — it is far faster than create_form followed by many add_page/add_element calls, and avoids multiple permission prompts in MCP clients (e.g. ChatGPT) where every tool call must be approved. This tool intentionally accepts a MINIMAL spec per element: only type, label, and (for choice elements and matrix) lists of labels for options/rows. Values are auto-generated from labels (lowercase-kebab-case). For anything more detailed — placeholders, required flags, descriptions, theme, settings, conditional logic, scale/star counts, embed URLs, etc. — call update_element, set_theme, set_settings, or set_logic AFTER this tool returns. The bulk tool only produces a minimally usable form. Element types: input-text, input-number, input-email, input-phone-number, input-url, input-time, input-date, text-area, input-file, radio-buttons, checkbox-buttons, dropdown, ranking, image-choice, checkbox, matrix, star-rating, scale-rating, range-slider, heading, paragraph, embed-html, embed-audio, embed-video, signature. Notes: - For choice types (radio-buttons, checkbox-buttons, dropdown, ranking, image-choice), provide options as a list of label strings. - For matrix, provide BOTH options (the column answer choices, e.g. ["Agree", "Neutral", "Disagree"]) AND rows (the row sub-questions, e.g. ["Product quality", "Customer service"]). A matrix without rows or columns is unusable. - For all other element types, options and rows are ignored. - A "Thank you" ending page is added automatically — do not include it in pages. IMPORTANT: Always share the shareableUrl with the user in your response text so they can see their form. The widget renders automatically in clients that support it; the URL is the fallback for text-only clients. Use update_element / set_theme / set_settings / set_logic to refine after this returns. Use publish_form only when the user explicitly asks to publish.

create_form_bulk

ChatGPT
Create a complete Weavely form with multiple pages and elements in a SINGLE tool call. Use this when the user describes the form they want upfront — it is far faster than create_form followed by many add_page/add_element calls, and avoids multiple permission prompts in MCP clients (e.g. ChatGPT) where every tool call must be approved. This tool intentionally accepts a MINIMAL spec per element: only type, label, and (for choice elements and matrix) lists of labels for options/rows. Values are auto-generated from labels (lowercase-kebab-case). For anything more detailed — placeholders, required flags, descriptions, theme, settings, conditional logic, scale/star counts, embed URLs, etc. — call update_element, set_theme, set_settings, or set_logic AFTER this tool returns. The bulk tool only produces a minimally usable form. Element types: input-text, input-number, input-email, input-phone-number, input-url, input-time, input-date, text-area, input-file, radio-buttons, checkbox-buttons, dropdown, ranking, image-choice, checkbox, matrix, star-rating, scale-rating, range-slider, heading, paragraph, embed-html, embed-audio, embed-video, signature. Notes: - For choice types (radio-buttons, checkbox-buttons, dropdown, ranking, image-choice), provide options as a list of label strings. - For matrix, provide BOTH options (the column answer choices, e.g. ["Agree", "Neutral", "Disagree"]) AND rows (the row sub-questions, e.g. ["Product quality", "Customer service"]). A matrix without rows or columns is unusable. - For all other element types, options and rows are ignored. - A "Thank you" ending page is added automatically — do not include it in pages. IMPORTANT: Always share the shareableUrl with the user in your response text so they can see their form. The widget renders automatically in clients that support it; the URL is the fallback for text-only clients. Use update_element / set_theme / set_settings / set_logic to refine after this returns. Use publish_form only when the user explicitly asks to publish.

get_form_summary

ChatGPT
Get the current form structure: pages, elements (with IDs, types, labels), theme, and settings. Call this to see available page and element IDs before making edits. Requires create_form to have been called first.

get_form_summary

ChatGPT
Get the current form structure: pages, elements (with IDs, types, labels), theme, and settings. Call this to see available page and element IDs before making edits. Requires create_form to have been called first.

get_form_summary

ChatGPT
Get the current form structure: pages, elements (with IDs, types, labels), theme, and settings. Call this to see available page and element IDs before making edits. Requires create_form to have been called first.

publish_form

ChatGPT
Publish the form so the user can keep it, share it, and collect real responses. ONLY call this when the user EXPLICITLY asks to publish, save, or share their form. Do NOT call this automatically — the preview URL is sufficient during the building process. Creates a permanent copy of the form and returns an editor URL. The user can create a Weavely account there to claim full ownership. IMPORTANT: If this tool fails, tell the user there was an error publishing and they should try again. Do NOT suggest visiting the preview URL to claim or publish — that is NOT possible. The preview URL is a temporary link that cannot be claimed or converted into a permanent form.

publish_form

ChatGPT
Publish the form so the user can keep it, share it, and collect real responses. ONLY call this when the user EXPLICITLY asks to publish, save, or share their form. Do NOT call this automatically — the preview URL is sufficient during the building process. Creates a permanent copy of the form and returns an editor URL. The user can create a Weavely account there to claim full ownership. IMPORTANT: If this tool fails, tell the user there was an error publishing and they should try again. Do NOT suggest visiting the preview URL to claim or publish — that is NOT possible. The preview URL is a temporary link that cannot be claimed or converted into a permanent form.

publish_form

ChatGPT
Publish the form so the user can keep it, share it, and collect real responses. ONLY call this when the user EXPLICITLY asks to publish, save, or share their form. Do NOT call this automatically — the preview URL is sufficient during the building process. Creates a permanent copy of the form and returns an editor URL. The user can create a Weavely account there to claim full ownership. IMPORTANT: If this tool fails, tell the user there was an error publishing and they should try again. Do NOT suggest visiting the preview URL to claim or publish — that is NOT possible. The preview URL is a temporary link that cannot be claimed or converted into a permanent form.

remove_element

ChatGPT
Remove an element from the form by its ID. Use get_form_summary to find element IDs.

remove_element

ChatGPT
Remove an element from the form by its ID. Use get_form_summary to find element IDs.

remove_element

ChatGPT
Remove an element from the form by its ID. Use get_form_summary to find element IDs.

remove_page

ChatGPT
Remove a form page and all its elements. Cannot remove the ending page or the last remaining form page.

remove_page

ChatGPT
Remove a form page and all its elements. Cannot remove the ending page or the last remaining form page.

remove_page

ChatGPT
Remove a form page and all its elements. Cannot remove the ending page or the last remaining form page.

reorder_elements

ChatGPT
Move an element to a new position within the same page or to a different page. Use get_form_summary to see current page and element IDs.

reorder_elements

ChatGPT
Move an element to a new position within the same page or to a different page. Use get_form_summary to see current page and element IDs.

reorder_elements

ChatGPT
Move an element to a new position within the same page or to a different page. Use get_form_summary to see current page and element IDs.

reorder_pages

ChatGPT
Reorder the form pages. Provide the form page IDs in the desired order. The ending page is always kept last automatically — do not include it.

reorder_pages

ChatGPT
Reorder the form pages. Provide the form page IDs in the desired order. The ending page is always kept last automatically — do not include it.

reorder_pages

ChatGPT
Reorder the form pages. Provide the form page IDs in the desired order. The ending page is always kept last automatically — do not include it.

set_logic

ChatGPT
Set conditional logic rules and/or event triggers. This replaces ALL existing rules/triggers. Use get_form_summary to see element and page IDs for building conditions. Logic rule structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable rule description", "conditions": [ { "id": "<uuid>", "variable": "field:<elementId>", "operator": "isNotEmpty", "value": null } ], "logicalOperator": "all", "actions": [ { "id": "<uuid>", "name": "showElement", "data": { "elementId": "<elementId>" } } ] } CRITICAL: In actions, the action type key is "name" NOT "type". Using "type" will break the form. CRITICAL: In conditions, always include "value" (set to null for operators like isEmpty/isNotEmpty that don't need a value). Condition operators: isEmpty, isNotEmpty, isEqual, isNotEqual, contains, doesNotContain, startsWith, endsWith, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual For isEqual/isNotEqual/contains/etc., set "value" to the comparison string. Action names: hideElement, showElement, hidePage, skipToPage, setEnding Action data: { elementId: "..." } for element actions, { pageId: "..." } for page actions. logicalOperator: "all" (AND) or "any" (OR) for combining multiple conditions. Event trigger structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable trigger description", "trigger": { "name": "formSubmitted" }, "actions": [ { "id": "<uuid>", "name": "openUrl", "data": { "url": "https://example.com" } } ] } CRITICAL: "trigger" is an object with a "name" key, NOT a plain string. Trigger names: formSubmitted, formLoaded, formPageShown Action names: openUrl (requires data.url), restartForm (no data needed) All IDs (rule id, condition ids, action ids) must be UUIDs.

set_logic

ChatGPT
Set conditional logic rules and/or event triggers. This replaces ALL existing rules/triggers. Use get_form_summary to see element and page IDs for building conditions. Logic rule structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable rule description", "conditions": [ { "id": "<uuid>", "variable": "field:<elementId>", "operator": "isNotEmpty", "value": null } ], "logicalOperator": "all", "actions": [ { "id": "<uuid>", "name": "showElement", "data": { "elementId": "<elementId>" } } ] } CRITICAL: In actions, the action type key is "name" NOT "type". Using "type" will break the form. CRITICAL: In conditions, always include "value" (set to null for operators like isEmpty/isNotEmpty that don't need a value). Condition operators: isEmpty, isNotEmpty, isEqual, isNotEqual, contains, doesNotContain, startsWith, endsWith, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual For isEqual/isNotEqual/contains/etc., set "value" to the comparison string. Action names: hideElement, showElement, hidePage, skipToPage, setEnding Action data: { elementId: "..." } for element actions, { pageId: "..." } for page actions. logicalOperator: "all" (AND) or "any" (OR) for combining multiple conditions. Event trigger structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable trigger description", "trigger": { "name": "formSubmitted" }, "actions": [ { "id": "<uuid>", "name": "openUrl", "data": { "url": "https://example.com" } } ] } CRITICAL: "trigger" is an object with a "name" key, NOT a plain string. Trigger names: formSubmitted, formLoaded, formPageShown Action names: openUrl (requires data.url), restartForm (no data needed) All IDs (rule id, condition ids, action ids) must be UUIDs.

set_logic

ChatGPT
Set conditional logic rules and/or event triggers. This replaces ALL existing rules/triggers. Use get_form_summary to see element and page IDs for building conditions. Logic rule structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable rule description", "conditions": [ { "id": "<uuid>", "variable": "field:<elementId>", "operator": "isNotEmpty", "value": null } ], "logicalOperator": "all", "actions": [ { "id": "<uuid>", "name": "showElement", "data": { "elementId": "<elementId>" } } ] } CRITICAL: In actions, the action type key is "name" NOT "type". Using "type" will break the form. CRITICAL: In conditions, always include "value" (set to null for operators like isEmpty/isNotEmpty that don't need a value). Condition operators: isEmpty, isNotEmpty, isEqual, isNotEqual, contains, doesNotContain, startsWith, endsWith, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual For isEqual/isNotEqual/contains/etc., set "value" to the comparison string. Action names: hideElement, showElement, hidePage, skipToPage, setEnding Action data: { elementId: "..." } for element actions, { pageId: "..." } for page actions. logicalOperator: "all" (AND) or "any" (OR) for combining multiple conditions. Event trigger structure (FOLLOW THIS EXACTLY): { "id": "<uuid>", "name": "Human-readable trigger description", "trigger": { "name": "formSubmitted" }, "actions": [ { "id": "<uuid>", "name": "openUrl", "data": { "url": "https://example.com" } } ] } CRITICAL: "trigger" is an object with a "name" key, NOT a plain string. Trigger names: formSubmitted, formLoaded, formPageShown Action names: openUrl (requires data.url), restartForm (no data needed) All IDs (rule id, condition ids, action ids) must be UUIDs.

set_settings

ChatGPT
Configure form-level settings. Only send what you want to change. Supported language codes: ar, ca, zh-Hans, zh-Hant, hr, cs, da, nl, en, et, fi, fr, de, el, he, hi, hu, id, it, ja, ko, no, pl, pt, ru, es, sv, tr, uk, vi.

set_settings

ChatGPT
Configure form-level settings. Only send what you want to change. Supported language codes: ar, ca, zh-Hans, zh-Hant, hr, cs, da, nl, en, et, fi, fr, de, el, he, hi, hu, id, it, ja, ko, no, pl, pt, ru, es, sv, tr, uk, vi.

set_settings

ChatGPT
Configure form-level settings. Only send what you want to change. Supported language codes: ar, ca, zh-Hans, zh-Hant, hr, cs, da, nl, en, et, fi, fr, de, el, he, hi, hu, id, it, ja, ko, no, pl, pt, ru, es, sv, tr, uk, vi.

set_theme

ChatGPT
Set the form's visual theme. Choose colors, fonts, layout, and component styles that match the form's topic and tone. Be creative — pick a cohesive palette. Only send what you want to change — unset properties keep their current values. COLORS (all hex values): - primary: main accent color (buttons, highlights) - background: page background - text: general body text - question: question/label text - answer: user input text - secondary: secondary UI elements - surface: input field backgrounds - border: input borders, dividers - error: validation error color FONT: - family: global font family shorthand (Google Fonts compatible: Inter, Poppins, Playfair Display, Space Grotesk, DM Sans, Lora, etc.) - text: { size: "16px", family: "Inter" } - headings: { size: "32px", family: "Playfair Display" } LAYOUT types: - "under": questions stacked vertically (default) - "left": labels left, inputs right - "right": labels right, inputs left - "clean": minimal, no visual separators - "over": background image with overlay - "through": full-bleed background COMPONENTS: - form: { variables: { gap: "30px", maxWidth: "700px", textAlign: "left" } } - input: { preset: "default" | "square" } - button: { preset: "default" | "square", hoverAnimation: { preset: "default" | "grow" } } - question: { variables: { fontWeight: "500" } }

set_theme

ChatGPT
Set the form's visual theme. Choose colors, fonts, layout, and component styles that match the form's topic and tone. Be creative — pick a cohesive palette. Only send what you want to change — unset properties keep their current values. COLORS (all hex values): - primary: main accent color (buttons, highlights) - background: page background - text: general body text - question: question/label text - answer: user input text - secondary: secondary UI elements - surface: input field backgrounds - border: input borders, dividers - error: validation error color FONT: - family: global font family shorthand (Google Fonts compatible: Inter, Poppins, Playfair Display, Space Grotesk, DM Sans, Lora, etc.) - text: { size: "16px", family: "Inter" } - headings: { size: "32px", family: "Playfair Display" } LAYOUT types: - "under": questions stacked vertically (default) - "left": labels left, inputs right - "right": labels right, inputs left - "clean": minimal, no visual separators - "over": background image with overlay - "through": full-bleed background COMPONENTS: - form: { variables: { gap: "30px", maxWidth: "700px", textAlign: "left" } } - input: { preset: "default" | "square" } - button: { preset: "default" | "square", hoverAnimation: { preset: "default" | "grow" } } - question: { variables: { fontWeight: "500" } }

set_theme

ChatGPT
Set the form's visual theme. Choose colors, fonts, layout, and component styles that match the form's topic and tone. Be creative — pick a cohesive palette. Only send what you want to change — unset properties keep their current values. COLORS (all hex values): - primary: main accent color (buttons, highlights) - background: page background - text: general body text - question: question/label text - answer: user input text - secondary: secondary UI elements - surface: input field backgrounds - border: input borders, dividers - error: validation error color FONT: - family: global font family shorthand (Google Fonts compatible: Inter, Poppins, Playfair Display, Space Grotesk, DM Sans, Lora, etc.) - text: { size: "16px", family: "Inter" } - headings: { size: "32px", family: "Playfair Display" } LAYOUT types: - "under": questions stacked vertically (default) - "left": labels left, inputs right - "right": labels right, inputs left - "clean": minimal, no visual separators - "over": background image with overlay - "through": full-bleed background COMPONENTS: - form: { variables: { gap: "30px", maxWidth: "700px", textAlign: "left" } } - input: { preset: "default" | "square" } - button: { preset: "default" | "square", hoverAnimation: { preset: "default" | "grow" } } - question: { variables: { fontWeight: "500" } }

show_preview

ChatGPT
Show a live preview of the form inside the conversation. ALWAYS call this as the LAST tool after making any changes to the form (adding elements, setting theme, etc.). This renders an interactive preview widget in clients that support it (e.g. ChatGPT). IMPORTANT: Always include the preview URL in your text response to the user, regardless of whether the widget renders. Do NOT call this between other tool calls — only at the end, once per user message.

update_element

ChatGPT
Update an existing element's properties. Only send the fields you want to change. Use get_form_summary to find element IDs. Note: you cannot change an element's type — remove it and add a new one instead.

update_element

ChatGPT
Update an existing element's properties. Only send the fields you want to change. Use get_form_summary to find element IDs. Note: you cannot change an element's type — remove it and add a new one instead.

update_element

ChatGPT
Update an existing element's properties. Only send the fields you want to change. Use get_form_summary to find element IDs. Note: you cannot change an element's type — remove it and add a new one instead.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

43

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily