Is Your Data Ready? BrazeAI Decisioning Studio Requirements

Over-the-shoulder view of a monitor showing an abstract data table with one green row, a hand on a trackpad and four index cards beside the keyboard, showing a data readiness check.

BrazeAI Decisioning Studio Pro learns from the data you connect, so data readiness decides how well an agent can work. Braze documents four principles: one customer identifier across every asset, events delivered as an incremental stream, snapshots refreshed on a schedule, and clean, deduplicated records. This guide covers those principles, the connection options and the backfill rules, then ends with a four-pass readiness check.

‍

Key Takeaways

  • Braze documents four data principles for Decisioning Studio Pro, and says breaking any of them is among the most common causes of degraded model performance.
  • Use exactly one primary customer identifier across every asset. Braze recommends the Braze external ID.
  • Deliver events as individual timestamped records, and refresh snapshots on a schedule for every customer, including customers with no new events.
  • Slice daily event exports on the creation timestamp, because slicing on the event timestamp permanently misses late-arriving records.
  • Choose features that help the agent tell your specific options apart, not features that only describe customers broadly.
  • We recommend four readiness passes in order: identity, events, snapshots, then backfill.

‍

What are the Braze Decisioning Studio data requirements?

BrazeAI Decisioning Studio comes in two tiers, and the data work differs between them. Go learns from three signals, all within Braze: your audience, that audience's email engagement and its own understanding of your content. Pro adds your first-party data, such as custom attributes, warehouse data and custom conversion events.

The data preparation pages are written for Pro, and they are direct about the stakes. High-quality data is the foundation of an effective agent. Violating any of the four principles is among the most common causes of degraded model performance.

AssetShapeWhat it tells the agentKey fields
Customer profileSnapshotThe current state of each customerCustomer identifier, snapshot date
ActivationsEvent streamWhat the agent decided to doCustomer identifier, event type, event timestamp, creation timestamp
EngagementsEvent streamHow customers responded to the messageSame as activations
ConversionsEvent streamWhether the business outcome was achievedSame as activations, plus the metric value when the success metric is not binary

‍

For native Braze integrations, activation and engagement data may arrive automatically through Braze Currents. If your success metric is revenue rather than converted or not converted, each conversion record must carry its value. If direct attribution isn't possible, the agent falls back to proximity-based attribution.

‍

Which customer identifier should every asset use?

Braze's guidance is exactly one primary identifier, present in every asset, and it recommends the Braze external ID. Pro operates exclusively on that ID as its unit of customer identity.

A warehouse ID for features and a platform ID for activations need a translation layer. The pages say that layer introduces fragility, and an engine that can't join assets reliably breaks the feedback loop.

In Braze, a user profile corresponds to a reachable communication channel. A customer with two email addresses has two profiles and two external IDs, and Pro treats them as separate entities. If duplicate profiles aren't reliably merged, the pages say some customers may receive lower-quality personalisation because their history is fragmented.

We recommend counting how many profiles a typical customer has in your workspace before you design an agent. Unmerged duplicates are a data requirement in their own right.

CustomerIK's customer data management service covers identity resolution and merging duplicate profiles. Our case study on consolidating fragmented customer profiles describes that kind of work.

If your business has multiple storefronts or sub-brands, discuss the customer hierarchy with the AI Decisioning Services team first. The pages ask for this before you finalise the identifier strategy.

‍

How should events and snapshots be delivered each day?

Pro runs its recommendation pipeline once per day and needs two shapes of data. Snapshots describe a customer's state, such as profile fields and computed features. Event streams record what happened, one immutable record per event.

Snapshots should be generated on a schedule for every customer, including those with no new events. New snapshot records are appended rather than written over earlier values. Events work the other way round, as only customers who had an event get new records.

Slice each daily export on the creation timestamp. Events written to your system after they occurred are permanently missed if you slice on the event timestamp. The pages give this query pattern, where t is the run date:

-- Correct: use create_timestamp to ensure late-arriving events are captured
SELECT * FROM events_data WHERE DATE (create_timestamp) = { t - 1 }
-- on run date t, export all records created yesterday

‍

Braze mechanismData shapeDocumented behaviour
Custom attributesSnapshot data: customer profiles and computed featuresEach update overwrites the previous value, so the attribute holds the latest state and earlier events are gone. Braze says not to use custom attributes to pass raw event data.
Braze Currents, USER_BEHAVIOR_CUSTOM_EVENTS tableEvent stream dataCaptures every instance of a custom event as it occurs, making it the correct source for activation, engagement and conversion events.

‍

The pages describe appended snapshots in one place and overwriting custom attributes in another. Our suggestion is to ask the AI Decisioning Services team how state history is preserved in your set-up.

Two failure modes recur in the documentation. Aggregating events into a snapshot field, such as a last send time attribute, loses each event's timing and blocks precise attribution. Updating a snapshot only when an event occurs freezes time-based features, so days since last purchase goes stale for customers who haven't purchased recently.

‍

How do you connect the data, and what needs security review?

Braze lists four integration patterns for Pro, and the setup complexity differs between them.

Integration patternBest forSetup complexity
Braze Data PlatformCustomers already using BrazeLow
Braze Cloud Data Ingestion (CDI)Connecting external data warehousesMedium
Cloud Storage (GCS, AWS, Azure)Direct data exports from other platformsMedium
CEP integrationsSFMC, Klaviyo data extensionsMedium

‍

We recommend choosing the pattern by where your outcome data already lives, not by which is quickest to wire. A pattern that moves conversion data through a second system adds one more place for identifiers to drift.

Warehouse data can reach Pro in two ways through CDI. You can sync it into the Braze Data Platform, or send it directly to Pro without adding it to user profiles or custom attributes. The direct option is in early access, and a release note dated 20 Aug 2026 carries the same status.

Each direct sync needs a primary or composite key and maps to a single asset, so plan one sync per asset.

Several documented details belong in a security review before anything is connected:

  • The connect-your-data page says Information Security will still need to vet all connection points.
  • The integration guide says Decisioning Studio doesn't accept PII, so an export by external ID must return only non-PII fields.
  • The assets page lists geography as a profile attribute with the qualifier "where permitted by your industry and privacy requirements".
  • The integration guide lists the Braze API key permissions the integration uses, and they aren't all read-only. /users/track updates custom attributes on user profiles, and /messages/send sends recommended variants through API campaigns.
  • The Klaviyo route asks for a private API key with Full Access to Profiles. The Salesforce Marketing Cloud route asks you to provide the extension ID and API key to the AI Decisioning Services team.

‍

These pages don't describe subprocessors, retention or cross-border transfer, and this post doesn't settle those questions. We recommend starting the security work alongside the identifier pass. A pattern that fails review sends you back to the table above, and the identifier work is the same whichever pattern survives.

‍

Which features should you build for the agent?

Braze describes four feature types: user profiling, user propensity, user behavioural and environmental. Profiling features hold objective facts about status, and propensity features are model-derived scores. Behavioural features summarise activity over a time window, and environmental features carry signals external to the customer.

The guidelines read like a data quality checklist: features should cover every customer in the target audience, stay within valid ranges and refresh on a schedule. Avoid features that are zero or null for the vast majority of customers. Avoid features that are highly correlated with each other.

The pages suggest 7 to 28 days for high-frequency activity such as app logins. They suggest 90 to 365 days for infrequent activity such as subscription renewals. If a large percentage of a feature's values are zero, the window is probably too short.

Pro is a ranking system, so features should help the model tell the available options apart for a given customer. Braze says broad features, such as high email engagement, don't help much when the model must rank two specific options. In our view, choosing between a discount and a reminder calls for a feature recording each customer's past response to discounts.

‍

How should you backfill historical data?

Braze lists new features, data recovery and logic changes as common reasons to backfill. The lookback window is measured in months and depends on the model's training needs. The AI Decisioning Services team confirms it for your use case, and this post gives no number.

Two standards are mandatory. Historical snapshots must come from a process fully consistent with live snapshot creation. The schema must match the daily pipeline, including fields, data types and column names.

Braze calls data leakage the most critical backfilling mistake. Its example is a lifetime value feature built from total spend to date, then used to predict behaviour from months ago. The fix is to rebuild each historical feature from the information available at that historical timestamp.

Backfill jobs that fail mid-run and are restarted can produce duplicate records. Design every script to be idempotent, so running it twice gives the same result as running it once. Braze names two patterns: delete then insert for the target time range, or an upsert keyed on a unique transaction ID or timestamp.

We recommend running the first backfill in a non-production environment. Then compare one historical snapshot with what the live pipeline would have produced on that date.

‍

Where do data readiness checks usually go wrong?

These points are our judgement, formed by reading the documented rules against each other. Braze doesn't make these statements, so treat them as places to look.

The identifier test under-runs first. A mapping can look one-to-many on a sample and still hold many-to-many cases in the tail, such as a reassigned account number. Test the whole mapping table, because the pages tie identity drift to corrupted training signals and wrong attribution.

Outages come second. A tempting fix after a gap is to rerun the export sliced on event time. That brings back the late-arrival loss the pages warn about, so rerun on the creation timestamp.

Feature definitions come third. If the warehouse team and the lifecycle team calculate an active customer differently, a backfill will mix the two. Pick one owner and one definition before any history is rebuilt.

Early-access routes come last. Planning a launch date around the direct warehouse sync means planning around a status that can change. Keep the Braze Data Platform route as the fallback until the status moves.

‍

What does a readiness check look like in practice?

Take a hypothetical subscription retailer that wants an agent to choose between a discount and a reminder for lapsed subscribers. This is an illustration and not client work, and it uses no figures. The retailer's features sit in the warehouse under an account number, while its Braze profiles came from email sign-ups.

PassWhat happens in the hypothetical caseExit test you can run
1. IdentityBuild a mapping from account number to Braze external ID and look for accounts that map to more than one profile. Merge or document each case, then key every asset on the Braze external ID.Every row in every asset joins to one external ID, and each account mapped to several profiles is merged or documented.
2. EventsThe retailer keeps a last discount sent attribute in Braze. That field overwrites itself, so the send history has to come from Currents as individual records.For any one customer, you can list every send in order with its own event timestamp and creation timestamp.
3. SnapshotsDays since last order is recalculated only when an order arrives. Lapsed subscribers are the target audience, so the feature must refresh on a schedule for every subscriber.A customer with no activity still shows a different time-based feature value tomorrow.
4. BackfillLifetime spend is calculated to date. Rebuild it as it stood on each historical date, or the model trains on information it could not have had.Running the job twice gives identical row counts, and an old record matches what you knew on that date.

‍

The order matters because each pass inherits the mistakes of the one before it. A wrong identifier corrupts events, snapshots and backfills alike, while a stale feature only affects one column.

We recommend treating the agent as not ready to design until all four passes are clean.

‍

How does this connect to the rest of the programme?

Tier choice comes first, and our guide to choosing between Decisioning Studio Go and Pro sets out that decision. Our plan for which Braze AI features to adopt first shows where data work sits in the sequence.

For the feeds Pro reads from, integrating CRM data into Braze and tracking user events in Braze are the practical starting points. Segment hygiene matters for Go, because its entry audience shouldn't be used in another Canvas or campaign. Our guide to segmenting your audience in Braze covers that.

Braze's own guidance on preparing your data is the source of truth for every limit and status in this post. Check it again before you plan.

‍

Frequently Asked Questions
‍

1. Does Decisioning Studio Go need this data preparation?

The data preparation pages refer to Pro throughout, and Go learns from three signals, all within Braze. Its setup page asks for an entry segment that isn't used in another Canvas or campaign. It recommends at least 20,000 users and supports up to 40,000,000.

2. Which identifier should I use for Decisioning Studio Pro?

Use the Braze external ID. Braze says Pro operates exclusively on it as its unit of customer identity. It recommends one identifier across every data asset.

3. Can I send warehouse data without adding it to Braze profiles?

Yes, through Cloud Data Ingestion with Decisioning Studio as the destination. Braze lists this option as early access. Data from these syncs is made available to Decisioning Studio, while your user profiles and Braze workspaces remain unchanged.

4. Does Decisioning Studio accept personal data?

The integration guide says Decisioning Studio doesn't accept PII, so user exports by external ID must return only non-PII fields. Whether your own set-up meets your privacy obligations is a separate question, and this post doesn't settle it.

5. How far back should I backfill?

The window is measured in months and depends on the model's training requirements. The pages give no number. The AI Decisioning Services team confirms it for your use case.

‍

Sources

‍

CustomerIK is a Braze implementation partner working across onboarding, technical integration, marketing operations and customer data management.

If you're deciding whether your data can support a Pro agent, CustomerIK can walk through the four passes with your team, so let's talk.

‍

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.