• 7 mins read

How to Sync Humanitix Ticketing with HubSpot Without Duplicate Contacts

To sync Humanitix ticketing with HubSpot without duplicate contacts, send attendance to HubSpot marketing events, send ticket purchases to the orders object, and match records on ticket ID, not email address. Email matching breaks when tickets are transferred.

That's the approach Now We Collide used for an Australian financial services membership organisation running paid conferences, policy roundtables, working group meetings and free member webinars. Ticketing for the larger paid events sat in Humanitix, the Australian-founded, not-for-profit ticketing platform. Member records sat in HubSpot. Post-event reporting was a manual export the morning after, a pivot table and a fair amount of goodwill.

The team wasn't asking for anything exotic. They wanted to know who had attended what, whether attendance correlated with membership renewal, and how much revenue each event type actually generated. All three questions were answerable in theory. In practice each one took half a day and produced a number nobody fully trusted.

At a glance: where each piece of event data lives

Event data Where it lives HubSpot object
Free webinar and working group registrations HubSpot forms Marketing events
Paid event attendance (registered, attended, cancelled) Humanitix → HubSpot Marketing events
Ticket types, discounts, order values, refunds Humanitix → HubSpot Orders (Commerce Hub)
Record matching key Humanitix Ticket ID

 

Which events should run in HubSpot, and which in a ticketing platform?

Run free webinars and member working group meetings natively in HubSpot, and keep paid, multi-tier events in a specialist platform like Humanitix.

The first decision wasn't technical. It was working out which events should run natively in HubSpot and which should stay in the ticketing platform.

Free webinars and internal working group meetings moved into HubSpot entirely. Registration through a HubSpot form, confirmation and reminder emails through a cloned workflow, attendance captured automatically. No integration needed, because the data never leaves the CRM.

Larger paid events stayed in Humanitix. It was already set up for them and handled their multi-tier ticketing, discount codes, refunds, waitlists and on-site check-in, and the finance team already trusted its reconciliation. The team are comfortable using Humanitix and setting up ticketing in the platform, so we set up HubSpot to pull data directly from Humanitix.

Should event revenue go in HubSpot deals or orders?

Event ticket revenue belongs in the HubSpot orders object, not deals, because a ticket sale is a completed purchase rather than a pipeline opportunity.

HubSpot's native events integrations mostly handle the basics: create a marketing event record, then mark contacts as registered, attended or cancelled. That's genuinely useful. The Marketing Events API supports those three subscriber states, and it accepts optional joined and left timestamps so you can distinguish someone who sat through a full session from someone who dropped off after four minutes.

What it doesn't capture is the commercial side. Ticket types, quantities, discount codes, order values and refunds all matter when your events programme is partly a revenue line rather than purely a member service.

So we used two objects rather than one.

Attendance flows into marketing events, HubSpot's record for an event, which holds each contact's registration and attendance state. Transactions flow into the orders object, part of Commerce Hub, which exists to record what was actually purchased, at what price, associated back to the contact and the company. This distinction matters more than it first appears. Deals were designed to represent a pipeline opportunity, something that might close. Orders were designed to represent a completed purchase. Events are much closer to the latter, and organisations that force event revenue into the deals object end up with a pipeline full of records that were never really opportunities and skewed forecasting as a result.

How do you stop ticket transfers creating duplicate HubSpot contacts?

Match records on the Humanitix ticket ID rather than the attendee's email, so a transferred ticket updates the existing registration instead of creating a new contact.

Here's the wrinkle nobody plans for at the scoping stage.

In a member organisation, the person who buys the ticket is very often not the person who walks through the door. An executive assistant books three seats under her own details. A general counsel is registered, then a policy manager attends in her place. Two weeks out from the conference, one attendee is swapped for a colleague because of a diary clash.

Humanitix supports this well. It has a dedicated transfer function that updates the ticket holder details in place, so the ticket keeps its identity while the person attached to it changes. That's the correct behaviour for a ticketing platform.

The trap is building your sync so that it matches on email address. Do that and a transferred ticket creates a brand new contact, an orphaned registration against the original person, and a double count in your attendance figures. Multiply that across a year of events and your engagement data quietly becomes fiction.

We keyed the integration on the ticket ID instead. The integration polls the orders and tickets endpoints for changes, reconciles what it finds against what already exists in HubSpot, and when a ticket holder changes it reassigns the existing registration rather than creating a second one. The original registrant is marked as cancelled where appropriate, so the audit trail survives.

Key your integration on the identifier that doesn't change.

One helpful property of the HubSpot attendance endpoints is that they're idempotent, provided the contact ID and the interaction timestamp haven't changed. You can safely run the same sync repeatedly without generating duplicate timeline entries. That turns a re-sync from a risky operation into a routine one, which matters enormously when you're debugging.

We also had to handle the reverse case. If a transferred ticket names someone who already exists in the CRM, the integration associates the existing record rather than creating a near-duplicate. Contact deduplication is where most CRM implementations quietly degrade, and events are one of the highest-volume sources of new contact records in a member organisation.

What reporting does a Humanitix and HubSpot integration unlock?

With attendance and orders stored in HubSpot, teams can report attendance by member type, repeat attendance over 12 months, revenue by event format, and registration-to-attendance gaps.

The integration was the plumbing. The dashboards were the point.

With attendance and order data both living natively in the CRM, alongside membership category, renewal date and company association, the team can now answer questions that previously required a data project. Attendance by member type. Repeat attendance across a rolling twelve months. Revenue by event format. The gap between registrations and actual attendance, broken down by event type.

Because orders associate to companies as well as contacts, the organisation can also see engagement at the member firm level rather than just the individual level. For a peak body or industry association whose members are organisations rather than people, that view was the one that changed conversations.

Where should you start with an events CRM integration?

Start with three decisions: which events need a specialist platform, which HubSpot object holds which data, and which identifier never changes.

Decide which events genuinely need a specialist platform and which can run natively in the CRM. Decide which object holds which part of your event data before anyone writes code. Then design your matching logic around the identifier that doesn't change.

In events, that is almost never the attendee's name.

Frequently asked questions

Can HubSpot track whether someone attended a full session?

Yes. HubSpot's Marketing Events API supports registered, attended and cancelled states, and accepts optional joined and left timestamps, so you can distinguish someone who sat through a full session from someone who dropped off after a few minutes.

Is it safe to re-run an events sync into HubSpot?

For attendance, yes. HubSpot's attendance endpoints are idempotent, meaning safe to run repeatedly without creating duplicates, provided the contact ID and interaction timestamp haven't changed.

What happens to the original registrant when a Humanitix ticket is transferred?

With a ticket ID match, the existing registration is reassigned to the new ticket holder and the original registrant is marked as cancelled where appropriate, so the audit trail survives and attendance isn't double counted.

Should paid events run in HubSpot or a ticketing platform?

Events that need multi-tier ticketing, discount codes, refunds, waitlists or on-site check-in are better kept in a specialist platform such as Humanitix, with the data synced into HubSpot. Free webinars and member working groups can run natively in HubSpot.

Talk to us about connecting your ticketing platform to HubSpot.