---
schema_version: "1"
id: e570770575b3b8f706cc02d0dc7eecc0e2c2d0ae1f7ce0f4a89fa326e860a625
title: Bring Your Own Channel For Messaging Outbound Event Reference
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/service-cloud/messaging-partner/references/outbound-event-reference.md
canonical_url: https://developer.salesforce.com/docs/service/messaging-partner/references/outbound-event-reference/outbound-event-reference.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 12507fc0ce1dc7037f675f8141e7bc67918396f677e74ba8537a979b77a8bc76
products:
  - Bring Your Own Channel for Messaging
  - Service Cloud Developer Content
---
# Bring Your Own Channel For Messaging Outbound Event Reference

Partner integrations use the [Pub/Sub API](https://developer.salesforce.com/docs/platform/pub-sub-api/guide/intro.html) to subscribe to the custom platform event. There, they receive outbound messages from the rep in Salesforce and forward them to the customer.

Outbound events include diverse message entries and provide supplementary information related to the conversation entry. This event reference includes essential outbound events for partners to integrate, but a full event reference is available in GitHub: [Outbound Custom Event Payloads](https://github.com/salesforce-misc/interaction-service-apis/blob/main/outbound-custom-event-payload.yaml).

## Outbound Message Event

The outbound event with `"entryType": "Message"` provides outbound message content entered by the rep in Salesforce. To show outbound messages to the messaging end user, supporting this event type is required.

### Outbound Message Event Sample Payloads

Salesforce supports a wide variety of payloads for format types and message types. Here are a few examples.

```json
{
  "recipient": {
      "appType": "custom",
      "subject": "meu776",
      "role": "EndUser"
  },
   "conversationIdentifier": "12831257-d663-4cdf-93f3-c92d0c80cd95",
   "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
   "payload": {
     "senderDisplayName": "OrgFarm E",
     "identifier": "979fb89d-18f1-44b9-9cfd-384964172ab8",
     "entryType": "Message",
     "entryPayload": {
       "entryType": "Message",
       "id": "979fb89d-18f1-44b9-9cfd-384964172ab8",
       "abstractMessage": {
         "messageType": "StaticContentMessage",
         "inReplyToMessageId": null,
         "customHandlingType": null,
         "id": "979fb89d-18f1-44b9-9cfd-384964172ab8",
         "references": [],
         "contentCategory": null,
         "staticContent": {
           "formatType": "Text",
           "text": "hi"
         }
       },
     "messageReason": null
    },
    "modality": "Messaging",
    "sender": {
      "appType": "agent",
       "subject": "005fi700000hS5x",
       "role": "Agent"
    },
    "recipients": {
       "secondary": null,
       "hidden": null,
       "primary": null
    },
    "transcriptedTimestamp": 1772485941236,
    "clientTimestamp": 1772485940994,
    "clientDuration": 0
  }
}
```

Payloads differ based on which [capabilities you register for your integration](https://developer.salesforce.com/docs/service/interaction-service-api/references/interaction-service-reference/api-capabilities.html).

```json
{
  "recipient": {
     "appType": "custom",
     "subject": "dena2",
     "role": "EndUser"
  },
  "conversationIdentifier": "20477fe8-02f9-4422-864b-e74d870be2b3",
  "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
  "payload": {
    "senderDisplayName": "OrgFarm E",
    "identifier": "ae136cc3-346f-495d-9bd4-33e97d853345",
    "entryType": "Message",
    "entryPayload": {
      "entryType": "Message",
      "id": "ae136cc3-346f-495d-9bd4-33e97d853345",
      "abstractMessage": {
        "messageType": "StaticContentMessage",
        "inReplyToMessageId": null,
        "customHandlingType": null,
        "id": "ae136cc3-346f-495d-9bd4-33e97d853345",
        "references": null,
        "contentCategory": null,
        "staticContent": {
          "formatType": "Text",
          "text": "dfsdf\nhttps://orgfarm-4e487d01c2.demo.test1.file.pc-rnd.force.com/sfc/dist/version/download/?oid=00Dfi700000tWsD&ids=068fi700000DRNN&d=%2Fa%2Ffi70000002BV%2FN5a6eXqKi2kIXvRkHzAaAKsIKQPHzcZR_dadj_VSDDE&asPdf=false\n"
        }
      },
      "messageReason": null
    },
    "modality": "Messaging",
    "sender": {
      "appType": "agent",
       "subject": "005fi700000hS5x",
       "role": "Agent"
     },
    "recipients": {
       "secondary": null,
       "hidden": null,
       "primary": [
         {
            "identifier": "b858ec9c-382b-347f-a3ff-b5a361042698",
            "displayName": "Guest",
            "contact": "dena2"
         }
       ]
    },
    "transcriptedTimestamp": 1773084057462,
    "clientTimestamp": 1773084057163,
    "clientDuration": 0
  }
}
```

```json
{
  "eventType": "Interaction",
  "messageType": "StaticContentMessage",
  "channelAddressIdFieldVal": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
  "replyMessageText": null,
  "attachmentName": "sample_curl.txt",
  "attachmentUrl": "https://orgfarm-4e487d01c2.demo.test1.file.pc-rnd.force.com/sfc/dist/version/download/?oid=00Dfi700000tWsD&ids=068fi7000008RW5&d=%2Fa%2Ffi70000002Mn%2FS9k05R70uqprYFnkFH1AqHT9vNPS352MOx8zc8h157c&asPdf=false",
  "recipientUserName": "dena26",
  "payloadField": {
    "string": {
      "recipient": {
        "appType": "custom",
        "subject": "dena26",
        "role": "EndUser"
      },
      "conversationIdentifier": "13806bb4-acfb-4d81-a5c2-94717212e86d",
      "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
      "payload": {
        "senderDisplayName": "OrgFarm E",
        "identifier": "85847482-43b4-40ff-84ad-188c7f3576f7",
        "entryType": "Message",
        "entryPayload": {
          "entryType": "Message",
          "id": "85847482-43b4-40ff-84ad-188c7f3576f7",
          "abstractMessage": {
            "messageType": "StaticContentMessage",
            "inReplyToMessageId": null,
            "customHandlingType": null,
            "id": "85847482-43b4-40ff-84ad-188c7f3576f7",
            "references": [
              {
                "recordId": "068fi7000008RW5",
                "id": "751aa812-63ca-4ded-9bca-7883d2e1ddae"
              }
            ],
            "contentCategory": null,
            "staticContent": {
              "formatType": "Attachments",
              "text": null,
              "attachments": [
                {
                  "name": "sample_curl.txt",
                  "attachmentUploadResult": null,
                  "id": "a586bc75-97a1-4f75-8ba7-72fd49013861",
                  "mimeType": "text/plain",
                  "url": "https://orgfarm-4e487d01c2.demo.test1.file.pc-rnd.force.com/sfc/dist/version/download/?oid=00Dfi700000tWsD&ids=068fi7000008RW5&d=%2Fa%2Ffi70000002Mn%2FS9k05R70uqprYFnkFH1AqHT9vNPS352MOx8zc8h157c&asPdf=false",
                  "referenceId": "751aa812-63ca-4ded-9bca-7883d2e1ddae"
                }
              ]
            }
          },
          "messageReason": null
        },
        "modality": "Messaging",
        "sender": {
          "appType": "agent",
          "subject": "005fi700000hS5x",
          "role": "Agent"
        },
        "recipients": {
          "secondary": null,
          "hidden": null,
          "primary": [
            {
              "identifier": "15cf6a6b-fe9d-343b-afdd-776dfed3f225",
              "displayName": "Guest",
              "contact": "dena26"
            }
          ]
        },
        "transcriptedTimestamp": 1773088413656,
        "clientTimestamp": 1773088413129,
        "clientDuration": 0
      }
    }
  },
  "previewImageUrl": null,
  "url": null,
  "title": null
}
```

To support showing a Messaging end user when a rep starts and stops typing, see Configure Inbound Acknowledgments and Outbound Typing Indicators [for Bring Your Own Channel for CCaaS](/docs/service/messaging-byoc-ccaas/guide/inbound-acknowledgements-typing-indicators.html) or [for Bring Your Own Channel for Messaging](/docs/service/messaging-partner/guide/inbound-acknowledgements-typing-indicators.html).

```json
{
  "eventType": "Interaction",
  "payload": {
    "recipient": {
      "appType": "custom",
      "subject": "meu776",
      "role": "EndUser"
    },
    "conversationIdentifier": "12831257-d663-4cdf-93f3-c92d0c80cd95",
    "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
    "payload": {
      "senderDisplayName": "OrgFarm E",
      "identifier": "4ae9c868-8af6-46d9-bcfa-470ce0b3d31d",
      "entryType": "TypingStartedIndicator",
      "entryPayload": {
        "entryType": "TypingStartedIndicator",
        "id": "4ae9c868-8af6-46d9-bcfa-470ce0b3d31d",
        "timestamp": 1772486272384
      },
      "modality": "Messaging",
      "sender": {
        "appType": "agent",
        "subject": "005fi700000hS5x",
        "role": "Agent"
      },
      "recipients": {
        "secondary": null,
        "hidden": null,
        "primary": null
      },
      "transcriptedTimestamp": 1772486272610,
      "clientTimestamp": 1772486272384,
      "clientDuration": 0
    }
  }
}
```

```json
{
  "eventType": "Interaction",
  "payload": {
    "recipient": {
      "appType": "custom",
      "subject": "meu776",
      "role": "EndUser"
    },
    "conversationIdentifier": "12831257-d663-4cdf-93f3-c92d0c80cd95",
    "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
    "payload": {
      "senderDisplayName": "OrgFarm E",
      "identifier": "a58816e7-7f9c-4cb0-bd93-fd9854826bf4",
      "entryType": "TypingStoppedIndicator",
      "entryPayload": {
        "entryType": "TypingStoppedIndicator",
        "id": "a58816e7-7f9c-4cb0-bd93-fd9854826bf4",
        "timestamp": 1772486274361
      },
      "modality": "Messaging",
      "sender": {
        "appType": "agent",
        "subject": "005fi700000hS5x",
        "role": "Agent"
      },
      "recipients": {
        "secondary": null,
        "hidden": null,
        "primary": null
      },
      "transcriptedTimestamp": 1772486274440,
      "clientTimestamp": 1772486274361,
      "clientDuration": 0
    }
  }
}
```

To support showing citations in an Agentforce Service Agent message, see Add Citations in Agent Responses for [Bring Your Own Channel for CCaaS](/docs/service/messaging-byoc-ccaas/guide/citations.html) or for [Bring Your Own Channel for Messaging](/docs/service/messaging-partner/guide/citations.html).

```json
{
  "recipient": {
    "appType": "custom",
    "subject": "testing-asa-citation-0001",
    "role": "EndUser"
  },
  "conversationIdentifier": "b2a89043-0850-4b02-b7d1-f6222b3eb963",
  "channelAddressIdentifier": "82f67da0-bacc-4748-8cd9-e3a2727f7202",
  "payload": {
    "senderDisplayName": "Agentforce Service Agent",
    "identifier": "1772659199329-REQ-1",
    "entryType": "Message",
    "entryPayload": {
      "entryType": "Message",
      "id": "1772659199329-REQ-1",
      "abstractMessage": {
        "messageType": "StaticContentMessage",
        "inReplyToMessageId": null,
        "customHandlingType": null,
        "id": "1772659199329-REQ-1",
        "references": null,
        "contentCategory": null,
        "staticContent": {
          "formatType": "Text",
          "text": "To replace your iPhone battery, you can follow step-by-step instructions available on various platforms. Here are some options: 1. DIY Replacement: You can replace the battery yourself using DIY kits. Detailed instructions and comparisons of costs, savings, and time for different models can be found on here. 2. Professional Repair Shop: You can take your iPhone to a reputable repair shop.",
          "citationContent": {
            "citations": [
              {
                "citedReference": {
                  "citedReferenceType": "Link",
                  "link": {
                    "url": "https://www.example.com/Wiki/iPhone_Battery_Replacement"
                  },
                  "recordId": null,
                  "label": "https://www.example.com/Wiki/iPhone_Battery_Replacement"
                },
                "citedDetails": {
                  "citedDetailsType": "InlineMetadata",
                  "inlineMetadata": [
                    {
                      "claim": {
                        "claimStartOffset": 0,
                        "claimEndOffset": 309
                      },
                      "citedLocationOffset": 309
                    }
                  ]
                }
              },
              {
                "citedReference": {
                "citedReferenceType": "Link",
                "link": {
                  "url": "https://www.example.com/News/11220/3-ways-replace-iphone-battery"
                },
                "recordId": null,
                "label": "https://www.example.com/News/11220/3-ways-replace-iphone-battery"
                },
                "citedDetails": {
                  "citedDetailsType": "InlineMetadata",
                  "inlineMetadata": [
                    {
                      "claim": {
                      "claimStartOffset": 309,
                      "claimEndOffset": 391
                    },
                  "citedLocationOffset": 391
                 }
               ]
             }
           }
         ]
       }
     }
    },
    "messageReason": null
  },
  "modality": "Messaging",
  "sender": {
    "appType": "chatbot",
    "subject": "0XxSG000000W0kr",
    "role": "Chatbot"
  },
  "recipients": {
    "secondary": null,
    "hidden": null,
    "primary": null
  },
  "transcriptedTimestamp": 1772659207510,
  "clientTimestamp": 1772659207457,
  "clientDuration": 0
  }
}
```

## MessageUpdated Event

The MessageUpdated event signals whether an asynchronous file upload was successful or not in the `attachmentUploadResult` object. While not required, we recommend that partner integrations listen for and handle this event.

### MessageUpdated Event Sample Payloads

```json
{
  "recipient": {
    "appType": "custom",
    "subject": "dena5",
    "role": "EndUser"
  },
  "conversationIdentifier": "3cbc496d-9dcd-487e-b0b2-f695db7c5b77",
  "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
  "payload": {
    "senderDisplayName": "Automated Process",
    "identifier": "aa031a9d-f35c-4de0-bed6-417ed113ecf8",
    "entryType": "MessageUpdated",
    "entryPayload": {
      "entryType": "MessageUpdated",
      "id": "aa031a9d-f35c-4de0-bed6-417ed113ecf8",
      "updatedMessage": {
        "messageType": "StaticContentMessage",
        "inReplyToMessageId": "b121d04b-39c5-42c8-9f64-5ec44e1c9c43",
        "customHandlingType": null,
        "id": "b121d04b-39c5-42c8-9f64-5ec44e1c9c43",
        "references": [
          {
            "recordId": "068fi700000DiMb",
            "id": "35f5ad29-399a-4316-b138-369714c8ce56"
          }
        ],
        "contentCategory": null,
        "staticContent": {
          "formatType": "Attachments",
          "text": "sdfsf",
          "attachments": [
            {
              "name": "Screenshot 2026-02-04 at 4.06.15 PM.png",
              "attachmentUploadResult": {
                "resultType": "CompletedAttachmentUploadResult"
              },
              "id": "b121d04b-39c5-42c8-9f64-5ec44e1c9c43",
              "mimeType": "image/png",
              "url": "/sfc/servlet.shepherd/version/renditionDownload?rendition=PNG&versionId=068fi700000DiMb&operationContext=DELIVERY&contentId=05Tfi700000XBzB&page=0",
              "referenceId": "35f5ad29-399a-4316-b138-369714c8ce56"
            }
          ]
        }
      }
    },
    "modality": "Messaging",
    "sender": {
      "appType": "conversation",
      "subject": "005fi700000hYqX",
      "role": "System"
    },
    "recipients": {
      "secondary": null,
      "hidden": null,
      "primary": null
    },
    "transcriptedTimestamp": 1773161879434,
    "clientTimestamp": 1773161879434,
    "clientDuration": 0,
    "parentId": ""
  }
}
```

```json
{
  "recipient": {
    "appType": "custom",
    "subject": "test1242311",
    "role": "EndUser"
  },
  "conversationIdentifier": "045bcdd6-ede0-49f8-86bb-69878ec5ba11",
  "channelAddressIdentifier": "d336cedd-1c08-45ba-81bb-aed6c133a236",
  "payload": {
    "senderDisplayName": "Automated Process",
    "identifier": "3b6b843c-0fcd-446e-a70e-bddc20389d60",
    "entryType": "MessageUpdated",
    "entryPayload": {
      "entryType": "MessageUpdated",
      "id": "3b6b843c-0fcd-446e-a70e-bddc20389d60",
      "updatedMessage": {
      "messageType": "StaticContentMessage",
      "inReplyToMessageId": "76776ef1-1dc7-48e4-8e30-8ec84c85021e",
      "id": "76776ef1-1dc7-48e4-8e30-8ec84c85021e",
      "staticContent": {
        "formatType": "Attachments",
        "text": "test smaller content length ",
        "attachments": [
          {
            "name": "Screenshot 2025-02-27 at 1.54.58 PM.png",
            "attachmentUploadResult": {
              "resultType": "ErrorAttachmentUploadResult",
              "errorMessage": "Error downloading file: 1790094797-341060 (818093790)",
               "errorType": "InternalServerError"
            },
            "id": "76776ef1-1dc7-48e4-8e30-8ec84c85021e",
            "mimeType": "application/octet-stream",
            "url": "https://sdb6byo-dev-ed.develop.test1.my.pc-rnd.salesforce.com/img/conversation/spinner_120.png",
            "referenceId": null
            }
          ]
        }
      }
    },
    "sender": {
      "appType": "conversation",
      "subject": "005SG000003Xsxa",
      "role": "System"
    },
    "transcriptedTimestamp": 1741117720945,
     "clientTimestamp": 1741117720945,
     "clientDuration": 0
  }
}
```

## ParticipantChanged Event

Whenever a rep leaves or joins a conversation, a ParticipantChanged event fires. The event payload specifies whether it was a `remove` or `add` `operation`. Partners can build optional Messaging session clean up logic by consuming and handling these events.

### ParticipantChanged Event Sample Payloads

```json
{
  "eventType": "Interaction",
  "payload": {
    "recipient": {
      "appType": "custom",
      "subject": "dena1",
      "role": "EndUser"
    },
    "conversationIdentifier": "1ff84ce1-0d98-448f-8630-65eb91abae4a",
    "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
    "payload": {
      "senderDisplayName": "Automated Process",
      "identifier": "6bd987a2-573a-442f-b62c-65adc437748f",
      "entryType": "ParticipantChanged",
      "entryPayload": {
        "entryType": "ParticipantChanged",
        "id": "6bd987a2-573a-442f-b62c-65adc437748f",
        "entries": [
          {
            "operation": "remove",
            "menuMetadata": null,
            "supportedModalities": null,
            "participant": {
              "appType": "agent",
              "subject": "005fi700000hS5x",
              "role": "Agent"
            },
            "displayName": "OrgFarm E"
          }
        ],
        "activeModalities": ["Messaging"]
      },
      "modality": "Messaging",
      "sender": {
        "appType": "conversation",
        "subject": "005fi700000hYqX",
        "role": "System"
      },
      "recipients": {
        "secondary": null,
        "hidden": null,
        "primary": null
      },
      "transcriptedTimestamp": 1772491823140,
      "clientTimestamp": 1772491823140,
      "clientDuration": 0
    }
  }
}
```

```json
{
  "eventType": "Interaction",
  "payload": {
    "recipient": {
      "appType": "custom",
      "subject": "meu776",
      "role": "EndUser"
    },
    "conversationIdentifier": "12831257-d663-4cdf-93f3-c92d0c80cd95",
    "channelAddressIdentifier": "ffb90fa9-b541-4f18-82f6-3e6d7372ffd6",
    "payload": {
      "senderDisplayName": "Automated Process",
      "identifier": "5aca071c-275d-4412-933c-2a4faf500d67",
      "entryType": "ParticipantChanged",
      "entryPayload": {
        "entryType": "ParticipantChanged",
        "id": "5aca071c-275d-4412-933c-2a4faf500d67",
        "entries": [
          {
            "operation": "add",
            "menuMetadata": null,
            "supportedModalities": null,
            "participant": {
              "appType": "agent",
              "subject": "005fi700000hS5x",
              "role": "Agent"
            },
            "displayName": "OrgFarm E"
          }
        ],
        "activeModalities": ["Messaging"]
      },
      "modality": "Messaging",
      "sender": {
        "appType": "conversation",
        "subject": "005fi700000hYqX",
        "role": "System"
      },
      "recipients": {
        "secondary": null,
        "hidden": null,
        "primary": null
      },
      "transcriptedTimestamp": 1772485927971,
      "clientTimestamp": 1772485927971,
      "clientDuration": 0
    }
  }
}
```


## See Also

_GitHub_: [Outbound Custom Event Payloads](https://github.com/salesforce-misc/interaction-service-apis/blob/main/outbound-custom-event-payload.yaml)
