Omnata Product Documentation
  • Omnata Sync for Snowflake
    • What is Omnata Sync for Snowflake?
    • How it works
      • Terminology
      • Branching Mode
      • Sync Directions and Strategies
        • Outbound
        • Inbound
      • Rate Limiting
      • Access Control
      • Notifications
      • Security and Privacy
      • Internal tables
      • Internal Stored Procedures
      • FAQ
    • Step-by-step guides
      • 1. Install the Omnata Sync Engine
      • 2. Install the Omnata Plugin
      • 3. Configure the Plugin
      • 4. Create a connection
      • 5. Create a sync
    • Apps
      • Aerobotics
        • 📘Release History
      • Airtable
        • 📘Release History
      • Amazon Ads
        • Privacy Notice
      • ApprovalMax
        • 📘Release History
      • Bamboo HR
        • 📘Release History
      • Clockify
        • 📘Release History
      • Contentful
        • 📘Release History
      • GitHub
        • 📘Release History
      • Github
      • Google Ads
        • 📘Release History
      • Google Sheets
        • 📘Release History
      • HubSpot
        • 📘Release History
      • Hubspot
      • Infor Data Lake
        • 📘Release History
      • Jira
        • 📘Release History
      • LinkedIn Ads
        • 📘Release History
      • Mailgun
        • 📘Release History
      • Marketo
        • 📘Release History
      • Meta Marketing
        • 📘Release History
      • Microsoft Ads
        • 📘Release History
      • Microsoft Dynamics 365 Business Central
        • 📘Release History
        • 📘Release History
        • 📘Release History
        • 📘Release History
        • 📘Release History
        • 📘Release History
      • Microsoft Entra ID
        • 📘Release History
        • 📘Release History
        • 📘Release History
        • 📘Release History
      • Microsoft Excel
      • Microsoft SQL Server
        • 📘Release History
      • Monday.com
        • 📘Release History
      • MRPeasy
        • 📘Release History
      • PayHero
        • 📘Release History
      • Pinterest Ads
        • Privacy Policy
      • PostgreSQL
        • 📘Release History
      • Salesforce
        • Salesforce Permissions needed
        • Formula Fields
        • How we use the Salesforce APIs
        • 📘Release History
      • Salesforce Marketing Cloud
        • OAuth for APIs, SFTP for file transfer with GPG on outbound
        • OAuth for APIs, SFTP for file transfer
        • OAuth for APIs, Cloud Storage for file transfer
        • 📘Release History
      • Shopify
        • Outbound sync data structures
        • 📘Release History
      • Slack
        • 📘Release History
      • Tiktok Ads
        • Privacy Policy
      • Typeform
        • 📘Release History
      • Wise
        • 📘Release History
      • Xero
        • 📘Release History
      • Zendesk Support
        • 📘Release History
        • 📘Release History
        • 📘Release History
    • Plugins
      • Anatomy of a Plugin
      • Example Plugins
        • Example Plugin: Slack
        • Example Plugin: Zoho CRM
      • Creating Plugins
      • Advanced Plugin topics
        • Advanced rate limiting / concurrency
        • Custom Jinja filters
        • Custom Record Transformers
        • Dynamic Configuration Forms
        • Test case generation
    • Branching
      • Inbound Sync branching
      • Outbound Sync branching
    • Integrations
      • dbt
        • Validation Tests (coming soon)
    • 📘Release History
  • Omnata Connect for Salesforce
    • Overview
    • Getting Started
      • Install the Salesforce App
      • Connect to your data warehouse
        • Snowflake
        • BigQuery
        • Rockset
        • Firebolt
        • SingleStore (previously MemSQL)
      • Deciding which mode to use
    • Omnata with Salesforce Connect (External Objects)
      • Object Configuration
      • View your data in a list
      • Link to other objects
      • Use in a Report
      • Database schema changes
      • Writing to External Objects
    • Omnata with Salesforce Lightning Components
      • Object Configuration
      • View your data in a list
      • Link to other objects
      • Using the Lightning Component on a page
      • Assigning Permissions
    • Advanced Features
      • Row Level Filtering
      • Multi-Currency handling
        • About Multi-Currency
        • Support in Omnata Connect
        • Apex Features
    • Integrations
      • Datadog
    • Omnata with Salesforce Apex
    • Security
    • Use cases
      • Linked object drill-downs
      • Global Search
      • ERP and historical data
      • Embedded product metrics
    • Best Practices
      • Global Search
      • Change Management
      • Snowflake table design
      • Salesforce page layout
      • Salesforce Caching
Powered by GitBook
On this page
  • Authentication methods
  • Inbound Syncs
  • Supported Sync Strategies
  • Supported Streams
  • Outbound Syncs
  • Supported Sync Strategies
  • Supported Targets
  • Associations
  • Updating Lifecycle Stage
  1. Omnata Sync for Snowflake
  2. Apps

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.

PreviousRelease HistoryNextRelease History

Last updated 2 months ago

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

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_NUMBER
OTHER_CONTACT_NUMBERS
Comment

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 ID
EMAIL
OTHER_CONTACT_EMAILS
Comment

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_DOMAIN
ASSOCIATED_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.

Updating Lifecycle Stage

When updating lifecycle stages, values that do not follow the specific order expected by the lifecycle are silently ignored during import.

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

(Client-Side Incremental)

(Incremental)

(Incremental)

(Incremental)

(Client-Side Incremental)

(including Contact associations) (Incremental)

Records that have been deleted (archived) and stored in HubSpot's recycle bin will only be kept for 90 days, see

(including Contact associations) (Incremental)

(Incremental)

(Incremental)

(Incremental)

(Incremental)

(Incremental)

(Incremental)

(Incremental)

(Client-Side Incremental)

(Client-Side Incremental)

(Incremental)

(Incremental)

(Client-Side Incremental)

(Incremental)

(Incremental)

(Incremental)

(Incremental)

(Client-Side Incremental)

(Client-Side Incremental)

For this reason, it is recommended instead to update another field, and to in turn update the lifecycle stage.

direct data sharing
Operations Hub
Campaigns
Companies
Contact Lists
Contacts
Contacts List Memberships
Deal Pipelines
Deals
response from HubSpot Team
Deals Archived
Email Events
Email Subscriptions
Engagements
Engagements Calls
Engagements Emails
Engagements Meetings
Engagements Notes
Engagements Tasks
Forms
Form Submissions
Goals
Line Items
Marketing Emails
Owners
Products
Property History
Subscription Changes
Tickets
Ticket Pipelines
Workflows
use a workflow
Private app completed