Flexform logoFlexform
HubSpotTutorialWorkflow Automation

Form to HubSpot: Create Contacts and Deals Without Zapier

Atul Kumar· June 2, 2026· 9 min read

A HubSpot form integration should do one thing well: when someone submits a form, the right HubSpot Contact, Deal, and workflow should fire within seconds — not minutes, not after a Zapier poll, not after a third tool's queue clears. FlexForm connects directly to HubSpot's API, so a form submission creates a Contact, an associated Deal, and triggers any HubSpot workflow you've wired up — in 1–2 seconds, with no middleware in the path.

This guide walks through the exact configuration: how to connect HubSpot to FlexForm, how to map form fields to Contact and Deal properties, how to set conditional routing rules, and how to verify the submission landed correctly. The goal is a working form-to-HubSpot pipeline that you can ship today.

What this guide assumes

  • A HubSpot portal with admin access
  • A FlexForm Founders plan ($19/mo) or Enterprise
  • A clear use case (lead capture, demo request, etc.)
  • 10 minutes for end-to-end configuration

What you'll have at the end

  • Form connected to HubSpot via OAuth
  • Field mapping to Contact + Deal properties
  • Conditional Deal pipeline routing
  • Live form embedded on your site

Why bypass Zapier for HubSpot

Zapier remains the default glue for SaaS tools, and for many workflows it is the right answer. For a form-to-HubSpot path, the trade-offs are different. A native integration writes the Contact directly to HubSpot's API the moment the submit button is pressed. A Zapier-based path queues the submission, polls the source, processes the trigger, and only then forwards to HubSpot — adding 1 to 15 minutes of latency depending on the Zapier plan.

For consumer surveys or backfill workflows, 5 minutes does not matter. For a B2B lead capture form where an SDR is supposed to respond inside a 5-minute SLA, a Zapier delay can consume the entire response budget before the rep ever sees the record. The Lead Response Management research from MIT and InsideSales is now 15 years old, but the conclusion still holds: contact within the first minute correlates with materially higher conversion.

The second trade-off is cost stacking. A Zapier-based form-to-HubSpot setup requires a form tool subscription plus a Zapier subscription with enough tasks to cover submission volume. FlexForm's Founders plan at $19/mo includes the HubSpot connection in-plan — there is no separate Zapier or Make line item.

Step-by-step: connect a form to HubSpot

The five-step path below assumes you already have a FlexForm account on the Founders plan or Enterprise. If you are still on Starter, native CRM integrations are not enabled — upgrade before continuing.

  1. 1

    Generate the form

    Describe the form to FlexForm's AI: "Create a demo request form with name, work email, company, company size dropdown, primary use case, and a free-text question about current tools." FlexForm picks the field types (short_answer, email_input, dropdown, multiselect, long_answer) and assembles the form in under 60 seconds. Refine fields conversationally if needed — the Founders plan includes refine and regenerate.

  2. 2

    Connect HubSpot via OAuth

    In the form's Integrations panel, click Connect HubSpot. You'll be redirected to HubSpot to authorize FlexForm's scopes (contacts read/write, deals read/write, workflows trigger). After approval, FlexForm stores the connection at the workspace level — every form in the workspace can reuse the same HubSpot connection without re-authorizing.

  3. 3

    Map fields to Contact properties

    FlexForm auto-suggests mappings based on field labels: email_input maps to HubSpot's email property, short_answer for "Full name" maps to firstname + lastname. Review each mapping and add custom Contact properties from your HubSpot portal — FlexForm pulls the live property list, including custom fields. Existing Contacts are matched by email and updated; new emails create new Contacts.

  4. 4

    Configure Deal creation

    Add a Deal action alongside the Contact action. Choose the pipeline (Sales, Customer Success, or any custom pipeline), the initial stage (typically "New Lead" or "Qualification"), the dealname template (e.g., "{Company} — Demo Request"), and the deal amount if your form captures budget via a currency element. The new Deal is associated with the Contact automatically using HubSpot's association API.

  5. 5

    Add conditional routing (optional)

    If your form has company-size or use-case fields, configure conditional rules: company_size = 'Enterprise' → assign Contact owner to the enterprise SDR, route Deal to the Enterprise pipeline. Conditions use FlexForm's branching syntax (equals, contains, is_empty) and evaluate inline at submission. No additional zap, no second tool.

Field mapping in practice

The default field-to-property mapping covers most cases, but every team has custom HubSpot properties — lead source codes, account tiers, regional flags. FlexForm pulls the live HubSpot property list per connection, so any custom property created in your portal becomes available as a mapping target without re-syncing or re-authenticating.

For workflows where one form serves multiple use cases (e.g., a single contact form that can be either sales or support), use a dropdown element at the top of the form and conditionally set HubSpot properties downstream. The submitted dropdown value can set hs_lead_status to one of multiple values, which in turn fires the appropriate HubSpot workflow.

One gotcha: HubSpot enforces a 100-property limit per Contact object per API call. If you map more than 100 form fields to Contact properties, the call will be rejected. In practice, this is rarely a constraint — most lead forms have 5–15 fields — but for survey-style intake, split into Contact + Deal + custom Object writes to stay under the limit.

Triggering HubSpot workflows

Most teams that connect a form to HubSpot want the submission to start something — a welcome sequence, a sales notification, a task assignment. In HubSpot, workflows are triggered by enrollment criteria, typically based on a Contact or Deal property value.

The cleanest pattern is: have FlexForm set a HubSpot property called form_source to a value like demo_request_v3 on every submission. In HubSpot, create a workflow with enrollment trigger "form_source equals demo_request_v3" — the workflow will fire on every matching submission, with the full Contact and Deal context available inside it.

This decouples FlexForm and HubSpot in a healthy way: FlexForm owns the form and the property write, HubSpot owns the workflow logic. Marketing can adjust the sequence inside HubSpot without touching the form, and form owners can ship new variants by changing the form_source value.

FlexForm direct vs Zapier-mediated

CapabilityZapier-mediatedFlexForm direct
Native HubSpot API connectionDirect OAuth, no polling
Latency from submission to HubSpotMaterial impact on lead response time1–15 min1–2 sec
Create Contact + Deal in one submissionSingle configuration, no chained stepsMulti-step zap
Custom Contact propertiesBoth can map to custom HubSpot properties
Custom Deal propertiesConfigured in field mapping UI
Trigger HubSpot workflowsWorkflow enrollment by submissionVia property change
Update existing Contact by emailBoth upsert on email match
No third-party billingFlexForm Founders is $19/mo, integration included
Conditional CRM routingBranch on form values inlineMulti-zap chain
Failure visibilityLogged on submission recordSeparate Zapier history

Verifying the integration

After configuration, run three checks before exposing the form publicly:

  1. Test submission: Submit the form with a unique test email (e.g., test+1781032525886@yourdomain.com). Confirm the Contact appears in HubSpot within 2 seconds and that all mapped properties are populated.
  2. Deal association: Open the new Contact in HubSpot. The associated Deal should appear in the Deals tab with the correct pipeline, stage, and dealname. If the Deal exists but is not associated, check the association object in field mapping.
  3. Workflow firing: If you configured a property-based workflow trigger, check HubSpot's workflow history. The new enrollment should appear within seconds, with the test Contact correctly enrolled.

If any of these fail, FlexForm logs the integration result on the submission record itself — you don't need to hunt through a separate tool's history. Failed HubSpot writes show the exact API error message inline. Web embed instructions are covered separately once the integration is verified.

When to stay on Zapier

Native HubSpot integration is the right default for new form-to-HubSpot pipelines. There are still cases where Zapier earns its keep:

  • You need to fan a single submission out to HubSpot and three or four other tools that FlexForm doesn't natively support (e.g., a legacy internal CRM, a custom database).
  • Your team's automation lives in Zapier and you want a single source of truth for "what happens on form submit."
  • You're prototyping and don't want to commit to a Founders plan yet — Zapier can connect any form to HubSpot at the cost of latency, while you validate the workflow.

For the common case — lead capture, demo request, contact us, customer feedback — native is faster, simpler, and cheaper to operate. The migration path is straightforward: rebuild the form in FlexForm, configure the HubSpot connection, switch your embed code, then retire the zap.

Frequently asked questions

How do I connect a form to HubSpot without Zapier?

Use a form builder with native HubSpot API support. FlexForm connects directly to HubSpot via OAuth, maps form fields to Contact and Deal properties at configuration time, and writes records on submission in 1–2 seconds — without Zapier, Make, or any middleware. The integration is configured once per form and runs on every submission automatically.

Can a form create both a HubSpot Contact and a Deal in one submission?

Yes. With FlexForm, a single form submission can create a HubSpot Contact, create an associated Deal in a specific pipeline and stage, and trigger downstream HubSpot workflows — all in one API call sequence. The Contact and Deal records are linked automatically using HubSpot's association API.

Why is native HubSpot integration faster than Zapier?

Zapier polls form data on a schedule (typically every 1–15 minutes depending on plan) before forwarding it to HubSpot. A native integration writes directly to HubSpot's API the moment the form is submitted — so the Contact appears in HubSpot in 1–2 seconds, not minutes. For lead routing and SDR response time, this difference materially affects conversion.

What HubSpot data can FlexForm update or create?

FlexForm can create or update HubSpot Contacts (matched by email), create new Deals on any pipeline and stage, set custom property values, associate Contacts and Deals to Companies, and trigger HubSpot workflows by setting trigger property values. Field mapping is configured per form, including custom Contact and Deal properties from your HubSpot portal.

Which FlexForm plan includes HubSpot integration?

Native HubSpot integration is included on the Founders plan ($19/month) and Enterprise. The Starter plan ($0) is for testing — it includes AI generation and submissions, but CRM integrations and workflow automation start on Founders. There is no per-integration add-on cost; the connection is included in the plan.

Connect a form to HubSpot in 10 minutes

Describe your form, connect HubSpot via OAuth, map fields, embed. Founders plan starts at $19/mo.

Start Building Free →
A

Atul Kumar

Co-Founder & CTO, FlexForm