Message Metadata
Learn about message-specific metadata on Android
We can set the message data by accessing the Conversation object provided by the SDK. The conversation object provides a delegate that helps us intercept a message before it is sent, so developers can add a metadata dictionary into the message object.
First, set the conversation's delegate (MessageModifierDelegate
).
private void addMessageModifierDelegate() {
BrandMessenger.getConversation().setMessageModifierDelegate(new Conversation.MessageModifierDelegate() {
@Override
public Message beforeSend(Message message) {
Map<String, Object> metadata = new HashMap<>();
metadata.put("MetadataOS", "Android");
metadata.put("FieldTwo", "test");
message.setMetadata(metadata);
return message;
}
@Override
public Message beforeDisplay(Message message) {
return null;
}
@Override
public Message beforeNotification(Message message) {
return null;
}
});
}
Lastly, in the Agent's Admin page, in Developer -> Metadata Visibility, add the Brand Messenger network. This will show the default fields like clients[0].platform
. Add the fields from the dictionary like MetadataOS
, and they should be visible under each message in the conversation under the metadata
section.
Updated 11 months ago