Skip to main content
Quick Reference
// Change member scope
CometChat.updateGroupMemberScope("GUID", "UID", CometChat.GROUP_MEMBER_SCOPE.ADMIN);

// Listen for scope changes
CometChat.addGroupListener("listenerId", new CometChat.GroupListener({
  onGroupMemberScopeChanged: (message, changedUser, newScope, oldScope, changedGroup) => {}
}));
Available via: SDK | REST API

Change Scope of a Group Member

In order to change the scope of a group member, you can use the changeGroupMemberScope().
var GUID = "GUID";
var UID = "UID";
var scope = CometChat.GROUP_MEMBER_SCOPE.ADMIN;

CometChat.updateGroupMemberScope(GUID, UID, scope).then(
  (response) => {
    console.log("Group member scopped changed", response);
  },
  (error) => {
    console.log("Group member scopped changed failed", error);
  }
);
This method takes the below parameters:
ParameterDescription
UIDThe UID of the member whose scope you would like to change
GUIDThe GUID of the group for which the member’s scope needs to be changed
scopeThe updated scope of the member. This can be either of the 3 values: 1.CometChat.SCOPE.ADMIN2.CometChat.SCOPE.MODERATOR 3.CometChat.SCOPE.PARTICIPANT
The default scope of any member is participant. Only the Admin of the group can change the scope of any participant in the group.

Real-Time Group Member Scope Changed Events

In other words, as a member of a group, how do I know when someone’s scope is changed when my app is running? In order to receive real-time events for the change member scope event, you will need to override the onGroupMemberScopeChanged() method of the GroupListener class
var listenerID = "UNIQUE_LISTENER_ID";

CometChat.addGroupListener(
  listenerID,
  new CometChat.GroupListener({
    onGroupMemberScopeChanged: (
      message,
      changedUser,
      newScope,
      oldScope,
      changedGroup
    ) => {
      console.log("User joined", {
        message,
        changedUser,
        newScope,
        oldScope,
        changedGroup,
      });
    },
  })
);
Always remove group listeners when the component unmounts to prevent memory leaks.
CometChat.removeGroupListener("UNIQUE_LISTENER_ID");

Missed Group Member Scope Changed Events

In other words, as a member of a group, how do I know when someone’s scope is changed when my app is not running? When you retrieve the list of previous messages if a member’s scope has been changed for any group that the logged-in user is a member of, the list of messages will contain an Action message. An Action message is a sub-class of BaseMessage class. For the group member scope changed event, in the Action object received, the following fields can help you get the relevant information-
  1. action - scopeChanged
  2. actionOn - User object containing the details of the user whos scope has been changed
  3. actionBy - User object containing the details of the user who changed the scope of the member
  4. actionFor - Group object containing the details of the group in which the member scope was changed
  5. oldScope - The original scope of the member
  6. newScope - The updated scope of the member
  • Only admins can change member scope — validate roles before calling updateGroupMemberScope()
  • Update your local group member list after a successful scope change to keep the UI in sync
  • Handle the onGroupMemberScopeChanged listener to reflect scope changes made by other admins in real time
  • Consider showing a confirmation dialog before promoting a member to admin, as this grants full group control
  • ERR_NOT_A_MEMBER: The logged-in user is not a member of the group. Ensure the user has joined the group first.
  • ERR_INSUFFICIENT_PERMISSIONS: Only group admins can change member scope. Verify the logged-in user’s role.
  • Scope change not reflecting: Make sure you’ve registered a GroupListener and are handling onGroupMemberScopeChanged.
  • Missed events not appearing: Fetch previous messages using MessagesRequest — scope change actions appear as Action messages in the message history.

Next Steps