> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Hightouch

> Activate customer data from your warehouse with Hightouch by syncing users and events directly to MoEngage without IT or engineering effort.

## Introduction

[Hightouch](https://hightouch.io/) is a modern data integration platform that enables you to sync customer, product, or proprietary data from your warehouse or data lake to any app of your choice, all without assistance from your IT or engineering teams.

## MoEngage × Hightouch

The MoEngage and Hightouch integration allows you to build better campaigns on MoEngage with up-to-date customer data from your data warehouse. By automatically syncing users and events into MoEngage, you no longer need to worry about data consistency and can focus on building customer experiences.

### Use cases

* Sync data about users into MoEngage to build personalized campaigns.
* Sync Customer Events from Hightouch into MoEngage to keep the events consistent.
* Deliver better experiences by bringing data from other customer touchpoints into MoEngage.
* Sync Audiences from Hightouch to MoEngage for targeting.

## Integration Prerequisites

* Ensure you have access to your Hightouch account.
* The Data API ID and Data API Key are available at **Settings** > **Account** > **APIs**. The Data API ID is the same as the **Workspace ID**. The Data API Key is available in the same screen in the **API Keys** > **Data** section.

## Create MoEngage destination on Hightouch

1. On the Hightouch platform, in the **Destinations** section, click **Add destination**.
2. Select **MoEngage** from the list of available destinations.
3. Provide your MoEngage API ID and API Secret.

   | Field           | Description                                                                                                                                                                                     |
   | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Data API ID** | The Data API ID and the Workspace ID of your MoEngage account are the same. The Workspace ID of your MoEngage account is available at **Settings** > **Account** > **APIs** > **Workspace ID**. |
   | **API Secret**  | API Secret is the Data API Key. The Data API key of your MoEngage account is available at **Settings** > **Account** > **APIs** > **API keys** > **Data** API settings.                         |

   <img src="https://mintcdn.com/moengage/0EdW-QMnfbsLxXT2/images/partner_4776938212116.png?fit=max&auto=format&n=0EdW-QMnfbsLxXT2&q=85&s=b4282b07b301e5878dc465d3bc7101c9" alt="Hightouch MoEngage destination configuration" width="1298" height="890" data-path="images/partner_4776938212116.png" />

## Sync users

You can sync Hightouch objects (users) to the MoEngage users. You can also perform record matching to help unify data across the two platforms.

The integration supports upserting users. In this mode, new users will be inserted into MoEngage and all user attributes will be kept up-to-date within MoEngage. Upsert has three configuration parameters:

| NAME                                             | DETAILS                                                                                                          |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| **Hightouch Column Containing MoEngage User ID** | The name of the Hightouch column (id, created\_at, first\_name) that acts as unique user identifier in MoEngage. |
| **Hightouch to MoEngage Default Field Mappings** | A list of common user attributes that will be pushed to new users in MoEngage.                                   |
| **Hightouch to MoEngage Custom Field Mappings**  | A list of custom user attributes that will be pushed to new users in MoEngage.                                   |

Read more on [MoEngage-Hightouch user upsert here.](https://hightouch.io/docs/destinations/moengage/#upsert)

## Sync events

You can sync Customer's Events to MoEngage events.

### Setting an Event Name

When creating a sync for events, you can specify the name of the event being tracked. You can either input a static name or use a column from your model.

### Setting an Event Timestamp

Select a column that is used as the timestamp of when the event happened. If this field is empty, Hightouch will use the time of when the event arrives at the server.

### Record Matching

Records can be matched from your source to your MoEngage workspace by `Moengage Id`.

### Field Mapping

Hightouch allows you to sync columns from your source to the supported MoEngage resources.

### Custom Field Mapping

Any mappings from this section will be synced as attributes in the event. MoEngage expects custom properties to follow a `snake_case` format.

## Sync audiences

Hightouch can send a Hightouch audience to MoEngage as a segment. MoEngage keeps the segment membership up to date on every sync, and can also update the user attributes of its members in the same sync.

### Choosing a Sync API

Hightouch offers two sync APIs for segments. Select the one that matches what you need to keep up to date in MoEngage.

| Sync API                              | What it syncs                                                                                                                                                                                                               |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cohort Sync**                       | Segment membership only. Users must already exist in MoEngage, and Hightouch skips records that do not match a MoEngage user.                                                                                               |
| **Partner Cohort Sync** (Recommended) | Segment membership, the user attributes of each member, and the MoEngage team that the segment belongs to, in a single sync. MoEngage creates users that do not exist yet, unless you choose to update existing users only. |

Use **Partner Cohort Sync** when you want member attributes in MoEngage to stay current without setting up a separate user sync.

### Setting Up the Sync

To sync a Hightouch audience to MoEngage, perform the following steps:

1. On the Hightouch platform, navigate to **Activation** > **Syncs** and click **Add sync**.
2. Click the model that holds your audience, and then click your MoEngage destination.
3. Under **What would you like Hightouch to send to MoEngage?**, click **Segment**.
4. Under **Which MoEngage sync API should this segment use?**, click **Cohort Sync** or **Partner Cohort Sync**.
5. Under **Would you like to use an existing MoEngage segment or create a new one?**, click **Create a new MoEngage segment** or **Use an existing MoEngage segment**.

   <img src="https://mintcdn.com/moengage/C8bZs8BrigeCARJq/images/hightouch-segment-sync-type.png?fit=max&auto=format&n=C8bZs8BrigeCARJq&q=85&s=e3dae19a986b8211a6e0ac53788d426b" alt="Hightouch sync configuration with Segment, Partner Cohort Sync, and the segment choice selected" width="3360" height="1526" data-path="images/hightouch-segment-sync-type.png" />
6. In **What should the segment be named?**, type the name you want the segment to have in MoEngage. If you clicked **Use an existing MoEngage segment**, click the segment you want to sync to in the **Which existing MoEngage segment would you like to sync?** list instead.
7. Under the record matching section, click the column that holds your MoEngage user ID, and then click **User ID** in the **Destination field** list.
8. Under **How would you like to handle records leaving the query result?**, click **Remove the MoEngage record from the specified audience** or **Do nothing**.
9. Click **Continue**.

   <img src="https://mintcdn.com/moengage/C8bZs8BrigeCARJq/images/hightouch-segment-sync-mappings.png?fit=max&auto=format&n=C8bZs8BrigeCARJq&q=85&s=cde32dabffd9d9eca67efa522620e881" alt="Hightouch record matching, attribute mapping, and record removal options for a segment sync" width="1470" height="1670" data-path="images/hightouch-segment-sync-mappings.png" />

Hightouch marks **Do nothing** as not recommended. Choose **Remove the MoEngage record from the specified audience** so that the segment stays consistent with the audience in Hightouch. Removing a record takes it out of the MoEngage segment only. MoEngage does not delete the user profile.

### Additional Options for Partner Cohort Sync

When you click **Partner Cohort Sync**, the configuration adds the identifier, attribute, and team options below. To configure them, perform the following steps:

1. Under the record matching section, click **Add mapping**, click the column that holds your anonymous identifier, and then click **Anonymous ID** in the **Destination field** list.
2. Under **Which columns would you like to sync to MoEngage fields?**, click the column you want to forward, and then click the MoEngage user attribute to write it to, such as **Gender**.
3. Under **Which columns would you like to sync to custom fields in MoEngage?**, click the column you want to forward, and then type the MoEngage custom attribute name in the **Destination field** box.
4. Click **Advanced**.
5. Under **How should users be updated in MoEngage?**, click **Create new users and update existing users in MoEngage** or **Only update fields on users that already exist in MoEngage**.
6. In **Which team in your MoEngage dashboard should this segment be created in?**, type the name of the team exactly as it appears in your MoEngage dashboard.

   <img src="https://mintcdn.com/moengage/C8bZs8BrigeCARJq/images/hightouch-segment-sync-advanced.png?fit=max&auto=format&n=C8bZs8BrigeCARJq&q=85&s=da5349cc784d276214093f61a036018c" alt="Hightouch Advanced section showing the user update options and the MoEngage team field" width="1488" height="556" data-path="images/hightouch-segment-sync-advanced.png" />

Map at least one identifier. If a user ID is not available, MoEngage resolves the member by the anonymous ID. When you map both, MoEngage converts the anonymous user into a registered user.

The attributes you map are written to each member's MoEngage profile in the same sync, which removes the need for a separate user sync. MoEngage expects custom attribute names to follow the `snake_case` format.

The team field applies only if you have Teams enabled in your MoEngage workspace. When you set a team, only the members of that team can see the segment, and MoEngage applies a team-level filter on top of the audience criteria. When you leave it empty, MoEngage creates the segment in the Default Team. For more information, refer to [Teams 2.0 in MoEngage](/docs/user-guide/settings/account/team-management/teams-20-in-moengage).

For more information, please read the [Hightouch docs](https://hightouch.com/docs/destinations/moengage/#syncing-customer-events).

## Rate Limits

To maintain platform stability, MoEngage limits ingestion of Hightouch audience data to a maximum of 300 requests per minute (RPM) per workspace. If your workspace exceeds this limit, MoEngage returns an HTTP `429 (Too Many Requests)` status code.

User and event syncs from Hightouch follow the MoEngage Data API rate limits. For more information, refer to [Partner Data Ingestion Rate Limits](/docs/partner-guide/data-and-analytics/ingestion-rate-limits).
