Cleaning a list before it reaches Braze

For mobile-first product teams running cross-channel campaigns.

User profiles come from your mobile and web SDKs, so the address was typed on a phone keyboard during onboarding. Many profiles have no address at all and are reachable only by push.

Getting the addresses out of Braze

The user export API or Currents into your warehouse. Braze is built around programmatic access rather than CSV downloads.

In the app, while the person is still looking at the field they mistyped. That is the only moment a correction costs nothing.

What Braze does with the file you bring back

The import rules decide what a re-import actually changes, which is worth knowing before you upload.

The short version

  • Users are identified by external ID, so the same person updates rather than duplicating.
  • A hard-bounced address stays marked invalid until the user's email address is changed, so check the invalid flag rather than the subscription state when you audit a re-import.
  • Custom attributes hold arbitrary data, so a verification verdict fits naturally on the profile.
  • Bulk updates go through the API rather than a file import.

The mistake to avoid

Some addresses come back unresolved, and that is a fact about the receiving server rather than a gap in the check. We label those and never bill for them. What that means, and why roughly 28% of business addresses land there, is set out on our page about catch-all domains.

410,000 subscribed users, fewer reachable ones

Say your app has 600,000 profiles and 410,000 of them hold an email address with a subscribed state. You build a win-back segment on that filter and the dashboard promises 410,000 recipients. Braze's documentation explains why the promise is soft: a hard bounce marks the address as invalid and stops future sends to it, but it doesn't change the user's subscription state. Those users still look subscribed in a filter.

Suppose you export the addresses, run them through a check, and 12,300 come back invalid with another 38,000 on catch-all domains. Write the verdict to a custom attribute and add it to the segment, and the campaign size drops to a number you can plan around. For a file this size our 500,000 tier is $549, and whatever returns unknown costs nothing.

What happens when a user edits their address

People fix their own typos, and Braze has a setting for that moment called Resubscribe users when they update their email. Find it in your email preferences and decide on purpose. With it off, Braze's FAQ says a user who changes to an address another profile already used inherits the subscription state that address had before.

A second thing to know is the bounce list itself. If a good address was marked invalid after a one-off server failure, the /email/bounce/remove endpoint clears it from Braze's list and from the sending provider's list. Use it for single corrections, never for a bulk reset of an old file.

Soft bounces get retried for 72 hours before Braze gives up, so a Monday send can keep producing bounce events until Thursday. Braze contracts differ on whether you pay by active users or by message volume, which means a smaller email audience may or may not lower your bill. Read yours before you promise finance a saving.

Questions people ask

Where should validation happen in a Braze setup?

In the app, at the point the user types their address. A real-time check with a short timeout catches the typo while the person is still on the screen to correct it.

Should an unresolvable address block account creation?

No. Accept it, flag it, and ask again later. Blocking a signup because a mail server would not answer a probe costs you a customer over a server's policy.

How do verification results fit into Braze?

As a custom attribute on the user profile, which segments can filter on when building an email campaign.

Check a sample first

100 free checks a month, no card. The share we could not resolve is the number worth comparing between vendors.