Turn demo requests into Intercom contacts
Every demo request becomes an Intercom contact with company, role and a source attribute, ready for follow-up.
New submission on your "Request a demo" form
Create or Update Contact in Intercom with the prospect's name, email, company, and a custom "source" attribute
One-directional. A submission triggers the action — nothing is written back into your form.
A demo request is worth answering the same day, and that is hard if the details sit in a spreadsheet nobody has open. This recipe writes each prospect into Intercom as a contact the moment the form is submitted, with their company and job title already filled in.
Sales teams running outbound from Intercom reach for it first. The custom source attribute tells you the contact came from the demo form rather than from a chat widget, so segments and outbound series can treat the two differently.
Setting it up
- 1
Publish your "Request a demo" form and send one real submission through it so Zapier has a sample to build against.
- 2
In Zapier, set formformform's "New Submission" as the trigger and pick the demo request form from the form list.
- 3
Add Intercom's "Create or Update Contact" action, so a second request from the same prospect updates the existing record instead of making a duplicate.
- 4
Map Work Email to Intercom's email field. Intercom matches on email, so this is the field that decides whether a contact is created or updated.
- 5
Join First Name and Last Name into Intercom's name field, and send Company and Job Title to the matching contact attributes.
- 6
In Intercom, create a custom contact attribute called source if you do not have one, then set it to a fixed value such as demo-form inside the Zap.
- 7
Send "What problem are you trying to solve?" into a custom text attribute so the answer is visible the moment an agent opens the contact.
- 8
Run the Zap with your test submission, check the contact in Intercom, 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 | Intercom |
|---|---|
| Work Email | Intercom contact email — the field Intercom matches on |
| First Name | First half of the Intercom contact name |
| Last Name | Second half of the Intercom contact name |
| Company | Company name on the Intercom contact |
| Job Title | Custom contact attribute job_title |
| What problem are you trying to solve? | Custom contact attribute stated_problem |
Variations worth knowing
Add a Zapier filter after the trigger so the Intercom step runs only when Company Size clears your threshold. Smaller requests still sit in your responses list in formformform, but they do not fill the Intercom contact list.
Instead of a fixed value, map "How did you hear about us?" into the source attribute. Contacts then carry the channel they named, which makes a segment per channel possible without any extra tagging.
If something isn't arriving
Intercom matches on email. A prospect who used a personal address once and a work address the next time ends up with two records. Map Work Email consistently, make it required on the form, and merge the duplicates in Intercom.
Custom attributes have to exist in Intercom before a Zap can write to them. Create them in your Intercom settings, refresh the fields in the Zapier action step so it reloads the attribute list, then map them again.
Frequently asked questions
Does this update the form when the contact already exists in Intercom?
No. The connection runs one way: a submission triggers an action in Intercom and nothing comes back. The form never sees the contact record, so it cannot pre-fill answers or skip questions based on what Intercom already knows about the person.
How quickly does the contact appear after someone submits?
The "New Submission" trigger fires as soon as the form is submitted, and Zapier runs the Intercom step next. Delivery time after that depends on your Zapier plan rather than on the form. Check the Zap history in Zapier if a contact seems slow to arrive.
Can I keep an obviously fake demo request out of Intercom?
Add a Zapier filter step between the trigger and the Intercom action. Filter on the email domain, or on a required answer being present. Submissions that fail the filter stay in your formformform responses list and never reach Intercom.
Related automations
- Create a contact for every new order
Each order form submission creates or updates the buyer's Intercom contact and records what they ordered.
- Log customer feedback as a note on the contact
Feedback lands as a note on the customer's Intercom record, so the next agent to open the conversation has the context.
- Open an Intercom conversation from a support form
Form-based support tickets arrive in the Intercom inbox as real conversations agents can reply to and assign.
- Record webinar signups on the contact record
Webinar registrations build an Intercom audience with a registered_event attribute you can send reminders against.
- Tag contacts by what they asked for
The option someone picks on the interest form becomes an Intercom tag, so segments and outbound series stay accurate.
- Capture feature requests as labelled tickets
Product ideas from your feedback form land in Freshdesk as Feature Request tickets the team can group and revisit.
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