Skip to content

Message Engagement Events

Use the search bar or the checkboxes below to find the events you need to use Currents effectively.

These schema consist of the Braze Events that are directly related to message sending.

Contact your account manager or open a support ticket if you need access to additional event entitlements. If you can’t find what you need in this article, check out our Customer Behavior Events Library or our Currents sample data examples.

Explanation of message engagement event structure and platform values

Event structure

This event breakdown shows what type of information is generally included in a message engagement event. With a solid understanding of its components, your developers and business intelligence strategy team can use the incoming Currents event data to make data-driven reports, charts and take advantage of other valuable data metrics.

Breakdown of a message engagement event showing an email unsubscribe event with the listed properties grouped by user-specific properties, campaign or Canvas tracking properties, and event-specific properties

Message engagement events are comprised of user-specific properties, campaign/canvas tracking properties, and event-specific properties.

Platform values

Certain events return a platform value that specifies the platform of the user’s device.
The following table details the possible returned values:

User device Platform value
iOS ios
Android android
FireTV kindle
Kindle kindle
Web web
tvOS tvos
Roku roku

Campaign abort message events

This event occurs if a campaign message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Campaign Message Abort: users_campaigns_abort
{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "device_id": (string) id of the device on which the event occurred,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "dispatch_id" (string) ID of the dispatch this message belongs to,
  "send_id": (string) message send ID this message belongs to,
  "campaign_id": (string) internal-use Braze ID of the campaign this event belongs to,
  "campaign_name": (string) name of the campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "timezone": (string) timezone of the user
  "message_variation_id": (string) message variation ID of the variation this user received,
}

Canvas abort message events

This event occurs if a Canvas message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Canvas Message Abort: users_canvas_abort
{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,  
  "device_id": (string) id of the device on which the event occurred,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_step_id": (string) id of the canvas step this event belongs to,
  "canvas_step_message_variation_id": (string) id of the canvas step message variation this user received,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "canvas_variation_id": (string) Canvas variation ID of the variation this event belongs to,
  "canvas_variation_name": (string) name of the Canvas variation this event belongs to,
  "timezone": (string) timezone of the user
}

Content Card abort message events

This event occurs if a Content Card message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Content Card Abort: users.messages.contentcard.Abort

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "gender": (sting) gender of the user,
  "device_id": (string) id of the device on which the event occurred,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "dispatch_id" (string) ID of the dispatch this message belongs to,
  "send_id": (string) message send ID this message belongs to,
  "campaign_id": (string) internal-use Braze ID of the campaign this event belongs to,
  "campaign_api_id": (string) API ID of the campaign this event belongs to,
  "message_variation_api_id": (string) API ID of the message variation this user received,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_api_id": (string) BSON id of the experiment step this event belongs to,
  "canvas_variation_api_id": (string) API id of the canvas variation this event belongs to,
  "canvas_step_api_id": (string) API id of the canvas step this event belongs to,
  "canvas_step_message_variation_id": (string) BSON id of the canvas step message variation this user received,
  "content_card_id": (string) id of the card that generated this event
}

Email abort message events

This event occurs if an email message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Email Abort: users.messages.email.Abort

{
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "campaign_id": (string) internal-use Braze ID of the campaign this event belongs to,
  "campaign_name": (string) name of the campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_step_id": (string) id of the canvas step this event belongs to,
  "canvas_step_message_variation_id": (string) id of the canvas step message variation this user received,
  "canvas_step_name": (string)name of the canvas step this event belongs to,
  "canvas_variation_id": (string) Canvas variation ID of the variation this event belongs to,
  "canvas_variation_name": (string) name of the Canvas variation this event belongs to,
  "device_id": (string) id of the device on which the event occurred,
  "dispatch_id" (string) ID of the dispatch this message belongs to,
  "email_address" (string) email address of the user,
  "external_user_id": (string) External user ID of the user,
  "id": (string) globally unique ID of this event,
  "ip_pool": (string) IP Pool from which the email send was made
  "message_variation_id": (string) message variation ID of the variation this user received,
  "message_variation_name": (string) name of the message variation this user received,
  "send_id": (string) message send ID this message belongs to,
  "time": (int) unix timestamp at which the event happened,
  "timezone": (string) timezone of the user,
  "user_id": (string) BSON id of the user that performed this event, 

In-app message abort message events

This event occurs if an in-app message message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// In-App Message Abort: users.messages.inappmessage.Abort

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "app_api_id": (string) API ID of the app on which this event occurred,
  "card_id": (string) BSON id of the card this in app message comes from,
  "card_api_id": (string) API ID of the card,
  "gender": (sting) gender of the user,
  "device_id": (string) id of the device on which the event occurred,
  "sdk_version": (string) version of the Braze SDK in use during the event,
  "platform": (string) platform of the device,
  "os_version": (string) version of the operating system of the device,
  "device_model" (string) model of the device,
  "resolution": (string) resolution of the device,
  "carrier:" (string) carrier of the device,
  "browser": (string) browser of the device,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "dispatch_id" (string) ID of the dispatch this message belongs to,
  "send_id": (string) message send ID this message belongs to,
  "campaign_id": (string) internal-use Braze ID of the campaign this event belongs to,
  "campaign_api_id": (string) API ID of the campaign this event belongs to,
  "message_variation_api_id": (string) API ID of the message variation this user received,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_api_id": (string) BSON id of the experiment step this event belongs to,
  "canvas_variation_api_id": (string) API id of the canvas variation this event belongs to,
  "canvas_step_api_id": (string) API id of the canvas step this event belongs to,
  "canvas_step_message_variation_api_id": (string) API id of the canvas step message variation this user received,
  "version": (string) which version of in app message, legacy or triggered,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) one of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (string) Whether advertising tracking is enabled for the device
}

News Feed card abort events

This event occurs if a News Feed card was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// News Feed Card Abort: users.messages.newsfeedcard.Abort

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "app_api_id": (string) API ID of the app on which this event occurred,
  "card_id": (string) BSON id of the card this in app message comes from,
  "card_api_id": (string) API ID of the card,
  "gender": (sting) gender of the user,
  "device_id": (string) id of the device on which the event occurred,
  "sdk_version": (string) version of the Braze SDK in use during the event,
  "platform": (string) platform of the device,
  "os_version": (string) version of the operating system of the device,
  "device_model" (string) model of the device,
  "resolution": (string) resolution of the device,
  "carrier:" (string) carrier of the device,
  "browser": (string) browser of the device,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),

}

Push notification abort events

This event occurs if a push notification message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Push Notification Abort: users.messages.pushnotification.Abort

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "app_api_id": (string) API ID of the app on which this event occurred,
  "gender": (sting) gender of the user,
  "device_id": (string) id of the device on which the event occurred,
  "platform": (string) platform of the device,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "dispatch_id" (string) ID of the dispatch this message belongs to,
  "send_id": (string) message send ID this message belongs to,
  "campaign_id": (string) internal-use Braze ID of the campaign this event belongs to,
  "campaign_api_id": (string) API ID of the campaign this event belongs to,
  "message_variation_api_id": (string) API ID of the message variation this user received,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_api_id": (string) BSON id of the experiment step this event belongs to,
  "canvas_variation_api_id": (string) API id of the canvas variation this event belongs to,
  "canvas_step_api_id": (string) API id of the canvas step this event belongs to,
  "canvas_step_message_variation_api_id": (string) API id of the canvas step message variation this user received
}

SMS abort message events

This event occurs if an SMS message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// SMS Abort: users.messages.sms.Abort

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "campaign_id": (string) internal-use Braze ID of the campaign this event belongs to,
  "campaign_api_id": (string) API ID of the campaign this event belongs to,
  "message_variation_api_id": (string) API ID of the message variation this user received,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_api_id": (string) BSON id of the experiment step this event belongs to,
  "canvas_variation_api_id": (string) API id of the canvas variation this event belongs to,
  "canvas_step_api_id": (string) API id of the canvas step this event belongs to,
  "canvas_step_message_variation_api_id": (string) API id of the canvas step message variation this user received,
  "subscription_group_api_id": (string) external ID of the subscription group
}

Webhook abort message events

This event occurs if a webhook message was aborted based on quiet hours, rate limiting, frequency capping, or Liquid aborts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Webhook Abort: users.messages.webhook.Abort

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) BSON id of the user that performed this event, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "gender": (sting) gender of the user,
  "country": (string) country of the user,
  "timezone": (string) timezone of the user,
  "language": (string) language of the user,
  "device_id": (string) id of the device on which the event occurred,
  "abort_type": (string) type of abort, one of: "liquid_abort_message", "quiet_hours", "rate_limit",
  "abort_log": (string) log message describing abort details (MAX: 128 CHARS),
  "dispatch_id" (string) ID of the dispatch this message belongs to,
  "send_id": (string) message send ID this message belongs to,
  "campaign_id": (string) internal-use Braze ID of the campaign this event belongs to,
  "campaign_api_id": (string) API ID of the campaign this event belongs to,
  "message_variation_api_id": (string) API ID of the message variation this user received,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_api_id": (string) BSON id of the experiment step this event belongs to,
  "canvas_variation_api_id": (string) API id of the canvas variation this event belongs to,
  "canvas_step_api_id": (string) API id of the canvas step this event belongs to,
  "canvas_step_message_variation_api_id": (string) API id of the canvas step message variation this user received,
}

Canvas exit performed event events

This event occurs when a user has exited a Canvas by performing an event.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Canvas Exit Performed Event: users.canvas.exit.PerformedEvent

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) Braze user id of the user, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_api_id": (string) BSON id of the experiment step this event belongs to,
  "canvas_variation_api_id": (string) API id of the canvas variation this event belongs to,
  "canvas_step_api_id": (string) API id of the canvas step this event belongs to,
}

Canvas exit matched audience events

This event occurs when a user has exited a Canvas by matching an audience.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Canvas Exit Matched Audience: users.canvas.exit.MatchedAudience

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) Braze user id of the user, 
  "external_user_id": (string) External user ID of the user,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API ID of the app group this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_api_id": (string) BSON id of the experiment step this event belongs to,
  "canvas_variation_api_id": (string) API id of the canvas variation this event belongs to,
  "canvas_step_api_id": (string) API id of the canvas step this event belongs to,
}

Experiment split entry events

This event occurs when a user enters a Canvas experiment step path.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Experiment Step Split Path Entry: users.canvas.experimentstep.SplitEntry

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) Braze user id of the user, 
  "external_user_id": (string) External user ID of the user,
  "time": (int) unix timestamp at which the event happened,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "experiment_step_id": (string) BSON ID of the experiment step this event belongs to,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "experiment_split_id": (string) BSON ID of the experiment split the user enrolled in,
  "experiment_split_name": (string) name of the experiment split the user enrolled in,
  "in_control_group": (boolean) whether the user was enrolled in the control group
}

Experiment conversion events

This event occurs when a user convert for a Canvas experiment step.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Experiment Step Conversion: users.canvas.experimentstep.Conversion

{
  "id": (string) globally unique ID of this event,
  "user_id": (string) Braze user id of the user, 
  "external_user_id": (string) External user ID of the user,
  "app_id": (string) BSON id of the app this user belongs to,
  "time": (int) unix timestamp at which the event happened,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "experiment_step_id": (string) BSON ID of the experiment step this event belongs to,
  "experiment_split_id": (string) BSON ID of the experiment split variation this user received,
  "experiment_split_name": (string) name of the experiment split the user enrolled in,
  "conversion_behavior_index": (int) index of the conversion behavior,
  "conversion_behavior": (string): conversion behavior
}

Push send events

This event occurs when Braze processes a push message for a user, communicating this to Apple Push Notification Service or Fire Cloud Messaging. This does not mean the push was delivered to the device, just that a message was sent.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Push Notification Send: users.messages.pushnotification.Send
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "device_id": (string) id of the device that we made a delivery attempt to,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device,
  "message_extras": (object) key-value pairs sent with this event
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS IDFA and Android Google ADID through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.
  • message_extras allow you to annotate your send events with dynamic data from Connected Content, custom attributes (such as language, country), and Canvas entry properties. Refer to Message extras to learn more.

Push open events

This event occurs when a user directly clicks on the Push notification to open the application. Currently, Push Open Events refer specifically to “Direct Opens” rather than “Total Opens”. This does not include statistics shown at the campaign level of “influenced opens” as these are not attributed at the user level.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Push Notification Open: users.messages.pushnotification.Open
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "canvas_step_message_variation_id": (string) API id of the Canvas step message variation this user received,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device that we made a delivery attempt to,
  "button_action_type": (string) Action type of the push notification,
  button. One of [URI, DEEP_LINK, NONE, CLOSE, SHARE]. null if not
  from a button click,
  "button_string": (string) identifier (button_string) of the push notification button clicked. null if not from a button click,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS IDFA and Android Google ADID through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

Push notifications in the iOS foreground events

Please note, this event is not supported by our Swift SDK.

This event is now deprecated using our Obj-C SDK.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Push Notification iOS Foreground: users.messages.pushnotification.IosForeground
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "device_id": (string) id of the device that we made a delivery attempt to,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS IDFA and Android Google ADID through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

Push notifications bounce

This event occurs when an error is received from either Apple Push Notification Service or Fire Cloud Messaging. This means that the push message was bounced, and therefore not delivered to the user’s device.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Push Notification Bounce: users.messages.pushnotification.Bounce
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the bounce occurred,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "device_id": (string) id of the device that we made a delivery attempt to,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

Email send events

This event occurs when an email send request was successfully communicated between Braze and SendGrid. Though, this does not mean the email was received in the end user’s inbox.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Email Send: users.messages.email.Send
{
  // User Specific Properties
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  // Campaign/Canvas Tracking Properties
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  // Event Specific Properties
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user,
  "email_address": (string) email address for this event,
  "ip_pool": (string) IP pool used for message sending, 
  "message_extras": (object) key-value pairs sent with this event
}

Property details

  • The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.
  • message_extras allow you to annotate your send events with dynamic data from Connected Content, custom attributes (such as language, country), and Canvas entry properties. Refer to Message extras to learn more.

Email delivery events

This event occurs when an email sent made it successfully to the end-users inbox.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Email Delivery: users.messages.email.Delivery
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "email_address": (string) email address for this event,
  "sending_ip": (string) the IP address from which the message was sent (Email Delivery, Bounce, and SoftBounce events only. Will only be shown on events if the message was actually attempted for delivery. For certain other bounces, the information could be lost if the recipient server has already accepted the mail and only later after the connection is closed decided it could not deliver the mail),
  "ip_pool": (string) IP pool used for message sending,
  "esp": (string) ESP related to the event (SparkPost or SendGrid),
  "from_domain": (string) sending domain for the email
}

Property details

  • The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.

Email open events

This event occurs when a user opens an email. Multiple events may be generated for the same campaign if a user opens the email multiple times.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Email Open: users.messages.email.Open
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "email_address": (string) email address for this event,
  "ip_pool": (string) IP pool used for message sending,
  "user_agent": (string) description of the user's system and browser for the event,
  "machine_open": (string) Indicator of whether the email was opened by an automated process, such as Apple or Google mail pre-fetching. Currently "true" or null, but additional granularity (e.g., "Apple" or "Google" to indicate which process made the fetch) may be added in the future.,
  "esp": (string) ESP related to the event (SparkPost or SendGrid),
  "from_domain": (string) sending domain for the email,
  "is_amp": (boolean) indicates that this is an AMP event
}

Property details

  • The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.

Email clicks events

This event occurs when a user clicks an email. Multiple events may be generated for the same campaign if a user clicks multiple times or clicks different links within the email.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Email Click: users.messages.email.Click
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Only included when campaign_id is present. Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "email_address": (string) email address for this event,
  "url": (string) the URL that was clicked,
  "ip_pool": (string) IP pool used for message sending,
  "user_agent": (string) description of the user's system and browser for the event,
  "link_id": (string) unique value generated by Braze for the URL - null unless link aliasing is enabled,
  "link_alias": (string) alias name set when the message was sent - null unless link aliasing is enabled,
  "esp": (string) ESP related to the event (SparkPost or SendGrid),
  "from_domain": (string) sending domain for the email,
  "is_amp": (boolean) indicates that this is an AMP event
}

Property details

  • The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.

Email bounce event

This event occurs when an Internet Service Provider returns a hard bounce. A hard bounce signifies a permanent deliverability failure.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Email Bounce: users.messages.email.Bounce
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "email_address": (string) email address for this event,
  "sending_ip": (string) the IP address from which the message was sent (Email Delivery, Bounce, and SoftBounce events only. Will only be shown on events if the message was actually attempted for delivery. For certain other bounces, the information could be lost if the recipient server has already accepted the mail and only later after the connection is closed decided it could not deliver the mail),
  "ip_pool": (string) IP pool used for message sending (for certain bounce cases, IP pool will not be provided) ,
  "bounce_reason": (string) reason for bounce provided by server,
  "esp": (string) ESP related to the event (SparkPost or SendGrid),
  "from_domain": (string) sending domain for the email,
  "is_drop": (boolean) indicates that this event counts as a drop event
}

Property details

  • The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.

Email soft bounce event

This event occurs when an Internet Service Provider returns a soft bounce. A soft bounce signifies that an email could not be delivered because of a temporary deliverability failure.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Email Soft Bounce: users.messages.email.SoftBounce
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "email_address": (string) email address for this event,
  "sending_ip": (string) the IP address from which the message was sent (Email Delivery, Bounce, and SoftBounce events only. Will only be shown on events if the message was actually attempted for delivery. For certain other bounces, the information could be lost if the recipient server has already accepted the mail and only later after the connection is closed decided it could not deliver the mail),
  "ip_pool": (string) IP pool used for message sending(for certain bounce cases, IP pool will not be provided),
  "bounce_reason": (string) reason for bounce provided by server,
  "esp": (string) ESP related to the event (SparkPost or SendGrid),
  "from_domain": (string) sending domain for the email
}

Property details

  • The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.

Email spam events

This event occurs when the end-user hits the “spam” button on the email. Note that this does not represent the fact the email went into the spam folder as Braze does not track this.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Email Mark As Spam: users.messages.email.MarkAsSpam
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "email_address": (string) email address for this event,
  "ip_pool": (string) IP pool used for message sending,
  "user_agent": (string) This field is no longer used in any destination for this event and will always be empty,
  "esp": (string) ESP related to the event (SparkPost or SendGrid),
  "from_domain": (string) sending domain for the email
}

Property details

The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.

Email unsubscribe events

This event occurs when the end-user has clicked “unsubscribe” from the email.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Email Unsubscribe: users.messages.email.Unsubscribe
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform). Users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user.,
  "email_address": (string) email address for this event,
  "ip_pool": (string) IP pool used for message sending
}

Property details

The behavior for dispatch_id differs between Canvas and campaigns because Braze treats Canvas steps (except for Entry Steps, which can be scheduled) as triggered events, even when they are “scheduled”. Learn more about dispatch ID behavior.

In-app message impression events

This event occurs when a user views an in-app message.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// In-App Message Impression: users.messages.inappmessage.Impression
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "app_id": (string) id for the app on which the user action occurred,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device on which the event occurred,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS IDFA and Android Google ADID through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

In-app message click events

This event occurs when a user clicks on an in-app message.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// In-App Message Click: users.messages.inappmessage.Click
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "button_id": (string) index of the button clicked if it was a button that was clicked, tracking ID of the click if the event came from an appboyBridge.logClick invocation, or choice_id if the in app-message type is a simple survey,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "app_id": (string) id for the app on which the user action occurred,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device on which the event occurred,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS IDFA and Android Google ADID through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

Webhook send events

This event occurs when a webhook was processed and sent to the third party specified in that webhook. Note that this does not signify whether or not the request was received.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Webhook Send: users.messages.webhook.Send
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types)
  "message_extras": (object) key-value pairs sent with this event
}

Property details

  • message_extras allow you to annotate your send events with dynamic data from Connected Content, custom attributes (such as language, country), and Canvas entry properties. Refer to Message extras to learn more.

Content Card send events

This event occurs when a Content Card gets sent to a user.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Content Card Send: users.messages.contentcard.Send
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "content_card_id": (string) id of the content card that was sent,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "device_id": (string) id of the device on which the event occurred,
  "message_extras": (object) key-value pairs sent with this event
}

Property details

  • message_extras allow you to annotate your send events with dynamic data from Connected Content, custom attributes (such as language, country), and Canvas entry properties. Refer to Message extras to learn more.

Content Card impression events

This event occurs when a user views a Content Card.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Content Card Impression: users.messages.contentcard.Impression
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "content_card_id": (string) id of the content card that was viewed/clicked/dismissed,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device on which the event occurred,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS IDFA and Android Google adid through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

Content Card click events

This event occurs when a user clicks a Content Card.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Content Card Click: users.messages.contentcard.Click
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "content_card_id": (string) id of the content card that was viewed/clicked/dismissed,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device on which the event occurred,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS idfa and Android Google adid through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

Content Card dismissal events

This event occurs when a user dismisses a Content Card.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Content Card Dismiss: users.messages.contentcard.Dismiss
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "content_card_id": (string) id of the content card that was viewed/clicked/dismissed,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device on which the event occurred,
  "ad_id": (string) advertising identifier,
  "ad_id_type": (string) One of 'ios_idfa', 'google_ad_id', OR 'roku_ad_id',
  "ad_tracking_enabled": (boolean) whether advertising tracking is enabled for the device
}

Property details

  • For ad_id, ad_id_type and ad_tracking_enabled, you will need to explicitly collect the iOS idfa and Android Google adid through the native SDKs. Learn more about them here: iOS, Android.
  • If you are using Kafka to ingest Currents data, reach out to your customer success manager or account manager to enable the feature flipper for sending ad_id.

News Feed impression event

This event occurs when a user views the News Feed.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// News Feed Card Impression: users.messages.newsfeedcard.Impression
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "card_id": (string) id of the card that was viewed,
  "app_id": (string) id for the app on which the user action occurred,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device on which the event occurred
}

News Feed click events

This event occurs when a user clicks the News Feed.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// News Feed Card Click: users.messages.newsfeedcard.Click
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "card_id": (string) id of the card that was clicked,
  "app_id": (string) id for the app on which the user action occurred,
  "platform": (string) platform of the device (one of 'ios', 'android', 'web', 'kindle', 'tvos', OR 'roku'),
  "os_version": (string) os version of device used for the action,
  "device_model": (string) hardware model of the device,
  "device_id": (string) id of the device on which the event occurred
}

SMS click events

This event occurs when a user clicks an SMS short link.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SMS Send: users.messages.sms.ShortLinkClick
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user ID of the user targeted by short_url,
  "external_user_id": (string) External ID of the user, null if short_url,
  "device_id": (string) Device ID of the user targeted by short_url if user is anonymous, 
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA timezone of the user at the time of the event, null if short_url did not use user click tracking,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign if from a campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas if from a Canvas,
  "canvas_variation_id": (string) ID of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation a user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "canvas_step_message_variation_id": (string) ID of the message variation if from a Canvas,
  "canvas_step_message_variation_name": (string) name of the message variation if from a Canvas,
  "url": (string) original URL contained in message that was shortened for click tracking,
  "short_url": (string) shortened URL that is sent to user for click tracking,
  "user_agent": (string) User-Agent header of the device performing the click event,
  "user_phone_number": (string) Phone number of the user that short_url was sent to
}

SMS send events

This event occurs when a user sends an SMS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SMS Send: users.messages.sms.Send
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "from_phone_number": (string) the from phone number of the message (Delivered and Undelivered only),
  "subscription_group_id": (string) id of the subscription group targeted for this SMS message,
  "to_phone_number": (string) the number the message was sent to,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform and users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user
  "send_id": (string) message send ID this message belongs to,
  "category" : (string) If the SMS was sent as a result of auto-response to one of your global SMS keywords, the Category will be reflected here (e.g Opt-In, Opt-Out, Help)
  "message_extras": (object) key-value pairs sent with this event
}

Property details

  • message_extras allow you to annotate your send events with dynamic data from Connected Content, custom attributes (such as language, country), and Canvas entry properties. Refer to Message extras to learn more.

SMS sends to carrier events

This event occurs when an SMS is sent to the carrier.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// SMS Delivery: users.messages.sms.CarrierSend
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "from_phone_number": (string) the from phone number of the message (Delivered and Undelivered only),
  "subscription_group_id": (string) id of the subscription group targeted for this SMS message,
  "to_phone_number": (string) the number the message was sent to,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform and users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user,
  "send_id": (string) message send ID this message belongs to
}

SMS delivery events

This event occurs when an SMS was successfully delivered to the users mobile phone.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// SMS Delivery: users.messages.sms.Delivery
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "from_phone_number": (string) the from phone number of the message (Delivered and Undelivered only),
  "subscription_group_id": (string) id of the subscription group targeted for this SMS message,
  "to_phone_number": (string) the number the message was sent to,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform and users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user,
  "send_id": (string) message send ID this message belongs to
}

SMS rejection events

This event occurs when an SMS send gets rejected by the carrier, this can happen for several reasons. Use this event and the provided error codes to help troubleshoot issues with SMS delivery.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SMS Rejection: users.messages.sms.Rejection
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "from_phone_number": (string) the from phone number of the message (Delivered and Undelivered only),
  "subscription_group_id": (string) id of the subscription group targeted for this SMS message,
  "subscription_group_api_id": (string) api id of the subscription group targeted for this SMS message,
  "to_phone_number": (string) the number the message was sent to,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform and users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user,
  "send_id": (string) message send ID this message belongs to,
  "error": (string) the Braze provided error (Rejection and Delivery Failure events only),
  "provider_error_code": (string) the provider's reason code as to why the message was not sent (Rejection and Delivery Failure events only)
}

SMS delivery failure events

This event occurs when an SMS experiences delivery failure. Use this event and the provided error codes to help troubleshoot issues with SMS delivery.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SMS Delivery Failure: users.messages.sms.DeliveryFailure
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "from_phone_number": (string) the from phone number of the message (Delivered and Undelivered only),
  "subscription_group_id": (string) id of the subscription group targeted for this SMS message,
  "subscription_group_api_id": (string) api id of the subscription group targeted for this SMS message,
  "to_phone_number": (string) the number the message was sent to,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "dispatch_id": (string) id of the message dispatch (unique id for each 'transmission' sent from the Braze platform and users who are sent a schedule message get the same dispatch_id. Action-based or API-triggered messages get a unique dispatch_id per user,
  "send_id": (string) message send ID this message belongs to,
  "error": (string) the Braze provided error (Rejection and Delivery Failure events only),
  "provider_error_code": (string) the provider's reason code as to why the message was not sent (Rejection and Delivery Failure events only)
}

SMS inbound received events

This event occurs when one of your users sends an SMS to a phone number in one of your Braze SMS subscription groups.

When Braze receives an inbound SMS, we attribute that inbound message to any user that shares that phone number. As a result, you may receive multiple events per inbound message if multiple users in your Braze instance share the same phone number. If you require attribution of specific user IDs based on previous messages sent to that user, you can use the SMS Delivered event to attribute Inbound Received events to the user ID who most recently received a message from your Braze number.

If we detect that this inbound message is a reply to an outbound campaign or Canvas component sent from Braze, we will also include the campaign or Canvas metadata with the event. Braze defines a reply as an inbound message coming within four hours of an outbound message. However, there is a one-minute cache for the attributed campaign information of the last outbound SMS received.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// SMS Inbound Received: users.messages.sms.InboundReceive
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "app_group_id": (string) API ID of the app group associated with the inbound phone number,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "user_phone_number": (string) the phone number of the user who sent the message to your Braze number,
  "subscription_group_id": (string) id of the subscription group which the phone number the user messaged belongs to,
  "inbound_phone_number": (string) the phone number the message was sent to,
  "inbound_media_urls": (string) the URLs of inbound media attachments if received, 
  "action" : (string) the subscription action Braze took as a result of this message (either `subscribed`, `unsubscribed` or `none` based on the message body. `None` indicates this inbound message did not match any of your keywords to opt-in or opt-out a user),
  "message_body" : (string) the body of the message sent by the user,
  "campaign_id": (string) id of the campaign if Braze identifies this inbound message is a reply to a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if Braze identifies this inbound message is a reply to a campaign,
  "message_variation_name": (string) the name of the message variation if Braze identifies this inbound message is a reply to a campaign,
  "canvas_id": (string) id of the Canvas if from a Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas
}

Campaign conversion events

This event occurs when a user does an action that has been set as a conversion event in a campaign.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Campaign Conversion Event: users.campaigns.Conversion
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "campaign_id": (string) id of the campaign,
  "campaign_name": (string) name of the campaign,
  "conversion_behavior_index": (int) index of the conversion behavior,
  "conversion_behavior": (string) JSON-encoded string describing the conversion behavior,
  "message_variation_id": (string) id of the message variation,
  "message_variation_name": (string) the name of the message variation,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types)
}

Canvas conversion events

This event occurs when a user does an action that has been set as a conversion event in Canvas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Canvas Conversion Event: users.canvas.Conversion
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "canvas_id": (string) id of the Canvas,
  "canvas_name": (string) name of the Canvas,
  "conversion_behavior_index": (int) index of the conversion behavior,
  "conversion_behavior": (string) JSON-encoded string describing the conversion behavior,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the last step the user was sent before the conversion
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
}

Canvas entry events

This event occurs when a user enters into the Canvas. This event tells you which variant the user entered into.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Canvas Entry Event: users.canvas.Entry
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "canvas_id": (string) id of the Canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step the user entered into,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "in_control_group": (boolean) whether the user was enrolled in the control group for a Canvas
}

Campaign control group enrollment events

This event occurs when a user is enrolled in a control variant set on a multi-variant campaign. This event is generated as there will be no channel send event for this user.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Campaign Control Group Enrollment: users.campaigns.EnrollInControl
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "app_id": (string) id for the app on which the user action occurred,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "campaign_id": (string) id of the campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation,
  "message_variation_name": (string) the name of the message variation,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types)
}

Subscription events

This event occurs when the subscription state of a user in a subscription group changes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Subscription Group State Change: users.behaviors.subscriptiongroup.StateChange
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "state_change_source": (string) Source of the state change, e.g: REST, SDK, Dashboard, Preference Center etc.,
  "channel": (string) either 'sms', 'email', or 'whats_app',
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "timezone": (string) IANA time zone of the user at the time of the event,
  "app_id": (string) id for the app on which the user action occurred,
  "campaign_id": (string) id of the campaign if from a campaign,
  "campaign_name": (string) name of the campaign,
  "message_variation_id": (string) id of the message variation if from a campaign,
  "message_variation_name": (string) the name of the message variation if from a campaign,
  "canvas_id": (string) id of the Canvas if from a canvas,
  "canvas_name": (string) name of the Canvas,
  "canvas_variation_id": (string) id of the Canvas variation the user is in if from a Canvas,
  "canvas_variation_name": (string) name of the Canvas variation the user is in if from a Canvas,
  "canvas_step_id": (string) id of the step for this message if from a Canvas,
  "canvas_step_name": (string) name of the step for this message if from a Canvas,
  "send_id": (string) id of the message if specified for the campaign (See Send Identifier under API Identifier Types),
  "email_address": (string) email address for this user,
  "phone_number": (string) phone number of the user (presented in e.164 format),
  "subscription_group_id": (string) id of the subscription group,
  "subscription_status": (string) status of the subscription after the change: 'Subscribed' or 'Unsubscribed'
}

Property details

state_change_source will return a one or two-letter string depending on the source. Available sources and associated strings are listed below:

Source Letter
SDK s
Dashboard d
Subscription page p
REST API r
Attribution provider a
CSV import c
Enhanced preference center e
Inbound SMS i
Outbound SMS o
Migration m
User merge g
Backfill b
Shopify provider sh

Global state change events

This event occurs when the global subscription state of the user changes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Global State Change: users.behaviors.subscription.GlobalStateChange
{
  "id": (string) unique ID of this event,
  "user_id": (string) Braze BSON id of the user with this global subscription state change,
  "external_user_id": (string) External ID of the user,
  "email_address": (string) User email address,
  "state_change_source": (string) Source of the state change, e.g: REST, SDK, Dashboard, Preference Center etc.,
  "subscription_status": (string) Global subscription status: Subscribed, Unsubscribed and Opt-In,
  "channel": (string) Channel: only email for now,
  "time": (string) 10-digit UTC time of the state change event in seconds since the epoch,
  "timezone": (string) IANA timezone of the user at the time of the event,
  "app_group_id": (string) BSON id of the app group this user belongs to,
  "app_group_api_id": (string) API id of the app group this user belongs to,
  "app_api_id": (string) API id of the app the event belongs to,
  "campaign_id": (string) BSON id of the Campaign if from a Campaign,
  "campaign_api_id": (string) API id of the Campaign if from a Campaign,
  "message_variation_api_id": (string) API id of the message variation if from a Campaign,
  "canvas_id": (string) BSON id of the Canvas if from a Canvas,
  "canvas_api_id": (string) API id of the Canvas if from a Canvas,
  "canvas_variation_api_id  ": (string) API id of the Canvas variation if from a Canvas,
  "canvas_step_api_id": (string) API id of the Canvas step if from a Canvas,
  "send_id": (string) Message send id this subscription state change action originated from
}

Property details

state_change_source will return a one or two-letter string depending on the source. Available sources and associated strings are listed below:

Source Letter
SDK s
Dashboard d
Subscription page p
REST API r
Attribution provider a
CSV import c
Enhanced preference center e
Inbound SMS i
Outbound SMS o
Migration m
User merge g
Backfill b
Shopify provider sh

Uninstall events

This event occurs when a user uninstalls an app. Use this data to track when users uninstall an app. While this is currently a message engagement event, this will be changed to a user behavior event in the future.

1
2
3
4
5
6
7
8
9
// Uninstall Event: users.behaviors.Uninstall
{
  "id": (string) unique id of this event,
  "user_id": (string) Braze user id of the user,
  "external_user_id": (string) External ID of the user,
  "time": (int) 10-digit UTC time of the event in seconds since the epoch,
  "app_id": (string) id for the app on which the user action occurred,
  "device_id": (string) id of the device on which the session occurred
}
WAS THIS PAGE HELPFUL?
New Stuff!