Overview
Formspree is a developer-focused form backend: you write your own HTML form and Formspree handles email delivery, spam filtering, and integrations. Because the form is native HTML on your page (not an iframe or external embed), LeadToSheet captures it directly from the DOM with zero friction. This makes Formspree the most seamless pairing with LeadToSheet. Every field name, hidden input, and submitted value is captured natively alongside UTM parameters, referrer data, and device context.
Implementation checklist
- 1
Add the LeadToSheet SDK to your page
Place the script tag on any page that contains a Formspree-powered HTML form. Since the form is native HTML in the DOM, LeadToSheet detects and captures it automatically with no additional configuration.
LeadToSheet snippet
<script src="https://cdn.leadtosheet.com/sdk.min.js" data-client="YOUR_CLIENT_KEY"></script> - 2
Use clear name attributes on your form inputs
LeadToSheet uses the name attribute of each input element to create column headers in your Google Sheet. Use descriptive, consistent names like full_name, email, and company to keep your sheet organized.
Tip: Avoid generic names like field1, field2. Descriptive names make your sheet immediately readable without a mapping guide.
- 3
Submit a test form and confirm the sheet row
Fill out your Formspree form, submit it, and check that every field value plus UTM parameters and referrer data appear as columns in your Google Sheet. Formspree handles its own email delivery simultaneously.
Customization ideas
Add hidden inputs for campaign tracking
Since you control the HTML, add hidden inputs like <input type='hidden' name='campaign_id' value='spring-2026'> directly in your form markup. LeadToSheet captures them as regular fields alongside the automatic UTM data.
Build multi-form pages with tab routing
Developers often place multiple Formspree forms on one page (contact, newsletter, feedback). Add data-leadtosheet-tab attributes to each form element to route submissions to separate Google Sheet tabs.
Pair with Formspree plugins for richer data
Formspree offers plugins for reCAPTCHA, Mailchimp, and Airtable. LeadToSheet captures the form data independently of these plugins, giving you a Google Sheets backup alongside any Formspree integration you enable.
Troubleshooting
Form action URL preventing LeadToSheet capture
Formspree forms use action='https://formspree.io/f/...' which causes a page redirect on submit. LeadToSheet intercepts the submission event before the redirect to capture all field values. If submissions are not appearing, ensure the LeadToSheet SDK loads before the form is submitted and that no JavaScript is calling form.submit() programmatically before LeadToSheet can listen.
AJAX form submissions via Formspree's JavaScript library
If you use Formspree's JavaScript library for AJAX submissions (no page redirect), LeadToSheet captures the form data when the submit event fires. Ensure the LeadToSheet SDK is loaded before the Formspree JS library initializes.
reCAPTCHA or honeypot fields appearing in sheet
Formspree's spam protection fields (like _gotcha honeypot) may appear as columns in your sheet. LeadToSheet captures all named inputs. You can hide these columns in Sheets or configure field exclusions in the LeadToSheet dashboard.
Frequently asked questions
- Formspree forms are just HTML. Does LeadToSheet work out of the box?
- Yes. Because Formspree-powered forms are native HTML elements in the page DOM, LeadToSheet captures them automatically with no iframe workarounds, no webhooks, and no extra configuration. Just add the SDK script tag.
- Does LeadToSheet interfere with Formspree's email delivery?
- No. LeadToSheet captures the form data at the browser level before the submission reaches Formspree's servers. Formspree continues to handle email delivery, spam filtering, and its own integrations independently.
- Can I use LeadToSheet with Formspree on React or Next.js?
- Yes. Whether you use Formspree with plain HTML, React, Next.js, or any other framework, the form renders in the DOM and LeadToSheet captures it. For React apps, add the SDK script tag in your document head or layout component.
