CustomGFormCustomGForm
Documentation

Changelog

Looking for detailed walkthroughs, screenshots, and live demos? Check out our dedicated Releases section.

1.9.1 - 2026-10-22

Added

  • Copy a form: Use "Make a copy" in the form menu (grid and list views) to duplicate a form with its design, fields, addons, settings and integrations. Responses, files and Stripe payment mapping are not copied. Also available to AI agents as the duplicate_form tool.

Changed

  • Save menu: "Save as Template" now lives in a dropdown next to "Save changes" in the customizer.

1.9.0 - 2026-10-17

Changed

  • Groundwork for an upcoming feature. No visible changes yet.

1.8.11 - 2026-10-16

Fixed

  • No more submitting while files upload: Visitors can no longer submit a form while a file or signature is still uploading. They see "Please wait until the upload finishes." and can submit once it completes. Before, the response could be sent without the file.
  • One failed file no longer drops the rest: When several files are dropped at once and one fails, the files that uploaded are kept, and the error names the file that failed.
  • Signature redraw and clear: Clearing or redrawing a signature while an earlier version was still uploading could save the old signature. Only the latest signature is kept now.
  • Upload size limit fallback: If the server size limit isn't configured, uploads up to 100 MB are allowed (it was 10 MB), matching the largest size a field can be set to.

1.8.10 - 2026-10-16

Fixed

  • Large file uploads: Files over 10 MB were rejected with "Failed to initialize upload", even when the form allows up to 100 MB. Uploads now work up to the limit set on the field (100 MB maximum).
  • Uploads of files with no browser type: Some browsers, especially Chrome and Edge on Windows, give no file type for formats like .heic, .dcm, .stl, or .rar. These uploads always failed; the type is now worked out from the file extension.
  • Answer validation on optional questions: Google Forms response validation (for example "must be an email" or "must be a number") now also applies to optional questions when they are answered. Email, URL, and "is a number" rules now work on all questions, and values like 12abc no longer pass number checks. Before, Google could silently reject these responses.
  • Re-fetch keeps addons: Re-fetch in the dashboard no longer removes file upload, location, scanner, and other addons from your fields. It keeps them the same way the MCP sync_google_form tool does.
  • Re-fetch for forms without a description: Re-fetch no longer fails for Google Forms without a description. If the Google Form can't be read (for example it is restricted), you now see the reason instead of a generic error.

1.8.9 - 2026-10-15

Fixed

  • Embedded forms show saved changes immediately: After Save changes, visitors who loaded your page before could still see old styles because their browser reused a cached copy of the form. Embedded forms now check for a newer version on every load, and the CDN tells browsers not to reuse form settings without checking. If nothing changed, the browser still uses its cached copy, so loading stays fast.

1.8.8 - 2026-10-15

Fixed

  • Google Form header image: The banner image at the top of a Google Form is now imported and shown above the form title. It is saved to our CDN when you create, re-fetch, or sync a form. Existing forms pick it up after Re-fetch (or the MCP sync_google_form tool, which now also returns headerImageUrl).

1.8.7 - 2026-10-13

Changed

  • Dark theme inherits shared styles: A form's dark theme now only overrides colors. Fonts, sizes, radii, spacing, width, columns, and RTL come from the light theme, so both modes always match. In Custom Theme → Theme preview → Dark, only color settings are shown. Ask AI, MCP customize_google_form, and save_theme_to_template follow the same rule: non-color dark values are applied to the shared light theme.

Web app update - 2026-10-13

Added

  • Dark theme: The website, docs, and dashboard now support dark mode. Pick Light, System, or Dark from the theme switcher in the footer or under Dashboard → Settings → Theme; it follows your OS setting by default and remembers your choice in this browser only. Public form pages (/form/...) stay light, and embedded forms keep their own theme.

Changed

  • Pricing page redesign: /pricing now has plan overview cards and a grouped, side-by-side plan comparison with a "Show differences only" filter, plus an updated billing FAQ.
  • Usage & plans dashboard: Upgrade or switch billing period from plan cards at the top, with the same comparison table below and your current plan highlighted.
  • Webhooks now require Starter or higher: Creating new webhook integrations (UI, API, Ask AI and MCP) requires a Starter or Pro plan. Existing webhooks on the Hobby plan keep working.

1.8.6 - 2026-10-12

Added

  • Vue Integration: New official @customgform-lib/vue-customgform Vue 3 component with standard, popup, and popover support. See the Vue Quickstart.
  • Vue embed snippets: Share → Embed → Vue now generates a ready-to-paste Vue single-file component (replacing the "coming soon" placeholder), including prefilled and hidden fields.
  • AI & MCP Tool Parity: get_form_share_instructions returns a vueSnippet and accepts format: 'vue'; the Ask AI share card shows a Vue tab.

See full overview: Release notes


1.8.5 - 2026-10-10

Added

  • Quiz Progress Bar Colors: Configure the countdown progress track, normal fill, warning fill, and expired fill colors from Custom Theme → Form settings. AI and MCP customization supports the same theme keys.

Fixed

  • Timer auto-submit rejected by Google (HTTP 400): Unanswered questions were sent as the text null, which Google Forms rejects as an invalid option. Unanswered fields are now omitted, so auto-submitted forms with skipped questions are recorded.
  • Timer re-submitting after completion: Timer, anti-cheat, and draft state are now cleared after a successful submission, so revisiting an expired quiz no longer auto-submits an empty response.
  • Auto-submit on multi-page forms: Timer auto-submit now sends only the visited sections and pageHistory for branching forms, and finalizes uploaded files so they are not purged.
  • Timer clock accuracy: Timers started before server time sync are rebased onto server time, and /api/time now supports cross-origin embeds (CORS).

Security

  • Consent rules rendering: Timer rules and instructions are rendered through a strict allowlist sanitizer (safe tags, http/https/mailto links only).

See full overview: Release notes

1.8.1 - 2026-10-10

Added

  • Form Countdown Timers & Proctoring Suite: Add tamper-resistant countdown timers to any Google Form with auto-submission, warning pulse states, and mobile pinned displays.
  • Dynamic On-Demand Asset Loading: Forms without timers incur 0 KB extra JavaScript overhead. The timer module (/addons/timer.js) is loaded asynchronously on-demand only when enabled.
  • Anti-Cheating Suite: Block question text selection (user-select: none), disable right-click context menus and clipboard copy (Ctrl+C, Cmd+C), prevent text pasting into answers, and track tab switching with strike limits and auto-submission enforcement.
  • Tamper-Proof Time Synchronization: Server clock synchronization (/api/time) protects against client operating system clock tampering; monotonic delta and scoped storage prevent page refresh exploits and inactive tab throttling.
  • Hidden Audit Trail: Injects server-verifiable audit timestamps and metrics (timeStarted, timeSubmitted, durationSeconds, tabSwitchesCount, timeAwaySeconds, isAutoSubmitted) into form submission metadata.
  • AI & MCP Tool Parity: Full configuration support in customize_google_form tool (timerEnabled, timerDurationMinutes, timerWarningThresholdMinutes, timerAutoSubmit, timerDisableCopyPaste, timerTrackTabSwitches, timerMaxTabSwitches, timerPreventPaste, timerRecordAuditFields). Available on Starter and Pro plans.
  • Docs & SEO Guides: New How to Add a Timer to Google Forms guide and Timers & Proctoring feature documentation.

1.8.0 - 2026-10-10

Added

  • Barcode Scanner Addon: Turn any Short Answer question into a camera barcode scanner (Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF). The decoded value is written straight into the Google Form answer and your connected Google Sheet.
  • QR Code Scanner Addon: Scan QR codes with the respondent's phone camera, with no third-party app and no iframe.
  • Fallbacks & Feedback: Manual typing when the camera is denied, blocked, or the code is unreadable, optional "Scan from a photo", beep and vibration feedback, and an optional auto-submit on successful scan for rapid check-ins.
  • On-Demand Addon Asset Loading: Heavy addon assets (Barcode/QR scanner engine and E-Signature Pad) are dynamically loaded only when a respondent opens a form containing those fields. Forms without these addons download zero extra JavaScript, and browsers with a native BarcodeDetector need no scanner download at all.
  • AI & MCP Tool Parity: Attach, configure, or remove both scanners through configure_field_addon (addonType: 'barcode' | 'qr-code', scannerConfig). Available on Starter and Pro plans.
  • Docs: New QR code scanner and Barcode scanner feature pages and two how-to guides.

See full overview: Release notes


1.7.3 - 2026-10-06

Added

  • Interactive Notion OAuth 2.0 Flow: Connect your Notion workspace with a single click (/api/integrations/notion/authorize). Authorize access directly in Notion's native consent dialog with zero manual secret copying.
  • Automatic Database Discovery: Automatically retrieves approved Notion databases via /api/integrations/notion/databases so users can pick target databases directly from a searchable dropdown selector.
  • Tamper-Proof OAuth State Verification: Cryptographically signed HMAC-SHA256 state tokens with 15-minute expiration and user session binding to prevent CSRF and session fixation attacks.
  • Hybrid Connection Support: Seamlessly supports both 1-click OAuth authorization and manual Internal Integration Secrets (secret_...) with full backward compatibility.
  • Notion Database Connector: Automatically create structured pages in your Notion databases on Google Form submissions.
  • Smart Page & Block Engine: Generates clean Notion pages with formatted header callouts, submission timestamp, and structured bulleted list items for each form field. Supports optional custom templates with dynamic field interpolation ({{form_title}}, {{Email}}, {{all_fields}}, {{date}}).
  • Encrypted Token Security: All Notion tokens (accessToken, notionToken, secret) are encrypted at rest with AES-256-GCM and masked in UI/API responses.
  • AI & MCP Tool Parity: Connect, configure, and test Notion database integrations via AI chat and external MCP clients using add_form_integration and test_form_integration.
  • Modular Frontend Architecture: Dedicated NotionForm component with workspace badge, database selector, live test event verification, and template customization picker.

1.7.2 - 2026-10-06

Added

  • Discord Connector: Post real-time form submission alerts directly into Discord channels via Discord Webhooks and Rich Embed cards.
  • Rich Embed Engine & Markdown Formatting: Formats submissions into structured Discord Rich Embeds with color coding (Blurple for live submissions, Emerald for test events), author attribution, timestamps, and inline field grids (up to 25 fields). Supports custom templates with dynamic field mentions ({{form_title}}, {{Email}}, {{all_fields}}, {{date}}).
  • Encrypted Webhook Credentials: Discord Webhook URLs are encrypted at rest with AES-256-GCM and masked in UI/API responses.
  • AI & MCP Tool Parity: Connect and test Discord webhook notifications directly from AI chat and external MCP clients via add_form_integration and test_form_integration.
  • Modular Frontend Architecture: Dedicated DiscordForm component adhering to the modular connector framework, with live test event trigger and template variable picker.

1.7.1 - 2026-10-06

Added

  • Slack Connector: Stream real-time form submission alerts directly into your team's Slack channels via Slack Incoming Webhooks and rich Block Kit cards.
  • Block Kit Engine & Custom Templates: Formats submissions into structured Block Kit messages with headers, fields, and context timestamps. Supports optional custom templates with dynamic field mentions ({{form_title}}, {{Email}}, {{all_fields}}, {{date}}).
  • Encrypted Webhook Credentials: Slack Incoming Webhook URLs are encrypted at rest with AES-256-GCM and masked in UI/API responses.
  • AI & MCP Tool Parity: Connect and test Slack notifications directly from AI chat and external MCP clients via add_form_integration and test_form_integration.
  • Modular Connector Architecture: Granular sub-module organization (components/, hooks/, utils/, constants/) and partitioned unit test suites across all connectors.

1.7.0 - 2026-10-05

See full overview: Release notes

Added

  • Telegram Bot Connector: Stream real-time form submission alerts to your personal chats, group chats, or supergroup channels using Telegram Bot API. Supports custom topics (message_thread_id) and HTML message formatting.
  • Zapier Catch Hook: Forward form submissions instantly to Zapier to trigger multi-step workflows across 5,000+ business applications.
  • AES-256-GCM Encryption at Rest: Authenticated encryption for all connector secrets, masked in client API responses.
  • Message Shape & Template Customization: Shape alerts with dynamic form field tokens ({{Full Name}}, {{form_title}}, {{all_fields}}, {{date}}), interactive mention pills, and live preview.
  • Test Connector Engine: Dispatch live test events directly from connector modals to verify setup and measure latency.
  • AI & MCP Tool Parity: Expose connector configuration and testing via add_form_integration and test_form_integration.

1.6.1 - 2026-10-05

See full overview: Release notes

  • Attention tooltips: Add optional dismissible text beside popover launchers, with matching HTML, React and AI/MCP options.
  • Share mode links: Standard, Popup and Popover selections are preserved in the dashboard URL for refreshes and shared links.

1.6.0 - 2026-10-05

See full overview: Release notes

Added

  • Popover Embed Mode: New third display option in Share → Embed. A floating (bottom-right / bottom-left) or inline icon button opens your form in a scrollable panel anchored to the icon (no full-screen overlay). Pick a built-in Tabler icon (Chat, Feedback, Help, Mail, Form, Star) or upload/paste your own SVG, which is sanitized and embedded directly in the code. Configure background, icon color, size and rounding, plus an optional dismissible attention tooltip (data-tooltip) shown next to the icon. Works with HTML (data-mode="popover") and React snippets.
  • AI/MCP parity: get_form_share_instructions now supports mode: "popover" with popoverIcon, popoverIconSvg, popoverPosition, popoverBackground, popoverIconColor, popoverSize, popoverRounded and popoverTooltip.

1.5.1 - 2026-10-05

Added

  • Form QR Code Generator: Generate and download high-resolution QR codes directly from the Share page or via the AI/MCP assistant. Includes instant live preview and crisp PNG download for print flyers, signage, presentations, and events.

Improved

  • Grid Responses Table Headers: Responses table headers now feature a clean two-tier stacked layout displaying the question title above the row label, eliminating repetitive text and keeping columns compact.
  • CSV & Export Compatibility: Form response exports and CSV downloads now format grid questions using the industry-standard Question Title [Row Label] convention matching Google Forms and Google Sheets.
  • Retroactive Grid Label Resolution: Automatically maps existing and legacy submissions containing raw internal grid identifiers (e.g. 274203642_radioGrid_527176188) to human-readable question and row labels in both the dashboard UI and AI/CSV tools.

1.5.0 - 2026-10-05

See full overview: Release notes

Added

  • Rating Field (Scale 1–N): Interactive rating component supporting Star, Heart, and Thumbs icons with hover preview, keyboard navigation, and click-to-clear for optional fields.
  • Rating Customization & Center Alignment: Rating items are centered by default, and rating icon color (rating-icon-color) is fully customizable from the Dashboard Custom Theme editor and via AI/MCP tool customize_google_form.
  • Checkbox Grid Component: Standalone matrix component allowing multiple column selections per row.
  • Limit to 1 Response per Column: Full validation support for Multiple Choice Grid and Checkbox Grid with real-time column uniqueness checks and Google Forms parity.
  • Shuffle Row Order: Front-end row randomization stable per session to eliminate re-rendering loops while providing unbiased question ordering.
  • AI & MCP Diagnostics Update: Updated troubleshoot_form_connection to fully recognize and diagnose forms containing Rating fields as healthy.

1.4.0 - 2026-10-03

See full overview: Release notes

Added

  • E-Signature Capture Addon: Interactive touch-friendly signature drawing pad powered by signature_pad
  • High-DPI / Retina Canvas Scaling: Automatic pixel-ratio scaling preventing pixelation on mobile screens
  • In-Cell Google Sheets Sync: Formula =IMAGE("...") injected directly into connected Google Sheet rows
  • Mobile Touch Gesture Lock: CSS touch-action: none to prevent viewport scroll while drawing signatures
  • Showcase Demo: Interactive Non-Disclosure Agreement (NDA) live preview (/showcase/signature-form)
  • Fumadocs LLMs Integration: Full support for /llms.txt index, /llms-full.txt docs bundle, *.md routes, intelligent Accept: text/markdown content negotiation, and documentation page actions

1.3.0 - 2026-08-20

See full overview: Release notes

Added

  • Dark Theme Palette & Switcher: Independent second dark color palette, auto-detection from respondent OS, and in-form toggle
  • Built-in Form Analytics: Lightweight view tracking, start counts, drop-off step identification, and conversion rates
  • Partial Responses Capture: Real-time answer saving before form submission to recover abandoned leads
  • Ask AI & Model Context Protocol (MCP): Dashboard conversational assistant and official MCP server for AI IDE agents

1.2.0 - 2026-04-15

See full overview: Release notes

Added

  • Right-to-Left (RTL) Layout: Complete layout inversion for Arabic, Hebrew, Persian (Farsi), and Urdu
  • Location Detection Addon: IP-based auto-fill for respondent country, region, city, and timezone
  • Dynamic URL Prefill & Hidden Fields: Extended query parameters ?prefill= and ?hidden= for seamless personalization

1.1.0 - 2026-02-09

See full overview: Release notes

Added

  • File Upload Addon (No Login Required): Allow public respondents to upload documents and photos without Google login
  • BalancedGrid Layout: Responsive grid arrangement for short form inputs
  • Form Closed State: Graceful messaging when underlying Google Form submissions are closed
  • Customizable Error Text: Custom inline error notices per question

1.0.16 - 2025-11-22

See full overview: Release notes

Added

  • Migrated core lib from preact to react
  • New options:
    • data-hidden_fields - here you can pass fields which should be hidden, separated by semicolon. Example:
      <!-- Format: id=value; where id is field id, value any text value -->
      data-hidden_fields="261034186;1841579133;501104403"

1.0.3 - 2024-06-22

Added

  • Global callback function to show, hide, toggle modal dialog with form, example:
var formId = 'clhqpufuy0001wnf3dnltnz801';
// toggle modal: if shown, it'll be hidden, if hidden, it would be shown
window.CustomGForm.toggleModal(formId);
// show modal
window.CustomGForm.showModal(formId);
// close modal
window.CustomGForm.closeModal(formId);
  • New options:
    • data-button_class prop, which allows to add custom Button class name
    • data-prefill_fields - here you can pass fields which should be prefilled, separated by semicolon. Example:
      <!-- Format: id=value; where id is field id, value any text value -->
      data-prefill_fields="261034186=test;1841579133=comments,fd;[email protected]"
  • Typescript support for our react library https://www.npmjs.com/package/@customgform-lib/react-customgform

Changed

  • popup mode: hide button if there is no label

Fixed

  • popup mode: conflicted styles with button, which trigger modal dialog show/hide
  • fix google form title

1.0.2 - 2024-03-27

Added

  • Custom theme font support (based on Google fonts)
  • Support for multistep forms

1.0.1 - 2024-03-06

Added

  • Short answer, Paragraph validators:
    • Number:
      • greater than
      • greater than or equal to
      • less than
      • less than or equal to
      • equal to
      • not equal to
      • between
      • not between
      • is number
    • Text
      • contains
      • doesn't contain
      • email
      • url
    • Length
      • maximum character count
      • mininmum character count
    • Regular expression
      • contains
      • doesn't contain
      • matches
      • doesn't match
  • Tags support for questions title and description

1.0.0 - 2024-03-02

Added

  • Time input
  • Date with time
  • Support for HTML tags in form description
  • Changelog page

Fixed

  • Reduce input width for Date and Time fields

Last updated on

On this page