> ## 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.

# Amplitude

> Empower your product teams with richer data from your warehouse to perform deeper analysis and better understand user behavior

Amplitude is a product analytics platform for understanding how customers use your product. Hightouch keeps Amplitude user and group properties current, sends events, and maintains behavioral cohort membership from your warehouse data.

## Supported syncing

| Sync Type | Description | Supported Sync Modes | API Reference |
| - | - | - | - |
| [**Objects**](#objects) | Sync records to objects such as users or organizations in Amplitude | Upsert | [Identify a user ↗](https://amplitude.com/docs/analytics/apis/identify-api) |
| [**Events**](#events) | Sync records as events to Amplitude. This is often in the form of a track call | Insert | [Upload a batch of events ↗](https://amplitude.com/docs/analytics/apis/batch-event-upload-api) |
| [**Cohorts**](#cohorts) | Sync records to cohorts in Amplitude | Add, Remove | [Manage behavioral cohorts ↗](https://amplitude.com/docs/apis/analytics/behavioral-cohorts) |

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 Amplitude

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

* **API Key**: You can find your API key by following [these instructions in Amplitude's docs](https://www.docs.developers.amplitude.com/analytics/find-api-credentials/).
* **Region**: This is either a **Standard server** or **EU residency server**.

Once you've entered these fields, click **Continue**. Give your destination a descriptive name and **Finish** the destination connection setup.

## Sync configuration

Once you've set up your Amplitude 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 Amplitude destination you want to sync to.

### Objects

Hightouch can sync data to either **[User](https://help.amplitude.com/hc/en-us/articles/115002380567-User-properties-and-event-properties)** and **[Group](https://developers.amplitude.com/docs/group-identify-api)** objects. A dropdown is available to select between **Users** and **Groups** when configuring an Amplitude sync.

This integration only supports the **Upsert** mode. In this mode, Hightouch inserts new users or groups into Amplitude and keeps all user attributes up-to-date.

#### Record matching

For user objects, map at least one of **Amplitude User ID** and **Amplitude Device ID**. Map both when your model mixes known and anonymous users: rows that carry either identifier are sent, rather than only the rows that carry the one identifier you picked. See [Amplitude's docs](https://help.amplitude.com/hc/en-us/articles/206404628-Step-2-Identifying-your-users) for more on identifying users.

Hightouch sends one identifier per row. When a row has values for both, the first identifier in the order you mapped them wins, and the other isn't sent for that row. Order the mappings so your preferred identifier comes first, usually **Amplitude User ID**, so a known user isn't identified by their device.

> [!WARNING]
>
> Changing which identifier a row resolves to points it at a different Amplitude
> user. Reordering the mappings, or adding a column that populates a
> higher-priority identifier, sends later updates to a new user rather than the
> one the row previously matched.

Rows with no value for any mapped identifier are rejected.

Hightouch matches rows from your model to Amplitude groups by **Group Value**. Select the model column that contains these values if you are syncing groups.

#### Field mapping

You can sync columns from your source to Amplitude's default and custom fields. User properties only apply on the next event **after** the property has been changed, and don't apply retrospectively. For more information, check out [Amplitude's FAQ](https://help.amplitude.com/hc/en-us/articles/115002380567-User-Properties-Event-Properties#applying-user-properties-to-events).

#### Delete behavior

The 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 for Amplitude objects:

| Behavior | Description |
| - | - |
| **Do nothing** | Keep the customer or group record in Amplitude with all its synced fields |
| **Clear** | Remove all the mapped fields, but keep the record in Amplitude |

### Events

> [!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.

Hightouch supports sending events of a given name, for example, `Signed Up`. Enter this name and choose the model column containing either the user ID or device ID. You can also select the model column containing the event timestamp. If the timestamp field is empty, Hightouch uses the time the event arrives at the server.

> [!TIP]
>
> Hightouch accepts a normal date time format for the timestamp, and
> automatically converts it to the format required by Amplitude.

#### Field mapping

Hightouch allows you to pass data to the [default properties](https://developers.amplitude.com/docs/http-api-v2#keys-for-the-event-argument) and the custom event properties of an Amplitude event.

### Cohorts

Hightouch can sync data to Behavioral Cohorts in Amplitude.

#### Record matching

Hightouch matches rows from your model to Amplitude users by **User ID** or **Amplitude ID**. Select the model column that contains these values if you are syncing to cohorts. See [Amplitude's docs](https://amplitude.com/docs/apis/analytics/behavioral-cohorts) for more on behavioral cohorts.

#### Creating new Cohorts

Hightouch can **Create a new cohort** when syncing to Amplitude cohorts. Hightouch will create a single placeholder user when creating a new cohort, and then sync the mapped identifiers to your newly created 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).

> [!NOTE]
>
> For Hightouch platform error codes related to Amplitude, see [Error codes:
> Other destinations](https://docs.hightouch.com/developer-tools/error-codes.md#other-destinations).
