Generate a free splitforms key
Sign in at splitforms.com — your access key is created instantly. No credit card, no setup wizard, no SDK to install.
Contact Form (with phone) · HTML
Name, email, phone, company, reason — for B2B inquiries that need qualification. Free for 200 submissions total — no backend, no SDK, no plugin.

Copy-paste code
Replace YOUR_ACCESS_KEY with your splitforms key, paste into a HTML page, and ship. No build-time integration required.
<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 detailed contact submission">
<label for="name">Full name *</label>
<input id="name" type="text" name="name" placeholder="Jane Builder" required>
<label for="email">Work email *</label>
<input id="email" type="email" name="email" placeholder="[email protected]" required>
<label for="phone">Phone *</label>
<input id="phone" type="tel" name="phone" placeholder="+1 415 555 0142" required>
<label for="company">Company</label>
<input id="company" type="text" name="company" placeholder="Acme Inc">
<label for="reason">What's this about? *</label>
<select id="reason" name="reason" required>
<option value="">Choose…</option>
<option>Sales / pricing</option>
<option>Partnerships</option>
<option>Press / media</option>
<option>Support</option>
<option>Careers</option>
<option>Other</option>
</select>
<label for="message">Message *</label>
<textarea id="message" name="message" placeholder="Give us context — links, dates, deal size, anything we should know." required></textarea>
<!-- honeypot — bots fill every field -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>HTML + Contact Form (with phone)
Plain HTML sites have zero built-in form delivery — mailto: links open broken email clients, shared-hosting PHP is vanishing, and setting up Node just for a contact form is overkill. splitforms gives you a production-grade submission pipeline from a single <form action>. No build step, no framework lock-in, no server-side code. The contact form (with phone) on this page posts standard application/x-www-form-urlencoded data — the same format browsers have used since 1999 — so it works on every host from GitHub Pages to S3 to Apache.

Contact Form (with phone) fields
The posted payload contains full name, work email, phone, company, what's this about?, message. Required fields are full name, work email, phone, what's this about? and message. Rename, remove, or add your own — splitforms accepts any name you POST.

Template playbook
Phone fields suffer from format chaos — users type +1 555 123 4567, (555) 123 4567, 555.123.4567, 5551234567. Three options: accept anything and normalize server-side (best for international), use a pattern attribute for client-side validation (good for US-only), or apply a JavaScript mask that formats as the user types (highest conversion, more code). splitforms accepts any format and your form's UX is whichever approach fits your audience.

Setup
Three actions stand between you and your first contact form (with phone) submission — no backend, no database, no CAPTCHA library.
Sign in at splitforms.com — your access key is created instantly. No credit card, no setup wizard, no SDK to install.
Drop the form snippet into a HTML page, component, or layout. Replace YOUR_ACCESS_KEY with the key from your dashboard. The form action is a hard-coded URL — no env vars or build-time wiring needed.
Dashboard updates live on Free. Free includes owner email delivery; Starter adds signed webhooks, CSV export, Slack/Discord forwarding, and BCC to your team.
How SplitForms works
Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

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
SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js. And with Stripe connected, your forms can take payments too.

Trusted by indie teams and agencies shipping forms worldwide
Testimonials
40 quotes on record — from indie hacks to agency migrations.
“I built the HTML in your generator, copied it, and the form was live in two minutes. The fastest zero-to-working form I've ever set up.”
“Our Gatsby marketing site needed a contact form without a serverless function per environment. splitforms removed an entire category of config.”
“Submissions are isolated per account with row-level security. As someone who reviews vendors for a living, the /security page told me everything I needed.”
“I run three client retainers through one splitforms account, each form tagged and routed to its own inbox. Clean separation, one dashboard.”
“The Eleventy starter I use now ships with splitforms by default. Every site I spin up has a working form before I write a line of content.”
“Notifications include the full submission, so I can triage a lead from my phone without logging in. That's the whole experience I wanted.”
Common questions
Yes. The form is plain HTML with a single POST endpoint, so it runs on any HTML site without server-side code, plugins, or SDKs. Drop the snippet into a HTML page or component and submissions land in your splitforms dashboard.
Free for 200 submissions total — no credit card, no trial. Pro is $5/mo for 5,000 submissions, and there's a one-time $59 3-year plan (15,000 submissions/mo for 36 months). The same pricing applies regardless of which framework hosts the form.
Yes. The template ships with sensible defaults (full name, work email, phone, company…) — add, remove, or rename any of them. Splitforms accepts whatever fields you POST.
A hidden honeypot field catches dumb bots, and a tuned classifier scores the rest. You only see real submissions in your dashboard. No CAPTCHA, no friction for human users — and it works the same on HTML as on any other framework.
Yes. Webhooks are available on paid plans, with auto-formatted payloads for Slack, Discord, and WhatsApp (via CallMeBot). Or send raw signed JSON to any URL — Zapier, n8n, your own server. Configure in the splitforms dashboard.
Yes — the form posts directly to splitforms from the browser, so no server is involved. Works on Vercel, Netlify, GitHub Pages, Cloudflare Pages, S3, or any plain Apache host.
Two reasons. (1) Mobile keyboards: tel triggers the numeric keypad, dramatically reducing typos. (2) Accessibility: screen readers announce the field type, helping users with assistive tech understand what's expected. The 'no desktop benefit' is a feature, not a bug — the behavior matches user intent.
Depends on your audience. International contact forms should accept any format (use a permissive pattern + server-side normalization). US-only forms can use a strict pattern that matches `(555) 123-4567`. Either way, splitforms accepts whatever format the user submits — the validation is for UX, not data integrity.
Yes — listen for both `input` and `paste` events, and reformat on every change. The pattern only validates on submit, so the mask gives live feedback as the user types or pastes.
Simple pricing
Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, Stripe payments, and higher submission limits.
For side projects and indie devs.
For agencies and growing products.
Pay $59. 3 years sorted.
No credit card required on Free • Cancel anytime