HubSpot
Sync registrations, check-ins, and newsletter signups to HubSpot contacts and Marketing Events.
Sync your event registrations, check-ins, and newsletter signups straight into HubSpot. Every confirmed attendee shows up as a HubSpot Contact and is attached to a Marketing Event with their registered/attended status, so your sales and marketing team can see exactly which Eventship events each person has registered for and attended without leaving HubSpot.
What gets synced
When someone registers for one of your events, Eventship writes the following to your HubSpot portal:
- Contact — we upsert by email. If a contact with that email already exists in your portal, we use that record (and won't overwrite existing first/last name or phone with empty values). Otherwise we create a new contact.
- Marketing Event subscriber state — the contact is added to a HubSpot Marketing Event with the
Registeredstate. The Marketing Event is created on demand the first time HubSpot needs it, using your event's title, dates, URL, description, and cancelled flag.
When the attendee checks in at your event:
- Marketing Event subscriber state flips to
Attended.
This means anyone on your sales or marketing team can open a contact in HubSpot and see exactly which events that person has registered for and attended — directly inside HubSpot, no context-switching needed.
Newsletter signups
People can join your update list without registering for an event, and that syncs here too: we upsert them as a Contact, matched by email, exactly as we would for a registration. No Marketing Event is involved, because they haven't registered for anything.
We deliberately leave lifecycle stage alone on these contacts. Lifecycle stage only moves forward in HubSpot's UI, but the API will happily move it backwards, so stamping "subscriber" on a signup would demote an existing customer or opportunity the moment they joined a host's newsletter. Getting the contact into your portal is the value; classifying it stays your workflow's call.
This covers every way a person can join the list:
- The newsletter signup widget you embed on your own website
- The email capture on your Eventship site, including the call-to-action block on a page you built in the website builder. It syncs whether or not the person is signed in to Eventship.
- Following your host page
- Creating an account on your own white-label site
- Ticking the "join the community" box on one of your forms, when that form offers it
- Starting a guest membership checkout, which puts the buyer on your list as it resolves their account
- Turning email updates back on after previously switching them off
Someone who is already on your list with updates switched on is not pushed again, so repeat sign-ups don't re-send an unchanged record.
Before you connect
HubSpot's Marketing Events API is available on Marketing Hub Professional and Enterprise subscriptions. You'll also need permission to install apps and authorize OAuth in your HubSpot account.
| HubSpot subscription | Works with Eventship? |
|---|---|
| Marketing Hub Enterprise | Yes |
| Marketing Hub Professional | Yes |
| Marketing Hub Starter, Free CRM | No — Marketing Events isn't included |
If you're on Starter or the free CRM, the integration won't work — you'd need to upgrade to Marketing Hub Professional before connecting. (Contacts sync would still work technically, but Marketing Event state changes — the part that makes attendance reportable — require the higher tier.)
Connect HubSpot
Connecting HubSpot is a single step — there's no per-org install, just an OAuth handshake.
- Go to your host dashboard → Integrations tab → click Connect on the HubSpot card
- You'll be redirected to HubSpot to choose which portal to connect (if you have access to more than one) and approve the requested scopes
- After you approve, you'll be redirected back to Eventship and the card will show Connected
The connection is at the host level, not per-event. Once connected, every future registration and check-in for that host's events syncs automatically.
If you manage multiple hosts on Eventship, each one connects separately — they can point to the same HubSpot portal or to different portals.
Permissions
- On Eventship: whoever connects the integration must be an owner or admin of the host
- On HubSpot: a user with permission to install/authorize apps. The OAuth approval requests these scopes:
crm.objects.contacts.readandcrm.objects.contacts.write— read existing contacts and upsert new onescrm.objects.marketing_events.readandcrm.objects.marketing_events.write— create the Marketing Event for each Eventship event and write subscriber state changesoauth— required by HubSpot to issue and refresh the connection's access token
How the Marketing Event is created
You don't need to set up Marketing Events in HubSpot ahead of time. The first time Eventship sends a registration for one of your events, HubSpot looks up the event by your Eventship event id. If it hasn't seen that event before, HubSpot calls back to Eventship to fetch the event's metadata (title, dates, URL, description, cancelled status) and creates the Marketing Event automatically. From then on, all registrations and check-ins for that event reuse the same Marketing Event.
Monitor sync status
Open your event in the dashboard, click Manage, click Sync, then click HubSpot. The HubSpot sub-drawer shows live sync stats for that event:
- How many registrations have synced successfully
- How many are pending
- How many failed (with the error from HubSpot)
- How many have been marked as attended
If a sync fails — for example, because of a HubSpot validation error or a transient outage — you can click Retry on the failed row to re-queue it. Most failures are transient and clear up on their own; the retry button is there for the cases that don't.
If you connect HubSpot for the first time on a host that already has events with registrations, Eventship will backfill those existing attendees in the background — you don't need to do anything.
Disconnect HubSpot
Disconnecting stops all future syncing for that host's events. To disconnect:
- Go to the Integrations tab in your host dashboard
- Click Disconnect on the HubSpot card
- Confirm
Eventship revokes its refresh token at HubSpot and deletes the stored credentials. Records that were already synced remain in HubSpot — disconnecting only stops future writes. Reconnecting later picks up where you left off.
You can also revoke access from inside HubSpot under Settings → Integrations → Connected Apps by removing Eventship. The next time we try to sync, the call will fail and the integration will show as disconnected on Eventship.
Security & data flow
- Connections use OAuth 2.0 — Eventship never sees or stores your HubSpot password
- Refresh tokens are scoped to the host that connected them — one connection per host, with no cross-host visibility
- All API calls go through Eventship's backend, never directly from the browser, so your credentials are never exposed to attendees or to other hosts
- Each sync is queued asynchronously so a slow HubSpot response can't block someone from registering for your event
- The HubSpot callback that fetches Marketing Event metadata is signed and portal-bound, so a different HubSpot portal can't request metadata for events that belong to a different Eventship host
- Failures are logged with the HubSpot error message and surfaced in the sync status panel
Troubleshooting
"HubSpot integration is not configured on this environment." HubSpot isn't set up on your Eventship environment yet. Email [email protected].
The Connect button does nothing / OAuth fails immediately. Make sure pop-ups are allowed for eventship.com and you're signed into the HubSpot portal you want to connect in another tab.
Registrations show as failed with "MISSING_SCOPES" or "Authentication credentials provided do not have access". The connecting user didn't grant one of the required scopes, or scopes were revoked in HubSpot afterwards. Click Reconnect on the HubSpot card and approve all requested scopes. Reconnect re-runs authorization on the existing connection, so there's no need to disconnect first, and disconnecting would revoke the grant and clear your setup for a problem re-authorizing fixes on its own.
Registrations show as failed with "RATE_LIMIT" or HTTP 429. Eventship will retry automatically — no action needed. HubSpot rate-limits at the portal level; large bulk imports may take a few minutes to drain.
Sync stopped working out of nowhere. The most common cause is that the HubSpot user who connected the integration was deactivated, or the OAuth grant was revoked from HubSpot's Connected Apps page. Reconnect with an active user.
A contact I expected to be matched got created as a new one. HubSpot's contact match is on the email address only. If the attendee registered with a different email than the one already in your HubSpot portal, you'll get a new contact rather than an update to the existing one. HubSpot's own contact deduplication rules apply.
The Marketing Event hasn't appeared in HubSpot yet. It's created on demand when the first sync runs. If you've never had a registration come through, the Marketing Event won't exist yet. Once the first registration syncs, you'll find it in HubSpot under Marketing → Email → Marketing Events (or the equivalent path for your Marketing Hub tier).
Questions?
Email [email protected]. We can help you map your event flow into your HubSpot setup and troubleshoot any sync issues.
Was this article helpful?
Let us know if this article answered your question.