Connecting Braze with External Analytics Platforms

Hands comparing raw event records with an analytics report beside a laptop

Connecting Braze to external analytics platforms moves you from a reporting surface to a raw event stream. The two disagree by design, and the disagreement is not a fault. Currents streams the event types enabled for your connector; the dashboard aggregates. Plan for that gap before anyone builds a chart on top of it, because it decides what your numbers mean.

What does the stream actually guarantee?

At-least-once delivery. Duplicate events can be written to your bucket, and the unique id field on every event is how you deduplicate them.

That one sentence shapes the whole downstream design. Anything counting rows without deduplicating will drift upward, slowly, in a way nobody notices until a number is quoted in a meeting.

Batching is continuous. Braze sends a batch when one is full or every 5 minutes, whichever comes first. High-volume connectors feel close to real-time. Low-volume ones land in 5 to 30 minutes, which is worth knowing before someone builds an alert on it.

Why do the stream and the dashboard disagree?

Because they measure different things, and both are correct.

DifferenceDashboardCurrents
Email unique clicksDeduplicated over a seven-day window by dispatch_idEvery raw click, filter is_unique
Time zoneYour company time zoneCoordinated Universal Time
DuplicatesAlready resolvedPossible, deduplicate on id
Custom attributesVisible on the profileNot included in send events
Tags and key-value pairsVisible on the messageNot included

The time zone row causes more confusion than the rest combined. Aggregating the stream by calendar day without converting pushes events into different date buckets, and the two reports then disagree by a sliver that looks like data loss.

What should you decide before switching it on?

  1. Pick the destination bucket and confirm who owns its uptime.
  2. Decide which event types you need, not which ones are available.
  3. Build deduplication on id into the first query, not the first dashboard.
  4. Convert to your reporting time zone at ingest, once, in one place.
  5. Read the storage path recursively rather than pinning a version segment.
  6. Agree which system is authoritative for each metric before anyone asks.

Step six is the one that gets skipped, and it is the one that causes arguments. Two systems producing two numbers is fine. Two systems producing two numbers with no agreed owner is how a reporting dispute becomes a data quality investigation.

Step five matters because the version segment in the path advances monthly. A pipeline that hardcodes it stops seeing new data without failing, which is the worst kind of break.

Where does data go missing?

An unavailable bucket

If your bucket is unavailable when Braze writes, that data is lost and cannot be backfilled. Bucket uptime is your responsibility, and it is the single highest-consequence dependency in the whole integration.

A gap before the integration existed

The stream is live and cannot be replayed. Retention is 30 days. Anything from before the connector was switched on is not coming, so historical analysis needs a warehouse you fill yourself.

Test sends

Test messages generate no engagement events. A connector verified only with test sends looks silent, and that silence is correct behaviour rather than a broken pipe.

Session ends on mobile

Session data flushes on the SDK schedule, roughly every 10 seconds on a strong connection. On iOS it often waits for the app to reopen, so session boundaries arrive late or not at all. Your user event tracking design should assume that rather than discover it.

What does this change about reporting?

Treat the stream as the system of record for behaviour and the dashboard as the system of record for campaign performance. Each is better at one of those.

Send-level context is thinner than people expect. Custom attributes, tags and key-value pairs are not in the stream, so joins happen downstream on user_id. If the join keys are not already clean, that work lands on your CRM data integration rather than on the analytics layer.

For campaign numbers the dashboard is usually the faster answer, and your email campaign reporting already covers what it tracks. The stream earns its place for questions the dashboard cannot answer, such as sequencing across channels, which is where push segmentation and in-app triggers become measurable together.

Frequently asked questions

Why do my Currents counts not match the dashboard?

Because they are calculated differently. Email unique clicks are deduplicated over a seven-day window on the dashboard, while the stream records every raw click. Filter on is_unique to compare like with like.

Can we get data from before we set up the connector?

No. The stream is live, events cannot be replayed, and retention is 30 days. Historical analysis needs a warehouse you have been filling yourself.

What happens if our storage bucket goes down?

That data is lost and cannot be backfilled. Bucket availability is the dependency to monitor most closely.

Why is our test integration producing no events?

Test sends do not generate message engagement events. Send from a live campaign or Canvas to see them.

Do Currents events include custom attributes?

They do not. Message engagement events carry the Braze user ID and, when present, the external identifier. Join to profile data in your own system.

Sources

  • Braze docs, Currents FAQ. Retrieved 12 Oct 2026.
  • This post draws on a single documentation page. Treat it as a reading of that page rather than a survey.
  • Written by CustomerIK, a Braze implementation partner.
Preferences

Privacy is important to us, so you have the option of disabling certain types of storage that may not be necessary for the basic functioning of the website. Blocking categories may impact your experience on the website.

Accept all cookies
Accept all cookies

These items are required to enable basic website functionality.

Always active

These items are used to deliver advertising that is more relevant to you and your interests.

These items allow the website to remember choices you make (such as your user name, language, or the region you are in) and provide enhanced, more personal features.

These items help the website operator understand how its website performs, how visitors interact with the site, and whether there may be technical issues.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.