Delete users with Cloud Data Ingestion
This page discusses the process for deleting users with Cloud Data Ingestion (CDI). User delete syncs are supported for all available CDI data sources.
Configure the integration
Follow the standard setup process for the source you want to connect to, and make sure the credentials Braze uses can access the delete table. On the Create import sync page, set the Data Type to Delete Users so that the proper actions are taken during the integration run to delete users.

Configure source data
For the source table or file format for your source, open your source page and select the User deletions tab.
| Source | User deletion setup |
|---|---|
| Snowflake | Snowflake source table |
| Amazon Redshift | Redshift source table |
| Google BigQuery | BigQuery source table |
| Databricks | Databricks source table |
| Microsoft Fabric | Microsoft Fabric source table |
| Amazon S3 | Amazon S3 file formats |
| Google Cloud Storage | Google Cloud Storage file formats |
| Azure Blob Storage | Azure Blob Storage file formats |
Source tables for user deletes should include one or more user identifier types and an UPDATED_AT timestamp. Payload columns aren’t supported for user delete data.
UPDATED_AT- The time this row was updated or added to the table. Braze syncs rows whereUPDATED_ATis later than the last synced value. Rows at the exact boundary timestamp may be re-synced if new rows share that same timestamp.- User identifier columns - Each row should only contain one identifier: either
external_id, the combination ofalias_nameandalias_label, orbraze_id. A source table may contain columns for one, two, or all three identifier types.EXTERNAL_ID- This identifies the user you want to update. This should match theexternal_idvalue used in Braze.ALIAS_NAMEandALIAS_LABEL- These two columns create a user alias object.alias_nameshould be a unique identifier, andalias_labelspecifies the type of alias. Users may have multiple aliases with different labels but only onealias_nameperalias_label.BRAZE_ID- The Braze user identifier. This is generated by the Braze SDK and 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.

Do not include a PAYLOAD column in your table for user removal. To prevent accidental, permanent removal of users, a sync fails if a payload column is provided in the source table. Any other columns are allowed but are ignored by Braze.

File storage sources don’t require or support the UPDATED_AT column.
How it works
With Braze Cloud Data Ingestion, you set up an integration between your data warehouse instance and Braze workspace. Syncs run on a schedule you set or on demand through the API. For frequency options, see How it works.
When a sync runs, Braze directly connects to your data warehouse instance, retrieves all new data from the specified table, and deletes the corresponding user profiles on your Braze dashboard.
For file storage sources, Braze processes new files as they’re uploaded to your bucket or container and deletes the corresponding user profiles.

Deleting user profiles cannot be undone. The delete action permanently removes users, which may cause discrepancies in your data. For details, see Effects of deleting user profiles.