# MobilePush Events

Event Notification Service (ENS) supports these event notification types and their corresponding payloads.

| Notification Event Category | Notification Event Type                                       | Description                                                                                                                     |
| --------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `SendEvents`                | [`PushSent`](#sendeventspushsent)                             | Emitted when a push notification is sent.                                                                                       |
| `SendEvents`                | [`PushNotSent`](#sendeventspushnotsent)                       | Emitted when a push notification send fails to fully execute.                                                                   |
| `SendEvents`                | [`PushBounced`](#sendeventspushbounced)                       | Emitted when a push notification is bounced back by the Push Notification Service (PNS).                                        |
| `EngagementEvents`          | [`PushOpen`](#engagementeventspushopen)                       | Emitted when a user opens a push notification on their mobile device.                                                           |
| `EngagementEvents`          | [`InAppDisplay`](#engagementeventsinappdisplay)               | Emitted when an in-app message is displayed in-session due to a user taking a high-value, tracked action with their mobile app. |
| `EngagementEvents`          | [`InAppDismiss`](#engagementeventsinappdismiss)               | Emitted when a user dismisses an in-app message.                                                                                |
| `EngagementEvents`          | [`InAppClick`](#engagementeventsinappclick)                   | Emitted when a user interacts with an in-app message using the message's Call-to-Action (CTA) button.                           |
| `EngagementEvents`          | [`InboxOpen`](#engagementeventsinboxopen)                     | Emitted when a user opens an inbox message.                                                                                     |
| `EngagementEvents`          | [`PushDeliveryReceipt`](#engagementeventspushdeliveryreceipt) | Emitted when a push notification or inbox message is successfully delivered to users' devices.                                  |
| `EngagementEvents`          | [`PushInstall`](#engagementeventspushinstall)                 | Emitted when a user installs and opens your app for the first time.                                                             |
| `EngagementEvents`          | [`PushInactive`](#engagementeventspushinactive)               | Emitted when a user stops using your app.                                                                                       |
| `EngagementEvents`          | [`PushImageClick`](#engagementeventspushimageclick)           | Emitted when a user clicks on an image within a push notification.                                                              |
| `EngagementEvents`          | [`PushButtonClick`](#engagementeventspushbuttonclick)         | Emitted when a user clicks on a button within a push notification.                                                              |

:::note
`PushSent`, `PushNotSent`, `PushBounced`, and `PushOpen` events are inclusive of all send methods, such as Mobile Studio batch, Journey Builder, Transactional API, and REST API-triggered sends. To filter events by a particular send type, set up a [subscription filter](/docs/marketing/marketing-cloud/guide/ens-subscription-filters.md).
:::

## Common Event Attributes

All or some of these attributes are shared for all event data payloads.

| Attribute                  | Type   | Description                                                                                                             | Applicable to Events                                                                                                   |                          |        |                                                                                                                                       |
| -------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `eventCategoryType`        | String | The taxonomy of the event.                                                                                              | All events                                                                                                             |                          |        |                                                                                                                                       |
| `compositeId`              | String | Event ID.                                                                                                               | All events                                                                                                             |                          |        |                                                                                                                                       |
| `timestampUTC`             | Number | UTC Epoch time.                                                                                                         | All events                                                                                                             |                          |        |                                                                                                                                       |
| `definitionKey`            | String | Name of the send definition.                                                                                            | Not applicable to `PushDeliveryReceipt`, `PushInactive`, and `PushInstall` events                                      |                          |        |                                                                                                                                       |
| `definitionId`             | String | A unique message ID. Only present if the send method used is Transactional API.                                         | Not applicable to `PushDeliveryReceipt`, `PushInactive`, and `PushInstall` events                                      |                          |        |                                                                                                                                       |
| `composite`                | Object | Object containing composite identifiers related to the event.                                                           | All events                                                                                                             |                          |        |                                                                                                                                       |
| `composite.jobId`          | String | Marketing Cloud Engagement Job ID (nullable for `EngagementEvents.PushOpen` events).                                    | Not applicable to `PushDeliveryReceipt`, `PushInactive`, `PushInstall`, `PushImageClick`, and `PushButtonClick` events |                          |        |                                                                                                                                       |
| `composite.subscriberId`   | String | Internal ID of the user the message was sent to.                                                                        | Not applicable to `PushDeliveryReceipt`, `PushInactive`, `PushInstall`, `PushImageClick`, and `PushButtonClick` events |                          |        |                                                                                                                                       |
| `composite.deviceId`       | String | Instance of the app installation on the user's device.                                                                  | All events                                                                                                             |                          |        |                                                                                                                                       |
| `mid`                      | Number | Member identifier of the Engagement business unit that produced the event.                                              | All events                                                                                                             |                          |        |                                                                                                                                       |
| `eid`                      | Number | Enterprise identifier of the Engagement parent business unit that produced the event.                                   | All events                                                                                                             |                          |        |                                                                                                                                       |
| `info`                     | Object | Object containing detailed information about the event.                                                                 | All events                                                                                                             | `info.journeyActivityId` | Object | The unique identifier for the Journey Builder activity that sent the message. Available only for events generated in Journey Builder. |
| `info.journeyActivityName` | Object | The name of the Journey Builder activity that sent the message. Available only for events generated in Journey Builder. |                                                                                                                        |                          |        |                                                                                                                                       |
| `info.journeyId`           | Object | The unique identifier of the associated Journey Builder journey. Returns null if unrelated to a journey.                |                                                                                                                        |                          |        |                                                                                                                                       |
| `info.journeyName`         | Object | The name of the associated Journey Builder journey. Returns null if unrelated to a journey.                             |                                                                                                                        |                          |        |                                                                                                                                       |
| `info.journeyVersion`      | Object | The version number of the associated Journey Builder journey. Returns null if unrelated to a journey.                   |                                                                                                                        |                          |        |                                                                                                                                       |
| `info.campaignIds`         | Object | A list of campaign IDs associated with the event.                                                                       |                                                                                                                        |                          |        |                                                                                                                                       |
|                            |        |                                                                                                                         |                                                                                                                        |                          |        |                                                                                                                                       |

## SendEvents.PushSent

ENS triggers the `SendEvents.PushSent` event when a push notification is successfully sent to a user's device using the Engagement platform.

This event applies to all send methods, such as Mobile Studio batch, Journey Builder, Transactional API, and REST API-triggered sends.

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "compositeId": "string",
    "timestampUTC": "number",
    "definitionKey": "string",
    "definitionId": "string", // Transactional API only
    "composite": {
      "jobId": "string",
      "subscriberId": "string",
      "deviceId": "string"
    },
    "eid": "number",
    "mid": "number"
    "info": {
      "to": "string",
      "contactKey": "string",
      "requestId": "string",
      "messageKey": "string", // Transactional API only
      "appId": "string",
      "sendMethod": "string",
      "device": {
        "platform": "string"
      },
    },
  }
]
```

### SendEvents.PushSent Info Attributes

| Attribute         | Type   | Description                                                                                                                                                |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `to`              | String | The unique address the message was sent to. In this case, the end user's device ID.                                                                        |
| `contactKey`      | String | A unique ID for the contact.                                                                                                                               |
| `requestId`       | String | A unique ID for the request. Used to track message status.                                                                                                 |
| `sendMethod`      | String | The method used to send the push notification. Potential values include `MobileStudio`, `JourneyBuilder`, `TriggeredSend`, and `LLTS` (Transactional API). |
| `messageKey`      | String | A unique ID for the message. Only available if `sendMethod` is `LLTS`.                                                                                     |
| `appId`           | String | The MobilePush app ID.                                                                                                                                     |
| `device`          | Object | An object containing device information.                                                                                                                   |
| `device.platform` | String | The platform of the receiver's device. For example, `iOS`.                                                                                                 |

### SendEvents.PushSent Payload Example

This event notification payload is an example of what your callback receives for a `SendEvents.PushSent` event.

```json
[
  {
    "eventCategoryType": "SendEvents.PushSent",
    "compositeId": "48caf8f7-13ae-422f-8d3a-0399179993f2",
    "timestampUTC": 1719406100000,
    "definitionKey": "Journey Builder Push Send",
    "composite": {
      "jobId": "a727294f-d556-4a62-b8bb-83c27e2c56b2",
      "subscriberId": "543990938",
      "deviceId": "33FFFADB-6DD0-4B7B-8494-06BB9FB3BE3C"
    },
    "eid": 523014241,
    "mid": 523014241,
    "info": {
      "to": "user@example.com",
      "contactKey": "user@example.com",
      "requestId": "de6acf5d-6874-4f55-bf43-6a6f078a9489",
      "appId": "6039399b-faba-46b6-afae-1d56aa6033e4",
      "sendMethod": "JourneyBuilder",
      "device": {
        "platform": "iOS"
      }
    }
  }
]
```

## SendEvents.PushNotSent

ENS triggers the `SendEvents.PushNotSent` event when a push notification send fails. Send failures can occur due to various reasons, including network or service errors, Object Message Mapping (OMM) errors, or AMPscript errors.

This event applies to all send methods, such as Mobile Studio batch, Journey Builder, Transactional API, and REST API-triggered sends.

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "compositeId": "string",
    "timestampUTC": "number",
    "definitionKey": "string",
    "definitionId": "string", // Transactional API only
    "composite": {
      "jobId": "string",
      "subscriberId": "string",
      "deviceId": "string",
    },
    "mid": "string",
    "eid": "string",
    "info": {
      "to": "string",
      "contactKey": "string",
      "requestId": "string",
      "messageKey": "string", // Transactional API only
      "appId": "string",
      "sendMethod": "string",
      "device": {
        "platform": "string",
      },
      "statusCode": "string",
      "statusMessage": "string",
      "journeyActivityId": "7ae1b270-93de-4b87-a447-c6947f3ba55e",
      "journeyActivityName": "Mobile_Onboarding_Automation_Push",
      "journeyId": "f0ac17b2-a096-4229-a3af-af3de19ccb41",
      "journeyName": "Onboarding_All_New_Push_iPhone_and_Android",
      "journeyVersion": 2,
      "campaignIds": []
    }
  }
]
```

### SendEvents.PushNotSent Info Attributes

| Attribute         | Type   | Description                                                                                                                                                |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `to`              | String | The unique address the message was sent to. In this case, the end user's device ID.                                                                        |
| `contactKey`      | String | A unique ID for the contact.                                                                                                                               |
| `requestId`       | String | A unique ID for the request. Used to track message status.                                                                                                 |
| `sendMethod`      | String | The method used to send the push notification. Potential values include `MobileStudio`, `JourneyBuilder`, `TriggeredSend`, and `LLTS` (Transactional API). |
| `messageKey`      | String | A unique ID for the message. Only available if `sendMethod` is `LLTS`.                                                                                     |
| `appId`           | String | The MobilePush app ID.                                                                                                                                     |
| `statusCode`      | String | The message send status code or enum.                                                                                                                      |
| `statusMessage`   | String | Brief error message.                                                                                                                                       |
| `device`          | Object | An object containing device information.                                                                                                                   |
| `device.platform` | String | The platform of the receiver's device. For example, `iOS`.                                                                                                 |

### SendEvents.PushNotSent Payload Example

This event notification payload is an example of what your callback receives for a `SendEvents.PushNotSent` event.

```json
[
  {
    "definitionId": "9e085a02-e228-ef11-a5b4-5cba2c7bb618",
    "definitionKey": "testDefinitionKey",
    "info": {
      "to": "user@example.com",
      "contactKey": "user@example.com",
      "requestId": "fabb2521-f3d3-41b0-9e2b-6f1c351048a2",
      "messageKey": "tjamRCAhPUWAiFbxU0hdDQ",
      "statusCode": "14",
      "statusMessage": "error message",
      "sendMethod": "LLTS",
      "appId": "6039399b-faba-46b6-afae-1d56aa6033e4",
      "device": {
        "platform": "iOS"
      }
    },
    "composite": {
      "jobId": "106a324d-54c0-4f20-b643-bdac687a1f24",
      "subscriberId": "543990938",
      "deviceId": "33FFFADB-6DD0-4B7B-8494-06BB9FB3BE3C"
    },
    "eventCategoryType": "SendEvents.PushNotSent",
    "compositeId": "415fbbff-be62-49bb-b290-057fe76a4067",
    "timestampUTC": 1719342157000,
    "eid": 523014241,
    "mid": 523014241
  }
]
```

## SendEvents.PushBounced

ENS triggers the `SendEvents.PushBounced` event when a push notification is sent by the Engagement servers but is bounced back by the PNS, such as Apple Push Notification Service (APNS) or Firebase Cloud Messaging (FCM). Push notifications can bounce due to various reasons, such as the recipient uninstalling the app from their device or a mismatch between the `ServerKey` and `SenderID`.

This event applies to all send methods, such as Mobile Studio batch, Journey Builder, Transactional API, and REST API-triggered sends.

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "compositeId": "string",
    "timestampUTC": "number",
    "definitionKey": "string",
    "definitionId": "string", // Transactional API only
    "composite": {
      "jobId": "string",
      "subscriberId": "string",
      "deviceId": "string",
    },
    "mid": "string",
    "eid": "string",
    "info": {
      "to": "string",
      "contactKey": "string",
      "requestId": "string",
      "messageKey": "string", // Transactional API only
      "appId": "string",
      "sendMethod": "string",
      "device": {
        "platform": "string",
      },
      "bounceCode": "string",
      "bounceMessage": "string",
    }
  }
]
```

### SendEvents.PushBounced Info Attributes

| Attribute         | Type   | Description                                                                                                                                                |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `to`              | String | The unique address the message was sent to. In this case, the end user's device ID.                                                                        |
| `contactKey`      | String | A unique ID for the contact.                                                                                                                               |
| `requestId`       | String | A unique ID for the request. Used to track message status.                                                                                                 |
| `sendMethod`      | String | The method used to send the push notification. Potential values include `MobileStudio`, `JourneyBuilder`, `TriggeredSend`, and `LLTS` (Transactional API). |
| `messageKey`      | String | A unique ID for the message. Only available if `sendMethod` is `LLTS`.                                                                                     |
| `appId`           | String | The MobilePush app ID.                                                                                                                                     |
| `bounceCode`      | String | One word feedback from APNS or FCM.                                                                                                                        |
| `bounceMessage`   | String | Bounce reason.                                                                                                                                             |
| `device`          | Object | An object containing device information.                                                                                                                   |
| `device.platform` | String | The platform of the receiver's device. For example, `iOS`.                                                                                                 |

### SendEvents.PushBounced Payload Example

This event notification payload is an example of what your callback receives for a `SendEvents.PushBounced` event.

```json
[
  {
    "definitionKey": "SDKX - API Triggered Push",
    "info": {
      "to": "user@example.com",
      "contactKey": "user@example.com",
      "requestId": "ebbf6e00-062a-4e36-91d8-662961c852e7",
      "bounceCode": "BadRequest",
      "bounceMessage": "BadDeviceToken",
      "sendMethod": "TriggeredSend",
      "appId": "6039399b-faba-46b6-afae-1d56aa6033e4",
      "device": {
        "platform": "iOS"
      }
    },
    "composite": {
      "jobId": "f6db0df8-8b66-4aaa-9c08-39b82f211f53",
      "subscriberId": "543990938",
      "deviceId": "33FFFADB-6DD0-4B7B-8494-06BB9FB3BE3C"
    },
    "eventCategoryType": "SendEvents.PushBounced",
    "compositeId": "cd3633ca-3968-447f-8310-dfaefdddc5ec",
    "timestampUTC": 1719341784000,
    "eid": 523014241,
    "mid": 523014241,
    "journeyActivityId": "7ae1b270-93de-4b87-a447-c6947f3ba55e",
    "journeyActivityName": "Mobile_Onboarding_Automation_Push",
    "journeyId": "37a937bc-88b0-448a-bbd4-7f6427608862",
    "journeyName": "Onboarding_All_New_Push_iPhone_and_Android",
    "journeyVersion": 2,
    "campaignIds": [123, 456]
  }
]
```

## EngagementEvents.PushOpen

ENS triggers the `EngagementEvents.PushOpen` event when a user opens a push notification on their mobile device.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "compositeId": "string",
    "timestampUTC": "number",
    "definitionKey": "string",
    "definitionId": "string", // Transactional API only
    "composite": {
      "jobId": "string",
      "subscriberId": "string",
      "deviceId": "string",
    },
    "mid": "string",
    "eid": "string",
    "info": {
      "to": "string",
      "contactKey": "string",
      "requestId": "string",
      "messageKey": "string", // Transactional API only
      "appId": "string",
      "sendMethod": "string",
      "device": {
        "platform": "string",
      },
      "journeyActivityId": "7ae1b270-93de-4b87-a447-c6947f3ba55e",
      "journeyActivityName": "Push Send Activity",
      "journeyId": "f0ac17b2-a096-4229-a3af-af3de19ccb41",
      "journeyName": "New Journey - June 26 2024 ",
      "journeyVersion": 2,
      "campaignIds": [123]
    }
  }
]
```

### EngagementEvents.PushOpen Info Attributes

| Attribute         | Type   | Description                                                                                                                                                |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `to`              | String | The unique address the message was sent to. In this case, the end user's device ID.                                                                        |
| `contactKey`      | String | A unique ID for the contact.                                                                                                                               |
| `requestId`       | String | A unique ID for the request. Used to track message status.                                                                                                 |
| `sendMethod`      | String | The method used to send the push notification. Potential values include `MobileStudio`, `JourneyBuilder`, `TriggeredSend`, and `LLTS` (Transactional API). |
| `messageKey`      | String | A unique ID for the message. Only available if `sendMethod` is `LLTS`.                                                                                     |
| `appId`           | String | The MobilePush app ID.                                                                                                                                     |
| `device`          | Object | An object containing device information.                                                                                                                   |
| `device.platform` | String | The platform of the receiver's device. For example, `iOS`.                                                                                                 |

### EngagementEvents.PushOpen Payload Example

This event notification payload is an example of what your callback receives for a `EngagementEvents.PushOpen` event.

```json
[
  {
    "definitionKey": "SDKX - API Triggered Push",
    "info": {
      "to": "user@example.com",
      "contactKey": "user@example.com",
      "requestId": "0cdbc544-72fd-4a24-a876-219e79b18e98",
      "sendMethod": "TriggeredSend",
      "appId": "6039399b-faba-46b6-afae-1d56aa6033e4",
      "device": {
        "platform": "iOS"
      }
    },
    "composite": {
      "jobId": "106a324d-54c0-4f20-b643-bdac687a1f24",
      "subscriberId": "123456789",
      "deviceId": "4618D83C-F3C2-4C95-AC13-EB3B26C23F84"
    },
    "eventCategoryType": "EngagementEvents.PushOpen",
    "compositeId": "b8ad36da-1119-4e68-977d-539cf89b77d1",
    "timestampUTC": 1719341626000,
    "eid": 523014241,
    "mid": 523014241
  }
]
```

## EngagementEvents.InAppDisplay

ENS triggers the `EngagementEvents.InAppDisplay` event when an in-app message is displayed in-session due to the user peforming a high-value, tracked action within their mobile app.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "timestampUTC": "number",
    "journeyName": "string",
    "journeyId": "string",
    "journeyVersion": "string",
    "journeyActivityName": "string",
    "journeyActivityId": "string",
    "composite": {
      "subscriberId": "string",
      "deviceId": "string",
    },
    "messageName": "string",
    "messageId": "integer",
    "mid": "string",
    "eid": "string",
    "info": {
      "to": "string",
      "contactKey": "string",
      "appId": "string",
      "messageTrigger": "string",
      "device": {
        "platform": "string",
      },
    }
  }
]
```

### EngagementEvents.InAppDisplay Info Attributes

| Attribute         | Type   | Description                                                                          |
| ----------------- | ------ | ------------------------------------------------------------------------------------ |
| `to`              | String | The unique address the message was sent to. In this case, the end user's device ID.  |
| `contactKey`      | String | A unique ID for the contact.                                                         |
| `appId`           | String | The MobilePush app ID.                                                               |
| `messageTrigger`  | String | The event that triggered the in-app message display.                                 |
| `device`          | Object | An object containing device information.                                             |
| `device.platform` | String | The platform of the receiver's device. Potential values include `iOS` and `Android`. |

### EngagementEvents.InAppDisplay Payload Example

This event notification payload is an example of what your callback receives for a `EngagementEvents.InAppDisplay` event.

```json
[
  {
    "eventCategoryType": "EngagementEvents.PushOpen",
    "timestampUTC": 1719406100000,
    "journeyName": "Welcome",
    "journeyId": "a6b5c4d3e2f1",
    "journeyVersion": "1.0",
    "journeyActivityName": "Push Notification Activity",
    "journeyActivityId": "activity123",
    "composite": {
      "subscriberId": "subscriberIdString",
      "deviceId": "device101112"
    },
    "messageName": "Welcome Message",
    "messageId": 12345,
    "mid": "mid6789",
    "eid": "eid2345",
    "info": {
      "to": "user@example.com",
      "contactKey": "user@example.com",
      "appId": "app09876",
      "messageTrigger": "User Action",
      "device": {
        "platform": "iOS"
      }
    }
  }
]
```

## EngagementEvents.InAppDismiss

ENS triggers the `EngagementEvents.InAppDismiss` event when an in-app message is dismissed in-session, either by the user hitting the **X** button or by timing out.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "timestampUTC": "number",
    "journeyName": "string",
    "journeyId": "string",
    "journeyVersion": "string",
    "journeyActivityName": "string",
    "journeyActivityId": "string",
    "composite": {
      "subscriberId": "string",
      "deviceId": "string",
    },
    "messageName": "string",
    "messageId": "integer",
    "mid": "string",
    "eid": "string",
    "info": {
      "to": "string",
      "contactKey": "string",
      "appId": "string",
      "displayDuration": "integer",
      "messageTrigger": "string",
      "dismissType": "integer",
      "device": {
        "platform": "string",
      },
    }
  }
]
```

### EngagementEvents.InAppDismiss Info Attributes

| Attribute         | Type    | Description                                                                          |
| ----------------- | ------- | ------------------------------------------------------------------------------------ |
| `to`              | String  | The unique address the message was sent to. In this case, the end user's device ID.  |
| `contactKey`      | String  | A unique ID for the contact.                                                         |
| `appId`           | String  | The MobilePush app ID.                                                               |
| `displayDuration` | Integer | In-app message display duration.                                                     |
| `messageTrigger`  | String  | The event that triggered the in-app message display.                                 |
| `dismissType`     | Integer | Denotes whether the in-app message was user-dismissed or time-dismissed.             |
| `device`          | Object  | An object containing device information.                                             |
| `device.platform` | String  | The platform of the receiver's device. Potential values include `iOS` and `Android`. |

### EngagementEvents.InAppDismiss Payload Example

This event notification payload is an example of what your callback receives for a `EngagementEvents.InAppDismiss` event.

```json
[
  {
    "eventCategoryType": "EngagementEvents.InAppDismiss",
    "timestampUTC": 1719406100000,
    "journeyName": "Welcome",
    "journeyId": "a6b5c4d3e2f1",
    "journeyVersion": "1.0",
    "journeyActivityName": "Push Notification Activity",
    "journeyActivityId": "activity123",
    "composite": {
      "subscriberId": "subscriberIdString",
      "deviceId": "device101112"
    },
    "messageName": "Welcome Message",
    "messageId": 12345,
    "mid": "mid6789",
    "eid": "eid2345",
    "info": {
      "to": "user@example.com",
      "contactKey": "user@example.com",
      "appId": "app09876",
      "displayDuration": 5,
      "messageTrigger": "User Action",
      "dismissType": 1,
      "device": {
        "platform": "iOS"
      }
    }
  }
]
```

## EngagementEvents.InAppClick

ENS triggers the `EngagementEvents.InAppClick` event when a user interacts with an in-app message using the message's CTA button during an app session.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "timestampUTC": "number",
    "journeyName": "string",
    "journeyId": "string",
    "journeyVersion": "string",
    "journeyActivityName": "string",
    "journeyActivityId": "string",
    "composite": {
      "subscriberId": "string",
      "deviceId": "string",
    },
    "messageName": "string",
    "messageId": "integer",
    "mid": "string",
    "eid": "string",
    "info": {
      "to": "string",
      "contactKey": "string",
      "appId": "string",
      "buttonClicked": "string",
      "displayDuration": "integer",
      "messageTrigger": "string",
      "device": {
        "platform": "string",
      },
    }
  }
]
```

### EngagementEvents.InAppClick Info Attributes

| Attribute         | Type    | Description                                                                          |
| ----------------- | ------- | ------------------------------------------------------------------------------------ |
| `to`              | String  | The unique address the message was sent to. In this case, the end user's device ID.  |
| `contactKey`      | String  | A unique ID for the contact.                                                         |
| `appId`           | String  | The MobilePush app ID.                                                               |
| `buttonClicked`   | String  | The name, CTA, or title of the button the user clicked.                              |
| `displayDuration` | Integer | In-app message display duration.                                                     |
| `messageTrigger`  | String  | The event that triggered the in-app message display.                                 |
| `dismissType`     | Integer | Denotes whether the in-app message was user-dismissed or time-dismissed.             |
| `device`          | Object  | An object containing device information.                                             |
| `device.platform` | String  | The platform of the receiver's device. Potential values include `iOS` and `Android`. |

### EngagementEvents.InAppClick Payload Example

This event notification payload is an example of what your callback receives for a `EngagementEvents.InAppClick` event.

```json
[
  {
    "eventCategoryType": "EngagementEvents.InAppClick",
    "timestampUTC": 1719406100000,
    "journeyName": "Welcome Journey",
    "journeyId": "a1b2c3d4e5f6",
    "journeyVersion": "1.0",
    "journeyActivityName": "InApp Message Activity",
    "journeyActivityId": "activity123",
    "composite": {
      "subscriberId": "subscriber456",
      "deviceId": "device101112"
    },
    "messageName": "Welcome Message",
    "messageId": 12345,
    "mid": "mid6789",
    "eid": "eid2345",
    "info": {
      "to": "user@example.com",
      "contactKey": "contact7890",
      "appId": "app09876",
      "buttonClicked": "Accept",
      "displayDuration": 5,
      "messageTrigger": "User Action",
      "device": {
        "platform": "iOS"
      }
    }
  }
]
```

## EngagementEvents.InboxOpen

ENS triggers the `EngagementEvents.InboxOpen` event when a user opens an inbox message that's been downloaded to the mobile app's inbox.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

```sfdocs-code {"lang":"json", "title": "Event Structure", "src": "" }
[
  {
    "eventCategoryType": "string",
    "timestampUTC": "number",
    "composite": {
      "subscriberId": "string",
      "deviceId": "string",
    },
    "messageName": "string",
    "messageId": "integer",
    "mid": "string",
    "eid": "string",
    "info": {
      "to": "string",
      "contactKey": "string",
      "requestId": "string",
      "appId": "string",
      "device": {
        "platform": "string",
      },
    },
  }
]
```

### EngagementEvents.InboxOpen Info Attributes

| Attribute         | Type   | Description                                                                          |
| ----------------- | ------ | ------------------------------------------------------------------------------------ |
| `to`              | String | The unique address the message was sent to. In this case, the end user's device ID.  |
| `contactKey`      | String | A unique ID for the contact.                                                         |
| `appId`           | String | The MobilePush app ID.                                                               |
| `requestId`       | String | A unique ID used to track message status.                                            |
| `device`          | Object | An object containing device information.                                             |
| `device.platform` | String | The platform of the receiver's device. Potential values include `iOS` and `Android`. |

### EngagementEvents.InboxOpen Payload Example

This event notification payload is an example of what your callback receives for a `EngagementEvents.InboxOpen` event.

```json
[
  {
    "eventCategoryType": "EngagementEvents.InboxOpen",
    "timestampUTC": 1719406100000,
    "composite": {
      "subscriberId": "subscriber123",
      "deviceId": "device101112"
    },
    "messageName": "Welcome Message",
    "messageId": 12345,
    "mid": "mid6789",
    "eid": "eid2345",
    "info": {
      "to": "user@example.com",
      "contactKey": "contact7890",
      "requestId": "req3456",
      "appId": "app09876",
      "device": {
        "platform": "iOS"
      }
    }
  }
]
```

## EngagementEvents.PushDeliveryReceipt

ENS triggers the `EngagementEvents.PushDeliveryReceipt` event when a push notification or inbox message is successfully delivered to users' devices.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

### EngagementEvents.PushDeliveryReceipt Unique Attributes

| Attribute                  | Type   | Description                                                                                                                                                |
| -------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `composite.deviceId`       | String | Instance of the app installation on the user's device.                                                                                                     |
| `composite.contactKey`     | String | An unique ID for the subscriber/contact.                                                                                                                   |
| `composite.appId`          | String | The MobilePush app ID.                                                                                                                                     |
| `composite.messageId`      | Number | A unique ID for the message.                                                                                                                               |
| `info.device`              | Object | An object containing device information.                                                                                                                   |
| `info.messageDateUTC`      | String | UTC epoch time of the message send date.                                                                                                                   |
| `info.messageType`         | Number | An integer representing the message type. A value of 1 indicates Push Notification, and a value of 8 indicates Alert + Inbox.                              |
| `info.recieptDateUTC`      | String | UTC epoch time of message receipt date                                                                                                                     |
| `info.sendMethod`          | String | The method used to send the push notification. Potential values include `MobileStudio`, `JourneyBuilder`, `TriggeredSend`, and `LLTS` (Transactional API). |
| `info.journeyActivityId`   | String | Unique ID for the Journey Builder activity that sent this message. (Only available for events generated in Journey Builder).                               |
| `info.journeyActivityName` | String | Name of the Journey Builder activity that sent the message. (Only available for events generated in Journey Builder).                                      |
| `info.journeyId`           | String | Unique ID of the Journey Builder journey. (Empty if not related to a Journey Builder journey).                                                             |
| `info.journeyName`         | String | Name of the Journey Builder journey. (Empty if not related to a Journey Builder journey).                                                                  |
| `info.journeyVersion`      | String | Version of the Journey Builder journey. (Empty if not from a Journey Builder journey).                                                                     |
| `info.requestId`           | String | Unique ID for the request generated by the inbound service. Used to track message status.                                                                  |
| `info.messageKey`          | String | Unique ID for the message. Only available if `sendMethod` is `LLTS`.                                                                                       |
| `info.device.platform`     | String | Mobile device platform. (Android or iOS).                                                                                                                  |

### EngagementEvents.PushDeliveryReceipt Payload Example

```json
[
  {
    "composite": {
      "appId": "15404780-2c03-4971-ba8c-a8ac60c780d0",
      "contactKey": "testparty",
      "deviceId": "6e69d150-7416-44dd-8550-1b2dcaf9f0a1",
      "messageId": 4672
    },
    "compositeId": "6550dc12-0b49-4445-8407-b3a9afe95712",
    "eid": 519000232,
    "eventCategoryType": "EngagementEvents.PushDeliveryReceipt",
    "info": {
      "device": {
        "platform": "Android"
      },
      "messageDateUTC": 1739485300000,
      "messageType": 1,
      "receiptDateUTC": 1739485378000,
      "sendMethod": "MobileStudio"
    },
    "mid": 519000232,
    "timestampUTC": 1739485371000
  },
  {
    "composite": {
      "appId": "15404780-2c03-4971-ba8c-a8ac60c780d0",
      "contactKey": "testparty",
      "deviceId": "07636fc4-cc16-42e0-b1d0-883d5c687c77",
      "messageId": 4675
    },
    "compositeId": "33a5bd82-0207-4f66-9536-629ff28e21c2",
    "eid": 519000232,
    "eventCategoryType": "EngagementEvents.PushDeliveryReceipt",
    "info": {
      "device": {
        "platform": "Android"
      },
      "journeyActivityId": "7a03f41d-e4b4-4c97-9134-f1b50720e19a",
      "journeyActivityName": "Mobile Message February 13, 2025(11:16:27 AM)",
      "journeyId": "e16bfaef-3b8f-4f81-aae2-c8ab8d27dab2",
      "journeyName": "New Journey - February 13 2025 at 11.25 AM",
      "journeyVersion": 1,
      "messageDateUTC": 1739496623000,
      "messageType": 1,
      "receiptDateUTC": 1739496626000,
      "sendMethod": "JourneyBuilder"
    },
    "mid": 519000232,
    "timestampUTC": 1739496621000
  }
]
```

## EngagementEvents.PushInstall

ENS triggers the `EngagementEvents.PushInstall` event when a user installs and opens your app for the first time.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

### EngagementEvents.PushInstall Unique Attributes

| Attribute                     | Type   | Description                                                        |
| ----------------------------- | ------ | ------------------------------------------------------------------ |
| `composite.deviceId`          | String | Instance of the app installation on the user's device.             |
| `composite.contactKey`        | String | A unique ID for the subscriber/contact.                            |
| `composite.appId`             | String | The MobilePush app ID.                                             |
| `sdkVersion`                  | String | Version of the SDK.                                                |
| `info.device`                 | Object | An object containing device information.                           |
| `info.device.platformVersion` | String | Version of the platform                                            |
| `info.device.hwid`            | String | Details of the hardware of the mobile.                             |
| `info.installDateUTC`         | Number | UTC epoch time for the time when the device installation happened. |
| `info.device.sdkVersion`      | String | Version of the SDK.                                                |
| `info.device.platform`        | String | Type of the platform in the mobile device (Android/iOS).           |

### EngagementEvents.PushInstall Payload Example

```json
[
  {
    "compositeId": "42a26260-6af6-49ed-bf88-ba95fe66d276",
    "timestampUTC": 1739500855630,
    "composite": {
      "deviceId": "qcQFp_kmijdwTp1mpQvASfaiyCjjZF",
      "contactKey": "phvhmzshjwygprfazxs4wrbi_jbghy",
      "appId": "2d4f31ef-32db-44c8-b8c7-2d34d9e90837"
    },
    "info": {
      "device": {
        "sdkVersion": "6.1.0",
        "platformVersion": "6.0",
        "hwid": "Android Jellybone",
        "platform": "Android"
      }
    },
    "installDateUTC": 1739456865417,
    "eventCategoryType": "EngagementEvents.PushInstall",
    "eid": 519000232,
    "mid": 519000232
  }
]
```

```json
[
  {
    "compositeId": "715b36d1-41a4-4534-b00f-2ea85aadc5d5",
    "timestampUTC": 1739546344669,
    "composite": {
      "deviceId": "07636fc4-cc16-42e0-b1d0-883d5c687c77",
      "contactKey": "985a5d64-b87f-41c0-9c28-cd7e65d6fd22",
      "appId": "64c1bd92-4164-4313-9022-835ffde32e4f"
    },
    "info": {
      "device": {
        "sdkVersion": "9.0.0",
        "platformVersion": "13",
        "hwid": "Google Pixel 4",
        "platform": "Android"
      }
    },
    "installDateUTC": 1739546250450,
    "eventCategoryType": "EngagementEvents.PushInstall",
    "eid": 519000232,
    "mid": 519000232
  }
]
```

## EngagementEvents.PushInactive

ENS triggers the `EngagementEvents.PushInactive` event when a user stops using your app.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

### EngagementEvents.PushInactive Unique Attributes

| Attribute                     | Type   | Description                                                               |
| ----------------------------- | ------ | ------------------------------------------------------------------------- |
| `composite.deviceId`          | String | Unique ID of the app installation on the user's device.                   |
| `composite.contactKey`        | String | Unique ID for the contact.                                                |
| `composite.appId`             | String | The MobilePush app ID.                                                    |
| `info.daysInactive`           | Number | Number of days the device was inactive, if `info.reason` is `Inactivity`. |
| `info.device`                 | Object | An object containing device information.                                  |
| `info.device.platformVersion` | String | Operating system version of the mobile device.                            |
| `info.device.hwid`            | String | Hardware identifier of the mobile device.                                 |
| `info.reason`                 | String | Reason for inactivity.                                                    |
| `info.device.platform`        | String | Type of the platform in the mobile device (`Android`/`iOS`).              |

### EngagementEvents.PushInactive Payload Example

```json
[
  {
    "composite": {
      "appId": "c04de7cc-9547-46a9-869d-070eb7eb6e9a",
      "contactKey": "zehner-test-1234",
      "deviceId": "27941cb9-4b4d-4433-a95d-bb6890419fd3"
    },
    "compositeId": "d57f171a-bb11-44d2-81ee-6b92e3ad9e92",
    "eid": 519000232,
    "eventCategoryType": "EngagementEvents.PushInactive",
    "info": {
      "daysInactive": 0,
      "device": {
        "hwid": "Postman Device",
        "platform": "iPhone OS",
        "platformVersion": "18"
      },
      "reason": "Inactivity"
    },
    "mid": 519000232,
    "timestampUTC": 1738942380000
  }
]
```

## EngagementEvents.PushImageClick

ENS triggers the `EngagementEvents.PushImageClick` event when a user clicks on an image within a push notification sent via Journey Builder.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

### EngagementEvents.PushImageClick Unique Attributes

| Attribute                  | Type   | Description                                                                                                                                                |
| -------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `composite.contactKey`     | String | Unique ID for the contact.                                                                                                                                 |
| `composite.deviceId`       | String | Unique ID of the app installation on the user's device.                                                                                                    |
| `composite.messageId`      | String | Unique ID for the message.                                                                                                                                 |
| `composite.appId`          | String | The MobilePush app ID.                                                                                                                                     |
| `info.imageId`             | String | Unique ID of the image that the user clicked.                                                                                                              |
| `info.journeyActivityId`   | String | Unique ID for the Journey Builder activity that sent this message. (Only available for events generated in Journey Builder).                               |
| `info.journeyActivityName` | String | Name of the Journey Builder activity that sent the message. (Only available for events generated in Journey Builder).                                      |
| `info.journeyId`           | String | Unique ID of the Journey Builder journey. (Empty if not related to a Journey Builder journey).                                                             |
| `info.journeyName`         | String | Name of the Journey Builder journey. (Empty if not related to a Journey Builder journey).                                                                  |
| `info.journeyVersion`      | String | Version of the Journey Builder journey. (Empty if not from a Journey Builder journey).                                                                     |
| `info.sendMethod`          | String | The method used to send the push notification. Potential values include `MobileStudio`, `JourneyBuilder`, `TriggeredSend`, and `LLTS` (Transactional API). |
| `info.to`                  | String | The unique address the message was sent to. In this case, the end user's device ID.                                                                        |
| `composite.requestId`      | String | Unique ID for the request generated by the inbound service. Used to track message status.                                                                  |
| `info.messageKey`          | String | Unique ID for the message. Only available if `sendMethod` is `LLTS`.                                                                                       |

### EngagementEvents.PushImageClick Payload Examples

```json
[
  {
    "composite": {
      "contactKey": "nama@sfdc2.com",
      "deviceId": "bb22a240-defb-4819-95ac-6482999b6844",
      "messageId": 1619
    },
    "compositeId": "8a8358be-96e4-4cdf-a6e6-6850bbc8be5c",
    "eid": 519000232,
    "eventCategoryType": "EngagementEvents.PushImageClick",
    "info": {
      "appId": "15404780-2c03-4971-ba8c-a8ac60c780d0",
      "imageId": "Title2",
      "journeyActivityId": "62440865-42f0-4f0f-9d17-a00a13ee6909",
      "journeyActivityName": "Carousel_9.0.0",
      "journeyId": "69b63f03-f4ce-4891-b9fb-d9c2d9092687",
      "journeyName": "Carousel_9.0.0",
      "journeyVersion": 1,
      "sendMethod": "Journey Builder"
    },
    "mid": 519000232,
    "timestampUTC": 1739394844000
  }
]
```

```json
[
  {
    "info": {
      "imageId": "img-1",
      "appId": "64c1bd92-4164-4313-9022-835ffde32e4f",
      "sendMethod": "Journey Builder",
      "journeyName": "New Journey - February 14 2025 at 10.01 AM",
      "journeyId": "c48c936c-386a-4ae2-b333-691cba8d721a",
      "journeyVersion": 1,
      "journeyActivityName": "CarouselMessage_02_12_Demo",
      "journeyActivityId": "97a2527f-ae84-47a5-bb1c-c4f362b8b28d"
    },
    "composite": {
      "deviceId": "C614E977-188E-43E6-B6D3-B5D1059FE725",
      "contactKey": "nitin-ios",
      "messageId": 4752,
      "requestId": "087c1605-c851-4a44-9696-89c8f10dd78b"
    },
    "compositeId": "d9ba09d1-2ac1-4f29-8d1d-a20a0a5a2f28",
    "timestampUTC": 1739567295000,
    "eventCategoryType": "EngagementEvents.PushImageClick",
    "eid": 519000232,
    "mid": 519000232
  }
]
```

```json
[
  {
    "info": {
      "imageId": "img-3",
      "appId": "64c1bd92-4164-4313-9022-835ffde32e4f",
      "sendMethod": "Journey Builder",
      "journeyName": "New Journey - February 14 2025 at 10.01 AM",
      "journeyId": "c48c936c-386a-4ae2-b333-691cba8d721a",
      "journeyVersion": 1,
      "journeyActivityName": "CarouselMessage_02_12_Demo",
      "journeyActivityId": "97a2527f-ae84-47a5-bb1c-c4f362b8b28d"
    },
    "composite": {
      "deviceId": "4F2F094D-440D-4B24-942E-3A14542AA808",
      "contactKey": "abhinav_dr",
      "messageId": 4752,
      "requestId": "e8581650-1b83-465e-bd60-d95e32312a07"
    },
    "compositeId": "0ae63385-5264-4f2b-a4ab-6ca588d774c4",
    "timestampUTC": 1739567854000,
    "eventCategoryType": "EngagementEvents.PushImageClick",
    "eid": 519000232,
    "mid": 519000232
  }
]
```

## EngagementEvents.PushButtonClick

ENS triggers the `EngagementEvents.PushButtonClick` event when a user clicks a button in a push notification sent via Journey Builder.

This event must originate from the [MobilePush SDK](https://developer.salesforce.com/docs/marketing/mobilepush/guide/overview.md).

### EngagementEvents.PushButtonClick Unique Attributes

| Attribute                  | Type   | Description                                                                                                                                                |
| -------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `composite.contactKey`     | String | Unique ID for the contact.                                                                                                                                 |
| `composite.deviceId`       | String | Unique ID of the app installation on the user's device.                                                                                                    |
| `composite.messageId`      | String | Unique message ID.                                                                                                                                         |
| `composite.requestId`      | String | Unique ID for the request generated by the inbound service. Used to track message status.                                                                  |
| `composite.appId`          | String | The MobilePush app ID.                                                                                                                                     |
| `info.buttonId`            | String | Unique ID of the button that was clicked.                                                                                                                  |
| `info.journeyActivityId`   | String | Unique ID for the Journey Builder activity that sent this message. (Only available for events generated in Journey Builder).                               |
| `info.journeyActivityName` | String | Name of the Journey Builder activity that sent the message. (Only available for events generated in Journey Builder).                                      |
| `info.journeyId`           | String | Unique ID of the Journey Builder journey. (Empty if not related to a Journey Builder journey).                                                             |
| `info.journeyName`         | String | Name of the Journey Builder journey. (Empty if not related to a Journey Builder journey).                                                                  |
| `info.journeyVersion`      | String | Version of the Journey Builder journey. (Empty if not from a Journey Builder journey).                                                                     |
| `info.sendMethod`          | String | The method used to send the push notification. Potential values include `MobileStudio`, `JourneyBuilder`, `TriggeredSend`, and `LLTS` (Transactional API). |
| `info.to`                  | String | The unique address the message was sent to. In this case, the end-user's device ID.                                                                        |
| `info.messageKey`          | String | Unique ID for the message. Only available if `sendMethod` is `LLTS`.                                                                                       |

### EngagementEvents.PushButtonClick Payload Examples

```json
[
  {
    "composite": {
      "contactKey": "nama@sfdc2.com-qa1",
      "deviceId": "96eba82e-7459-4482-bd18-07203a90e22c",
      "messageId": 3818,
      "requestId": "96d5f494-4a2a-4458-839d-b99bb6b138de"
    },
    "compositeId": "699ffc65-3ab0-4d0b-a086-19b1efcf8dba",
    "eid": 519000232,
    "eventCategoryType": "EngagementEvents.PushButtonClick",
    "info": {
      "appId": "64c1bd92-4164-4313-9022-835ffde32e4f",
      "buttonId": "btn-2",
      "journeyActivityId": "7ae1b270-93de-4b87-a447-c6947f3ba55e",
      "journeyActivityName": "testing-session-button-2-7",
      "journeyId": "37a937bc-88b0-448a-bbd4-7f6427608862",
      "journeyName": "testing-session-2-7",
      "journeyVersion": 7,
      "sendMethod": "Journey Builder"
    },
    "mid": 519000232,
    "timestampUTC": 1738932761000
  }
]
```
