Group channel overview
Group channels are a common multi-user messaging pattern in chat apps. Nexconn group channels support member management, muting, offline push notifications, and message history sync for scenarios such as interest groups, workplace teams, and customer service.
Key points:
- Nexconn provides full group management capabilities via both Server API and client SDK, including creating and dismissing groups, member management, and profile updates. Group and member profiles (avatars, names, member cards, etc.) are managed by Nexconn.
- There is no limit on the number of groups per App Key. Each group supports up to 3,000 members. Contact Nexconn sales to increase this limit.
- There is no limit on how many groups a single user can join.
Service configuration
Some basic features and premium services for group channels can be enabled and configured on the Console IM service pages.
Group management features
Nexconn provides comprehensive group management features via both Server API and client SDK. When group operations occur, members receive status notification callbacks for events such as creation, join, invite, kick, leave, dismiss, add/remove admin, and transfer ownership.
Notifications use the message mechanism, so they count toward message distribution and downstream statistics.
| Feature | Description | Client API | Server API |
|---|---|---|---|
| Create group | Create a group. The creator becomes the channel owner by default. | [Create Group (Client)] | [Create Group (Server)] |
| Update group profile | Update the group name, avatar, description, and other built-in or custom profile fields. | [Update Group Profile (Client)] | [Update Group Profile (Server)] |
| Get multiple group profiles | Retrieve profile information for multiple groups. | [Get Group Profiles (Client)] | [Get Group Profiles (Server)] |
| Kick members | Remove specified users from a group. Only users with kick permission can perform this. | [Kick Members (Client)] | [Kick Members (Server)] |
| Transfer ownership | Transfer the channel owner role to another member, with an option to leave the group. | [Transfer Ownership (Client)] | [Transfer Ownership (Server)] |
| Join group | A user joins a specified group. No limit on joined groups. | [Join Group (Client)] | [Join Group (Server)] |
| Leave group | A user leaves a specified group and stops receiving new messages. | [Leave Group (Client)] | [Leave Group (Server)] |
| Dismiss group | Dismiss a group. Only the channel owner can dismiss. All membership is removed. | [Dismiss Group (Client)] | [Dismiss Group (Server)] |
| Kick user from all groups | Remove a user from all groups where they are not the owner. | N/A | [Kick from All Groups (Server)] |
| Add channel admin | Assign a member as channel admin. | [Add Admin (Client)] | [Add Admin (Server)] |
| Remove channel admin | Remove admin role, reverting to channel member. | [Remove Admin (Client)] | [Remove Admin (Server)] |
| Get members (paginated) | Retrieve member info for a group with pagination. | [Get Members (Client)] | [Get Members (Server)] |
| Get specific members | Retrieve info for specified members in a group. | [Get Specific Members (Client)] | [Get Specific Members (Server)] |
| Update member profile | Set a member's nickname and custom info within the group. | [Update Member Profile (Client)] | [Update Member Profile (Server)] |
| Set group alias | Set a personal alias for a group, visible only to the current user. | [Set Group Alias (Client)] | [Set Group Alias (Server)] |
| Favorites (follow users) | Follow specific channel members so their messages bypass Do Not Disturb. | [Favorites (Client)] | [Favorites (Server)] |
| Query groups for app | Retrieve all groups under an App Key with pagination. | N/A | [Query App Groups (Server)] |
| Query user's groups | Retrieve all groups a user has joined with pagination. | [Query User Groups (Client)] | [Query User Groups (Server)] |
| Import groups | Import groups created externally. Set owner and permissions first to use full management features. | N/A | [Import Groups (Server)] |
Group messaging features
Group messaging features are similar to direct channel messaging and share some APIs and configurations.
| Feature | Description | Client API | Server API |
|---|---|---|---|
| Send messages | Send text, images, GIFs, custom messages, etc. Supports @mentions. | [Send Message] | [Send Group Message] |
| Send targeted messages | Send messages to specific members within a group. Other members do not receive them. | [Send Targeted Message] | [Send Targeted Group Message] |
| Receive messages | Listen for and receive messages in real time, or receive offline messages on reconnect. | [Receive Messages] | N/A |
| Read receipts | Send a read receipt request to check message read status in a group. | [Read Receipts] | N/A |
| Missed messages | Missed messages are stored for 1-7 days (default 7). Storage duration and message count are configurable. | [Offline Message Config] | N/A |
| Push notifications | Receive push notifications for new group messages while offline. | [Android Push Guide] | N/A |
| Recall messages | Recall a sent message. | [Recall Message (Client)] | [Recall Message (Server)] |
| Search messages | Search local messages in a channel by keyword or user. | [Search Messages] | N/A |
| Get history | Retrieve history from local database or server. Server history requires cloud message storage. | [Get History] | N/A |
| Insert messages | Insert messages into the local database without actually sending. | [Insert Messages] | N/A |
| Delete messages | Delete messages locally or from the server by channel. | [Delete Messages] | [Clear Messages] |
| Message extensions | Add key-value metadata to messages. Supports add, delete, and query operations. | [Message Extensions] | [Message Extensions (Server)] |
| Custom message types | Define custom message types when built-in types are insufficient. | [Custom Message Types] | N/A |
By default, new members can only see messages sent after they joined. To view pre-join history, enable:
- Cloud message storage from the Console. Available on Starter or Pro plans.
- Enable pre-join history access by new member under Chat > Chat settings > Group Channels in the Console.
Group channel features
Group channel features are similar to direct channel features and share some APIs and configurations.
| Feature | Description | Client API | Server API |
|---|---|---|---|
| Retrieve channels | The SDK generates channels from sent/received messages. Retrieve the channel list from the local database. | [Retrieve Channels] | N/A |
| Get unread messages | Get unread messages from a channel to jump to the first unread or display all @mentions. | [Get Unread Messages] | N/A |
| Handle unread count | Get or clear unread counts for UI display. | [Handle Unread Count] | N/A |
| Delete channels | Delete one or more channels from the channel list. | [Delete Channels] | N/A |
| Drafts | Save draft text to a channel. | [Drafts] | N/A |
| Typing status | Configure whether the user receives new message alerts in a group channel. | [Typing Status] | N/A |
| Manage channel tags | Create and manage tag data for organizing channels. Up to 20 tags per user. | [Manage Tag Data] | N/A |
| Tag channels | Assign tags to channels for grouping. | [Tag Channels] | N/A |
| Pin channels | Pin a channel to the top of the channel list. | [Pin Channels (Client)] | [Pin Channels (Server)] |
| Do Not Disturb | Control push notifications for missed messages by channel or channel type. | [Do Not Disturb (Client)] | [Do Not Disturb (Server)] |
| Multi-device status sync | Sync channel status (pin, DND) across devices in real time. | Multi-device channel status sync | N/A |
| Multi-device read sync | Sync read status across devices for the same user account. | Multi-device unread sync | N/A |
Comparison with open and community channels
For differences between channel types and a full feature list, see: