User Group Overview
The Ultra Group User Group feature is a group member management tool provided by RC's Ultra Group service. When combined with Ultra Group Private Channels, it helps apps achieve more efficient ultra group member management, communication control, and more granular user notification capabilities.
Prerequisites
The client SDK has supported Ultra Group User Groups since version 5.4.0.
The Ultra Group User Group feature primarily provides batch management capabilities for users' communication permissions (message sending/receiving and notifications) in community private channels through binding operations with private channels, improving app integration efficiency and ultra group operational management capabilities.
Before understanding and using the Ultra Group User Group feature, you should first familiarize yourself with Ultra Group Private Channels. See Ultra Group Private Channel Overview.
How to Use Ultra Group User Groups
App Servers can call RC's server APIs to create up to 50 user groups (userGroup) within an ultra group, with each user group containing a maximum of 100 ultra group members. A single user can belong to multiple user groups.
After creation, user groups can be bound to ultra group channels. If a user group is bound to one or more private channels, all members of that user group gain the ability to send/receive messages and receive notifications in the bound private channels.
- When an app binds a user group to a private channel, it effectively means all users in the group have joined that private channel. Similar to users in the channel's member list, only joined members can view the channel, receive/send messages, and get notifications within it.
- Binding a user group to a public channel doesn't affect users' message permissions. However, if that public channel is converted to a private channel, the group members will automatically gain message and notification capabilities in the now-private channel.
- An app can bind up to 10 user groups to a single channel, and a user group can be bound to multiple channels (maximum 50 channels per ultra group).
The Ultra Group service provides a default RCDefault channel that's open to all ultra group members and cannot be made private. Avoid binding user groups to the RCDefault channel.
App Clients cannot perform user group management operations. They can only listen for user group-related change notifications through SDK callback methods, including:
- User Group Deletion: All users in the group receive client callbacks
- User Group Member Changes: Users added to or removed from the group receive client callbacks
- Channel-User Group Binding Changes: All users in the group receive client callbacks
Combining User Groups with Private Channel Member Lists
As long as an app user belongs to any user group bound to a specific private channel or is in that channel's member list, they can send/receive messages and get notifications in the private channel.
When combining private channel member lists with user groups, the following scenarios may occur in app operations:
- A private channel has a configured member list with multiple users added.
- The private channel is bound to multiple user groups.
In such cases, a user might be both in the private channel's member list and in multiple user groups bound to that channel. To fully revoke a user's access to the private channel, the app should:
- Remove the user from the private channel's member list
- Check all user groups bound to the channel and either:
- Remove the user from all bound user groups, or
- Unbind the user groups
User Group Management APIs
The IM server provides basic management APIs for Ultra Group User Groups. Apps must implement their own business logic for user groups (e.g., join requests, approval workflows). We recommend maintaining server-side data mapping users, user groups, and channels.
Client developers only need to interact with their app server for basic management operations like user group creation. The app server should call the relevant RC Server API endpoints for these operations.
The table below lists core Ultra Group User Group management APIs. See the API List in IM server documentation for more interfaces.
| Category | Description | RC Server API |
|---|---|---|
| Create/Delete Groups | Create user groups in a specified ultra group. Deletion removes all user-group-channel relationships. | Create User Group, Delete User Group |
| List User Groups | Paginated query of user groups in an ultra group, returning group IDs. | Query User Group List |
| Add/Remove Users | Manage user membership in ultra group user groups. | Add User, Remove User |
| Query User's Groups | Paginated query of groups a user belongs to within an ultra group. | Query User's User Groups |
| Bind Groups to Channels | Bind user groups to a channel (max 10 groups per channel). | Bind Channel to User Group |
| Unbind Groups from Channels | Remove bindings between user groups and a channel (max 10 per request). | Unbind Channel from User Group |
| Query Channel's Groups | Paginated query of user groups bound to a channel. | Query Channel's Bound User Groups |
| Query Group's Channels | Paginated query of channels a user group is bound to. | Query User Group's Bound Channels |