Send form submissions to a Slack channel — instantly.
Send Form Submissions to HubSpot — splitforms
Create HubSpot contacts and leads from form submissions.
Use a HubSpot Private App access token and the CRM v3 contacts endpoint to create or update a contact for every submission. splitforms POSTs the submission via webhook through a small relay (or Zapier) that calls HubSpot.
Free for 1,000 submissions/month. No credit card required.
How to set up HubSpot with splitforms
6 steps. The whole flow typically takes a couple of minutes.
In HubSpot, go to Settings → Integrations → Private Apps, create a Private App with crm.objects.contacts.write scope, and copy the access token.
Build a relay endpoint (Cloudflare Worker, Vercel function, or any small HTTP service) that receives the splitforms webhook and POSTs to https://api.hubapi.com/crm/v3/objects/contacts with the contact's email, name, and any other captured fields as properties.
Paste the relay URL into the form's Webhooks tab in splitforms.
Submit a test entry. A new contact should appear in HubSpot within a couple of seconds. Confirm the email matches what was submitted.
Optional: associate the contact with a Deal or Company via additional /associations endpoints inside the relay, so new leads land in the right pipeline.
Optional: enrich the relay with HubSpot list memberships so contacts are auto-added to the 'Website Inbound' or similar list for nurture campaigns.
<form action="https://splitforms.com/api/submit" method="POST"> <input type="hidden" name="access_key" value="YOUR_SPLITFORMS_KEY" /> <input type="hidden" name="_route" value="hubspot" /> <input type="email" name="email" placeholder="you@example.com" required /> <textarea name="message" placeholder="Your message" required></textarea> <button type="submit">Send to HubSpot</button> </form>
The form posts to https://splitforms.com/api/submit. The HubSpotrouting is configured in the splitforms dashboard against the form's access key — there's no client-side HubSpot-specific code in your HTML.
Who uses splitforms + HubSpot
A handful of patterns we've seen in the wild.
- USE CASE 01B2B SaaS sales teams capturing demo requests and creating contacts in HubSpot with a 'Demo Requested' lifecycle stage.
- USE CASE 02Marketing teams running gated content forms — each download becomes a HubSpot contact tagged by asset.
- USE CASE 03Customer success teams with support forms that create or update contacts and add a ticket via HubSpot's tickets API.
- USE CASE 04Recruiting teams using HubSpot as a candidate CRM (less common, but workable) — each application creates a contact tagged by role.
- USE CASE 05Newsletter signup forms whose subscribers become HubSpot marketing contacts ready for sequence emails.
Why splitforms for HubSpot?
HubSpot's hosted forms are free but force you to embed a HubSpot script; splitforms keeps the form fully yours. splitforms is free for 1,000 submissions per month, $5/mo on Pro, or $59 for a 4-year plan (15,000 submissions/month, 48 months of access). No per-integration add-on fees.
Frequently asked questions
Does splitforms have a native HubSpot integration?
Today, no — splitforms reaches HubSpot via outbound webhooks plus a small relay (or via Zapier/Make). That's the honest answer; a one-click HubSpot OAuth connector is on the roadmap. The webhook-relay route is reliable in production today and works on the free plan.
Can I create or update existing contacts (upsert)?
Yes. HubSpot's create endpoint returns 409 if a contact with the same email exists. The relay should catch the 409, then PATCH the existing contact at /crm/v3/objects/contacts/{id}. This avoids duplicate contacts when the same person submits twice.
Will this work with HubSpot Free?
Yes. Private apps and the contacts API are available on HubSpot's free CRM tier. You don't need a paid HubSpot plan to ingest form submissions — only to use advanced marketing automation features downstream.
What about HubSpot's own forms — why not just use those?
HubSpot forms ingest cleanly into HubSpot, but the form itself is hosted by HubSpot, which limits design control and adds a script tag to your site. splitforms keeps the form 100% your HTML, owned by you, and the data flows into HubSpot at the backend. You also keep the option to send the same submission to other destinations (Slack, email).
How do I avoid the relay becoming a single point of failure?
Two things: (1) splitforms always sends the submission to email regardless of webhook outcome, so even if the relay is down, the lead is captured; (2) splitforms retries failed webhook deliveries with exponential backoff. Run the relay on a serverless platform with high availability (Workers, Vercel) and you'll rarely see a missed delivery.
Can I trigger a HubSpot workflow from this?
Yes. Set a property on the contact (e.g. 'website_form_submitted = true') and create a HubSpot workflow that triggers when that property updates. This gives you sequence enrolment, internal notifications, and lifecycle-stage updates.
Connect HubSpot in 60 seconds.
Free for 1,000 submissions per month. No credit card. Pro is $5/mo. The whole splitforms + HubSpot setup ships in under five minutes.