# Braze Reference

Braze is a customer engagement platform. You can send events to Braze to complement the engagement that they already track, allowing you to see a fuller picture of your users' behavior.

## Destination Info

* Accepts [Track](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#track) and [Identify](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#identify) calls
* Supports [HIPAA mode](https://documentation.freshpaint.io/hipaa-mode)
* Connection Modes:

<table><thead><tr><th width="158.33333333333331" align="right"> </th><th data-type="checkbox">Client-side</th><th data-type="checkbox">Server-side</th></tr></thead><tbody><tr><td align="right">Web</td><td>true</td><td>true</td></tr><tr><td align="right">Mobile</td><td>false</td><td>true</td></tr><tr><td align="right">Server</td><td>false</td><td>true</td></tr></tbody></table>

## Identify

When you call[ identify](https://documentation.freshpaint.io/readme/setting-up-identify), Freshpaint will create or update a user profile in Braze by calling Braze's [users.track](https://www.braze.com/docs/user_guide/data_and_analytics/custom_data/custom_events#api-request-body) API endpoint at: &#x20;

`https://<your-custom-braze-endpoint>.braze.com/users/track`

When you Identify a user, Freshpaint passes that user’s identified id or `device_id` as Braze’s External User ID, `external_id`. The `external_id` is required for all calls made to Braze's track API.&#x20;

You can look up users by going to the Audiences section on your sidebar menu and selecting "Search Users".&#x20;

<figure><img src="/files/o0y73RAvTJ7jmlBBlpnn" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/NezXtRCYcOn3RES6Damy" alt=""><figcaption></figcaption></figure>

If you'd like you assign a first and last name to the user, you can attach those as user properties in the identify call as `first_name` and `last_name`:

```
freshpaint.identify("ada.lovelace@example.com", {
 "first_name": "Ada",
 "last_name": "Lovelace"
});
```

<figure><img src="/files/caLyS9wPl94KukQv5xco" alt=""><figcaption></figcaption></figure>

## Events

When you send events to Braze from Freshpaint, Freshpaint will create a new custom [event](https://www.braze.com/docs/api/objects_filters/event_object/#event-object) for the user in Braze by calling Braze's [users.track](https://www.braze.com/docs/user_guide/data_and_analytics/custom_data/custom_events#api-request-body) API endpoint at: &#x20;

`https://<your-custom-braze-endpoint>.braze.com/users/track`&#x20;

The `external_id` will be Freshpaint's distinct id. The `name` will be your event name. All other properties will be passed as custom properties of the event.

Braze does not deduplicate events sent to the users track API out of the box. If you would like to do this yourself you can send a unique identifier with each event.

{% hint style="info" %}
If you configured an App Identifier in your connection to Braze, it will be sent with the event here. It is not required to use an App Identifier, but may be useful if you have certain segmenting needs.
{% endhint %}

You can view visualizations of your events by going to Custom Events and searching for the event you'd like to view.&#x20;

![](/files/17um1tRFETu2SZu2z9zU) &#x20;

<figure><img src="/files/QWd7rCoFGrwYlLOYKswh" alt=""><figcaption></figcaption></figure>

You can also see custom events associated with identified users when you look under the user's profile.

<figure><img src="/files/RHopOLOmmuPck0hU2reX" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Braze does not deduplicate events out of the box.
{% endhint %}

## Page Views

Freshpaint will automatically send all page views to Braze. Page views show up in Braze as custom events. You can find them in the Custom Events section in Braze as well as in the identified user's profile.

## Configuration Options

### Optional Connection Details

#### SDK Version

If you are using this integration in client-side connection mode, enter the version of the SDK you use here. Click [here](https://www.braze.com/docs/developer_guide/platform_integration_guides/sdk_changelogs) to learn more about Braze SDK versions.

#### Safari Website Push ID

If you want to send push notifications via Safari, provide your safari push ID here. If you'd like to configure this option, first you'll have to configure Safari Push in Braze. You can read more about this feature in Braze [here](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/safari_mobile_push#safari-mobile-web-push-ios-and-ipados). &#x20;

&#x20;

<figure><img src="/files/xnUiMcvQmZWWHoB150vJ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/XBY23jLyOtIa1ek6rWqj" alt=""><figcaption></figcaption></figure>

#### Do Not Load Font Awesome

By default, Braze will automatically load FontAwesome from the FontAwesome cdn for in-app icons. To disable this behavior (e.g. because your site uses a customized version of FontAwesome), set this option to true. Note that if you do this, you are responsible for ensuring that FontAwesome is loaded on your site - otherwise in-app messages may not render correctly.

### In-App Messages

By default, all In-App Messages that a user is eligible for are automatically delivered to the user upon a session start event.&#x20;

By default, when an in-app message is showing, pressing the escape button or a click on the greyed-out background of the page will dismiss the message. You can enable the "Require explicit in-app message dismissal" option to prevent this behavior and require an explicit button click to dismiss messages.

### Connection Mode Settings

Both client side and server side connections modes are available for this destination. You can read more about connection modes [here](https://documentation.freshpaint.io/faqs/what-is-the-difference-between-client-side-and-server-side-connection-mode).

#### Server-Side Connection Identity Merge Issues

{% hint style="info" %}
If you are in server-side connection mode for this destination, Braze does not support the merging of user profiles.&#x20;
{% endhint %}

Freshpaint will associate anonymous user events with a `device_id` - this is sent in as Braze's required `external_id` with anonymous events. When the user is identified with a `distinct_id`, the `distinct_id` will be assigned as Braze's `external_id,` creating two user profiles. Once the `external_id` has been assigned in Braze, it cannot be reassigned to an existing value (so it is not possible to reassign the `external_id` from the anonymous events to the that of the identified user). You can read more about this [here](https://www.braze.com/docs/user_guide/data_and_analytics/user_data_collection/user_profile_lifecycle#identified-user-profiles).

### Event Transformations

Set up transformations to modify your data before it's sent to your destination. Read more about transformations [here](https://documentation.freshpaint.io/data-management/transformations).

<figure><img src="/files/aOKkpLvEjEmGXuzLhTCA" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.freshpaint.io/integrations/destinations/apps/appboy/braze-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
