Braze implementation checklist and timeline: a 12-week plan

By the Stitch team · · 9 min read

Key takeaways

  • Decide your external_id strategy before anyone writes SDK code. Braze won't let you turn an identified user back into an anonymous one.
  • Start channel admin early. DNS delegation, IP warming, WhatsApp template approval and Australian sender ID registration all have lead times you don't control.
  • Use Cloud Data Ingestion for warehouse data and the SDKs for behavioural data, rather than forcing one route to do both jobs.
  • Build reusable pieces (Content Blocks, Liquid patterns) before you build Canvases, not after.
  • A tight first release can go live faster than 12 weeks. Stitch's Serko AI lifecycle layer reached production six weeks from kick-off.

How long does a Braze implementation take?

At Stitch, a typical implementation runs 8 to 12 weeks, and that holds for composable builds too, where Braze sits alongside a warehouse or CDP. The 12-week plan below leaves room for real-world delays such as legal sign-off, app store releases and DNS changes.

Shorter is possible when the first release is scoped tightly. For Serko AI, where Stitch was lead Braze partner working alongside Braze's onboarding team, the lifecycle layer shipped to production in six weeks from kick-off. Booking confirmation, disruption SMS and 24-hour reminder flows were live from day one of the US beta on 9 May 2026.

WeeksPhase
1 to 2Discovery and planning
2 to 3Data model and external_id strategy
3 to 6SDK integration (web, iOS, Android)
4 to 7Data ingestion
2 to 9Channel setup, including IP warming and sender registration
6 to 9Liquid, Content Blocks and Canvas build
9 to 10QA
11Launch
12Optimisation and handover

What happens in discovery?

Discovery sets the scope of your first release. Agree the three to five journeys that matter most, the channels each one needs, and the events and attributes that trigger and personalise them. This is also where you design your workspace structure. Braze describes a workspace as "a shared environment for you to track and manage engagement for related mobile apps or websites", and notes that a new workspace doesn't inherit historical data or user profiles from another one.

Leave discovery with a written tracking plan, a journey list with owners, and a list of external dependencies (app release dates, DNS access, legal review).

How should you design your data model and external_id strategy?

The external_id is the identifier you assign once you can recognise a user, and it lets Braze identify the same user profile across multiple devices. Two rules from Braze's own guidance shape everything else:

  • Don't assign an external_id before you can uniquely identify the person, and once a user is identified you can't make them anonymous again.
  • Braze recommends UUIDs and lists email addresses, visible usernames and auto-incrementing IDs as not recommended.

For anything that isn't your primary key, such as a CRM or BI tool ID, use user aliases. An alias is a label and name pair, and you can set as many as you need on a profile. When an anonymous user is later identified with an existing external_id, Braze merges selected fields into the known profile, and the identified user's values win where data conflicts.

In the same phase, define custom attributes, custom events and purchase events, plus any nested structures. For Serko, Stitch used GUID-based external ID resolution and co-designed a flattened active_flights array schema with Braze to work around nesting limits on multi-leg trips.

What does SDK integration involve for web, iOS and Android?

Braze publishes SDKs for Web, Android, Swift and several cross-platform frameworks, including React Native and Flutter. The core steps are similar on each platform: install the SDK, initialise it with your API key and SDK endpoint from the dashboard, and call changeUser with the external_id when the user logs in.

Watch these details:

  • On web, Braze advises calling openSession after changeUser, otherwise you can lose session data for anonymous users.
  • Don't call changeUser on logout, and never use a shared or default ID. Braze warns against both.
  • If you hash an identifier instead of using a UUID, implement SDK authentication to prevent user impersonation.
  • Book mobile release dates early.

How do you get data into Braze?

Use the SDKs for real-time behaviour, and Cloud Data Ingestion (CDI) for data that already lives in your warehouse. CDI connects directly to Snowflake, BigQuery, Redshift, Databricks and Microsoft Fabric, as well as S3, Azure Blob Storage and Google Cloud Storage. It syncs user attributes (including nested attributes and subscription statuses), custom events, purchases and catalog items, on a schedule as often as every five minutes. Serko's data warehouse feeds Braze this way.

For one-off loads, Braze also supports CSV import and the /users/track REST endpoint. Plan the outbound direction too: Braze Currents streams engagement events in real time to your warehouse or analytics tools.

What channel setup has the longest lead time?

Email: domains, authentication and IP warming

Braze's email setup starts with delegating a sending subdomain, after which Braze manages SPF and DKIM for your sending and tracking domains. Set a DMARC policy on your root domain as well. Use separate IP pools if you want to keep transactional and marketing reputation apart.

Then warm your IPs. Braze calls this required and publishes conservative, moderate and aggressive schedules, all starting at 50 emails on day one. Start with your most engaged contacts, warm to your average daily volume rather than your peak, and use the built-in user limit on campaigns to control volume. Reputation data is typically kept for about 30 days, so a month of silence means warming again.

SMS and WhatsApp

In Braze, SMS sending numbers sit inside subscription groups, and users are subscribed or unsubscribed per group, so you can separate transactional and promotional traffic. If you send to Australian numbers with an alphanumeric sender ID, register it in the ACMA SMS Sender ID Register. From 1 July 2026, unregistered sender IDs are replaced with "Unverified". For New Zealand numbers, confirm sender requirements with your SMS provider early.

WhatsApp in Braze needs a Meta Business account and a WhatsApp Business account, connected through embedded signup. Only Meta-approved templates can start conversations, so submit templates as soon as copy is agreed.

How should you build templates and Canvases?

Build the reusable layer first. Content Blocks hold cross-channel content such as headers, footers and offer codes in one library (up to 50kB each, nestable only one level deep). Liquid handles personalisation and conditional logic, and Connected Content pulls information from an API into a message at send time.

Then build journeys in Canvas, Braze's interface for multi-message campaigns, using steps such as Message, Delay, Decision Split, Action Paths, Experiment Paths and Audience Paths.

What should QA cover before launch?

Test the data before the messages. Confirm that profiles merge as expected, events arrive with the right properties, and subscription states are correct. Then test each Canvas path with real test profiles, every Liquid fallback for missing data, every channel's opt-out, and rendering across devices. Braze notes that it doesn't support all of Shopify's Liquid, so test templates rather than assuming.

What happens at launch and after?

Launch transactional and high-value triggered journeys first, while email volume is still warming. Use week 12 to review delivery, conversion and data quality, then agree a backlog for the next release.

Printable Braze implementation checklist

Discovery

  • First-release journeys, channels and owners agreed
  • Workspace structure decided
  • Tracking plan written (events, attributes, purchases)
  • External dependencies listed with dates

Data model

  • external_id format agreed (UUID or equivalent, not email)
  • Login and logout identification rules documented
  • User alias labels defined for secondary IDs
  • Nested attributes and arrays designed

SDKs

  • Web SDK installed, changeUser and openSession order checked
  • iOS and Android SDKs installed and app releases booked
  • SDK authentication considered

Data ingestion

  • Cloud Data Ingestion syncs configured and scheduled
  • Historical import plan agreed (CSV or API)
  • Currents destination agreed

Channels

  • Sending subdomain delegated, DMARC set
  • IP pools agreed, warming schedule chosen and started
  • SMS subscription groups created, Australian sender IDs registered
  • WhatsApp accounts connected and templates submitted

Build

  • Content Blocks and Liquid patterns built
  • Connected Content endpoints tested
  • Canvases built with fallbacks

QA and launch

  • Profile merge and event tests passed
  • Every path tested with test users
  • Opt-outs tested on every channel
  • Launch sequence and rollback plan agreed

How Stitch can help

Stitch is an independent Auckland consultancy and a Braze Alloys Solutions Partner (Orbit tier), named ANZ Rising Star of the Year at Braze's inaugural ANZ Partner Awards in 2026. Skyline Enterprises appointed Stitch as its Braze onboarding partner in 2026. For Serko AI, Stitch delivered the Braze Web SDK, Transactional API flows, a dual sender architecture, Cloud Data Ingestion from the warehouse and server-side integration via GTM, shipping to production six weeks from kick-off. Our typical timeline is 8 to 12 weeks.

FAQ

How long does a Braze implementation take? Typically 8 to 12 weeks from kick-off to live journeys. A tightly scoped first release can be faster: Serko AI's went live in six weeks.

What should be decided first in a Braze implementation? Your external_id strategy. Braze recommends UUIDs, and identified users can't be made anonymous again, so changing course later is expensive.

Do I need to warm my IP addresses in Braze? Yes. Braze describes IP warming as required and recommends starting with your most engaged users and building to your average daily volume.

Can Braze read data directly from my warehouse? Yes. Cloud Data Ingestion syncs attributes, events, purchases and catalogs from Snowflake, BigQuery, Redshift, Databricks and Microsoft Fabric.

Do Australian SMS senders need to register? Yes, if you use an alphanumeric sender ID. From 1 July 2026, unregistered IDs show as "Unverified" in Australia.

Sources

Talk to a Braze partner

More on Braze

Let's connect the dots.
Get in touch.

Or book a time that suits you. No pitch deck, no obligation.