# Salesforce Sync (HockeyStack to Salesforce push)

#### &#x20;<a href="#block-0e3d8efb0ddc4c15b7b25127f60a100d" id="block-0e3d8efb0ddc4c15b7b25127f60a100d"></a>

Salesforce sync add-on enables you to push touchpoints from HockeyStack to Salesforce. This allows for unified reporting and to easily track where any account or person is in the buyer journey within a single object in Salesforce.&#x20;

We create and push the following 4 objects to Salesforce as a part of the sync:

* HockeyStack Company (HS\_Company\_\_c)
* HockeyStack Person (HS\_Person\_\_c)
* HockeyStack Stage(HS\_Stage\_\_c)
* HockeyStack Touchpoint(HS\_Touchpoint\_\_c) — New Activations of this feature will be Disabled as of December 25, 2025.&#x20;

Before we enable Salesforce Sync you must grant both Read and Write access for our Salesforce integration user. You can read more about how to grant permissions [here](/account-intelligence/getting-started/salesforce/salesforce-permissions.md).

After permissions are set, you can enable the Salesforce Sync in the same configuration page (Atlas > Export > Salesforce).

Once the feature is enabled, we’ll begin the sync promptly and it may take up to 24 hours to see the synced data on your Salesforce instance.

With the Salesforce Sync, we create 4 custom objects.

**HockeyStack Company (HS\_Company\_\_c)**

**HS\_Company\_\_c** mirrors all the company data, similar to the **Account** object on Salesforce. This is a custom object that represents the merged company data in HockeyStack.

**Schema**

| Label                         | API name                 | Type               | Description                              |
| ----------------------------- | ------------------------ | ------------------ | ---------------------------------------- |
| HockeyStack Company ID        | HS\_Company\_Id\_\_c     | Text (External ID) | ID of the company                        |
| HockeyStack Company Name      | HS\_Company\_Name\_\_c   | Text               | Name of the company                      |
| HockeyStack Company Domain    | HS\_Company\_Domain\_\_c | Text               | Main domain of the company               |
| HockeyStack Company Timestamp | HS\_Timestamp\_\_c       | DateTime           | Last modified date of company properties |

When creating **HS\_Company\_\_c** object, we also create a new custom relation field called **HockeyStack Related Company(HS\_Related\_Company\_\_r)** inside the **Account** object\*\*.\*\*

At HockeyStack, we keep track of the source and the identifiers of all the companies from different data sources/integrations that are merged. During the sync process, we take the ID of the **Account** object that was merged to a **HS\_Company\_\_c** object and build a relation between the **Account** object and the **HS\_Company\_\_c** object.

**HockeyStack Person (HS\_Person\_\_c)**

**HS\_Person\_\_c** represents the merged individual profiles of your **Leads** and **Contacts**.

**Schema**

| Label                        | API name               | Type     | Description                       |
| ---------------------------- | ---------------------- | -------- | --------------------------------- |
| HockeyStack Company          | HS\_Company\_\_r       | Lookup   | Reference to individual’s company |
| HockeyStack Contact Name     | HS\_Contact\_Name\_\_c | Text     |                                   |
| HockeyStack Person Timestamp | HS\_Timestamp\_\_c     | DateTime |                                   |
| HockeyStack Identity         | HS\_Identity\_\_c      | Text     | Email                             |

Upon creating **HS\_Person\_\_c** object, we create a new custom relation field inside both **Lead** and **Contact** standard objects. Similar to **HS\_Related\_Company\_\_r**, we create a custom relation field named **HockeyStack Related Person(HS\_Related\_Person\_\_r).**

**HockeyStack Stage(HS\_Stage\_\_c)**

**HS\_Stage\_\_c** mirrors the stages that is defined on the HockeyStack platform. The definitions for these goals can be seen in settings (Settings > Data Categorization > Funnel Stages).

We sync the results of these defined stages to Salesforce.&#x20;

**Schema**

| Label                       | API name                         | Type     | Description                                                                                                                                                                                                                                                                         |
| --------------------------- | -------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| HockeyStack Person          | HS\_Person\_\_r                  | Lookup   | Relation to related Person                                                                                                                                                                                                                                                          |
| HockeyStack Company         | HS\_Company\_\_r                 | Lookup   | Relation to related company                                                                                                                                                                                                                                                         |
| HockeyStack \<Object Type>  | HS\_Related\_\<Object Type>\_\_r | Lookup   | Relation to related object. For example, if the Stage object is derived from an **Opportunity** object, the Label(API name) will be **HockeyStack Opportunity(HS\_Related\_Opportunity)** and will create a relation between the SFDC **Opportunity** object and **HS\_Stage\_\_c** |
| HockeyStack Stage Name      | HS\_Stage\_Name\_\_c             | Text     | Name of Stage                                                                                                                                                                                                                                                                       |
| HockeyStack Stage Timestamp | HS\_Timestamp\_\_c               | DateTime | Timestamp of the Stage                                                                                                                                                                                                                                                              |
| HockeyStack Identity        | HS\_Identity\_\_c                | Text     | Email                                                                                                                                                                                                                                                                               |
| HockeyStack User ID         | HS\_Who\_Id\_\_c                 | Text     | UserID in HockeyStack                                                                                                                                                                                                                                                               |
| HockeyStack Related Record  | HS\_Related\_Record\_\_c         | Text     | Related record ID in HockeyStack                                                                                                                                                                                                                                                    |

**HockeyStack Touchpoint(HS\_Touchpoint\_\_c)**

Similar to **HS\_Stage\_\_c**, the touchpoint objects will reflect the touchpoint definitions defined on the HockeyStack platform. The touchpoint definitions can be configured in Settings (Settings > Data Categorization > Touchpoints). Each touchpoint property will be a custom field in **HS\_Touchpoint\_\_c**.&#x20;

Please find an example below.

<figure><img src="/files/RFIgOXNFmZ2lIRw5h5yE" alt=""><figcaption></figcaption></figure>

Here the touchpoint uses ‘Marketing Channels’ and ‘Campaign’ as touchpoint properties. Then, the resulting **HS\_Touchpoint\_\_c** object will have the following schema.

| Label                 | API name                | Type     | Description                          |
| --------------------- | ----------------------- | -------- | ------------------------------------ |
| HockeyStack Company   | HS\_Company\_\_r        | Lookup   | Relation to related company          |
| HockeyStack Person    | HS\_Person\_\_r         | Lookup   | Relation to related person           |
| Marketing Channels    | HS\_\<property ID>\_\_c | Text     | Marketing Channels                   |
| Campaign              | HS\_\<property ID>\_\_c | Text     | Campaigns                            |
| HockeyStack Timestamp | HS\_Timestamp\_\_c      | DateTime | Timestamp of the touchpoint          |
| HockeyStack Identity  | HS\_Identity\_\_c       | Text     | Internal identity within HockeyStack |
| HockeyStack User ID   | HS\_Who\_Id\_\_c        | Text     | User ID within HockeyStack           |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hockeystack.com/integrations/crms/salesforce/salesforce-sync-hockeystack-to-salesforce-push.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
