HubSpot

Sync registrations and check-ins to HubSpot contacts and Marketing Events.

Sync your event registrations and check-ins 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 Registered state. 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.

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 subscriptionWorks with Eventship?
Marketing Hub EnterpriseYes
Marketing Hub ProfessionalYes
Marketing Hub Starter, Free CRMNo — 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.

  1. Go to your host dashboard → Integrations tab → click Connect on the HubSpot card
  2. 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
  3. 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.read and crm.objects.contacts.write — read existing contacts and upsert new ones
    • crm.objects.marketing_events.read and crm.objects.marketing_events.write — create the Marketing Event for each Eventship event and write subscriber state changes
    • oauth — 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:

  1. Go to the Integrations tab in your host dashboard
  2. Click Disconnect on the HubSpot card
  3. 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. Disconnect the HubSpot card on Eventship, then Connect again and approve all requested scopes.

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.