Skip to main content

Setting Up a HubSpot Integration in Your Event

This page contains the setup guide and reference information for the HubSpot integration.

HubSpot is a customer relationship management (CRM) platform widely used by event organizers and associations to manage Contacts, Companies, and event registrations. The Swapcard integration imports HubSpot Contacts as Swapcard People (Attendees, Speakers) and HubSpot Companies as Swapcard Exhibitors, scoped to a specific event via a custom Swapcard Event object in HubSpot.

Prerequisites

  • A HubSpot account on a premium plan (required to create Custom Objects)

  • Admin-level permissions on the HubSpot account

  • A configured Swapcard Event custom object in HubSpot, with associations to Contacts and Companies (see Setting up your HubSpot account)

  • A HubSpot Private Legacy App with read scopes for Contacts, Companies, and Custom Objects, and its Access Token copied (see Setting up your HubSpot account)

Setting up your HubSpot account

Before connecting Swapcard, your HubSpot account needs two pieces of configuration:

  1. A Swapcard Event custom object with associations to Contacts and Companies — used to scope which records are imported into a given Swapcard event.

  2. A Private Legacy App with the right scopes — used to authenticate Swapcard against the HubSpot API.

Part 1: Create the Swapcard Event custom object

The Swapcard integration uses a HubSpot custom object called Swapcard Event to scope event data. Contacts associated with a Swapcard Event record are imported as Swapcard People, and associated Companies are imported as Swapcard Exhibitors.

Step 1 — Open HubSpot Settings

Log in to your HubSpot account and click the Settings gear icon in the top navigation bar.

Step 2 — Navigate to Custom Objects

In the left sidebar, go to Data Management → Objects → Custom Objects.

Step 3 — Create the Custom Object

Click the Create custom object button.

Step 4 — Configure object properties

Fill in the following fields, then click Create:

Field

Value

Object name (Singular)

Swapcard Event

Object name (Plural)

Swapcard Events

Internal name

swapcard_events

Primary display property

name

Property Type

Single-line text

Important: the Internal name must be swapcard_events exactly. The HubSpot API exposes this object as p_swapcard_events, which is what the Swapcard sync queries.

Step 5 — Set up associations

From the Swapcard Events object view, select the Associations tab.

Step 6 — Create the required associations

Create the following two associations:

  • Swapcard Events → Contacts

  • Swapcard Events → Companies

Step 7 — Create the first Swapcard Event record

Use the Search HubSpot bar to find Swapcard Events and open the object.

Step 8 — Add a new event

Click Add swapcard events, then select Create new.

Step 9 — Name the event

Enter the name of your event, then click Create Swapcard Event. This record represents your event in HubSpot — Swapcard will list it when you connect the integration and ask you to pick which event to sync.

Step 10 — Associate Contacts and Companies

Open the event record. From this view, you can associate Contacts and Companies to the event.

Contacts associated with the event will be imported as Swapcard People (Attendees, Speakers). Companies associated with the event will be imported as Swapcard Exhibitors. Records that are not associated with the Swapcard Event record are ignored by the sync.

Part 2: Create a Private Legacy App for API access

Swapcard authenticates to HubSpot using a Private Legacy App access token.

Step 1 — Open the Development menu

In the HubSpot left sidebar, select Development.

Step 2 — Navigate to Legacy Apps

From the Development menu, select Legacy Apps.

Step 3 — Select app type

On the Create Legacy App view, select Private.

Step 4 — Configure basic info

On the Basic info tab, fill in:

Field

Value

Name

Swapcard-Access

Description

Swapcard Access

Step 5 — Add the required scopes

Select the Scopes tab and click Add new scope. Add read scopes for the following objects:

  • Contacts (crm.objects.contacts.read)

  • Companies (crm.objects.companies.read)

  • Custom Objects (crm.objects.custom.read)

Without all three read scopes the integration cannot list events, contacts, or companies and the connection test will fail.

Step 6 — Create the app

Click Create app, then Continue creating to confirm.

Step 7 — Copy the access token

Go to the Auth tab on the Swapcard-Access app, click Show token, then Copy. This token is what you will paste into Swapcard Studio in the next section.

Important: treat this token like a password. It grants read access to Contacts, Companies, and Custom Objects on your HubSpot account.

Setup guide

Step 1: Set up the HubSpot integration in Swapcard

  1. Navigate to your Event page within the Communities section.

  2. In the left navigation bar, go to Event Builder, then select Integrations.

  3. On the integration selection page, choose HubSpot from the list of integrations.

  4. To activate the integration, you will need:

    1. API Key — the access token of the Swapcard-Access Private Legacy App (see Part 2)

  5. Once connected, select the Swapcard Event record that corresponds to this Swapcard event. Swapcard lists every record from the Swapcard Events custom object on your HubSpot account.

  6. Enable the Contacts and/or Companies objects and configure field mappings — choosing which HubSpot properties map to which Swapcard fields or custom fields.

Your HubSpot event has been successfully linked with your Swapcard event.

You have the flexibility to adjust your integration settings according to the specific data requirements. It's crucial to highlight that the synchronization will only begin when you manually start the integration process and finish the necessary mapping.

Supported sync modes

The HubSpot integration supports the following sync modes:

Feature

Supported?

Yes

Yes

On the first sync (no previous successful sync), Swapcard fetches every Contact and Company associated with the configured Swapcard Event record. On subsequent syncs, only records modified since the last successful sync are fetched, using HubSpot's hs_lastmodifieddate / lastmodifieddate filters.

In addition, when HubSpot webhook subscriptions are enabled for contact.* and company.* events, Swapcard processes those updates in near real-time — each notified record is re-fetched, verified to still be associated with the Swapcard Event, and re-synced.

Supported streams

This integration supports two streams: Contacts and Companies, scoped to a single Swapcard Event custom object record on the HubSpot side.

HubSpot object

Maps to

contacts

Swapcard People (Attendees, Speakers)

companies

Swapcard Exhibitors

Only Contacts and Companies that are associated with the selected Swapcard Event record in HubSpot are imported. Records without that association are ignored.

Capturing deleted records

The HubSpot integration does NOT capture deletions. When a record is deleted in HubSpot (or unassociated from the Swapcard Event), it will not be removed from Swapcard. Deleted records must be MANUALLY removed from Swapcard.

Stream dependencies

The HubSpot integration uses the HubSpot record ID (hs_object_id) as the primary identifier for both Contacts and Companies. This value is stored in the Client Id field on the People or Exhibitor record on the Swapcard side.

Streams supporting fields

Each stream exposes a set of standard fields plus all custom HubSpot properties of supported types. Supported property types are: string, number, date, datetime, bool. HubSpot properties whose label contains an underscore are excluded from the field picker (these are typically internal / system properties).

Contacts

These fields come from the HubSpot Contact properties. Any custom property defined on the Contact object in HubSpot (matching the supported types above) is automatically available in the Swapcard mapping UI.

Provider Field

Mapping Label

Type

firstname

First Name

string

lastname

Last Name

string

email

Email

string

Default Swapcard mappings:

Provider Field

Swapcard Field

firstname

first_name

lastname

last_name

email

email

Companies

These fields come from the HubSpot Company properties. Any custom property defined on the Company object in HubSpot (matching the supported types above) is automatically available in the Swapcard mapping UI.

Provider Field

Mapping Label

Type

name

Name

string

description

Description

string

Default Swapcard mappings:

Provider Field

Swapcard Field

name

name

description

description

Limitations & Troubleshooting

Connector limitations

Association-based filtering

The HubSpot integration only imports records associated with the selected Swapcard Event custom object record. Contacts and Companies that exist in HubSpot but are not associated with that event will not be imported, even if they otherwise match a sync filter.

Incremental sync still requires association lookup

Because the HubSpot Search API cannot filter associated records by last-modified date in a single call, incremental syncs first fetch all records modified since the last sync and then verify, one record at a time, whether each is still associated with the Swapcard Event. On accounts with very high modification volume this verification step can be slow.

Connection test scope

The integration validates credentials by calling the p_swapcard_events endpoint. If the Custom Objects read scope is missing on the Private Legacy App, the connection test will fail even when Contacts/Companies scopes are present.

Enhancement

Please be aware that any enhancements to this integration, which encompass any requirements not covered by the existing integration state, will be subject to custom development processes and associated costs.

Changelog

Version

Date

Subject

1.0.0

2026-04-28

Initial release

Read more

Did this answer your question?