splitforms.com

Contact Form (with phone) · Alpine.js

Contact Form (with phone) for Alpine.js

Name, email, phone, company, reason — for B2B inquiries that need qualification. Free for 500 submissions per month — no backend, no SDK, no plugin.

  • 500 free / month
  • 6 fields ready
  • 60-second setup
Contact Form (with phone) for Alpine.js — copy-paste form code

Copy-paste code

Drop into any Alpine.js project.

Replace YOUR_ACCESS_KEY with your splitforms key, paste into a Alpine.js page, and ship. No build-time integration required.

Get free access key
form.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 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="jane@company.com" 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>

Alpine.js + Contact Form (with phone)

Built for Alpine.js developers who hate operating a backend.

The contact form (with phone) on this page integrates with Alpine.js's development workflow using the form markup in your Alpine.js project. Whether you're deploying to a static host or a server-rendered platform, the form posts standard FormData to splitforms, so your backend complexity stays at zero. Alpine.js's ecosystem has strong tooling for UI, but form delivery is a separate concern that splitforms handles independently — Free includes spam filtering, owner notification emails, and a submissions dashboard; Starter adds webhooks.

  • 500 form submissions per month, free forever
  • Unlimited forms on every plan, including Free
  • Spam protection — honeypot plus a tuned classifier
splitforms as the form backend for Alpine.js

Contact Form (with phone) fields

What every field actually does.

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.

  • Full name — Greeting + dashboard label so submissions don't all read 'anonymous'.
  • Work email — Reply-to address — splitforms wires this so hitting reply goes back to the sender.
  • Phone — Faster qualification — phone leads convert ~3× higher than email-only on B2B forms.
contact form (with phone) fields in the splitforms dashboard

Template playbook

The reason this contact form (with phone) exists.

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.

  • Use type="tel" not type="text"
  • Add a pattern attribute for validation
  • (Optional) Add the JS mask
Contact Form (with phone) playbook for Alpine.js

Setup

Generate, embed, receive.

Three actions stand between you and your first contact form (with phone) submission — no backend, no database, no CAPTCHA library.

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.

Paste the contact form (with phone) into your Alpine.js project

Drop the form snippet into a Alpine.js 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.

Receive submissions

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

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.

Common questions

Contact Form (with phone) on Alpine.js answered.

View all FAQs
Does this contact form (with phone) work on Alpine.js?

Yes. The form is plain HTML with a single POST endpoint, so it runs on any Alpine.js site without server-side code, plugins, or SDKs. Drop the snippet into a Alpine.js page or component and submissions land in your splitforms dashboard.

How much does the contact form (with phone) cost on Alpine.js?

Free for 500 submissions per month — 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.

Can I customize the fields?

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.

How does spam protection work on the contact form (with phone)?

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 Alpine.js as on any other framework.

Can I send the contact form (with phone) submissions to Slack or Discord?

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.

Will it work on a static Alpine.js site?

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.

Why use type="tel" if it doesn't do anything special on desktop?

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.

Should I validate international or US-only?

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.

Does the JS mask work with paste?

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

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