All Collections
Delivering surveys via Braze in-app messages
Delivering surveys via Braze in-app messages
Updated over a week ago

With the Braze SDK installed in your app or website, you can use the segmentation and targeting tools available in Braze to deliver in-app messages to a specific portion of your audience based on any trigger or custom segment.

Now, Iterate's integration with Braze allows you to deliver Iterate surveys natively and seamlessly as an in-app message, using only the Braze SDK and without any additional setup.

  1. Make sure you've added your Braze API key and Endpoint in your Iterate settings, as described here.

  2. Turn on the toggle in Settings to enable in-app message surveys:

  3. Create a new survey in Iterate. For the survey type, choose "Send via Braze In-App Message". Add questions, and if appropriate a prompt message to be shown before the survey. (Don't see this option? Make sure you've enabled the toggle from step 2)

  4. In the "Publish" tab for your survey, copy code snippet under "Copy and paste your embed code"

  5. Create a new In-App Messaging campaign in Braze. In the "Message Type" menu, select "Custom Code". Scroll down to the Compose area, and paste the code into the HTML input.

  6. In the "On-click Behavior" menu, select "Wait for User to Dismiss"

  7. Continue setting up your campaign as you would any other in-app messaging campaign, choosing a delivery method and targeting an audience.

Using custom fonts

Technical difficulty: easy

If you'd like to use a custom font in your Iterate survey, you can import your custom font and override the default font-family specified in our HTML embed code. Example below

Import your font

The method used to import your font will depend on your file type. Talk to your engineering team to find out which method to use.

@import url('');

Override the font-family

    <style type="text/css">
̶h̶t̶m̶l̶ ̶{̶ ̶
f̶o̶n̶t̶-̶f̶a̶m̶i̶l̶y̶:̶ ̶-̶a̶p̶p̶l̶e̶-̶s̶y̶s̶t̶e̶m̶,̶ ̶B̶l̶i̶n̶k̶M̶a̶c̶S̶y̶s̶t̶e̶m̶F̶o̶n̶t̶,̶ ̶'̶S̶e̶g̶o̶e̶ ̶U̶I̶'̶,̶ ̶R̶o̶b̶o̶t̶o̶,̶ ̶O̶x̶y̶g̶e̶n̶,̶ ̶U̶b̶u̶n̶t̶u̶,̶ ̶C̶a̶n̶t̶a̶r̶e̶l̶l̶,̶ ̶'̶O̶p̶e̶n̶ ̶S̶a̶n̶s̶'̶,̶ ̶'̶H̶e̶l̶v̶e̶t̶i̶c̶a̶ ̶N̶e̶u̶e̶'̶,̶ ̶s̶a̶n̶s̶-̶s̶e̶r̶i̶f̶;̶ ̶

html {
font-family: 'Rubik Pixels';

Passing Braze user attributes to Iterate

Technical difficulty: medium

In some cases, you may want to make attributes from users' profiles in Braze available to Iterate, so that you can use those attributes to help segment and filter your survey responses in the Iterate dashboard, or use the data to personalize your survey using Dynamic Text.

Example: an e-commerce marketplace might want to include an attribute that identifies a user as a "buyer" or a "seller", so they can then filter their survey responses in Iterate to only show buyers or sellers.

By default, Iterate will include only the user's Braze ID via the integration. If there are additional attributes you'd like to include, you can add them to the HTML code provided in the "Publish" tab of your survey.

Look for the following lines in that HTML code:

"userTraits": {
"braze_id": "{{${braze_id}}}",
"external_id": "{{${user_id} | default: ${braze_id}}}"

To add attributes, include an additional line in this JSON object where the key is the attribute name as you'd like it to appear in Iterate, and the value is a Braze personalization tag (note it should be surrounded by double quotes). See the list of supported personalization tags, which includes custom attributes.

For example, to include the user's first name, last name, and email address in the data available via Iterate, add the following lines:

"userTraits": {
"braze_id": "{{${braze_id}}}",
"external_id": "{{${user_id} | default: ${braze_id}}}",
"email": "{{${email_address}}}",
"first_name": "{{${first_name}}}",
"last_name": "{{${last_name}}}"

Important Note: Once created, the type of a property (e.g. 'user_id' is a number) cannot be changed. If you need to update the property type you can create a new key (e.g. 'user_id_string') or reach out to [email protected] to help.

You can also add attributes that are specific to this session or survey response, by adding an additional field to the JSON object called responseTraits:

"userTraits": {
"braze_id": "{{${braze_id}}}",
"external_id": "{{${user_id} | default: ${braze_id}}}"
"responseTraits": {
"survey_campaign_name": "{{campaign.${name}}}"

These attributes will be available as filters in the Iterate dashboard, visible when browsing survey responses, and included in exported survey data.

Did this answer your question?