HubSpot logo

Create or update a contact from every demo request

Each demo request creates or updates a HubSpot contact with the requester's name, work email, company and phone.

When this happens

New Submission on your "Request a demo" form

Do this

Create or update a contact in HubSpot with email, name, company, and phone

One-directional. A submission triggers the action — nothing is written back into your form.

A demo request is the one form where reps notice the delay. Someone fills it in on Tuesday afternoon, and the record only appears in HubSpot when a marketer gets round to pasting it in. This flow removes that gap: the submission lands, Zapier fires, and the contact exists.

It suits B2B sales teams running an inbound demo form on a pricing or product page. Because HubSpot matches on email, a returning visitor updates the record you already have rather than creating a duplicate for a rep to merge later.

Setting it up

  1. 1

    Publish your Request a demo form and send one test submission, so Zapier has a real sample to read when you map fields.

  2. 2

    Create a Zap with formformform as the trigger app, choose New Submission, and select the demo request form by name.

  3. 3

    Add HubSpot as the action and pick Create or Update Contact, so a returning requester updates their existing record instead of adding a second one.

  4. 4

    Map Work Email to the HubSpot email property first — it is the key HubSpot matches on, and everything else follows from it.

  5. 5

    Map First Name and Last Name to their own HubSpot properties rather than pushing both into a single full-name field.

  6. 6

    Set a static value on a lead source property, such as "Demo request form", so reporting can separate this form from your other inbound.

  7. 7

    Decide where the free-text answer goes: a custom multi-line property keeps it on the record, while a note keeps the contact view tidy.

  8. 8

    Run the Zap with your test submission, open the contact in HubSpot to confirm each property is filled, then switch it on.

What maps where

Using the Demo Request Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldHubSpot
Work EmailContact email — the property HubSpot deduplicates on
First NameContact first name
Last NameContact last name
CompanyContact company name property
Phone NumberContact phone number
What problem are you trying to solve?A custom multi-line contact property, or the body of the first note on the record

Variations worth knowing

Assign the contact to a rep on submission

Use conditional logic on the form to ask which region or product line the request is about, then branch the Zap on that answer and set a different contact owner for each path. Reps see the request under their own name without a routing meeting.

Notify the team as well as HubSpot

A Zap can carry more than one action. After the Create or Update Contact step, add a second action that posts to Slack or sends an email carrying the company and the problem statement, so someone can reply while the request is still warm.

If something isn't arriving

Two contacts appear in HubSpot for the same person.

Check the Zap is using Create or Update Contact, not Create Contact, and that Work Email is mapped to the HubSpot email property. HubSpot deduplicates on email; if that field is empty or mapped to a custom property instead, every submission makes a fresh record.

Company Size or the implementation timeline arrives blank in HubSpot.

Dropdown answers only land if a matching option exists on the HubSpot property. Open the property in HubSpot settings and add options whose labels match your form's choices exactly, or map the answer into a plain text property instead.

Frequently asked questions

Does the contact update in HubSpot change anything on the form?

No. The connection runs one way. A submission triggers the HubSpot action, and nothing is written back into formformform. Edits your reps make in HubSpot stay in HubSpot, and the stored submission remains a permanent record of what was actually typed.

What happens if the same person requests a demo twice?

HubSpot matches on the email address and updates the existing contact with the newer answers, so you keep one record rather than two. Both submissions stay visible in your responses view, which is how you see what changed between the first request and the second.

Can I send only qualified demo requests to HubSpot?

Yes. Add a Zapier filter step between the trigger and the HubSpot action, set to continue only when a field matches — a company size above a threshold, or a work address rather than a free provider. Submissions that fail the filter are still stored in formformform.

Related automations

Build the form first

The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.

Start free