---
title: "Braze + Segment + Amplitude: who talks to whom, and in which direction"
canonical_url: https://ampl.webclat.com/blog/braze-segment-amplitude-stack
description: "The three documented Braze-Amplitude connections (cohort sync, event streaming, Currents source), how Segment feeds Amplitude, and the session/device nuances that bite."
source: Webclat | Amplitude Solutions (official Amplitude partner, independent consultancy)
---

# Braze + Segment + Amplitude: who talks to whom, and in which direction

This stack fails in the diagram stage: teams wire 'Braze and Amplitude' without deciding which of the three documented connections they mean, then wonder why sessions look wrong through Segment. Here's the wiring with directions labeled.

## Braze ↔ Amplitude: three connections, not one

| Connection | Direction | What the docs say it does |
| --- | --- | --- |
| Braze (Cohort Sync) | Amplitude → Braze | Sends Amplitude cohorts to Braze, where they appear as segment filters ('Amplitude Cohorts'); one-time, scheduled, or real-time sync modes. |
| Braze event streaming | Amplitude → Braze | Forwards Amplitude events and users to Braze, with a Send Users option for user/property updates. |
| Braze Currents source | Braze → Amplitude | Sends Braze marketing-engagement events (sends, opens, clicks) into Amplitude; requires external_user_id or device_id so events attach to the right person. |

> All three from the Amplitude source/destination catalogs (Sources). The classic loop: behavioral cohort out via sync, campaign engagement back via Currents - closing the 'did the campaign change behavior' question inside Amplitude.

## Where does Segment fit - and where does it bite?

Segment's Amplitude destination accepts Page, Group, Identify, and Track calls across browser, iOS, Android, and server components - the standard CDP-as-source pattern, and Amplitude's own Segment source docs describe the client-side variant where Segment's library delegates collection to Amplitude's bundled SDK.

The nuance that bites, quoted from Segment's docs: Segment doesn't have a concept for a session. Device-mode calls include session information because Amplitude's SDK is bundled; cloud-mode calls need session_id set explicitly as an integration-specific option - or your session-based charts (and session replay stitching) quietly fragment. Device IDs differ by mode too: bundled device-mode lets Amplitude generate them, server-side falls back from context.device.id to the anonymousId.

Field rule (ours): decide device-mode vs cloud-mode per platform BEFORE launch, and put the session_id decision in the tracking plan. It is a one-line option that decides whether 'sessions' means anything.

## The identity thread through all of it

Every wire above rides the same identifiers: Braze Currents needs your external_user_id to match Amplitude's user_id; Segment's ID choices become Amplitude's device_id story. If those IDs aren't the same stable internal identifier everywhere, each integration multiplies the fragmentation - see our identity resolution guide for how Amplitude merges (and permanently refuses to merge) IDs.

## FAQ

### How do I send Amplitude cohorts to Braze?

Through the documented Braze (Cohort Sync) destination: connect it, pick the cohort, and choose one-time, scheduled, or real-time sync. The cohort then appears in Braze as a segment filter under 'Amplitude Cohorts', ready for campaign targeting.

### Why do my Amplitude sessions look wrong when events come through Segment?

Almost always the mode: Segment has no session concept of its own. Device-mode (bundled SDK) carries Amplitude session information automatically; cloud-mode does not unless you explicitly set session_id as an integration-specific option - per Segment's own docs. Fix the option, or move the affected platform to device-mode.

### Can Braze campaign events show up inside Amplitude?

Yes - the Braze Currents source streams marketing-engagement events into Amplitude, provided each event carries an external_user_id or device_id that matches your Amplitude identifiers. That's the wire that lets you measure campaign impact on retention inside your product analytics.

## Sources

- [Amplitude docs: Braze cohort sync destination](https://amplitude.com/docs/data/destination-catalog/braze-cohort-sync)
- [Amplitude docs: Braze event streaming destination](https://amplitude.com/docs/data/destination-catalog/braze)
- [Amplitude docs: Braze Currents source](https://amplitude.com/docs/data/source-catalog/braze)
- [Segment docs: Amplitude destination (session & device-ID behavior)](https://segment.com/docs/connections/destinations/catalog/amplitude/)
- [Amplitude docs: Segment source](https://amplitude.com/docs/data/source-catalog/segment)

In practice: Stack wiring - directions, sync modes, and the session_id decision - is designed in the implementation sprint's tracking-plan phase. (https://ampl.webclat.com/services/amplitude-implementation)
