Pre-requisites
Requirement | Description |
Braze Account | A Braze Administrator account is needed. |
Braze API User | A Braze API key 🔗 is required by charles to interact with your Braze account. The API keys needs to the following permissions: segments.list users.export.segment subscription.status.set subscription.status.get users.track |
In charles
Go to Settings > Integrations > Marketplace
Find Braze and select Connect. A pop-up will appear
Configure the connection using the Braze API key.
Once it’s successful, you should find Braze in the Connected apps section.
Configuring the features
Import Braze contacts into charles
1 - Select the segments you want to import
2 - Perform the field mapping
By default, we import the following fields from Braze into charles
Source (Field on Braze) | Destination (Field on charles) |
First Name | Last Name |
Last Name | Last Name |
Phone | Phone Number |
Email Addresses |
Limitations: - 500k contacts is the maximum size a segment should have for the import into charles - Currently, it is not possible to import additional custom properties.
Contact identification and unification logic
During the import we de-duplicate contacts based on the logic below:
4 - Opt-in export
Whenever contacts are imported and unified with existing contacts, we export potential opt-in/opt-out data to Braze
5 - Recurring import (coming soon)
After saving the configuration, we execute the import of contacts into charles. In addition to that, the import is triggered automatically every 12h.
Opt-in Export from charles to Braze
In addition to the opt-in/opt-out export after the contact import, there is also a real-time synchronization happening: Every time an end-user grants or withdraws an opt-in on charles, then we will send this information to Braze.
Configuration:
Create a custom property in Braze.
name: no hard requirement, for example, “WhatsApp opt-in”
field type:
text
Select the field on page 3.
Set up an Braze canvas that triggers a charles flow
This use case involves two components that need to be configured: The canvas that sends events to charles on Braze and the charles flows.
Component 1 - Set up the Braze automation
1a - Create a Webhook template
Create the webhook present in Braze. Docs
Configure the Connection values as follows:
Field | Value |
API endpoint URL | You can find it on the “Webhooks” page of the configuration settings |
Header | key: api-key value: <REPLACE with value from the configuration settings> |
Please configure the Data values as follows:
Event data: If you enable this, charles will receive the data of the event that triggered the webhook. This data can be used for personalizing WhatsApp messages.
Contact data:
external_id
email
phone
For the phone, select the property that you use for storing the mobile phone number on Braze. Please note that phone numbers must be in format +{Country Code}… or {Country Code}…, for a German number this would be +4915… or 4911111
ID, Email and Phone are used by charles to identify the end-user who for whom the charles flow needs to be triggered.
Given a webhook is sent for a contact that does not exist yet, then charles will create a new contact based on the phone and/or the email from the webhook and attach the event to it.
Additional Data:
event_name
The event name is used for identifying the charles flow to trigger.
All other settings are optional.
1b - Add a the charles webhook node to your canvas
Open the program where you would like to use the Webhook node and insert it.
Double-click the Webhook node and select the required charles configuration preset from the dropdown.
If the automation is triggered by an event and the automation program is configured to “Data of the triggering event is being sent”, then the event data will be available in charles flows.
Component 2 - Setting up the charles flow
Create a new flow
Select Braze trigger
Payload configuration: Based on the properties in the event, create a payload.
Example
{
"birthdate": "",
"discount_code": ""
}