InteractiveMessage
InteractiveMessage is a chat message with embedded interactive content. It can contain various properties:
| Parameter | Description | Required |
|---|---|---|
| receiverId | The UID or GUID of the recipient | Yes |
| receiverType | The type of the receiver to whom the message is to be sent i.e CometChatConstants.RECEIVER_TYPE_USER (user) or CometChatConstants.RECEIVER_TYPE_GROUP (group) | Yes |
| messageType | The type of the message that needs to be sent | Yes |
| interactiveData | A JSONObject holding structured data for the interactive element. | Yes |
| allowSenderInteraction | A boolean determining whether the message sender can interact with the message by default it is set to false. | Optional (Default: false) |
| interactionGoal | An InteractionGoal object encapsulating the intended outcome of interacting with the InteractiveMessage by default it is set to none | Optional (Default: none) |
Interaction
AnInteraction represents a user action involved with an InteractiveMessage. It includes:
elementId: An identifier for a specific interactive element.interactedAt: A timestamp indicating when the interaction occurred.
Goal Completion
A key feature ofInteractiveMessage is checking whether a user’s interactions with the message meet the defined InteractionGoal
You would be tracking every interaction users perform on an InteractiveMessage (captured as Interaction objects) and comparing those with the defined InteractionGoal. The completion of a goal can vary depending on the goal type:
| Goals | Description | Keys |
|---|---|---|
| Any Interaction | The goal is considered completed if there is at least one interaction. | CometChatConstants.INTERACTION_TYPE_ANY |
| Any of Specific Interactions | The goal is achieved if any of the specified interactions occurred. | CometChatConstants.INTERACTION_TYPE_ANY_OF |
| All of Specific Interactions | The goal is completed when all specified interactions occur. | CometChatConstants.INTERACTION_TYPE_ALL_OF |
| None | The goal is never completed. | CometChatConstants.INTERACTION_TYPE_NONE |
InteractionGoal
TheInteractionGoal represents the desired outcome of an interaction with an InteractiveMessage. It includes:
elementIds: A list of identifiers for the interactive elements.type: The type of interaction goal from theCometChatConstants.
Sending InteractiveMessages
TheInteractiveMessage can be sent using the sendInteractiveMessage method of the CometChat class. The method requires an InteractiveMessage object and a CallbackListener for handling the response.
Here is an example of how to use it:
- JavaScript
Event Listeners
CometChat SDK provides event listeners to handle real-time events related toInteractiveMessage.
On InteractiveMessage Received
TheonInteractiveMessageReceived event listener is triggered when an InteractiveMessage is received.
Here is an example:
- JavaScript
onInteractionGoalCompleted event listener is invoked when an interaction goal is achieved.
Here is an example:
- JavaScript