Skip to main content
Quick Reference for AI Agents & Developers
  • Add members: CometChat.addMembersToGroup(guid:groupMembers:bannedMembers:onSuccess:onError:)
  • GroupMember: GroupMember(UID:groupMemberScope:) — scope: .admin, .moderator, .participant
  • Permission: Only group owner or admin can add members
  • Related: Retrieve Group Members · Kick Member · Groups Overview
You can add members to the group using the addMembersToGroup() method. This method takes the below parameters:
  1. GUID - GUID of the group the members are to be added to.
  2. Array<GroupMember> members - This is a list of GroupMember objects. In order to add members, you need to create an object of the GroupMember class. The UID and the scope of the GroupMember are mandatory.
  3. Array<String> bannedMembers - This is the list of UIDs that need to be banned from the Group. This can be set to nil if there are no members to be banned.
  4. Callback.
let grpmem1 = GroupMember(UID: "member1", groupMemberScope: .participant)
let grpmem2 = GroupMember(UID: "member2", groupMemberScope: .participant)
let grpmem3 = GroupMember(UID: "member3", groupMemberScope: .admin)
let grpmem4 = GroupMember(UID: "member4", groupMemberScope: .admin)
let grpmem5 = GroupMember(UID: "member5", groupMemberScope: .moderator)

CometChat.addMembersToGroup(guid: "mygroup", groupMembers: [grpmem1, grpmem2, grpmem3, grpmem4, grpmem5], onSuccess: { (response) in

		print("Response from addMembersGroup: \\(response)")

}, onError : { (error) in

		print("Adding member in a group failed with error: \\(String(describing: error?.errorDescription))")

})
In the onSuccess() callback, you will receive a dictionary which will contain the UID of the users and the value will either be success or an error message describing why the operation to add the user to the group or ban the user failed.
Method Signature:
ParameterTypeDescription
guidStringUnique group identifier. Example: "cometchat-guid-1"
groupMembers[GroupMember]Array of members to add with their scopes
bannedMembers[String]?Array of UIDs to ban (optional). Example: nil
onSuccess([String: Any]) -> VoidSuccess callback with results dictionary
onError(CometChatException?) -> VoidError callback with exception details
Request Parameters:
ParameterTypeDescription
guidStringUnique group identifier. Example: "bhut_5efde3"
members[GroupMember]Array of GroupMember objects to add
Members Array (GroupMember Objects):
ParameterTypeDescription
uidStringUnique identifier of the user to add. Example: "123abc"
scopeMemberScopeScope to assign to the member. Example: .participant (value: 2)
MemberScope Enum Values:
ValueRaw ValueDescription
.admin0Full group management privileges
.moderator1Can kick/ban members, delete messages
.participant2Default scope, can send/receive messages
Prerequisites:
RequirementDescription
User logged inUser must be authenticated via CometChat.login()
Admin/Owner permissionUser must be the owner or admin of the group
Valid GUIDGroup with specified GUID must exist
Valid UIDsUsers with specified UIDs must exist
Success Callback Parameter:
ParameterTypeDescription
response[String: Any]Dictionary with UID as key and result as value
Response Dictionary Structure:
KeyValue TypeDescription
StringResult for each user: "success" or error message
Example Success Response:
UIDResultDescription
123abcsuccessMember was added successfully
Possible Result Values:
ValueDescription
successMember was added successfully
ERR_ALREADY_JOINEDUser is already a member of the group
ERR_UID_NOT_FOUNDUser with specified UID does not exist
ERR_USER_BANNEDUser is banned from the group
Real-time Event Triggered:
EventDelegate MethodDescription
onMemberAddedToGroupCometChatGroupDelegateNotifies all group members of the addition
Error Callback Parameter:
ParameterTypeDescription
errorCometChatException?Error object containing failure details
CometChatException Object:
ParameterTypeDescription
errorCodeStringMachine-readable error code. Example: "ERR_PERMISSION_DENIED"
errorDescriptionStringHuman-readable error message. Example: "You do not have permission to add members to this group."
Common Error Codes:
Error CodeDescriptionResolution
ERR_NOT_LOGGED_INUser is not logged inLogin first using CometChat.login()
ERR_GROUP_NOT_FOUNDGroup does not existVerify the GUID is correct
ERR_PERMISSION_DENIEDNo permission to add membersOnly owner or admin can add members
ERR_EMPTY_MEMBER_LISTNo members providedProvide at least one GroupMember
ERR_INVALID_SCOPEInvalid member scopeUse .admin, .moderator, or .participant

Real-Time Group Member Added Events

To receive Real-Time Events for the same, you need to implement the onMemberAddedToGroup() method of the GroupListener class.
When a group member is added by another member, this event is triggered. When a user joins a group on their own, the joined event is triggered.
  • onMemberAddedToGroup() - This method is triggered when other users are added to the group so that the logged in user is informed of the other members added to the group or this method is triggered when the LoggedIn User is added to the Group.
extension AppDelegate: CometChatGroupDelegate {

  func onMemberAddedToGroup(action: ActionMessage, addedBy: User, addedUser: User, addedTo: Group) {
      //When any member is added in the group this function will be called
  }

}
Event Trigger: Received via CometChatGroupDelegate.onMemberAddedToGroup(action:addedBy:addedUser:addedTo:)ActionMessage Object:
ParameterTypeDescription
actionStringAction type. Example: "added"
actionByUserUser who added the member
actionOnUserUser who was added
actionForGroupGroup where action occurred
addedBy (User Object):
ParameterTypeDescription
uidString?Unique identifier of the admin/owner. Example: "cometchat-uid-1"
nameString?Display name of the admin/owner. Example: "Admin User"
avatarString?URL to the user’s avatar image. Example: "https://example.com/avatar.png"
statusUserStatusCurrent online status. Example: .online
addedUser (User Object):
ParameterTypeDescription
uidString?Unique identifier of the added user. Example: "cometchat-uid-2"
nameString?Display name of the added user. Example: "John Doe"
avatarString?URL to the user’s avatar image. Example: "https://example.com/avatar.png"
statusUserStatusCurrent online status. Example: .offline
addedTo (Group Object):
ParameterTypeDescription
guidStringUnique group identifier. Example: "cometchat-guid-1"
nameString?Group display name. Example: "My Group"
membersCountIntUpdated member count (incremented). Example: 6

Member Added to Group event in Message History

In other words, as a member of a group, how do I know when someone is added to the group when my app is not running? When you retrieve the list of previous messages if a member has been added to 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 added event, in the Action object received, the following fields can help you get the relevant information-
  1. action - added
  2. actionOn - User object containing the details of the user who was added to the group.
  3. actionBy - User object containing the details of the user who added the member to the group.
  4. actionFor - Group object containing the details of the group to which the member was added.

Success & Failure Responses

Add Members Success Response

When members are successfully added, the onSuccess callback returns a dictionary with results for each user:
CometChat.addMembersToGroup(guid: "mygroup", groupMembers: [grpmem1, grpmem2], onSuccess: { (response) in
    // response: [String: Any] - Dictionary with UID as key and result as value
    print("Response: \(response)")
    
    // Example response:
    // ["member1": "success", "member2": "success", "member3": "ERR_ALREADY_JOINED"]
    
    // Iterate through results
    for (uid, result) in response {
        if let resultString = result as? String {
            if resultString == "success" {
                print("\(uid) added successfully")
            } else {
                print("\(uid) failed: \(resultString)")
            }
        }
    }
}, onError: { (error) in
    // Handle error
})

Add Members Failure Response

When the operation fails entirely, the onError callback returns a CometChatException:
CometChat.addMembersToGroup(guid: "mygroup", groupMembers: members, onSuccess: { (response) in
    // Success
}, onError: { (error) in
    print("Error Code: \(error?.errorCode ?? "")")
    print("Error Description: \(error?.errorDescription ?? "")")
    
    // Handle specific errors
    switch error?.errorCode {
    case "ERR_GROUP_NOT_FOUND":
        // Group does not exist
        break
    case "ERR_PERMISSION_DENIED":
        // User is not admin/owner
        break
    case "ERR_EMPTY_MEMBER_LIST":
        // No members provided
        break
    default:
        break
    }
})

Response Dictionary Values

ValueDescription
successMember was added successfully
ERR_ALREADY_JOINEDUser is already a member of the group
ERR_UID_NOT_FOUNDUser with specified UID does not exist
ERR_USER_BANNEDUser is banned from the group

GroupMember Object Properties

PropertyTypeDescription
uidStringUnique identifier of the member
nameString?Display name
avatarString?Avatar URL
scopeMemberScope.admin, .moderator, or .participant
joinedAtDoubleUnix timestamp when member joined
hasJoinedBoolWhether user has joined the group

Common Error Codes

Error CodeDescriptionResolution
ERR_GROUP_NOT_FOUNDGroup with specified GUID does not existVerify the GUID is correct
ERR_PERMISSION_DENIEDUser is not admin or owner of the groupOnly admin/owner can add members
ERR_EMPTY_MEMBER_LISTNo members provided in the arrayProvide at least one GroupMember
ERR_INVALID_SCOPEInvalid member scope providedUse .admin, .moderator, or .participant