Skip to content

Commit

Permalink
Merge pull request #5066 from colleenkerr/develop
Browse files Browse the repository at this point in the history
Add additional ID type support
  • Loading branch information
KellieHawks authored Mar 21, 2023
2 parents afee3bc + 9be40bc commit 3c65157
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ With Braze Cloud Data Ingestion, you set up an integration between your data war

When a sync runs, Braze will directly connect to your data warehouse instance, retrieve all new data from the specified table, and update the corresponding user profiles on your Braze dashboard. Each time the sync runs, any updated data will be reflected on the user profiles.

### Supported data types

Sync user attributes, custom events, and purchases through Cloud Data Ingestion. Data for a user can be updated by external ID, user alias, or Braze ID.

### What gets synced

Each time a sync runs, Braze looks for rows that have not previously been synced. We check this using the `UPDATED_AT` column in your table or view. Any rows where `UPDATED_AT` is later than the last synced row will be selected and pulled into Braze.
Expand Down Expand Up @@ -139,4 +143,4 @@ We have a public [GitHub repository](https://github.com/braze-inc/braze-examples
| Snowflake region | You can connect your Snowflake instance in any region or cloud to Braze using this product. |
{: .reset-td-br-1 .reset-td-br-2}

<br><br>
<br><br>
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,24 @@ Create a table (or view) to use for your CDI integration
```json
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC (
updated_at timestamptz default sysdate,
--at least one of external_id, alias_name and alias_label, or braze_id is required
external_id varchar,
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
--braze_id can only be used to update existing users created through the Braze SDK
braze_id varchar,
payload varchar(max)
)
```

You can name the database, schema, and table as you'd like, but the column names should match the preceding definition.

- `UPDATED_AT` - The time this row was updated in or added to the table. We will only sync rows that have been added or updated since the last sync.
- `EXTERNAL_ID` - This identifies the user you want to update. This should match the `external_id` value used in Braze.
- User identifier columns. Your table may contain one or more user identifier columns. Each row should only contain one identifier (either `external_id`, the combination of `alias_name` and `alias_label`, or `braze_id`. A source table may columns for one, two, or all three identifier types.
- `EXTERNAL_ID` - This identifies the user you want to 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. 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.
- `PAYLOAD` - This is a JSON string of the fields you want to sync to the user in Braze.

#### Step 2: Create User and grant permissions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,24 @@ CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
EXTERNAL_ID VARCHAR(16777216) NOT NULL,
--at least one of external_id, alias_name and alias_label, or braze_id is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
--braze_id can only be used to update existing users created through the Braze SDK
BRAZE_ID VARCHAR(16777216),
PAYLOAD VARCHAR(16777216) NOT NULL
);
```

You can name the database, schema, and table as you'd like, but the column names should match the preceding definition.

- `UPDATED_AT` - The time this row was updated in or added to the table. We will only sync rows that have been added or updated since the last sync.
- `EXTERNAL_ID` - This identifies the user you want to update. This should match the `external_id` value used in Braze.
- User identifier columns. Your table may contain one or more user identifier columns. Each row should only contain one identifier (either `external_id`, the combination of `alias_name` and `alias_label`, or `braze_id`. A source table may columns for one, two, or all three identifier types.
- `EXTERNAL_ID` - This identifies the user you want to 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. 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.
- `PAYLOAD` - This is a JSON string of the fields you want to sync to the user in Braze.

#### Step 2: Set up the role and database permissions
Expand Down

0 comments on commit 3c65157

Please sign in to comment.