Braze integration — powering personalised
customer comms at scale
A fintech's marketing team was running campaigns on stale spreadsheet exports. We built the full data layer — journey models, zero-copy Braze sync, and encrypted PII delivery — so every message is based on what a client actually did.
The situation
Campaigns running on week-old spreadsheets
The marketing team at a growth-stage fintech were doing everything manually. To run a lifecycle campaign — welcome series, funding nudges, re-engagement flows — an analyst would pull a segment from the database, export it to a spreadsheet, and upload it to Braze by hand. By the time the campaign fired, the data was days old.
Worse, there was no single view of where a client was in their journey. The company's product had three key stages — application, funding, and trading — each tracked in a different system, with no shared model connecting them. The marketing team had no way to know which stage a client was at, or what they'd done in the last 48 hours.
A client could apply, get approved, and fund their account — and still receive a "haven't heard from you" re-engagement email the next morning, because the segment hadn't been refreshed.
What we built
End-to-end: from raw events to Braze profiles
We designed and built the full data layer — from staging models through to the Braze CDI sync — so the marketing team could run personalised campaigns from the Braze UI without touching a spreadsheet or pinging an analyst.
Built best-practice dbt models representing the full client lifecycle — application status, funding events, and trading activity — as a unified analytical layer in BigQuery. Each stage is a clearly defined dimension with timestamps, statuses, and the business logic needed for segmentation.
On top of the journey models, built a zero-copy layer specifically for Braze ingestion — pre-filtered to only include clients who meet the business requirements (valid contact details, opted-in status, etc.). The model reads directly from the warehouse with no data movement, no duplication, and stays queryable from the Braze UI.
Set up Braze Connected Data Integration (CDI) to push client attributes as a structured payload on a 3-hour Airflow schedule. Braze receives a full profile for each client — lifecycle stage, product holdings, recent activity, preferences — and updates the client record in real time. Comms can now be triggered on actual behaviour, not batch exports.
All personally identifiable information — names, email addresses, phone numbers — is encrypted at the pipeline layer before leaving the warehouse. Data arrives in Braze encrypted and is decrypted only at the point of use. No raw PII traverses the integration, removing the privacy exposure that comes with standard sync approaches.
The outcome
Marketing team fully unblocked. Zero manual work.
What made it work
Model the journey first. Connect Braze second.
The temptation with a Braze integration is to go straight to the sync. We pushed back on that. Before any data moved to Braze, we spent time modelling the client journey properly in the warehouse — because a sync is only as good as the data behind it.
The zero-copy approach meant there was no separate data store to maintain and no duplication risk. The Braze layer reads from the same models the analytics team uses — so the "active client" a marketer targets in a campaign is identical to the "active client" a data analyst reports on. One definition, everywhere.
Ready when you are.
Book a free 30-minute call. We'll find the gaps, prioritise the fixes, and give you a clear path forward.
Usually responds within 24 hours