splitforms.com

Contact form · Bubble.io

Contact form for Bubble.io without the workflow.

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.

  • 500 free / mo
  • No workflow units
  • 2-min setup
An HTML element in a Bubble.io app submitting to the splitforms hosted backend

No Bubble workflow

The form posts straight from the browser to splitforms — Bubble never runs a workflow, Data type, or "Create a new thing" action.

Spam filtered, no CAPTCHA

A hidden botcheck honeypot and form_loaded_at time-trap screen bots — no CAPTCHA widget to load inside the HTML element.

Email + dashboard

Every submission is emailed to you on every plan and saved in your searchable splitforms dashboard.

Copy-paste ready

Your Bubble.io contact form, ready to paste.

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.

Generate access key
bubble-html-element.html
<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

How to add a contact form to a Bubble.io app.

Five steps, about two minutes, on any Bubble plan — including the free hobby tier. No server, no SMTP, and no Bubble workflow to build.

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/month, unlimited forms, no credit card.

Drop an HTML element on your page

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.

Paste the form, swap the access key

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.

Preview the published page, not the editor

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.

Submissions land in your inbox + dashboard

Every submission is emailed to you and saved in the splitforms dashboard. Want it in Bubble's database too? Add a Starter webhook to a Bubble backend workflow.

Why not native forms

Why skip Bubble's native form workflow?

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.

  • No workflow, Data type, or "Create a new thing" action
  • Works on any Bubble plan, including the free hobby tier
  • Every submission emailed and saved to your dashboard
A Bubble form submission received, filtered, stored, and routed to your inbox

Spam protection

How do you stop Bubble form spam without a CAPTCHA?

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.

  • Hidden honeypot catches bots that fill every field
  • Time-trap rejects sub-two-second submissions
  • Server-side heuristics screen the rest — no widget to load
splitforms screening spam bots out of a Bubble contact form before your inbox

How SplitForms works

From form to workflow in 3 simple steps.

Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

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

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

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

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Connect your favorite tools and automate everything

SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more

Trusted by indie teams and agencies shipping forms worldwide

PETAL/COKRAFT.DELINEAR-XBUILD.DEVSTUDIO 71MERIDIANFRAME&CO

Testimonials

Loved by developers shipping at every scale.

40 quotes on record — from indie hacks to agency migrations.

Questions

Bubble.io contact form questions.

View all FAQs
Can I add a custom contact form to Bubble.io without the native Bubble Forms workflow?

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.

Do I need to build a Bubble workflow for the form to work?

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.

Does this work on Bubble's free plan?

Yes. The HTML element is available on every Bubble plan, including the free hobby tier. splitforms is free for 500 submissions/month with unlimited forms, email notifications, spam filtering, and the dashboard included.

How will I know when someone submits the form?

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.

Can submissions also be saved inside my Bubble database?

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.

How do I stop spam without adding a CAPTCHA to my Bubble page?

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.

Can I accept file uploads — resumes, screenshots — from a Bubble contact form?

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.

Can I redirect visitors to a Bubble thank-you page after they submit?

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.

Is splitforms a reliable backend for my Bubble contact form?

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

Start free. Scale when you need more.

Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, and higher submission limits.

Free

$0

Free forever

 
Best for testing

For side projects and indie devs.

  • 500 submissions / mo
  • Unlimited forms
  • Email notifications included
  • Honeypot spam filtering
  • Submissions dashboard
  • MCP setup stays free
  • No credit card required

3-Year

$59/ 36 months
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • Renews every 3 years
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime