March 24, 2025 | 8 min read
The Eventact HubSpot Interface automatically updates HubSpot with your latest event registrations. For each registrant, it creates or updates a HubSpot contact and can generate a deal for every ticket sold. This allows you to track attendee engagement and event revenue directly in HubSpot.
Synchronization can run:
Set up the interface once per company under Settings > Integrations > HubSpot. The configuration applies to all company events.
Eventact searches for each registrant in HubSpot using the synchronization key, which defaults to email. The next steps depend on whether a match is found:
In addition to your field mapping, Eventact always updates these contact properties (group Eventact):
| HubSpot property | Value |
|---|---|
| Last Event Name | Event name |
| Last Event Date | Event date |
| Last Event Reg Status | Registration status |
| Last Event Attendance | True if the participant checked in, False if not |
When Create deal for each order is enabled, Eventact creates a HubSpot deal for each ticket purchased. Each deal is linked to the contact holding the ticket. If tickets are purchased for others, Eventact assigns each deal to the ticket holder's contact. If no contact exists for the holder, Eventact assigns the deal to the buyer.
Deals are created only once. Eventact uses the Event Order ID to identify existing deals, preventing duplicates or unwanted updates during future synchronizations.
| HubSpot deal property | Value |
|---|---|
| Deal Name | Internal ticket name |
| Amount | Sale amount |
| Close Date | Order date (event time zone) |
| Pipeline | The pipeline you selected, or the default pipeline |
| Deal Stage | The stage you selected; Closed Won by default |
| Deal Type | New Business if the contact was just created, Existing Business if it was already in HubSpot |
Eventact also populates these custom properties (group Eventact Deal):
| HubSpot deal property | Value |
|---|---|
| Ticket Type | Internal ticket name |
| Event Name | Internal event name |
| Event Registration Date | Registration date |
| Event Payment Status | Payment status |
| Event Reg ID | Registration number |
| Event Order ID | Eventact order reference (unique, used to prevent duplicates) |
Setup involves two steps: create a Private App in HubSpot to obtain an Access Token, then enter the token and your synchronization options in Eventact.
You must be a HubSpot super admin to do this.
crm.objects.contacts.read and crm.objects.contacts.writecrm.objects.deals.read and crm.objects.deals.writecrm.schemas.contacts.read and crm.schemas.contacts.writecrm.schemas.deals.read and crm.schemas.deals.writeEventact uses HubSpot's Private App Access Token; HubSpot no longer supports older API keys.
| Option | What it does |
|---|---|
| Synchronize with HubSpot after registration | Sends each registration to HubSpot as soon as it is submitted |
| Synchronization key | How registrants are matched to HubSpot contacts. Email (the default) is an exact match and is recommended |
| Create new contacts as | Contact creates registrants missing from HubSpot; Do not create new contacts only updates existing ones |
| Registrations to synchronize | Which registrations are sent: Submitted (includes approved), Submitted and Potential, or Arrived |
| Create deal for each order | Creates a deal per ticket (see Deals) |
| Deal pipeline / Deal stage | Where new deals go. Leave the default pipeline, or pick a custom pipeline and a stage (a stage is required for custom pipelines) |
| Resync | Manual - On request, or Daily for an automatic daily sync |
To run a manual sync, open the event's Registrants page and select CRM Sync from the menu. The page displays the number of registrations created, updated, failed, or skipped.
Field mapping determines which Eventact fields synchronize with which HubSpot contact properties, and in which direction. A new setup begins with this default mapping:
| Eventact field | HubSpot property |
|---|---|
| First Name | firstname |
| Last Name | lastname |
email | |
| Title | salutation |
| Job Title | jobtitle |
| Organization | company |
| Mobile Phone | mobilephone |
| Website | website |
To add a mapping, select an Eventact field (including custom registration fields), choose a HubSpot property from the searchable list, and click Add. If the HubSpot list is empty, click Get Fields.
Each mapping has an action:
| Action | Effect |
|---|---|
| Read and Write | Syncs both ways, filling gaps only: a HubSpot value fills an empty Eventact field, and an Eventact value fills an empty HubSpot property. Existing values are never overwritten |
| Read from HubSpot | HubSpot updates Eventact only, overwriting the Eventact value |
| Write to HubSpot | Eventact updates HubSpot only, overwriting the HubSpot value |
| View data only | Shown for comparison, never changed |
Empty values are never synced in either direction: an empty HubSpot value never clears a field in Eventact, and an empty Eventact value never clears a property in HubSpot. Use Read from HubSpot only for fields where HubSpot is the single source of truth, and Read and Write for shared data such as company name and job title.
The Eventact (contact) and Eventact Deal property groups are created in HubSpot automatically when you save the settings. These properties can then be used in HubSpot lists, reports, and workflows like any other property.
A registration form page can synchronize with HubSpot when the guest clicks Next, allowing data from HubSpot to guide the rest of the form. A common use is to complete participant details from HubSpot, such as membership or customer status.
To set it up:
This synchronization runs regardless of the Synchronize with HubSpot after registration setting or the Registrations to synchronize option, because the form page itself triggers it. The page must collect the synchronization key (email by default), or it cannot find the contact.
Organizers can review and resynchronize individual registrants from the registrant's overview page. Open the registrant, go to the About tab, and locate the CRM card. The card appears when the event's company has a connected CRM.
For each connected CRM, the card shows:
Two actions are available:
| Action | What it does |
|---|---|
| Sync with CRM | Syncs this registrant now, using the same matching and field mapping as a full sync |
| View CRM Data | Shows each mapped field side by side: the Eventact value and the HubSpot value. Read-only; it changes nothing. Shown only when a HubSpot contact is linked |
Use View CRM Data to identify why a value differs between Eventact and HubSpot, then click Sync with CRM to update the information.
This is the primary troubleshooting tool when a sync fails or a value is not updated. HubSpot may reject values that do not match the property's definition. For example, dropdown, radio, or checkbox properties accept only specific values. If the Eventact answer is not among these, HubSpot rejects the entire update and no fields change. The registration's change log records the sync failure but does not specify the field. Compare the two columns in View CRM Data to identify differing values. Look for answers that HubSpot would not accept, such as those missing from the property's options. Resolve the issue by aligning Eventact answer options with the allowed HubSpot values, then sync again.
The most common cause of a failed sync is a value HubSpot rejects, often because a mapped property allows only specific values. Use View CRM Data on the registrant (see above) to identify the field.
Looking for a quick answer? See the Registration FAQ: Reports, Exports, and Integrations.