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

# Amplitude Integration

> Stream Amplitude events, user properties and cohorts into Sequenzy to trigger email automations

Connect Amplitude to stream your product analytics into Sequenzy. Events become `product.*` events you can trigger automations on, user properties keep contact profiles current, and synced cohorts become tags.

## What gets synced

One webhook URL takes all three of Amplitude's webhook destinations:

| Amplitude destination | What Sequenzy does |
| - | - |
| Webhook (events) | Records `product.<event type>` on the contact and triggers automations |
| Webhook (users) | Updates the contact's name and user properties. Records no event |
| Webhook (cohorts) | People entering a cohort get its tag, for example `amplitude-power-users`; people leaving lose it |

| Amplitude event | Sequenzy event |
| - | - |
| `Song Played` | `product.Song Played` |
| `Plan Upgraded` | `product.Plan Upgraded` |
| `$identify` | `product.$identify` |

> [!NOTE]
>
> Amplitude, PostHog and Segment feed the same `product.*` namespace, so
> sequences built on `product.*` events keep working if you switch analytics
> tools.

## Prerequisites

* An Amplitude Plus, Growth or Enterprise plan. Webhook destinations aren't on the free plan.
* An `email` user property on your users, or a user ID that is an email address. Sequenzy matches people by email:

```javascript theme={null}
amplitude.setUserId("user_123");
const identify = new amplitude.Identify().set("email", "user@example.com");
amplitude.identify(identify);
```

## Connecting Amplitude

### Step 1: Create credentials in Sequenzy

1. Go to **Settings → Integrations** in Sequenzy.
2. Find **Amplitude** under Product analytics and click **Connect**.
3. Click **Create webhook credentials**. Sequenzy saves the connection and shows a **Webhook URL**, a **Header name** (`X-Webhook-Secret`) and a **Header value**.

Copy the header value now. Sequenzy stores it encrypted and can't show it again. If you lose it, open the Amplitude settings on the integration card and click **New credentials**.

### Step 2: Stream events and users

1. In Amplitude, open **Data → Catalog → Destinations** and add **Webhook** (Events and User Properties).
2. Paste the **Webhook URL** and add a header named `X-Webhook-Secret` with the header value from Sequenzy.
3. Turn on **Send Events** and choose which events to send. Turn on **Send Users** to keep profiles current.
4. Keep the default payload format and enable the sync.

### Step 3: Sync cohorts (optional)

1. Add the **Webhook** destination under **Cohorts** with the same URL and `X-Webhook-Secret` header.
2. Open a cohort and choose **Sync → Webhook**.
3. Select the `email` user property, plus any properties you want copied onto contacts.

The Sequenzy dialog shows **Waiting for the first delivery** until Amplitude sends something, then confirms it.

From the CLI, `sequenzy integrations connect amplitude` generates the secret and prints the values to paste:

```bash theme={null}
sequenzy integrations connect amplitude
# Webhook URL: https://api.sequenzy.com/api/webhooks/amplitude/<company-id>
# Header: X-Webhook-Secret: <generated>
```

## How events are matched

For each event, Sequenzy:

1. Reads the email from the `email` user property, then a user ID that is an email address, then an `email` event property.
2. Without an email, matches the `user_id` against the `amplitudeUserId` attribute of an existing contact. Anonymous, device-only events are skipped.
3. Creates the contact if needed. New contacts join your [default lists](https://docs.sequenzy.com/concepts/subscribers.md#default-lists).
4. Records the event with the `product.` prefix and its event properties, at Amplitude's `event_time`.

Retried deliveries are deduplicated by Amplitude's event `uuid`, so a retry never records an event twice.

### Synced attributes

Only identify calls and the Users stream update the contact profile. Properties on other events stay on the event.

| Attribute | Source |
| - | - |
| `amplitudeUserId` | The Amplitude `user_id` |
| First / last name | `first_name`/`firstName` and `last_name`/`lastName` user properties |
| Custom attributes | Primitive (string, number, boolean) user properties |

Amplitude's own properties (`[Amplitude] ...`, `$...`) and credential-looking keys (`token`, `password`, `apiKey` and similar) are never copied.

## Event settings

New connections skip `session_start`, `session_end`, `[Amplitude]` autocapture events and other `$` events, which usually drown out the events you automate on. Identify calls always pass.

To change that, or to sync only some events, open the settings on the Amplitude card. From the CLI, API or MCP, change them without the webhook secret:

```bash theme={null}
sequenzy integrations set-amplitude-events <integration-id> \
  --event-allowlist "Song Played" "Plan Upgraded"
```

Add `--include-internal-events` to keep session and autocapture events, or `--all-events` to record everything again. The API is [Update Amplitude Event Settings](https://docs.sequenzy.com/api-reference/integrations/amplitude-update.md) and the MCP tool is `update_amplitude_settings`. Don't reconnect to change events: reconnecting replaces the secret.

Filtering events in Amplitude's destination settings works too, and keeps them out of your Amplitude event volume.

## Cohorts

Each cohort becomes one tag, `amplitude-<cohort name>`, fixed the first time it syncs, so renaming the cohort keeps the tag. People entering get the tag and people leaving lose it. Removals never create contacts.

Amplitude sends a cohort's current members right after you start syncing it. Batches that arrive in the first 15 minutes of a new cohort tag those members without starting automations, new-contact notifications or confirmation emails, so syncing a large cohort doesn't email everyone in it. After that, people who enter start **Tag added** automations.

The settings dialog lists every synced cohort with its tag, contact count and last sync. The same list is in `cohorts` on `GET /v1/integrations/{id}`, `sequenzy integrations get <id>` and the `get_integration` MCP tool.

## Using with automations

### Activation email

1. Go to **Automations → Create new**.
2. Set the trigger to **Event received** → `product.Signed Up`.
3. Add a 3-day wait, then a condition that `product.Feature Used` was not received.
4. Send a "Did you know about this feature?" email.

### Email people entering a cohort

Set the trigger to **Tag added** and pick the cohort's tag, for example `amplitude-power-users`.

## Troubleshooting

### Nothing arrives

1. Check the `X-Webhook-Secret` header value matches the one Sequenzy showed exactly. Sequenzy accepts each delivery before verifying it, so Amplitude reports success even when the secret is wrong. If you no longer have the secret, click **New credentials** in the Amplitude settings and update every destination right away: deliveries that still carry the old secret are dropped.
2. Make sure the destination is enabled and **Send Events** is on.

### Events are skipped

Events are skipped when they carry no email and their `user_id` doesn't match a contact. Set the `email` user property with an identify call when users sign in. **Settings → Integrations → Activity** shows each skipped delivery and why.

## FAQ

> [accordion] Can I import my Amplitude history?
>
> Not yet. Events stream from the moment you enable the destination.

> [accordion] Is this one-way or two-way?
>
> One-way. Sequenzy receives data from Amplitude and never writes back.

> [accordion] Does Amplitude's EU data center work?
>
> Yes. The destination calls the same Sequenzy URL from either region.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.