Group channel overview
A Group channel is a common multi-user communication format in instant messaging apps, typically involving two or more users. Nexconn's Group channel feature supports rich member management, mute management, offline message push, and message history roaming — suitable for interest groups, work groups, customer service, and more.
Key points about Group channels:
- Nexconn provides complete group management capabilities, supporting group creation, dissolution, member management, and profile maintenance through both server-side APIs and client-side SDKs. Group and member profile information (avatars, names, member cards, etc.) is managed and maintained by Nexconn.
- There is no limit on the number of groups that can be created under an App Key. The maximum number of members per group is 3,000. Contact Nexconn sales to increase this limit.
- There is no limit on the number of groups a single user can join.
Group management features
Nexconn provides complete group management capabilities, supporting group operations through both server-side APIs and client-side SDKs. When group management operations are performed, group members receive status notification callbacks — for example: create, join, invite, kick, leave, dissolve, add admin, remove admin, transfer Channel owner, and so on.
Because notifications are implemented as messages, they count toward group message distribution and downlink data statistics.
| Feature | Description | Client API | Nexconn Server API |
|---|---|---|---|
| Create a group | Create a group; the creator becomes the Channel owner by default. | Create Group (Client) | Create Group (Server) |
| Set group profile | Modify the group's name, avatar, description, and other built-in or custom profile fields. | Set Group Profile (Client) | Set Group Profile (Server) |
| Get group profiles in bulk | Retrieve profile information for multiple specified groups. | Get Group Profiles in Bulk (Client) | Get Group Profiles in Bulk (Server) |
| Kick a member | Remove a specified user from the group. Only users with kick permission can perform this operation. | Kick Member (Client) | Kick Member (Server) |
| Transfer group | Transfer the Channel owner role to another channel member, with the option to remain in or leave the group. | Transfer Group (Client) | Transfer Group (Server) |
| Join a group | Join a specified group. There is no limit on the number of groups a user can join. | Join Group (Client) | Join Group (Server) |
| Leave a group | Leave a specified group. The user no longer receives new messages from the group after leaving. | Leave Group (Client) | Leave Group (Server) |
| Dissolve a group | Dissolve a specified group. Only the Channel owner can dissolve the group; all member relationships are removed afterward. | Dissolve Group (Client) | Dissolve Group (Server) |
| Kick a user from all groups | Remove a specified user from all groups where they are not the Channel owner. Groups where the user is the Channel owner must have their ownership transferred before the user can leave. | N/A | Kick User from All Groups (Server) |
| Set Channel admin | Designate a channel member as a Channel admin. | Set Channel Admin (Client) | Set Channel Admin (Server) |
| Remove Channel admin | Revoke admin privileges, reverting the Channel admin to a Channel member. | Remove Channel Admin (Client) | Remove Channel Admin (Server) |
| Get group members (paginated) | Retrieve member information for a specified group using pagination. | Get Group Members Paginated (Client) | Get Group Members Paginated (Server) |
| Get specific group members | Retrieve profile information for specific members in a group. | Get Specific Group Members (Client) | Get Specific Group Members (Server) |
| Set member profile | Set a channel member's alias and custom additional information. | Set Member Profile (Client) | Set Member Profile (Server) |
| Set group name alias | Set an alias for the group name visible only to the user who sets it; other members cannot see it. | Set Group Name Alias (Client) | Set Group Name Alias (Server) |
| Follow a channel member | After following a specified channel member, messages from that member are not affected by Do Not Disturb (DND). | Follow Group Member (Client) | Follow Group Member (Server) |
| Query all groups under app (paginated) | Retrieve a paginated list of groups under a specified App Key. | N/A | Query All Groups Under App (Server) |
| Query groups a user has joined (paginated) | Retrieve a paginated list of all groups a user has joined. | Query Groups User Joined (Client) | Query Groups User Joined (Server) |
| Group import | For groups created through other means, use this API to set the Channel owner and group permissions before using the full group management feature set. | N/A | Group Import (Server) |
Basic group operations via server API
In addition to the complete group management features above, Nexconn also provides a set of basic Server API endpoints for fundamental group operations such as creation, dissolution, and member management:
| Feature | Description | Nexconn Server API |
|---|---|---|
| Create / Dissolve group | Provide the creator's user ID, group ID, and group name to request group creation from the Nexconn server. Dissolving a group removes all member relationships. | Create Group, Dissolve Group |
| Join / Leave group | After joining, only messages created after joining are visible by default. After leaving, the user no longer receives new messages from the group. | Join Group, Leave Group |
| Update Nexconn server group information | Update the group information used in Nexconn's push service. | Refresh Group Info |
| Query group members | Query the user IDs of all members in a specified group. | Query Group Members |
| Query groups a user belongs to | Query all groups a user has joined by user ID, returning group IDs and names. | Query Groups User Belongs To |
| Sync user's groups | Sync all groups a specified user currently belongs to with the Nexconn server, preventing inconsistencies between the app and Nexconn. If your app server already has group and member data before integrating Nexconn, use this API on first connection to sync the existing user-group relationships. | Sync User's Groups |
| Mute a single member | Mute one or more users in a specified group or across all groups. Muted users can still view messages from others but cannot send messages via the client SDK. | Mute Single Member |
| Mute all members | Mute all members of a group. To allow specific users to speak, add them to the group mute whitelist. | Mute All Members |
| Group mute whitelist | After a group is muted globally, users on the mute whitelist can still send group messages. | Mute All Members Whitelist |
Group channel messaging
Group channel messaging works similarly to Direct Channel messaging and shares some APIs and configuration.
| Feature | Description | Client API | Nexconn Server API |
|---|---|---|---|
| Send a message | Send regular or media messages — such as text, images, and GIFs — or custom messages. You can include @ mentions when sending. | Send Message | Send Group Message |
| Send a group @ message | Specify @ target users when sending a group message. Mentioned users receive a special notification. | Send Group @ Message | Not available |
| Send a directional group message | Send a regular or media message to one or more specific group members; other members do not receive it. | Send Directional Group Message | Send Directional Group Message (Server) |
| Receive messages | Listen for and receive messages in real time, or receive offline messages when the client comes online. | Receive Messages | N/A |
| Group message read receipts | After sending a group message, send a read receipt request to retrieve read status data from recipients. | Group Message Read Receipts | N/A |
| Offline messages | Supports offline message storage; retention period is configurable (1–7 days), defaulting to all group messages within 7 days. Retention duration and message count can be adjusted. | Not available | Not available |
| Control offline push properties | When the recipient is offline, group messages can trigger push notifications. Configure push properties (IPushConfig) to control the display and behavior of push notifications on mobile devices. | Send Message | Not available |
| Delete a message | A sent message can be deleted. | Delete a Message | Delete a Message |
| Get message history | Retrieve message history from the local database or remote. Note: retrieving from remote requires the Direct/Group Channel Message Cloud Storage service; default retention is 6 months. | Get Message History | Not available |
| Get message history logs | Nexconn's server can store the history of all channels in the app. History is provided as compressed log files. Use the Server API to retrieve or delete history logs for a specified app. | Not available | Documentation pending |
| Delete remote messages | Delete specific messages, messages before a specified timestamp, or all history messages in a channel from the server. | Delete Messages | Clear Messages |
| Direct/Group channel message expansion | Add status tags (KV key-value pairs) to existing messages; provides APIs to add, delete, and query expansion data. | Message Expansion | Direct/Group Channel Message Expansion |
| Custom message types | If the built-in message types don't meet your needs, define custom message types. Both custom regular and media message types are supported. | Custom Messages | N/A |
By default, newly joined members can only see messages created after they joined. To allow members to view history before they joined, enable the following two services for your App Key (note the distinction between development and production environments):
- Turn on Enable pre-join history access by new member under Chat > Chat settings > Group Channels on the Chat settings page in the console.
Group channel features
Group channel channel features work similarly to Direct Channel and share some APIs and configuration.
| Feature | Description | Client API | Nexconn Server API |
|---|---|---|---|
| Get remote channels | Retrieve the channel list from the server (up to 1,000). Supports fetching specific channels, pinned channels, and channels with unread messages. | Get Channels | Not available |
| Manage unread message count | Get or clear the unread message count in a channel for UI display. | Channel Unread Count | Not available |
| Delete a channel | Remove a specific channel from the channel list. | Delete Channel | Not available |
| Channel draft | Save a draft to a specified channel. | Channel Draft | Not available |
| Typing indicator | Configure whether a specified Group channel shows a notification when a new message arrives; new message notifications are enabled by default. | Typing Indicator | Not available |
| Manage channel tags | Create and manage tag data to group and categorize channels. Each user can create up to 20 tags. Tag data is synced to the Nexconn server. | Manage Channel Tag Data | Not available |
| Set and use channel tags | Organize channels into groups using channel tags. | Set and Use Channel Tags | Not available |
| Pin a channel | Pin a specified channel to the top of the channel list. | Pin a Channel | Pin a Channel |
| Do Not Disturb (DND) | Control whether offline push notifications are sent when the user's device is offline. Supports DND by channel or by channel type. | DND Overview | DND Overview |
| Multi-device sync for DND/pin status | The SDK provides a channel status sync mechanism. After setting a channel status sync listener, changes to DND or pin status made on other devices are reflected in real time on the current device. | Multi-device Sync DND/Pin | N/A |
| Multi-device sync for read status | Actively sync the read status of a channel across multiple devices under the same user account. | Multi-device Sync Read Status | N/A |
Differences from open channels and community channels
Refer to the following documents to learn about the differences between channel types and their full feature sets: