Get your free access key
Create a free splitforms account at splitforms.com/login and copy your access key from the dashboard. Free tier: 500 submissions total, unlimited forms, no credit card.
Contact form · Bubble.io
Updated · plan facts checked against /pricing
Drop an HTML element on your page, point it at one endpoint, and every submission is stored, emailed, and spam-filtered — no Bubble workflow, no Thing to model, no plugin.

The form posts straight from the browser to splitforms — Bubble never runs a workflow, Data type, or "Create a new thing" action.
A hidden botcheck honeypot and form_loaded_at time-trap screen bots — no CAPTCHA widget to load inside the HTML element.
Every submission is emailed to you on every plan and saved in your searchable splitforms dashboard.
Copy-paste ready
Drag an HTML element onto your Bubble page, paste this in, and swap in your access key — that's the whole integration. No workflow, no Data type, no plugin.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<input type="hidden" name="subject" value="New message from Bubble app" />
<label>Name
<input type="text" name="name" required />
</label>
<label>Email
<input type="email" name="email" required />
</label>
<label>Message
<textarea name="message" rows="4" required></textarea>
</label>
<!-- Honeypot — leave empty, bots fill every field -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off" />
<!-- Time-trap — rejects submissions sent in under ~2 seconds -->
<input type="hidden" name="form_loaded_at" value="" />
<script>
document.currentScript.previousElementSibling.value = Date.now();
</script>
<button type="submit">Send</button>
</form>Setup
Five steps, about two minutes, on any Bubble plan — including the free hobby tier. No server, no SMTP, and no Bubble workflow to build.
Create a free splitforms account at splitforms.com/login and copy your access key from the dashboard. Free tier: 500 submissions total, unlimited forms, no credit card.
In the Bubble editor, drag an HTML element from the left palette onto the page where you want the form — Contact, About, or a landing page.
Copy the code above into the HTML element's content field and replace YOUR_ACCESS_KEY with your real key. The honeypot and time-trap fields are already wired in.
Bubble's in-editor preview sandboxes cross-origin form posts. Click Preview, open the real URL in a new tab, and submit a test message from there.
Every submission is emailed to you and saved in the splitforms dashboard. Want it in Bubble's database too? Add a webhook (paid plans) to a Bubble backend workflow.
Why not native forms
Most Bubble tutorials wire a contact form with native inputs and a workflow — validate the fields, "Create a new thing", "Send email" — all running on Bubble's own infrastructure. A form built on an HTML element that posts straight to splitforms never touches a Bubble workflow: the browser sends the request, splitforms stores it, filters spam, and emails you. For the deep walkthrough — database saves, file uploads, dev vs. live domains — see the full Bubble.io setup guide.

Spam protection
splitforms filters spam automatically — a hidden botcheck honeypot, a form_loaded_at time-trap that rejects submissions sent in under a couple of seconds, and server-side content heuristics — with no CAPTCHA widget to load inside the HTML element. Prefer a challenge? splitforms also works as a reCAPTCHA alternative and supports reCAPTCHA v2 with your own secret key.

How SplitForms works
splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

Point your form to your unique SplitForms endpoint. That's it.

We instantly capture and organize every submission in your inbox.

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

No credit card required. Set up in under 60 seconds.
Connect & automate
On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Questions
Yes. Drag an HTML element onto your Bubble page and paste a form whose action points at https://splitforms.com/api/submit with your access_key in a hidden field. The browser posts straight to splitforms — no Bubble workflow, no database Data type, no "Create a new thing" action.
No. The form submits directly from the browser to splitforms. Bubble only renders the HTML element on the page — it never processes the request, so there's no workflow to build, debug, or maintain.
Yes. The HTML element is available on every Bubble plan, including the free hobby tier. splitforms is free for 500 submissions total with unlimited forms, email notifications, spam filtering, and the dashboard included.
splitforms emails you on every submission — that's included free on every plan, not a paid add-on — and every submission is also saved in your splitforms dashboard, where you can search and filter it later.
Yes, via a webhook. On Pro ($5/month) or above, point a splitforms webhook at a Bubble backend workflow (Settings → API → Enable Workflow API) and every submission also creates a new Thing in your Bubble database. The payload is signed with HMAC-SHA256 so you can verify it came from splitforms.
splitforms filters spam automatically with a hidden botcheck honeypot, a form_loaded_at time-trap that rejects submissions sent in under a couple of seconds, and server-side content heuristics — no CAPTCHA widget to load inside the HTML element. If you still want one, splitforms also supports reCAPTCHA v2 with your own secret key.
Yes. Add enctype="multipart/form-data" and a file input to the form, then connect the Storage integration in your splitforms dashboard (a paid feature). You can accept up to 5 files per submission at 5 MB each.
Yes. Configure the trusted post-submit redirect for the form in the splitforms dashboard, then set it to your Bubble thank-you page. A visitor-supplied hidden field cannot override that destination.
splitforms provides a hosted POST endpoint, dashboard storage, spam filtering, and owner email notifications for Bubble forms without requiring a Bubble backend workflow.
Simple pricing
Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.
For side projects and indie devs.
Every paid feature, for agencies and growing products.
Every Pro feature with triple the volume — $0.27 per 1,000 at full use.
No credit card required on Free • Cancel anytime • Full pricing and FAQ