Braze is dedicated to creating partner integrations that allow you to send data from multiple sources to your Dashboard. Segment is an analytics data hub that allows you to track your users and route that data to a wide variety of user analytics providers, such as Braze. We offer both a side-by-side SDK integration for your Android, iOS and web applications and a server-to-server integration for your backend services so that you can start building richer user profiles.
If you’re looking for information on the Currents integration with Segment, click here.
|Segment Account & Account Information||Segment||https://app.segment.com/login||You must have an active Segment Account to utilize their services with Braze.|
Braze Settings in Segment
When configuring Braze from Segment, you’ll have many options to customize the flow of data between Braze and Segment.
|App Identifier||Once called the API Key. Found in the Developer Console.|
|REST API Key||Once called the “App Group Identifier”. Found in the Developer Console.|
|Custom API Endpoint||Given to you by your Braze support or account representative. For example:
|Appboy Datacenter||This is your Braze Instance. Select it from the drop down.|
|Custom REST API Endpoint||Given to you by your Braze support or account representative. For example:
|Safari Website Push ID||Safari requires a Website Push ID to send push. More on this here.|
|Braze Web SDK Version||Which version of the Braze Web SDK you have integrated. You should have found this out during your initial integration process, but if you’re unsure, reach out to your account manager or Braze support.|
|Allow Crawler Activity||On/Off (True/False)||Web Crawlers are automatic programs that visit websites, read then, and collect information that might be important for a search engine index. You can either allow or disallow this from your integrated web page or app. Braze disallows this by default.|
|Automatically Send In-App Messages||On/Off (True/False)||Braze automatically enables you to send push to your users upon proper integration.|
|Do Not Load Font Awesome||On/Off (True/False)||Braze uses FontAwesome for our in-app message icons, but you may disallow this feature at any time.|
|Enable HTML In-App Messages||On/Off (True/False)||Enables Braze platform users to write HTML in-app messages. More information in the JS Docs.|
|Minimum Interval Between Trigger Actions In Seconds||Any Number||By default, trigger actions will only fire if 30 seconds have elapsed since the last trigger action.|
|Open In-App Messages in New Tab||On/Off (True/False)||By default, links from in-app message clicks load in the current tab or a new tab as specified in the Braze platform.|
|Open News Feed Cards in New Tab||On/Off (True/False)||By default, links from news feed cards or content cards load in the current tab or a new tab as specified in the Braze platform.|
|Session Timeout In Seconds||Any Number||By default, sessions time out after 30 minutes of inactivity.|
|Track All Pages||On/Off (True/False)||Sends all Segment page calls to Braze as Page Events.|
|Track Only Named Pages||On/Off (True/False)||Sends all named Segment page calls to Braze|
|Update Existing Users Only||On/Off (True/False)||This only applies to Server Side integrations. This determines whether or not all users vs. existing users will be updated. This defaults to false.|
Side-by-Side SDK Integration
To complete the side-by-side integration, please refer to Segment’s detailed instructions for Android and iOS. For Braze’s Web SDK, Segment’s Analytics.js library dynamically pulls in and initializes our Web SDK when you add Braze as a destination on your Segment dashboard. However, to use Braze’s browser notification capabilities, please refer to Segment’s Web documentation.
If you are given a custom endpoint for your Braze integration, be sure to add the custom endpoint to the “Custom API Endpoint” and your correct “Braze Datacenter” on your Braze destination settings found in Segment’s dashboard. For the side-by-side integration, the “REST API Key” is not necessary.
The keys required to input in Segment’s dashboard can be found in the Developer Console under the ‘API Settings’ tab.
The server-to-server integration forwards data from Segment to Braze’s REST API. This integration is only used in association with Segment’s server-side libraries, such as their Ruby or Go SDKs. Enable the integration by setting your App Group’s REST API Key and Braze’s REST API endpoint for your corresponding data center in your destination settings on Segment’s dashboard.
Unlike the side-by-side integration, however, the server-to-server integration does not support any of Braze’s UI features, such as in-app messaging, News Feed, or push notifications.
Braze supports the identify, track, and group methods; however, our REST APIs require you to include a user ID when making these calls.
When you identify a user, we will record information for that user with
userId as the External User ID. Segment’s special traits recognized as Braze’s standard user profile fields (in parentheses) are
gender). All other traits will be recorded as custom attributes.
When passing user attribute data, please be sure that you are only passing values for attributes that have changed since the last update. This will ensure that you do not unnecessarily consume data points towards your allotment.
When you track an event, we will record that event as a custom event using the name provided.
When you call group, we will record a custom attribute with the name
groupId is the group’s ID in the method’s parameters. For example, if the group’s ID is
1234, then the custom attribute name will be
ab_segment_group_1234. The value of the custom attribute will be set to true.
Enabling Push Notifications
Currently, Braze’s server-to-server integration with Segment does not support methods for push tokens. In order to enable push notifications in Braze, you must import push tokens via the User Attribute Object of our User Data REST API.
How To Tell If You’re Receiving Data From Segment
Some automatically captured data is only available through the side-by-side integration. The following data is not available via the server-to-server integration:
- First Used App
- Last Used App
Consequently, most of your app usage dashboard (lifetime sessions, MAU, DAU, Stickiness, Daily Sessions and Daily Sessions per MAU) will be blank even if Braze is receiving data from Segment.
You can view your data in the custom event dashboard, the revenue dashboard or by creating a segment. The custom event dashboard allows you to view custom event counts over time. Note that you will not be able to use formulas that include MAU and DAU statistics.
Creating a segment allows you to filter your users based on custom event data and custom attribute data. Note that filters related to automatically collected session data (such as “first used app” and “last used app”) will not work.
Common Issues Integrating Segment with Braze
Review Use Cases To Avoid Data Overages
Segment does not have a limit on the number of data elements clients send to them. Segment allows you to send all or turn on which events you will send to Braze. Rather than sending all of your events using Segment, we suggest that you review use cases with your marketing and editorial teams to determine which events you will send to Braze to avoid data overages.
Understand the Difference between ‘Customer API Endpoint’ vs ‘Custom REST API Endpoint’
‘Custom API Endpoint’ corresponds to the custom endpoint that Braze sets up for your SDK (for example,
sdk.iad-03.braze.com). A ‘Custom REST API Endpoint’ does not exist as Braze does not have custom endpoints for REST API calls.
Ensure ‘Customer API Endpoint’ is Input into Segment Correctly
Ensure that you input your proper Customer API Endpoint (for example,
customer.iad-03.braze.com) into the Segment dashboard. The Braze integration will break if it has been entered as the Custom REST API Endpoint (for example,
https://sdk.iad-03.braze.com), as Segment will automatically attempt to add
https:// for you, resulting in Braze initializing with the custom endpoint of
Ensure API Key is Input Correctly
‘App Identifier’ vs. ‘REST API Key’
The ‘App Identifier’ is the App API Key found in the
Manage App Group or
Developer Console page on the Braze Dashboard. This field is necessary for SDK integrations to work. The ‘REST API Key’ is the dashboard Rest API Key for making API calls. Make sure the key has permission to access
Certain Data Not Mapping to Braze
Segment allows for different data types and structures, which can lead to issues where data will not pass from Segment to Braze as expected.
Scenarios where data will not pass as expected:
- Arrays or nested objects in event properties.
- Segment allows for arrays or nested objects within the properties of their track events, which map to either Braze custom or purchase event properties. Since our properties don’t support those data types, we will silently reject those calls.
- Passing anonymous data server-to-server.
- Customers may use Segment’s server-to-server libraries to funnel anonymous data to other systems.
Customization of Braze Initialization
There are several different ways that Braze can be customized: push, in-app messages, Content Cards, and initialization. With a side-by-side integration you can still customize push, in-app messages, and Content Cards as you would with a direct Braze integration.
However, customizing when the Braze SDK is integrated or specifying initialization configurations may be difficult and sometimes not possible. This is because Segment will initialize the Braze SDK for you when the Segment initialization occurs.