Skip to main content
Quick Reference - Mention a user in a message:
// Use the format <@uid:UID> to mention users
let messageText = "Hello, <@uid:cometchat-uid-1>";
let textMessage = new CometChat.TextMessage("RECEIVER_ID", messageText, CometChat.RECEIVER_TYPE.USER);
CometChat.sendMessage(textMessage);
Available via: SDK | REST API | UI Kits
Mentions in messages enable users to refer to specific individual within a conversation. This is done by using the <@uid:UID> format, where UID represents the user’s unique identification. 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.

Send Mentioned Messages

To send a message with a mentioned user, you must follow a specific format: <@uid:UID>. For example, to mention the user with UID cometchat-uid-1 with the message “Hello,” your text would be “Hello, <@uid:cometchat-uid-1>
let receiverID = "UID";
let messageText = "Hello, <@uid:cometchat-uid-1>";
let receiverType = CometChat.RECEIVER_TYPE.USER;
let textMessage = new CometChat.TextMessage(
  receiverID,
  messageText,
  receiverType
);

CometChat.sendMessage(textMessage).then(
  (message) => {
    console.log("Message sent successfully:", message);
  },
  (error) => {
    console.log("Message sending failed with error:", error);
  }
);
You can mention user in text message and media messages captions
Push Notifications & UI Rendering: While the message format uses <@uid:UID>, push notifications are sent with the parsed body containing the actual username — not the raw <@uid:> format. For UI rendering with the SDK, use message.getMentionedUsers() to get the mentioned user objects (which include both uid and name) and replace the <@uid:> tags in your message bubble accordingly. If you’re using a UI Kit, this is handled automatically.

Mentioned Messages

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 tags and blocked relationships.
SettingDescription
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

Mentions With Tag Info

To get a list of messages in a conversation where users are mentioned along with the user tags of the mentioned users.
let UID = "UID";
let limit = 30;

var messagesRequest = new CometChat.MessagesRequestBuilder()
  .setUID(UID)
  .setLimit(limit)
  .mentionsWithTagInfo(true)
  .build();

messagesRequest.fetchPrevious().then(
  (messages) => {
    messages.forEach((eachMessage) => {
      eachMessage.getMentionedUsers().forEach((eachMentionedUser) => {
        console.log(eachMentionedUser.getTags());
      });
    });
  },
  (error) => {
    console.log("Message fetching failed with error:", error);
  }
);

Mentions With Blocked Info

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.
let UID = "UID";
let limit = 30;
var messagesRequest = new CometChat.MessagesRequestBuilder()
  .setUID(UID)
  .setLimit(limit)
  .mentionsWithBlockedInfo(true)
  .build();

messagesRequest.fetchPrevious().then(
  (messages) => {
    messages.forEach((eachMessage) => {
      eachMessage.getMentionedUsers().forEach((eachMentionedUser) => {
        console.log("blockedByMe: " + eachMentionedUser.getBlockedByMe());
        console.log("hasBlockedMe: " + eachMentionedUser.getHasBlockedMe());
      });
    });
  },
  (error) => {
    console.log("Message fetching failed with error:", error);
  }
);

Get Users Mentioned In a Particular Message

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.
message.getMentionedUsers();

Best Practices

Always use the <@uid:UID> format when mentioning users. The UID must exactly match the user’s unique identifier in CometChat. Incorrect UIDs will not resolve to a valid mention.
Before sending a message with mentions, verify that the UIDs you are referencing exist in your CometChat app. Mentioning non-existent UIDs will not throw an error, but the mention will not resolve to a user on the recipient’s end.
Use mentionsWithTagInfo(true) and mentionsWithBlockedInfo(true) on your MessagesRequestBuilder when you need to display additional context about mentioned users, such as their roles (via tags) or blocked status. Avoid enabling these filters unnecessarily to reduce payload size.
Mentions are supported in text messages and media message captions. Ensure your UI handles rendering mentions consistently across both message types.

Troubleshooting

Ensure you are using the correct <@uid:UID> format. The UID must be wrapped exactly as <@uid:your-uid-here>. Also verify that the mentioned user exists in your CometChat app. Use message.getMentionedUsers() to confirm the SDK parsed the mentions correctly.
This typically means the mention format in the message text is incorrect or the UID does not match any registered user. Double-check the message text for proper <@uid:UID> syntax and ensure there are no extra spaces or typos in the UID.
Make sure you have set mentionsWithTagInfo(true) or mentionsWithBlockedInfo(true) on your MessagesRequestBuilder before calling fetchPrevious(). These filters are disabled by default.
Verify that you are setting the caption text with the <@uid:UID> format on the media message object. Mentions in captions follow the same format as text messages.

Next Steps