Braze Cloud Mode (Actions) Destination
Additional versions of this destination are available
This page is about the Braze Cloud Mode (Actions) Destination. See below for information about other versions of the Braze destination:
Braze, formerly Appboy, is an engagement platform that empowers growth by helping marketing teams to build customer loyalty through mobile, omni-channel customer experiences.
Good to know: This page is about the Actions-framework Braze Segment destination. There’s also a page about the non-Actions Braze destination. Both of these destinations receives data from Segment. There’s also the Braze source, which sends data to Segment!
Benefits of Braze Cloud Mode (Actions) vs Braze Classic
Braze Cloud Mode (Actions) provides the following benefit over Braze Classic:
- E-commerce mappings. Segment implementations that don’t follow the e-commerce spec due to incompatible event names (for example, Trip Booked vs Order Completed) can use Event Triggers to log purchases in Braze Cloud Mode (Actions).
Getting Started
- From the Segment web app, click Catalog.
- Search for “Braze” in the Catalog, select Braze Cloud Mode (Actions), and choose which of your sources to connect the destination to.
- Add the following Connection Settings:
- API Key: Created under Developer Console in the Braze Dashboard.
- App ID: The app identifier used to reference specific Apps in requests made to the Braze API. Created under Developer Console in the Braze Dashboard.
- REST Endpoint: Your Braze REST Endpoint. For more information, see API Overview in the Braze documentation.
Braze now supports sending email as an identifier. Braze requires that you include userId, braze_id, or email for all calls made in cloud-mode. Segment sends a braze_id if the userId is missing. When you use a device-mode connection, Braze automatically tracks anonymous activity using the braze_id if a userId is missing.
Actions v2
Segment’s introduced the following v2 Actions to add additional functionality to the Braze Cloud Mode (Actions) destination:
These Actions support the following features:
- Sync modes: Control how Segment updates your downstream destination by selecting a sync mode, or a strategy for updating your downstream data.
- Dynamic dropdowns: When creating or updating a mapping in the Segment app, the dropdown auto-populates all of the available properties directly from Braze.
- Create and modify data: Use Sync modes to create objects in your downstream destination without having to leave the Segment app.
You might need to reauthorize your Braze account to use all of the features associated with v2 Actions.
Sync modes
Sync modes allow users to define how Segment should update the data in your destination.
Sync modes available for v2 Actions include:
- Upsert: Update existing records and add new ones, if necessary.
- Add: Add records to a list, segment, or journey.
Destination Settings
| Setting | Description |
|---|---|
| API Key | Required. Created under Developer Console in the Braze Dashboard. |
| App ID | The app identifier used to reference specific Apps in requests made to the Braze API. Created under Developer Console in the Braze Dashboard. |
| REST Endpoint | Required. Your Braze REST endpoint. See more details |
Available Presets
Braze Cloud Mode (Actions) has the following presets:
| Preset Name | Trigger | Default Action |
|---|---|---|
| Order Completed Calls | Event event = "Order Completed" |
Track Purchase |
| Identify Calls | Event type = "identify" |
Update User Profile |
| Track Calls | Event type = "track" and event != "Order Completed" |
Track Event |
Available Actions
Build your own Mappings. Combine supported triggers with the following Braze Cloud Mode-supported actions:
Mapping limits per destination
Individual destination instances have support a maximum of 50 mappings.
Update User Profile
Update a user’s profile attributes in Braze
Update User Profile is a Cloud action. The default Trigger is: type = "identify"
| Field | Description |
|---|---|
| External User ID | Type: STRINGThe unique user identifier |
| User Alias Object | Type: OBJECTA user alias object. See the docs. |
| Braze User Identifier | Type: STRINGThe unique user identifier |
| Country | Type: STRINGThe country code of the user |
| Current Location | Type: OBJECTThe user’s current longitude/latitude. |
| Date of First Session | Type: DATETIMEThe date the user first used the app |
| Date of Last Session | Type: DATETIMEThe date the user last used the app |
| Date of Birth | Type: DATETIMEThe user’s date of birth |
Type: STRINGThe user’s email |
|
| Email Subscribe | Type: STRINGThe user’s email subscription preference: “opted_in” (explicitly registered to receive email messages), “unsubscribed” (explicitly opted out of email messages), and “subscribed” (neither opted in nor out). |
| Email Open Tracking Disabled | Type: BOOLEANSet to true to disable the open tracking pixel from being added to all future emails sent to this user. |
| Email Click Tracking Disabled | Type: BOOLEANSet to true to disable the click tracking for all links within a future email, sent to this user. |
| Facebook Attribution Data | Type: OBJECTHash of Facebook attribution containing any of |
| First Name | Type: STRINGThe user’s first name |
| Gender | Type: STRINGThe user’s gender: “M”, “F”, “O” (other), “N” (not applicable), “P” (prefer not to say) or nil (unknown). |
| Home City | Type: STRINGThe user’s home city. |
| Image URL | Type: STRINGURL of image to be associated with user profile. |
| Language | Type: STRINGThe user’s preferred language. |
| Last Name | Type: STRINGThe user’s last name |
| Marked Email as Spam At | Type: DATETIMEThe date the user marked their email as spam. |
| Phone Number | Type: STRINGThe user’s phone number |
| Push Subscribe | Type: STRINGThe user’s push subscription preference: “opted_in” (explicitly registered to receive push messages), “unsubscribed” (explicitly opted out of push messages), and “subscribed” (neither opted in nor out). |
| Push Tokens | Type: OBJECTArray of objects with app_id and token string. You may optionally provide a device_id for the device this token is associated with, e.g., [{“app_id”: App Identifier, “token”: “abcd”, “device_id”: “optional_field_value”}]. If a device_id is not provided, one will be randomly generated. |
| Time zone | Type: STRINGThe user’s time zone name from IANA Time Zone Database (e.g., “America/New_York” or “Eastern Time (US & Canada)”). Only valid time zone values will be set. |
| Twitter Attribution Data | Type: OBJECTHash containing any of id (integer), screen_name (string, Twitter handle), followers_count (integer), friends_count (integer), statuses_count (integer). |
| Custom Attributes | Type: OBJECTHash of custom attributes to send to Braze |
| Update Existing Only | Type: BOOLEANSetting this flag to true will put the API in “Update Only” mode. When using a “user_alias”, “Update Only” mode is always true. |
| Batch Data to Braze | Type: BOOLEANIf true, Segment will batch events before sending to Braze’s user track endpoint. Braze accepts batches of up to 75 events. |
Track Event
Record custom events in Braze
Track Event is a Cloud action. The default Trigger is: type = "track" and event != "Order Completed"
| Field | Description |
|---|---|
| External User ID | Type: STRINGThe unique user identifier |
| User Alias Object | Type: OBJECTA user alias object. See the docs. |
Type: STRINGThe user email |
|
| Braze User Identifier | Type: STRINGThe unique user identifier |
| Event Name* | Type: STRINGThe event name |
| Time* | Type: DATETIMEWhen the event occurred. |
| Event Properties | Type: OBJECTProperties of the event |
| Update Existing Only | Type: BOOLEANSetting this flag to true will put the API in “Update Only” mode. When using a “user_alias”, “Update Only” mode is always true. |
| Batch Data to Braze | Type: BOOLEANIf true, Segment will batch events before sending to Braze’s user track endpoint. Braze accepts batches of up to 75 events. |
Track Purchase
Record purchases in Braze
Track Purchase is a Cloud action. The default Trigger is: event = "Order Completed"
| Field | Description |
|---|---|
| External User ID | Type: STRINGThe unique user identifier |
| User Alias Object | Type: OBJECTA user alias object. See the docs. |
Type: STRINGThe user email |
|
| Braze User Identifier | Type: STRINGThe unique user identifier |
| Time* | Type: DATETIMEWhen the event occurred. |
| Products* | Type: OBJECTProducts purchased |
| Event Properties | Type: OBJECTProperties of the event |
| Update Existing Only | Type: BOOLEANSetting this flag to true will put the API in “Update Only” mode. When using a “user_alias”, “Update Only” mode is always true. |
| Batch Data to Braze | Type: BOOLEANIf true, Segment will batch events before sending to Braze’s user track endpoint. Braze accepts batches of up to 75 events. |
Debounce Middleware
When enabled, it ensures that only events where at least one changed trait value are sent to Braze, and events with duplicate traits are not sent. Debounce functionality requires a frontend client to work. Therefore, it cannot be used with server-side libraries or with Engage.
Debounce Middleware is a Web action. The default Trigger is: type = "identify" or type = "group"
This action does not have any fields.
Identify User
Identifies an unidentified (alias-only) user. Use alongside the Create Alias action, or with user aliases you have already defined.
Identify User is a Cloud action.
| Field | Description |
|---|---|
| External ID* | Type: STRINGThe external ID of the user to identify. |
| User Alias Object* | Type: OBJECTA user alias object. See the docs. |
| Merge Behavior | Type: STRINGSets the endpoint to merge some fields found exclusively on the anonymous user to the identified user. See the docs. |
Create Alias
Create new user aliases for existing identified users, or to create new unidentified users.
Create Alias is a Cloud action. The default Trigger is: event = "Create Alias"
| Field | Description |
|---|---|
| External ID | Type: STRINGThe external ID of the user to create an alias for. |
| Alias Name* | Type: STRINGThe alias identifier |
| Alias Label* | Type: STRINGA label indicating the type of alias |
Update User Profile V2
Update a user’s profile attributes in Braze
Update User Profile V2 is a Cloud action. The default Trigger is: type = "identify"
| Field | Description |
|---|---|
| External User ID | Type: STRINGThe unique user identifier |
| User Alias Object | Type: OBJECTA user alias object. See the docs. |
| Braze User Identifier | Type: STRINGThe unique user identifier |
| Country | Type: STRINGThe country code of the user |
| Current Location | Type: OBJECTThe user’s current longitude/latitude. |
| Date of First Session | Type: DATETIMEThe date the user first used the app |
| Date of Last Session | Type: DATETIMEThe date the user last used the app |
| Date of Birth | Type: DATETIMEThe user’s date of birth |
Type: STRINGThe user’s email |
|
| Email Subscribe | Type: STRINGThe user’s email subscription preference: “opted_in” (explicitly registered to receive email messages), “unsubscribed” (explicitly opted out of email messages), and “subscribed” (neither opted in nor out). |
| Email Open Tracking Disabled | Type: BOOLEANSet to true to disable the open tracking pixel from being added to all future emails sent to this user. |
| Email Click Tracking Disabled | Type: BOOLEANSet to true to disable the click tracking for all links within a future email, sent to this user. |
| Facebook Attribution Data | Type: OBJECTHash of Facebook attribution containing any of |
| First Name | Type: STRINGThe user’s first name |
| Gender | Type: STRINGThe user’s gender: “M”, “F”, “O” (other), “N” (not applicable), “P” (prefer not to say) or nil (unknown). |
| Home City | Type: STRINGThe user’s home city. |
| Image URL | Type: STRINGURL of image to be associated with user profile. |
| Language | Type: STRINGThe user’s preferred language. |
| Last Name | Type: STRINGThe user’s last name |
| Marked Email as Spam At | Type: DATETIMEThe date the user marked their email as spam. |
| Phone Number | Type: STRINGThe user’s phone number |
| Push Subscribe | Type: STRINGThe user’s push subscription preference: “opted_in” (explicitly registered to receive push messages), “unsubscribed” (explicitly opted out of push messages), and “subscribed” (neither opted in nor out). |
| Push Tokens | Type: OBJECTArray of objects with app_id and token string. You may optionally provide a device_id for the device this token is associated with, e.g., [{“app_id”: App Identifier, “token”: “abcd”, “device_id”: “optional_field_value”}]. If a device_id is not provided, one will be randomly generated. |
| Time zone | Type: STRINGThe user’s time zone name from IANA Time Zone Database (e.g., “America/New_York” or “Eastern Time (US & Canada)”). Only valid time zone values will be set. |
| Twitter Attribution Data | Type: OBJECTHash containing any of id (integer), screen_name (string, Twitter handle), followers_count (integer), friends_count (integer), statuses_count (integer). |
| Custom Attributes | Type: OBJECTHash of custom attributes to send to Braze |
| Batch Data to Braze | Type: BOOLEANIf true, Segment will batch events before sending to Braze’s user track endpoint. Braze accepts batches of up to 75 events. |
Track Event V2
Record custom events in Braze
Track Event V2 is a Cloud action. The default Trigger is: type = "track" and event != "Order Completed"
| Field | Description |
|---|---|
| External User ID | Type: STRINGThe unique user identifier |
| User Alias Object | Type: OBJECTA user alias object. See the docs. |
Type: STRINGThe user email |
|
| Braze User Identifier | Type: STRINGThe unique user identifier |
| Event Name* | Type: STRINGThe event name |
| Time* | Type: DATETIMEWhen the event occurred. |
| Event Properties | Type: OBJECTProperties of the event |
| Batch Data to Braze | Type: BOOLEANIf true, Segment will batch events before sending to Braze’s user track endpoint. Braze accepts batches of up to 75 events. |
Identify User V2
Identifies an unidentified (alias-only) user. Use alongside the Create Alias action, or with user aliases you have already defined.
Identify User V2 is a Cloud action.
| Field | Description |
|---|---|
| External ID* | Type: STRINGThe external ID of the user to identify. |
| User Alias Object | Type: OBJECTA user alias object. See the docs. |
| Email to Identify | Type: STRINGEmail address to identify user. |
| Prioritization | Type: OBJECTPrioritization settings for user merging if multiple users are found. Required when email_to_identify is provided. |
| Merge Behavior | Type: STRINGSets the endpoint to merge some fields found exclusively on the anonymous user to the identified user. See the docs. |
Create Alias V2
Create new user aliases for existing identified users, or to create new unidentified users.
Create Alias V2 is a Cloud action. The default Trigger is: event = "Create Alias"
| Field | Description |
|---|---|
| External ID | Type: STRINGThe external ID of the user to create an alias for. |
| Alias Name* | Type: STRINGThe alias identifier |
| Alias Label* | Type: STRINGA label indicating the type of alias |
Track Purchase V2
Record purchases in Braze
Track Purchase V2 is a Cloud action. The default Trigger is: event = "Order Completed"
| Field | Description |
|---|---|
| External User ID | Type: STRINGThe unique user identifier |
| User Alias Object | Type: OBJECTA user alias object. See the docs. |
Type: STRINGThe user email |
|
| Braze User Identifier | Type: STRINGThe unique user identifier |
| Time* | Type: DATETIMEWhen the event occurred. |
| Products* | Type: OBJECTProducts purchased |
| Event Properties | Type: OBJECTProperties of the event |
| Batch Data to Braze | Type: BOOLEANIf true, Segment will batch events before sending to Braze’s user track endpoint. Braze accepts batches of up to 75 events. |
Trigger Campaign
Trigger a Braze Campaign via API-triggered delivery
Trigger Campaign is a Cloud action. The default Trigger is: type = "track"
| Field | Description |
|---|---|
| Campaign ID* | Type: STRINGThe ID of the Braze campaign to trigger. The campaign must be an API-triggered campaign created in Braze. |
| Send ID | Type: STRINGOptional string to identify the send. This can be used for send level analytics, or to cancel a send. |
| Trigger Properties | Type: OBJECTOptional data that will be used to personalize the campaign message. Personalization key-value pairs that will apply to all users in this request. |
| Broadcast | Type: BOOLEANIf set to true, and if the audience is not provided, the campaign will be sent to all the users in the segment targeted by the campaign. It can not be used with “recipients”. |
| Attachments | Type: OBJECTAttachments to send along with the campaign. Limited to 2MB per file. |
| Recipients | Type: OBJECTAn array of user identifiers to send the campaign to. It can not be used with “broadcast”. |
| Prioritization | Type: OBJECTPrioritization settings; required when using email in recipients. This prioritization will be applied to all recipients. |
| Audience | Type: OBJECTA standard audience object to specify the users to send the campaign to. Including “audience” will only send to users in the audience |
Upsert Catalog Item
Upserts or deletes items in a catalog
Upsert Catalog Item is a Cloud action.
| Field | Description |
|---|---|
| Catalog item to upsert | Type: OBJECTThe item to upsert in the catalog. The item object should contain fields that exist in the catalog. The item object should not contain the id field. |
| Item ID* | Type: STRINGThe unique identifier for the item. Maximum 250 characters. Supported characters: letters, numbers, hyphens, and underscores. |
| Batch Data to Braze? | Type: BOOLEANIf true, Segment will batch events before sending to Braze. |
| Operation* | Type: STRINGWhether to select an existing catalog or create a new one in Braze. |
| Catalog Name | Type: STRINGThe unique name of the catalog. |
| Catalog Name | Type: STRINGThe name of the catalog. Must be unique. Maximum 250 characters. Supported characters: letters, numbers, hyphens, and underscores. |
| Catalog Description | Type: STRINGThe description of the catalog. Maximum 250 characters. |
| Catalog Fields | Type: OBJECTA list of fields to create in the catalog. Maximum 500 fields. ID field is added by default. |
| Select or Create a Catalog | Type: OBJECTSelect an existing catalog or create a new one in Braze. |
Trigger Canvas
Trigger a Braze Canvas to deliver a cross-channel message to the specified user.
Trigger Canvas is a Cloud action. The default Trigger is: type = "track"
| Field | Description |
|---|---|
| Canvas ID* | Type: STRINGThe ID of the canvas to trigger. The canvas must be API-triggered and the status must be “Draft” or “Active”. |
| Canvas Entry Properties | Type: OBJECTOptional data that will be used to personalize the canvas message. Personalization key-value pairs that will apply to all users in this request. |
| Broadcast | Type: BOOLEANIf set to true, the canvas will be sent to all the users in the segment targeted by the canvas. It cannot be used with “recipients”. |
| Recipients | Type: OBJECTAn array of user identifiers to send the canvas to. It cannot be used with “broadcast”. |
| Prioritization | Type: OBJECTPrioritization settings; required when using email in recipients. This prioritization will be applied to all recipients. |
| Audience | Type: OBJECTA standard audience object to specify the users to send the canvas to. Including “audience” will only send to users in the audience |
Migration from Braze Classic
Keep the following in mind if you plan to move to Braze (Actions) from the classic Braze destination.
Braze-cloud settings mapping
| braze-cloud Classic Destination Setting | How to enable in braze-cloud (Actions) | |
|---|---|---|
| Connection Settings | ||
| App Identifier Cloud Device-web |
This setting is not necessary in Braze Web Mode (Actions). |
|
| REST API Key Cloud |
This setting is renamed API Key, and is available during initial configuration, or on the Settings tab after configuration. |
|
| Custom API Endpoint Device-web |
This setting is not needed in Braze Web Mode (Actions). |
|
| Appboy Datacenter Cloud |
This setting is covered by the REST API Endpoint |
|
| Log Purchase when Revenue is present Device-web |
Modify the Trigger for the Track Purchase action to recreate this behavior in Braze (Actions). By default, events named “Order Completed” trigger this action, but you can update the Trigger to check for a property named |
|
| Custom REST API Endpoint Cloud |
Select from the available REST Endpoints during initial configuration, or on the Destination’s Settings tab. |
|
| Safari Website Push ID Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Braze Web SDK Version Device-web |
Hardcoded to version #.## |
|
| Connection Mode Cloud Device-web |
Choose the version of the Braze (Actions) destination that matches your connection mode. |
|
| In-App Messaging | ||
| Enable Automatic In-App Message Registration Device-web |
Unsupported, available only on Mobile. |
|
| Automatically send In-App Messages Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Do Not Load Font Awesome Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Enable HTML In-App Messages Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Open In-App Messages in New Tab Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Page | ||
| Track All Pages Device-web |
Track Custom Event action Trigger the action on Page calls. |
|
| Track Only Named Pages Device-web |
Track Custom Event action Trigger the action on Page calls where the |
|
| Other Settings | ||
| Allow Crawler Activity Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Enable Logging Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Minimum Interval Between Trigger Actions in Seconds Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Only Track Known Users Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Open News Feed Cards in New Tab Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
| Session Timeout in Seconds Device-web |
Available as a setting in Braze Web Mode (Actions) |
|
Troubleshooting
Missing required fields
Braze requires one of either external_id, user_alias, or braze_id to be present in all events sent. If events are failing to send, please check your event mappings to make sure these fields are resolving to valid values.
Missing events
When an event is sent under an alias, the event may seem to be missing when the alias cannot be found in Braze. This may be due to incorrect search for the alias in Braze. To search for an alias in Braze, use the format “Alias Label:Alias Name”. For example, if the “Alias Label” field is set as email and “Alias Name” field is set as email address (for example: “test@email.com”), use “email:test@email.com” to search for the alias in Braze.
This page was last modified: 17 Oct 2024
Need support?
Questions? Problems? Need more info? Contact Segment Support for assistance!