HubSpot

HubSpot is a CRM platform with all the software, integrations, and resources you need to connect your marketing, sales, content management, and customer service.

Authentication methods

Private App

This method uses the Access Token of a private app to authenticate.

To generate an access token, go to:

  1. Settings

  2. Account Setup -> Integrations -> Private Apps

  3. Create a private app, give it any name, logo and description you like (a descriptive name like "Omnata Sync" is best practise)

  4. Add Scopes for Omnata to access objects and read/write:

    • Expand the CRM section > Read column, check crm.objects.custom and crm.schemas.custom

    • For inbound syncs; under Standard, check crm.export

    • For outbound syncs; under Standard, check crm.import

    • Read and/or Write for each of the objects you're syncing to/from

  5. Click “Commit changes”

Inbound Syncs

Hubspot offers direct data sharing to access your data on Snowflake as part of a HubSpot platform add-on called Operations Hub. If this doesn't suit your budget or use case, Omnata's Hubspot plugin provides inbound syncing to Snowflake via direct API integration.

Supported Sync Strategies

  • Full Refresh

  • Incremental

There are two types of incremental sync:

  1. Incremental (standard server-side, where API returns only the data updated or generated since the last sync)

  2. Client-Side Incremental (API returns all available data and connector filters out only new records)

Supported Streams

The following objects are supported:

Outbound Syncs

Supported Sync Strategies

  • Create

  • Upsert

  • Update

Supported Targets

The following objects are supported:

  • Contacts

  • Companies

  • Deals

  • Notes

  • Tickets

  • Products

  • Line Items

  • Quotes

  • Custom Objects

Associations

Hubspot Associations can be created/updated in a variety of different ways.

When linking to other objects, you can use the Hubspot-generated Record ID, or any Alternate ID defined on that object. For example, when uploading Companies, you could link to Contacts via:

  • The hubspot object ID, if you know it via an inbound sync (This appears as "<object name> Association by Record ID(s)" in the field mapper)

  • The standard email field (This appears as "<object name" Association by Alternate ID(s): <field name>" in the field mapper)

  • A custom field which is unique (via the "Require each value for this property to be unique" checkbox). (This also appears as "<object name" Association by Alternate ID(s): <field name>" in the field mapper)

You can also choose between creating unlabelled and labelled associations.

Whenever you want to create associations, you must always use an OBJECT column. Each key and value in the object represents the target object and the label to use (or null for an unlabelled association).

In the below examples, on the association columns are shown for brevity, but they normally accompany the setting of regular field values like first name, last name, email etc.

Same-object associations

Same-object associations exist between objects of the same type (e.g. contacts to other contacts)

CONTACTS source table:

CONTACT_NUMBEROTHER_CONTACT_NUMBERSComment

1

{

2: 'Friend',

3: 'Friend'

}

Contacts with CONTACT_NUMBERs of 2 and 3 get associated with the label "Friend".

2

null

No associations

3

{ 5: null }

Contact with CONTACT_NUMBER 5 gets an unlabelled association

Here, the contacts are being identified via a unique numeric field.

You can mix and match the way you identify them:

Contact IDEMAILOTHER_CONTACT_EMAILSComment

1

simon@gmail.com

{ 'john@gmail.com':'Friend', 'susan@outlook.com': 'Friend' }

Contact with Email address "john@gmail.com" gets associated with the label "Friend". Contact with Email address "susan@outlook.com" gets associated with the label "Colleague"

2

andrew@gmail.com

null

No associations

3

paul@gmail.com

{ 'simon@gmail.com': null }

Contact with Email address "simon@gmail.com" gets an unlabelled association

With same-object associations, each record must have all its associated using the same label (or all be unlabelled). This requirement is for loading efficiency, so that we can perform the associations via a single import task. If you have a requirement for same-object associations to have multiple labels per record, please contact support@omnata.com

Other-object associations

Other-object associations exist between objects of different types (e.g. contacts to companies).

These work exactly the same as same-object associations, except that each object is free to use a mix of labels when creating associations.

COMPANIES source table:

COMPANY_DOMAINASSOCIATED_CONTACT_EMAILS

acme.com

{ 'john@gmail.com': 'Employee', 'susan@outlook.com': 'Ex-Employee' }

microsoft.com

null

amazon.com

{ 'simon@gmail.com': null }

Removing Associations

When Omnata creates a labelled association, Hubspot may automatically create an unlabelled association between the same two objects.

In the event that an association between two objects is later removed in the source table, Omnata will automatically remove the association in Hubspot.

When creating an outbound sync, you will see the configuration checkbox "Cleanup Default Associations after Labelled Association removal".

If this option is enabled, Omnata will remove any unlabelled or default object association, but only if all of the labelled associations have been removed.

Last updated