Chat / JavaScript
Chat JavaScript v4
Chat JavaScript
Version 4

Add extra data to a message

Copy link

You can add extra data, such as metadata and sorted_metaarray, to a message in an open or group channel. By storing one or more key-value items to a message, you can use the data to implement various actions in a channel. Based on the items, you can measure user engagement in conversations or count how many times a message has been copied by users in the channel. As shown in the code below, you can add, update, or delete these key-value items anytime. To retrieve the key-values items of a message, call message.metaArrays.

Note: To learn more about the different options for storing additional information about a user, channel, or message, go to the overview page under Channel.

// When a message has been successfully sent to a channel, create items with keys.
const keysToCreate: string[] = ['referees', 'games'];
await channel.createMessageMetaArrayKeys(MESSAGE, keysToCreate);

// Add values to items by their keys.
const metaArraysToAdd: MessageMetaArray[] = [
  new MessageMetaArray({ key: 'referees', value: ['John', 'Brandon', 'Harry', 'Jay'] }),
  new MessageMetaArray({ key: 'games', value: ['soccer', 'baseball', 'basketball'] })
await channel.addMessageMetaArrayValues(MESSAGE, metaArraysToAdd);

// Remove existing values of items by their keys.
const metaArrayValuesToRemove: MessageMetaArray[] = [
  new MessageMetaArray({ key: 'referees', value: ['Brandon', 'Jay'] }),
await channel.removeMessageMetaArrayValues(MESSAGE, metaArrayValuesToRemove);

// Delete items by their keys.
const keysToRemove: string[] = ['referees', 'games'];
await channel.deleteMessageMetaArrayKeys(MESSAGE, keysToRemove);

Note: Every Sendbird application has a different limit on how many key-value items you can add to a single message, as well as the maximum number of values an item can have. If you wish to learn more about these limits, contact our sales team.