Skip to main content

CRM Integration

Katie Supporté avatar
Written by Katie Supporté
Updated over a week ago

Alta supports native CRM integrations with HubSpot, Salesforce and PipeDrive through a secure OAuth-based connection. Once connected, you can configure your CRM sync settings to fit your GTM workflow.


Authentication

We use OAuth 2.0 to connect to your CRM account. This ensures secure, permission-based access and allows you to manage or revoke access at any time directly from your CRM settings.
The required scopes are listed below.

Deduplication Settings

Deduplication prevents sourcing duplicate records from your CRM. You can enable deduplication at the contact, company, lead, or deal level.

1. Contact-Level Deduplication (Email-based)

  • Prevents sourcing of prospects that already exist as contacts in HubSpot/Salesforce using the same email address.

  • Optional filter rules can be applied to restrict deduplication logic further (e.g., only dedupe if lifecycle_stage = customer).

2. Company-Level Deduplication

  • When enabled, prospects from the same company domain already in your CRM will be excluded.

  • Additional filters can be configured to refine this logic (e.g., industry, size, etc.).

Push Settings

Katie can automatically push contacts, companies, and activities to your CRM when certain outbound actions occur.

Supported Push Triggers:

Trigger

Description

First Outreach

When Katie sends the first email/message

LinkedIn Connection Accepted

When a LinkedIn request is accepted

Positive Reply

When a reply is marked as positive

Phone Fetched

When phone number is enriched

Each event can have a field mapping applied.

There are two types of field mappings.
Static - A const value supported by your field type (for example, if it's an enum - you can only choose from the enums values)
Dynamic - A mapping to a dynamic value we have on the prospect (for example the prospects seniority)

Additionally, on each field mapping you can choose "Send on update" true or false. Meaning if we also map the field on an update request or only when firstly creating the entity in the CRM.

Example Field Mapping:
Field = Lifecycle Stage
Type = Static
Value = preMQL

Note: Field values are required when sync is enabled. Empty values will result in a an error.

Contacts Push Configuration

  • Can be triggered by events (first outreach, LinkedIn accepted, etc.)

  • Each trigger can have its own field mapping configuration

Leads Push Configuration (only for SalesForce)

  • Can be triggered by events (first outreach, LinkedIn accepted, etc.)

  • Each trigger can have its own field mapping configuration

Companies Push Configuration

  • If enabled, companies will be created if they don’t already exist

  • You can add your desired field mapping.

Email Activity Push

  • If enabled, email activities are logged inside your CRM with a link to the prospect matching entity.

Update Existing Data

  • When enabled, Katie updates existing CRM records with the latest info, without creating duplicates.
    It searches for a matching contact/lead by email or phone number.

Prospect "Sync to CRM" action

Pushes the prospect as a contact/lead (by configuration) and company (if needed) to the CRM connected.

HubSpot Required Scopes

To enable full CRM integration between Alta and HubSpot, the following OAuth scopes must be granted during authentication:

oauth

crm.lists.read

crm.lists.write

crm.objects.companies.read

crm.objects.companies.write

crm.objects.contacts.read

crm.objects.contacts.write

crm.objects.deals.read

crm.objects.deals.write

crm.objects.owners.read

crm.schemas.companies.read

crm.schemas.companies.write

crm.schemas.contacts.read

crm.schemas.contacts.write

crm.schemas.deals.read

crm.schemas.deals.write

Salesforce Required Scopes

To enable full CRM integration between Alta and HubSpot, the following OAuth scopes must be granted during authentication:

openid

refresh_token
api

Did this answer your question?