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

# MoEngage

> Build more robust campaigns on MoEngage with up-to-date customer data from your data warehouse

## Overview

Providing relevant and timely campaigns relies on fresh and accurate data in your MoEngage account. By automatically syncing customer data from your data warehouse into MoEngage, you don't need to worry about data consistency or staleness. Instead, you can focus on building world-class customer experiences.

## Supported syncing

| Type | Description | Supported Sync Modes |
| - | - | - |
| **Users** | Sync data from any source to MoEngage users | Upsert |
| **Events** | Sync events to MoEngage | Insert |
| **Segments** | Add or remove users from MoEngage cohorts | Add, Remove |

For more information about sync modes, refer to the [sync modes](https://docs.hightouch.com/syncs/types-and-modes.md#sync-modes) docs.

## Connect to MoEngage

Go to the [**Destinations** overview page](https://app.hightouch.com/destinations?from=docs) and click the **Add destination** button. Select **MoEngage** and click **Continue**. You can then authenticate Hightouch to **MoEngage**.

You need to provide the following information:

* **API ID**: You can find this in your MoEngage dashboard under **Settings** > **APIs** > **General**.
* **API Secret**: You can find this in your MoEngage dashboard under **Settings** > **APIs** > **General**.
* **Business Events API Key**: This is required for syncing business events. You can find this in your MoEngage dashboard under **Settings** > **APIs** > **General**.
* **Region**: Select the region your MoEngage account is hosted in.

![The API key on the MoEngage dashboard](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-moengage-api-keys.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=dba0df0a6cb3660277cb9e4e726d1d1f)

## Sync configuration

Once you've set up your **MoEngage** destination and have a [model](https://docs.hightouch.com/getting-started/concepts.md#models) to pull data from, you can set up your sync configuration to begin syncing data. Go to the [**Syncs** overview page](https://app.hightouch.com/syncs?from=docs) and click the **Add sync** button to begin. Then, select the relevant model and the MoEngage destination you want to sync to.

### Syncing users

This sync type lets you sync data to MoEngage user profiles.

#### Record matching

You can match rows from your model to users in MoEngage on their **User ID**.

#### Field mapping

Hightouch lets you sync user fields via [field mapping](https://docs.hightouch.com/syncs/mapping-data.md). You can map data from any of your model columns to standard or custom user attributes in MoEngage. MoEngage expects custom properties to follow a `snake_case` format.

#### Delete behavior

The [delete behavior](https://docs.hightouch.com/syncs/overview.md#delete-behavior) you select dictates what to do when a row no longer appears in your model's query results. You have the following options:

| Behavior | Description |
| - | - |
| **Do nothing** | Keep the user in MoEngage with all its synced fields |
| **Clear** | Clear all the mapped fields, but keep the user in MoEngage |

### Syncing events

This sync type lets you send events to MoEngage. Hightouch treats any records added to your model as new events to be sent to MoEngage.

> [!WARNING]
>
> To ensure syncs send each event, your event model must use a truly unique [primary key](https://docs.hightouch.com/getting-started/concepts.md#unique-primary-key-requirement). See the [events syncs](https://docs.hightouch.com/syncs/types-and-modes.md#event-syncs) documentation for more information.

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. You can also 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

You can match rows from your model to users in MoEngage on their **User ID**.

#### Field mapping

You can map data from your model columns to event properties. Any mappings from this section will be synced as attributes in the event. MoEngage expects custom properties to follow a `snake_case` format.

### Syncing segments

This sync type lets you add or remove users from MoEngage cohorts. You can either sync to an existing cohort or create a new one.

> [!NOTE]
>
> Users must already exist in MoEngage before they can be added to a cohort.

#### Record matching

You can match rows from your model to users in MoEngage on their **User ID**.

Refer to the [record matching docs](https://docs.hightouch.com/syncs/record-matching.md) for more information.

#### Delete behavior

The [delete behavior](https://docs.hightouch.com/syncs/overview.md#delete-behavior) you select dictates what to do when a row no longer appears in your model's query results. You have the following options:

| Behavior | Description |
| - | - |
| **Do nothing** | Keep the user in the MoEngage cohort with all its synced fields |
| **Remove from cohort** | Remove the user from the MoEngage cohort |

## Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the [live debugger](https://docs.hightouch.com/syncs/debugger.md). To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up [sync alerts](https://docs.hightouch.com/syncs/alerting.md). If you run into an issue this page doesn't cover, [contact support](#pylon-chat).
