Skip to main content

Performance data from Braze

Better Email can show how the emails you build perform once Braze has sent them: sends, deliveries, opens, clicks, bounces, unsubscribes and spam complaints. The numbers appear on the campaign's Performance tab and in the campaign list, next to the email you built.

This guide covers how to switch it on. It assumes you have already set up the Braze integration.

For what the finished result looks like and how to read it, see Campaign performance.

Your user data stays in Braze​

Better Email never receives, processes, or stores user-level data. No email addresses, no user IDs, no per-recipient events.

Better Email reads Braze's campaign and send statistics, which are totals: counts per day, plus the subject and sender of the email. The per-user activity behind those totals stays in your Braze workspace.

Two ways a campaign reaches Braze​

Better Email picks up performance for both, without any matching on your part.

Sent or scheduled from Better Email. When an editor sends or schedules a campaign from Better Email, Braze returns an ID for that individual send, and Better Email reads its numbers back with it. Each campaign gets its own figures, even when several newsletters share one API campaign in Braze. This needs an API campaign set on the campaign's Destination. Without one, Braze doesn't record stats for the send.

Built in Braze from a synced template. When someone exports a campaign to Braze and then builds and sends a regular campaign from that template in Braze, Better Email recognises it too. Every template Better Email exports to Braze carries a small, invisible tag naming the campaign it came from. It sits in the email's <head> and is kept when the template is copied into a Braze campaign. Better Email looks for that tag in your Braze campaigns and links each one back to the campaign you built.

Enable performance data in Better Email​

  1. In Braze, make sure the API key has the performance permissions: sends.data_series, campaigns.list, campaigns.details, campaigns.data_series and messages.schedule_broadcasts. If you created a new key, update it on the integration.
  2. Open your Braze integration in Better Email.
  3. Turn on Sync performance data.
  4. Click Save.

Better Email refreshes performance data about once an hour. If the key is missing one of the permissions, Better Email still syncs what it can and names the missing permission on the integration.

Scheduled and sent campaigns in the campaign list​

Before any numbers arrive, the campaign list tells you where a campaign stands:

  • Scheduled, with the send time, for a campaign scheduled from Better Email. It also shows for a campaign built in Braze from a synced template and scheduled there.
  • Sent, with the send time, once a campaign has gone out but Braze hasn't reported numbers yet. Braze usually needs a few minutes.
  • Send unconfirmed, if Better Email lost contact with Braze during a send and can't tell whether it went out. Check Braze's Message Activity Log.

Once numbers arrive, the row shows sends, open rate and click rate instead.

Good to know​

  • Opens include machine opens. Braze counts Apple Mail Privacy Protection pre-fetches as opens, as most ESPs do, so open rates read high. Hover the opens line on the Performance tab to see how many opens were machine opens. Braze reports them as a total only, so there is no exact human-only open rate.
  • Per-send stats last 14 days. Braze keeps statistics for individual API sends for 14 days. Better Email refreshes a send during that window and keeps the final numbers afterwards, instead of refreshing for 30 days as with other ESPs. Campaigns built in Braze keep refreshing for longer.
  • No clicks per link, and daily numbers only. Braze's API reports totals per day, so a Braze campaign's Performance tab has no engagement chart, no top clicked links and no click map. Per-link clicks exist only in Braze's own dashboard and in Braze Currents.
  • Control groups. If a Braze campaign holds out a control group, the holdout receives nothing and isn't counted. With a very small segment, everyone can land in the control group, and the campaign then shows zero sends.
  • A/B tests built from one campaign only. A Braze campaign is linked to a Better Email campaign when every email variant was built from that campaign's template. If its variants come from different campaigns, or one was written by hand in Braze, its numbers can't be split fairly, so Better Email leaves it out.
  • Unsubscribes count unsubscribes through Braze's own unsubscribe links. Someone who opts out through your own preference centre doesn't appear here.
  • Canvases aren't included yet. Only regular Braze campaigns and sends from Better Email are.

Troubleshooting​

No performance data at all. Check that Sync performance data is turned on and that the API key has the permissions listed above. A missing permission is shown on the integration.

A campaign sent from Better Email shows no numbers. Check that its Destination has an API campaign ID and an Email message variation ID. Without them, Braze doesn't record stats for the send.

A campaign built in Braze shows no numbers. It needs to be built from a template synced from Better Email after performance data was introduced. Older templates don't carry the tag, so sync the campaign again and rebuild the Braze campaign from the new template. Also check that the Braze campaign isn't a draft and has actually sent.

Numbers differ slightly from Braze's own reports. Opens and clicks keep accruing after a send, and the two systems refresh at different moments. Better Email refreshes hourly.