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.
New Submission on your "Request a demo" form
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
Publish your Request a demo form and send one test submission, so Zapier has a real sample to read when you map fields.
- 2
Create a Zap with formformform as the trigger app, choose New Submission, and select the demo request form by name.
- 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
Map Work Email to the HubSpot email property first — it is the key HubSpot matches on, and everything else follows from it.
- 5
Map First Name and Last Name to their own HubSpot properties rather than pushing both into a single full-name field.
- 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
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
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 field | HubSpot |
|---|---|
| Work Email | Contact email — the property HubSpot deduplicates on |
| First Name | Contact first name |
| Last Name | Contact last name |
| Company | Contact company name property |
| Phone Number | Contact 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
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.
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
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.
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
- Add webinar registrants to a HubSpot workflow
Each webinar signup adds the contact to a HubSpot workflow and records which event they registered for.
- Log a support request as a note on the contact
Each support submission finds the customer in HubSpot and adds a timestamped note with the issue details.
- Log product feedback on the customer's record
Product feedback updates the HubSpot contact and logs a note, putting requests where account teams already look.
- Open a deal when a quote request arrives
Every quote request opens a deal in your chosen HubSpot pipeline and stage, associated with the person who asked.
- Set lifecycle stage on every newsletter signup
Subscribers become HubSpot contacts with a lifecycle stage and topic preferences already set for the nurture campaign.
- Add newsletter signups to Zoho CRM as tagged contacts
Every newsletter opt-in becomes a Zoho CRM contact carrying a tag you can build a campaign list from.
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