Mention specific users in messages to enhance engagement and collaboration in group conversations
Quick Reference for AI Agents & Developers
Report incorrect code
Copy
Ask AI
// Send message with mention to userval textMessage = TextMessage("UID", "Hello <@uid:cometchat-uid-1>", CometChatConstants.RECEIVER_TYPE_USER)CometChat.sendMessage(textMessage, object : CallbackListener<TextMessage>() { override fun onSuccess(message: TextMessage) { } override fun onError(e: CometChatException) { }})// Check if logged-in user was mentionedval wasMentioned = message.hasMentionedMe()// Get list of mentioned usersval mentionedUsers = message.mentionedUsers
Mentions are a powerful tool for enhancing communication in messaging platforms. They streamline interaction by allowing users to easily engage and collaborate with particular individuals, especially in group conversations.Mentions in messages enable users to refer to specific individuals within a conversation.
Every User object has a String unique identifier associated with them which can be found in a property called uid. To mention a user in a message, the message text should contain the uid in following format: <@uid:UID_OF_THE_USER>. For example, to mention the user with UID cometchat-uid-1 in a text message, your text should be "<@uid:cometchat-uid-1>"Before sending messages with mentions, ensure you have initialized the SDK and logged in a user.
To User
To Group
Kotlin
Java
Report incorrect code
Copy
Ask AI
private val receiverID = "UID"private val messageText = "Hello <@uid:cometchat-uid-1>"private val receiverType = CometChatConstants.RECEIVER_TYPE_USERval textMessage = TextMessage(receiverID, messageText, receiverType)CometChat.sendMessage(textMessage, object : CallbackListener<TextMessage>() { override fun onSuccess(textMessage: TextMessage) { Log.d(TAG, "Message sent successfully: $textMessage") } override fun onError(e: CometChatException) { Log.d(TAG, "Message sending failed with exception: " + e.message) }})
Report incorrect code
Copy
Ask AI
private String receiverID = "UID";private String messageText = "Hello, <@uid:cometchat-uid-1>";private String receiverType = CometChatConstants.RECEIVER_TYPE_USER;TextMessage textMessage = new TextMessage(receiverID, messageText, receiverType);CometChat.sendMessage(textMessage, new CometChat.CallbackListener<TextMessage>() { @Override public void onSuccess(TextMessage textMessage) { Log.d(TAG, "Message sent successfully: " + textMessage.toString()); } @Override public void onError(CometChatException e) { Log.d(TAG, "Message sending failed with exception: " + e.getMessage()); }});
Kotlin
Java
Report incorrect code
Copy
Ask AI
private val receiverID = "GUID"private val messageText = "Hello <@uid:cometchat-uid-1>"private val receiverType = CometChatConstants.RECEIVER_TYPE_GROUPval textMessage = TextMessage(receiverID, messageText, receiverType)CometChat.sendMessage(textMessage, object : CallbackListener<TextMessage>() { override fun onSuccess(textMessage: TextMessage) { Log.d(TAG, "Message sent successfully: $textMessage") } override fun onError(e: CometChatException) { Log.d(TAG, "Message sending failed with exception: " + e.message) }})
Report incorrect code
Copy
Ask AI
private String receiverID = "GUID";private String messageText = "Hello <@uid:cometchat-uid-1>";private String receiverType = CometChatConstants.RECEIVER_TYPE_GROUP;TextMessage textMessage = new TextMessage(receiverID, messageText, receiverType);CometChat.sendMessage(textMessage, new CometChat.CallbackListener<TextMessage>() { @Override public void onSuccess(TextMessage textMessage) { Log.d(TAG, "Message sent successfully: " + textMessage.toString()); } @Override public void onError(CometChatException e) { Log.d(TAG, "Message sending failed with exception: " + e.getMessage()); }});
You can mention user in text message and media messages captions
By default, the SDK will fetch all the messages irrespective of the fact that the logged-in user is mentioned or not in the message. The SDK has other optional filters such as tag info and blocked info. For more filtering options, see Additional Message Filtering.
Setting
Description
mentionsWithTagInfo(boolean value)
If set to true, SDK will fetch a list of messages where users are mentioned & will also fetch the tags of the mentioned users. Default value = false.
mentionsWithBlockedInfo(boolean value)
If set to true, SDK will fetch a list of messages where users are mentioned & will also fetch their blocked relationship with the logged-in user. Default value = false.
To get a list of messages in a conversation where users are mentioned along with the blocked relationship of the mentioned users with the logged-in user.
To User
To Group
Kotlin
Java
Report incorrect code
Copy
Ask AI
val UID = "cometchat-uid-1"val messagesRequest = MessagesRequest.MessagesRequestBuilder() .setLimit(50) .setUID(UID) .mentionsWithBlockedInfo(true) .build()messagesRequest.fetchPrevious(object : CometChat.CallbackListener<List<BaseMessage>>() { override fun onSuccess(messages: List<BaseMessage>) { for (messageObj in messages) { for (user in messageObj.mentionedUsers) { Log.e(TAG, "isBlockedByMe: ${user.isBlockedByMe}") Log.e(TAG, "isHasBlockedMe: ${user.isHasBlockedMe}") } } } override fun onError(e: CometChatException) { Log.e(TAG, "onError: " + e) }})
Report incorrect code
Copy
Ask AI
String UID = "cometchat-uid-1";MessagesRequest messagesRequest = new MessagesRequest.MessagesRequestBuilder().setLimit(50).setUID(UID).mentionsWithBlockedInfo(true).build();messagesRequest.fetchPrevious(new CometChat.CallbackListener<List<BaseMessage>>() { @Override public void onSuccess(List<BaseMessage> messages) { for (BaseMessage messageObj: messages){ for (User user: messageObj.getMentionedUsers()){ Log.e(TAG, "isBlockedByMe: " + user.isBlockedByMe()); Log.e(TAG, "isHasBlockedMe: " + user.isHasBlockedMe()); } } } @Override public void onError(CometChatException e) { Log.e(TAG, "onError: " + e); }});
Kotlin
Java
Report incorrect code
Copy
Ask AI
val GUID = "cometchat-guid-1"val messagesRequest = MessagesRequest.MessagesRequestBuilder() .setLimit(50) .setGUID(GUID) .mentionsWithBlockedInfo(true) .build()messagesRequest.fetchPrevious(object : CometChat.CallbackListener<List<BaseMessage>>() { override fun onSuccess(messages: List<BaseMessage>) { for (messageObj in messages) { for (user in messageObj.mentionedUsers) { Log.e(TAG, "isBlockedByMe: ${user.isBlockedByMe}") Log.e(TAG, "isHasBlockedMe: ${user.isHasBlockedMe}") } } } override fun onError(e: CometChatException) { Log.e(TAG, "onError: " + e) }})
Report incorrect code
Copy
Ask AI
String GUID = "cometchat-guid-1";MessagesRequest messagesRequest = new MessagesRequest.MessagesRequestBuilder().setLimit(50).setGUID(GUID).mentionsWithBlockedInfo(true).build();messagesRequest.fetchPrevious(new CometChat.CallbackListener<List<BaseMessage>>() { @Override public void onSuccess(List<BaseMessage> messages) { for (BaseMessage messageObj: messages){ for (User user: messageObj.getMentionedUsers()){ Log.e(TAG, "isBlockedByMe: " + user.isBlockedByMe()); Log.e(TAG, "isHasBlockedMe: " + user.isHasBlockedMe()); } } } @Override public void onError(CometChatException e) { Log.e(TAG, "onError: " + e); }});
To retrieve the list of users mentioned in the particular message, you can use the message.getMentionedUsers() method. This method will return an array containing the mentioned users, or an empty array if no users were mentioned in the message.
To check if the logged-in user has been mentioned in a particular message we can use the hasMentionedMe() method on any BaseMessage. This method will return a boolean value, true if the logged-in user has been mentioned, otherwise false.
Mentions are ideal for drawing attention in group conversations. Use them when you need to ensure specific users see critical messages or action items.
Validate User IDs Before Mentioning
Always verify that the user ID exists before including it in a mention. Invalid UIDs will display as plain text rather than interactive mentions.
Combine with Push Notifications
When a user is mentioned, consider sending a push notification to ensure they’re alerted even when not actively using the app. This enhances engagement and responsiveness.