AppSumoAppSumo Lifetime Deal starting at $39
Get the Deal Now!
Wagtail Integration

Stream Wagtail form submissions to Google Sheets alongside the admin

Add the LeadToSheet snippet to your Wagtail base template and capture FormPage submissions, StreamField forms, and headless API requests into a Sheet that non-admin users can access.

Platform category: Content Management System

Why teams use LeadToSheet for Wagtail

Wagtail already stores submissions in its admin, but content editors often don't have CMS access and editorial teams move faster in Sheets. LeadToSheet runs alongside Wagtail's built-in FormSubmission model — every submission lands in both places, with full UTM and device attribution attached to the Sheet copy.

Runs alongside FormSubmission

Wagtail still stores submissions in its admin. LeadToSheet adds a Sheet copy with attribution — useful when editorial teams don't have CMS logins.

StreamField-aware

Captures forms rendered through any StreamBlock or FormPage variant — no need to subclass AbstractEmailForm to add tracking.

Hook-compatible

Doesn't interfere with before_serve_page or construct_form_submission hooks — runs purely client-side after the form successfully submits.

Choose your integration path

Set up Wagtail

Three ways to get submissions into your Google Sheet - pick the one that fits your stack. Every path delivers to the same sheet with the same fields.

Drop one script tag into your Wagtail site. Best for marketing pages and CMS templates that already share a header or layout.

  1. 1

    Add the snippet to base.html

    Place the script tag inside your project's base.html — every page extending it inherits the snippet without per-template changes.

    Tip: If you use template inheritance with multiple base files, put it in the topmost one.

    base.html embed

    <script async src="https://www.leadtosheet.com/api/sdk?k=YOUR_CLIENT_KEY"></script>
  2. 2

    Test with a FormPage submission

    Submit a real entry through any Wagtail FormPage and check both the admin's FormSubmission list and your Google Sheet — both should have the row.

    Tip: If the Sheet row is missing fields, confirm your FormPage uses CharField/EmailField rather than a custom block that bypasses the standard form render.

  3. 3

    Filter by site for multi-site projects

    Wagtail's multi-site routing means the request hostname identifies the site. Use Sheet filters or LeadToSheet routing rules to separate submissions per Wagtail Site.

    Tip: Set up one Sheet tab per site for cleaner editorial-team workflows.

Public-sector intake

Capture council inquiries, FOIA forms, and citizen service requests with audit-friendly attribution and editorial-team access.

University prospectus requests

Sync open-day signups and prospectus orders into a Sheet that admissions teams can act on without needing Wagtail admin access.

Newsroom subscriptions

Collect newsletter signups and reader-tip forms from Wagtail-powered newsrooms with editor-team visibility outside the CMS.

Frequently asked questions

Does this replace Wagtail's built-in FormSubmission?
No, it runs alongside. Wagtail still stores submissions in the admin. LeadToSheet adds a Google Sheet copy with attribution — useful for teams without CMS access.
Will it work with forms inside StreamField blocks?
Yes. The snippet attaches at the document level, so any form rendered through a StreamBlock, FormPage, or custom block is captured the same way.
Compatible with Wagtail Hooks?
Yes. LeadToSheet operates client-side after the form submits successfully — server-side hooks like before_serve_page and construct_form_submission still run as expected.

Considering other options for Wagtail?

See how LeadToSheet compares to Formspree, Zapier, Typeform, HubSpot, and other form capture tools.