Message Interaction

Sends a“Message interaction event from the client side to Salesforce when an end user sends a message.

This API applies to the following products:

  • Bring Your Own Channel for Messaging
  • Bring Your Own Channel for Contact Center as a Service

This API is available in version 61.0 and later.

The Message interaction displays inbound messages in the Service Console. When an end user sends a message, call the Interactions API to notify Salesforce of the event.

If a conversation corresponding to the passed-in conversation channel address identifier and end user client identifier exists, the interaction is associated with the conversation and the existing conversationIdentifier value is returned. If a conversation corresponding to the passed-in conversation channel address identifier and end user client identifier doesn’t exist, a conversation is created, a MessagingSession record is created, a MessagingEndUser record is created, and a new conversationIdentifier value is returned.

For Bring You Own Channel for CCaaS, if message routing is Salesforce-owned, Salesforce uses the Omni-Channel flows to route inbound messages and file attachments to the next available rep. If message routing is handled by a partner system, subscribe to the Pub/Sub API to listen to the routingRequested event.

The rep accepts the inbound messaging call and returns an outbound message to the end user.

v1/interactions

POST

Authorization: Bearer <Salesforce access token>
String. Standard header. The authorization token, where \<token\> is the JSON Web Token (JWT). Required.

Content-Type: <Request body format>
String. Standard header. The format of the request body. Valid format is multipart/form-data. Required.

OrgId: <Salesforce Org Id>
String. Standard header. The 15-character Org ID of the Salesforce org. Required.

AuthorizationContext: <ConversationChannel Definition developer name>
String. Standard header. The ConversationChannelDefinition developer name in the format {prefix}_{ConversationChannelDefinitionName}. The prefix must match the developer name prefix of the corresponding connected app. For example, Partner1_ChannelDefinition1. Required.

RequestId: <GUID>
String. Standard header. A globally unique ID (GUID). Required.

For example,

Property NameTypeDescriptionRequired
tostringThe channel address identifier. This is the globally unique ID for the conversation channel (MessagingChannel.ChannelAddressIdentifier).Yes
fromstringThe end user client identifier. This value comes from the partner system and can be up to 240 characters long.Yes
interactionsarrayA list of interactions that are initiated by a messaging or voice rep or end user.Yes
interactions.timestampbooleanThe date and time when the interaction was received by the Salesforce server.Yes
interactions.interactionTypestringThe type of interaction. Possible values include:
- EntryInteraction to represent the type of interaction, such as an inbound message, a message sent failure, or a typing start or stop indicator.
- AttachmentInteraction to represent a file attachment that comes within the inbound messaging request.
Yes
interactions.payloadarrayThe interaction payload.Yes
interactions.payload.idstringThe unique ID for the interaction.Yes
interaction.payload.entryTypestringThe conversation entry type. Valid values are:
- Message–When a conversation participant sends a message.
- TypingStartedIndicator–When a conversation participant starts typing.
- TypingStoppedIndicator–When a conversation participant stops typing.
- MessageDeliveryFailed–When a message fails to send.
Yes
interaction.payload.abstractMessageobjectThe message details. This object only applies if entryType is set to Message. Set messageType to StaticContentMessage. The id represents the unique ID for the interaction and must match the interactions.payload.id value in this payload. Set staticContent.formatType to Text, which represents the type of value to be formatted. The staticContent.text value represents the content of the message.Yes
routingAttributesobjectFor Bring Your Own Channel for Messaging, if you add support for custom parameters, set routingAtttributes to a key-value pair, where key is set to the channel variable name in the parameter mapping, and value is set to the name of the custom parameter in Salesforce. If conversation routing is partner-owned for Bring Your Own Channel for CCaaS and you add support for custom parameters, use the /route API to configure the routing attributes.No