Braze Cloud Data Ingestion
Braze Cloud Data Ingestion (CDI) allows you to set up a direct connection from your data storage solution to sync relevant user data and other non-user data to Braze. This data can then be used for personalization or segmentation to power your marketing use cases. Cloud Data Ingestion’s flexible integration supports complex data structures, including nested JSON and arrays of objects.
How it works
With Braze Cloud Data Ingestion (CDI), you set up an integration between your data warehouse instance and Braze workspace to sync data on a schedule or on demand. Each integration can have its own schedule.
- Scheduled syncs: Recurring syncs can run as often as every 5 minutes or as rarely as once per month. By default, the shortest interval you can set in the dashboard is 15 minutes, which helps manage your warehouse compute costs and request volume. To sync as often as every 5 minutes, contact Braze Support or your customer success manager.
- On-demand syncs: To sync data as soon as it changes, call the Trigger a sync endpoint with your integration ID when your warehouse load or transformation job finishes. On-demand syncs don’t affect your recurring schedule. Only one sync can run per integration at a time.
File storage integrations (Amazon S3, Azure Blob Storage, and Google Cloud Storage) are event-driven and don’t use a schedule. Braze ingests new files as they’re uploaded. For setup details, see File storage integrations.
When a sync runs, Braze directly connects to your data warehouse instance, retrieves all new data from the specified table, and updates the corresponding data on your Braze dashboard. Each time the sync runs, any updated data is reflected in Braze.
Use cases
With Braze Cloud Data Ingestion capabilities, you can:
- Create a simple integration directly from your data warehouse or file storage solution to Braze in just a few minutes.
- Securely sync user data, including attributes, events, and purchases from your data warehouse to Braze.
- Close the data loop with Braze by combining Cloud Data Ingestion with Currents or Snowflake Data Sharing.
In addition, Connected Sources are a zero-copy alternative. You can have Braze directly query your data warehouse or file storage solution to construct CDI segments —all without copying the underlying data to Braze.
Supported data sources
Cloud Data Ingestion can sync data from:
Cloud Data Warehouse:
- Amazon Redshift
- Databricks
- Google BigQuery
- Microsoft Fabric
- Snowflake
Cloud Data Storage:
- Amazon S3
- Azure Blob Storage
- Google Cloud Storage
Supported data types
Cloud Data Ingestion supports the following data types:
User data
- User attributes, including:
- Nested custom attributes
- Arrays of objects
- Subscription statuses
- Custom events
- Purchase events
- User deletion requests
Non-user objects
- Catalog items
Zero-copy messaging
- Canvas triggers
- Connected Sources
User identifiers for data ingestion
When syncing user data through Cloud Data Ingestion, you can identify users using one or more of the following identifier types. Each row in your source table should contain a value for only one identifier type at a time, but your table can include columns for one, two, three, four, or all five identifier types.
| Identifier | Description |
|---|---|
EXTERNAL_ID |
The external ID that identifies the user profile to create or update. This should match the external_id value used in Braze. |
ALIAS_NAME and ALIAS_LABEL |
These two columns create a user alias object. alias_name should be a unique identifier, and alias_label specifies the type of alias. Users may have multiple aliases with different labels but only one alias_name per alias_label. |
BRAZE_ID |
The Braze user identifier generated by the Braze SDK. New users cannot be created using a Braze ID through Cloud Data Ingestion. To create new users, specify an external user ID or user alias. |
EMAIL |
The user’s email address. If multiple profiles with the same email address exist, the most recently updated profile is prioritized for updates. If you include both email and phone, email is used as the primary identifier. |
PHONE |
The user’s phone number. If multiple profiles with the same phone number exist, the most recently updated profile is prioritized for updates. |
For detailed information about setting up table columns and payload formatting requirements, see Table setup for Cloud Data Ingestion.
For source-specific setup instructions and SQL examples, see Data Warehouse integrations.
Finding your integration ID
You can find your integration ID in the URL when viewing an integration in the Braze dashboard. Go to Data Settings > Cloud Data Ingestion and select an integration. The integration ID appears in the URL in the format https://[instance].braze.com/integrations/cloud_data_ingestion/[integration_id]. For example, if your URL is https://dashboard-01.braze.com/integrations/cloud_data_ingestion/abc123xyz, your integration ID is abc123xyz. You can use this ID when making API calls to trigger syncs or check sync status.
Data point usage
For customers on data points-based billing, data point billing for Cloud Data Ingestion is equivalent to billing for updates through the /users/track endpoint. Refer to Data points for more information.

Braze Cloud Data Ingestion counts toward the available rate limit, so if you’re sending data using another method, the rate limit is combined between the Braze API and Cloud Data Ingestion.
Product limitations
| Limitation | Description |
|---|---|
| Number of integrations | There is no limit on how many integrations you can set up. |
| Number of rows | By default, each run can sync up to 500 million rows. Any syncs with more than 500 million new rows are stopped. If you need a higher limit than this, contact your Braze customer success manager or Braze Support. |
| Attributes per row | For syncs using a PAYLOAD column, each row should contain a single user ID and a JSON object with up to 250 attributes. Each key in the JSON object counts as one attribute (that is, an array counts as one attribute). |
| Payload size | For syncs using a PAYLOAD column, each row can contain a payload of up to 1 MB. Payloads greater than 1 MB are rejected, and the error “Payload was greater than 1MB” is logged to the sync log along with the associated external ID and truncated payload. |
| Data type | You can sync user attributes, custom events, purchase events, catalog items, user deletion requests, and Canvas triggers through Cloud Data Ingestion. |
| Braze region | This product is available in all Braze regions. Any Braze region can connect to any source data region. |
| Source region | Braze connects to your data warehouse or cloud environment in any region or cloud provider. |