Sync registrations and check-ins to HighLevel contacts with event tags.
Sync your event registrations and check-ins into HighLevel (formerly GoHighLevel). Every confirmed attendee shows up as a HighLevel Contact with two event-scoped tags — one for registering and one for checking in — so you can build smart lists, workflows, and email campaigns around your Eventship events without leaving HighLevel.
When someone registers for one of your events, Eventship writes the following to your HighLevel sub-account:
{event-slug}-registered is added to the contact. Existing tags on the contact are left untouched.When the attendee checks in at your event:
{event-slug}-checked-in is added to the same contact. The -registered tag stays on, so you can build a smart list for "registered AND NOT checked-in" to surface no-shows.The event slug is the URL-safe identifier for your event (the same string in your event's Eventship URL). It stays stable even if you rename the event.
The HighLevel integration is part of Eventship Pro. You'll need an active Pro subscription on the host that's connecting.
You'll also need:
The integration installs into one sub-account at a time. If you're an agency with multiple sub-accounts, you'll connect each Eventship host to one HighLevel sub-account separately.
The connection is at the host level, not per-event. Once connected, every future registration and check-in for that host's events syncs to HighLevel automatically — there's no per-event wiring to do.
If you manage multiple Eventship hosts, each one connects separately and can point to the same HighLevel sub-account or to different ones.
Eventship requests the minimum scopes needed to write contacts and tags:
contacts.readonly — look up an existing contact by emailcontacts.write — upsert the contact and apply event tagsThat's it. We don't request access to opportunities, calendars, workflows, conversations, or any other part of your HighLevel data.
Two tags are written per event:
| Trigger | Tag added |
|---|---|
| Confirmed registration | {event-slug}-registered |
| Scanner check-in | {event-slug}-checked-in |
So an event with the slug founder-happy-hour-q3 produces these tags:
founder-happy-hour-q3-registeredfounder-happy-hour-q3-checked-inYou can then build a HighLevel smart list, workflow, or campaign that filters on either tag. Common patterns:
{event}-checked-in{event}-registered without {event}-checked-in-checked-in tagsTags accumulate. We don't strip a tag if a registration is later cancelled or refunded, and we don't strip tags when you disconnect Eventship — they're additive and the cleanup is your call (HighLevel's bulk-tag manager makes it a one-click job if you ever want to remove them).
The first version of the HighLevel integration is forward-only: from the moment you connect, every new registration and check-in syncs. Past attendees from events that already happened (or already have registrations) are not backfilled into HighLevel.
If you want past attendees in HighLevel, export them from the Eventship attendee list and import the CSV into HighLevel directly.
Open your event in the dashboard, click Manage, click Sync, then click HighLevel. The HighLevel sub-drawer shows live sync stats for that event:
If a sync fails — for example, because of a HighLevel validation error or a transient outage — 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 rest.
Disconnecting stops all future syncing for that host's events. To disconnect:
Eventship deletes the stored credentials. Contacts and tags already in HighLevel stay where they are — disconnecting only stops future writes. Reconnecting later picks up from new registrations going forward (it does not retroactively sync anything that happened while disconnected).
You can also remove Eventship from inside HighLevel under your sub-account's Settings → Marketplace. The next time we try to sync, the call will fail and the integration will show as disconnected on Eventship.
The Connect button does nothing / OAuth fails immediately. Make sure pop-ups are allowed for eventship.com and you're signed into the HighLevel sub-account you want to connect in another tab.
Registrations show as failed with "Connection lost — please reconnect" or "Scopes are missing — please reconnect". Your HighLevel access has been revoked or expired. Disconnect the HighLevel card on Eventship, then Connect again.
Registrations show as failed with HTTP 429 / "rate-limited". Eventship will retry automatically — no action needed. HighLevel rate-limits at the sub-account level; large bursts may take a few minutes to drain.
A new contact got created when I expected an existing one to be matched. HighLevel matches contacts by email only. If your sub-account has the "Allow Duplicate Contact" setting enabled, email-based deduplication is bypassed and you'll get a duplicate. Turn off that setting in HighLevel to have Eventship's upserts match cleanly.
My event tag doesn't appear on the contact. Check that the registration is in Confirmed status. Pending or unpaid registrations don't sync; tags are only applied on confirmation.
I disconnected and reconnected — past attendees didn't come back. That's expected. Sync is forward-only; reconnecting only resumes for new registrations and check-ins. To get past attendees in, export them from Eventship and import the CSV into HighLevel.
I don't see HighLevel in my Integrations tab. The HighLevel integration is Pro-only. Upgrade to Eventship Pro under Account → Plan to unlock it.
Email [email protected]. We can help you map your event flow into your HighLevel setup and troubleshoot any sync issues.
Let us know if this article answered your question.