Users, groups, chat rooms and messages
Besides the server REST API, your team can manage an app's IM users, groups, chat rooms, messages, calls and files directly in the console, which suits troubleshooting, handling user complaints and day-to-day operations. These are in the "IM users", "Groups", "Messages", "Chat rooms", "Audio/video" and "File storage" tabs of app details. The console overview and the app's "Overview & settings" also show the app's user count and connection stats.
Actions in the console have the same effect as the matching server APIs; for example, banning a user in the console also takes their devices offline immediately. Each section ends with a link to the server API docs with the detailed rules.
All members can view users, groups and chat rooms, create users, groups and chat rooms, view calls and storage usage, and upload files. Moderating actions such as banning, deleting and muting, viewing messages and chat rooms' recent messages, ending calls, and viewing, downloading and deleting files need owner or admin; see Roles and permissions.
User counts and connection stats
The live metrics on the console overview and at the top of the app's "Overview & settings" show:
| Item | Description |
|---|---|
| IM users | The app's current number of users (excluding deleted ones), with the limit if there is one. The limit is the registered users of the app's plan |
| Current connections | The number of client connections currently holding a persistent connection to the service |
| Active users today | Users who opened a persistent connection at least once today. Users who only call HTTP APIs and never open a persistent connection aren't counted |
| Active users this month | Users who opened a persistent connection at least once this month |
"Today" and "this month" follow Beijing time. Figures for the current day and month update continuously and don't change after the period ends.
IM users
"IM users" lists the app's users, searchable by username prefix and status (normal, banned). The list shows username, nickname, status, whether a password is set, how the user was created, last sign-in time and creation time.
The username prefix is up to 64 characters, using only letters, digits, underscore (_), hyphen (-) and dot (.); the input shows the current length and limits it. Clicking "Search" checks the input first and asks you to fix it if the format is wrong, then sends the request; an empty prefix means no username filter.
When a search succeeds with no matches, the page says "No matching users; adjust the search"; it only suggests creating users when there's no filter and the app really has no users. When the request fails, it shows "Failed to load users" with the reason, and you can click "Retry".
Create a user
Click "Create user" and fill in:
| Field | Description |
|---|---|
| Username | 1 to 64 letters, digits, underscores, dots or hyphens, not just one or two dots. The input shows the current length (such as 5 / 64) and limits it; saved in lowercase and can't be changed after creation |
| Password | Optional, 1 to 64 characters. With one, the user can sign in on the client with username and password; without one, they can only sign in with a sign-in token issued by your server |
| Nickname | Optional, up to 64 characters |
| Avatar URL | Optional, an http or https URL |
For username rules and other ways to create users, see Managing users.
View and edit a user
Click a row in the list to open the user's details, with these tabs:
| Tab | Contents |
|---|---|
| Profile | Status, whether online, nickname, avatar, whether a password is set, ban info, global mutes, custom attributes, creation and last sign-in time |
| Devices | The devices the user is signed in on (device, platform, sign-in method, IP, sign-in time), and current persistent connections |
| Push | Devices and tokens registered for push, push settings and conversation Do Not Disturb; you can unbind devices, change push settings and send test pushes; see A user's push devices and settings |
| Friends | The user's friends; you can "Remove" a friendship; see Friends |
| Groups | Groups the user has joined |
Under "Profile" you can:
- Edit profile: change the nickname and avatar; see Managing users. Enter an image URL for the avatar, or click "Upload" next to the avatar URL and choose a JPEG, PNG, GIF or WebP image (up to 5 MB) as this user's avatar: the image is scaled so its long side is at most 640 pixels, the URL is filled in, and it takes effect once you click "OK" to save the profile;
- Set password (
owner,admin): set a new password for the user, which immediately ends their sign-ins on all devices; they need to sign in again with the new password; see Passwords and bans.
Uploaded avatars belong to that user and their URLs are publicly accessible. Avatars not saved to the user's profile within 24 hours of upload are deleted automatically; after the avatar is replaced, the previously uploaded one is deleted after 7 days.
Ban and unban
owner or admin clicks "Ban" in the user's "Profile", optionally with a reason and duration (1 to 87600 hours; empty means permanent). Once banned:
- The user's sign-ins on all devices end immediately, online devices are disconnected, and they can't sign in again;
- The user's profile, friends, groups and messages are kept;
- The ban lifts automatically when it expires, or click "Unban" to lift it early. The user needs to sign in again after unbanning.
If the user was banned by the platform, the profile shows "Banned by platform", and only the platform can lift it; it can't be unbanned or deleted in the console. See Passwords and bans.
Global mute
owner or admin clicks "Global mute" under "Profile", chooses the scope (one-to-one chats, groups or chat rooms), and optionally a duration (minutes; empty means permanent) and reason. Muted users can't send messages in that scope from the client; other features aren't affected, and your server can still send as them. Existing mutes show under "Global mute"; click the close button on a tag to lift it. See Global mute.
Sign out devices
In the user's "Devices":
- Click "Sign out" on a device to end its sign-in and disconnect it; it needs to sign in again;
- Click "Sign out all devices" to take all the user's devices offline immediately; they need to sign in again.
Signing out doesn't stop the user from signing in again; ban the user to do that. See Sign-in and devices.
Delete a user
owner or admin clicks "Delete" under "Profile". All the user's devices go offline, their profile is cleared, and avatars they uploaded are deleted right away, unrecoverably; the username is freed, so a user with the same name can register later. Messages they sent are kept by default; if the app turned on erasing a deleted user's messages, those messages are cleared, and message attachments and group files they uploaded are deleted too. See Managing users.
Groups
"Groups" lists the app's groups, searchable by group name prefix, owner's username and status (normal, banned, dissolved). The list shows group name, group ID, type, owner, members (current / limit), status and creation time.
Create a group
Click "Create group" and fill in:
| Field | Description |
|---|---|
| Owner (username) | The owner must be an existing user in the app |
| Initial members | Optional, usernames separated by commas or spaces, up to 100 |
| Group name | Optional, up to 64 characters |
| Type | Private group: join by invitation only; public group: users can request to join |
| Description | Optional, up to 512 characters |
When some initial members can't join (such as users that don't exist, or who reached their group limit), the group is still created, and the page lists who didn't join and why. See Managing groups.
Manage a group
Click a row in the list to open the group's details. All members can:
- Transfer ownership: enter the new owner's username; they must be a group member;
- Add members: enter usernames above the member list (separated by commas or spaces) and click "Add";
- Make admin, Remove admin, Remove from group: act on a member in the member list.
owner or admin can also:
- Mute all: once on, only the group owner and group admins can speak in the group;
- Mute, Unmute: stop a member from speaking in the group until unmuted;
- Ban, Unban: while banned, members are kept but nobody can speak in the group and no new members can join; you can enter a reason, which isn't shown to group members. Groups banned by the platform can only be unbanned by the platform;
- Dissolve: afterwards no member can speak in the group, and group files are deleted, unrecoverably.
See Managing groups and Group members.
Chat rooms
The top of "Chat rooms" shows chat room stats, and below it lists the app's chat rooms, searchable by name prefix, owner's username and status (normal, banned, dissolved); with no status chosen, normal and banned ones are listed. The list shows name, chat room ID, owner, online members (current / limit), whether it appears in the client's chat room list, status and creation time. For chat room concepts and rules, see Managing chat rooms.
Chat room stats
| Item | Description |
|---|---|
| Messages today, messages this month | Messages sent across all the app's chat rooms |
| Peak connections today, peak connections this month | The most connections online at once across all the app's chat rooms, sampled every minute. Today's peak shows when it happened |
Below, view history for a period by day or by month: up to 92 days by day, or 24 months by month; days or months with no chat room activity aren't listed. "Final" means the day or month has ended and the figure won't change. "Today" and "this month" follow Beijing time.
Create a chat room
Click "Create chat room" and fill in:
| Field | Description |
|---|---|
| Name | 1 to 128 characters |
| Owner (username, optional) | Must be an existing user in the app, though not necessarily in the chat room. Empty means no owner, managed by your server |
| Description | Optional, up to 512 characters |
| Announcement | Optional, up to 2048 characters |
| Member limit | Optional, 1 to 500000. Empty follows the chat room member limit in the runtime policy; if filled in, the smaller of the two applies |
| Appears in the client's chat room list | On by default. When off, users can only enter by chat room ID |
When the app's number of undissolved chat rooms reaches its limit, no more can be created; the limit is set by the app's plan and the platform's quota. See Creating chat rooms.
Manage a chat room
Click a row in the list to open the chat room's details. The top shows its status (for banned ones, whether by the platform or the tenant, and the reason), online members and limit, owner, admins, mute all, how it was created, number of attributes, description and announcement. All members can:
- Edit profile: change the name, description, announcement, cover URL, member limit and whether it appears in the chat room list. Clearing the member limit makes it follow the runtime policy. If saving says the data was changed by someone else, refresh and edit again;
- Transfer ownership: enter the new owner's username; they needn't be in the chat room;
- Add admin, Remove admin: under "Admins", up to 99 admins per chat room; banned users can't be made admins;
- Set attribute, Delete attribute: under "Attributes". Attributes set in the console are the same as ones set by the server and overwrite a key of the same name set by anyone; see Chat room attributes.
owner or admin can also:
- Mute all: once on, only the owner, admins and users on the allowlist can speak from the client;
- Mute, Remove, Ban: act on a user under "Online members" (mutes last 1 hour), or enter usernames (separated by commas or spaces), a duration (minutes; empty means permanent) and a reason under "Muted list" or "Banned list" to mute or ban in bulk. Removed users can enter again; banned users can't enter while banned. The owner can't be muted, removed or banned;
- Allowlist: add or remove users under "Allowlist"; allowlisted users can still speak when everyone is muted;
- Unmute, Unban: click "Lift" in the list;
- Ban, Unban the chat room: when banning you can enter a reason, which isn't shown to clients. All online users are removed, and nobody can enter or send messages while it's banned. Chat rooms banned by the platform can only be unbanned by the platform;
- Dissolve: all online users are removed, and the chat room can't be restored.
For list rules, see Chat room members; for banning and dissolving, see Managing chat rooms.
Chat room messages
owner and admin view and send chat room messages under "Recent messages" in the chat room's details, such as when investigating complaints or sending system notices. Each view and send needs a reason entered at the top first (up to 256 characters), which is written to the operation log; message content isn't.
- View recent messages: lists the chat room's stored recent messages, with time, sender and role, content (text shown directly, other types only by type), priority and source;
- Recall: click "Recall" next to a message; online members of the chat room get a recall notice;
- Send a message: enter the sender's username, priority (high, normal, low) and text, then click "Send". With no sender it's sent as the system; to send as a specific user you need to verify your identity again.
The console can only send text messages. To send other types, use the server's Send chat room message API.
Messages
"Messages" is for viewing users' conversations and messages while troubleshooting, or sending messages as a user. Only owner and admin can use it, and:
- Each view and send needs a reason in "Reason" at the top of the page (up to 256 characters, such as "Investigating ticket 123"), which is written to the operation log together with the action;
- Viewing and sending require identity verification, valid for 10 minutes.
Messages are your users' private data
Only view messages when needed, such as handling complaints or troubleshooting, and give the real reason. The tenant's owner and admin can see in the operation log who viewed messages, when and why.
View conversations and messages
Under "View a user's conversations and messages", enter a username and click "View conversations". The left lists their conversations (the other user's username for one-to-one chats, the group ID for groups) with message and unread counts. Click a conversation to show its messages on the right: sender, sequence number, time and sending route, with text content shown directly; recalled or erased messages show as "Recalled" or "Erased". Click "Load earlier messages" to page back.
Messages sent by users have a "Recall" button on the right. Recalling here isn't limited by the recall time limit, and conversation members get a recall notice.
For the server APIs to query messages, see Querying and exporting messages and Conversations and history; for recalls, see Recall, edit and pin.
Send messages as a user
Under "Send a message as a user", enter the sender's username, choose whether to send to a user or a group, enter the recipient's username or group ID and the text, then click "Send". When sending to a group you can leave the sender empty to send as the system. After sending, the page shows the message's conversation, sequence number and message ID.
The console can only send text messages. To send other types or send in bulk, use the server's Send message API.
Audio/video
"Audio/video" shows whether this app can use audio/video, call stats and the call list. All members can view it; owner and admin can end calls and remove members from calls. Whether audio/video is on, the ringing timeout and the group call member limit are set in the runtime policy. For call rules, see Audio and video calls.
The top of the page shows the audio/video status:
| Status | Description |
|---|---|
| Audio/video available | The platform has a media service; actual calls also need the app policy turned on, a positive audio/video balance for this app under the new model, and enough concurrency quota and an app status that allows it. Before switching, the old plan permissions apply |
| Audio/video for this app disabled by platform | Also shows the reason and time. Calls in progress end immediately when disabled, and calls can't be started, answered or joined afterwards. Contact us if you disagree |
| Audio/video service unavailable | The platform has no media service available yet, so calls can't be started; contact us |
Call stats
Choose a date range (the last 7 days by default, up to 92 days); the top shows totals for the range:
| Item | Description |
|---|---|
| Calls | Calls that ended in the range |
| Answer rate | Share of calls that were answered |
| Average time to answer | For answered calls, the average wait from starting to answering |
| Voice billed minutes, video billed minutes | Legacy report fields, rounded per member and call; not the standard minutes actually charged under the new model. For how they're counted, see Call stats; for actual charges, see Audio/video billing |
| Media connection failures | Times someone joined a call but never connected to the media service. If the share is clearly high, some users' networks may not reach the media service; contact us to investigate |
The table below lists, per day, calls, group calls, answered, unanswered, declined and busy, and interrupted calls, call duration, voice and video billed minutes, and the peak of concurrent calls. A call counts on the day it ends, by Beijing time; days with no calls aren't listed.
Call list
The call list can be searched by participating username, group ID, type (one-to-one, group) and status (ringing, in call, ended), and shows call ID, type and media (voice, video), caller, members, status and end reason, duration, billed minutes and start time.
Click a row to open the call's details: who ended it; start, answer and end times; the member limit; the most members in the call at once and custom fields; and each member's role (caller, invited, joined themselves), status, leave reason, platform they joined from, call duration, and when they connected to the media service. For what statuses and reasons mean, see Call status.
For calls not yet ended, owner and admin can:
- End call: click "End call" at the top right, optionally with a reason. All members in the call leave and ringing invitations are cancelled;
- Remove: remove a member who is in the call or being rung, optionally with a reason. Removing either side of a one-to-one call ends it.
Ending calls and removing members are written to the operation log. See Ending calls and Removing members from calls.
File storage
"File storage" shows the app's storage usage, and owner and admin can view, download and delete the app's files here, for example to handle a complaint about an image or a group file. All members can upload files for testing or operations. For file uses, URLs and retention rules, see File overview.
While the tenant is suspended or in the closure cooling-off period, you can still view usage and view and download files, but not upload or delete; the same applies when the app is disabled.
Storage usage
"Storage usage" at the top of the page shows:
| Item | Description |
|---|---|
| Used | Space taken by the app's available files, including image thumbnails. Files uploading, deleted or blocked aren't counted |
| Quota | The app's storage quota: the smaller of the platform's storage quota for the app (1024 GB by default) and the storage of the app's plan |
| By use | File count and space for message attachments, user avatars, group avatars and group files |
When used space plus a new file's size exceeds the quota, new uploads fail with "The app's storage quota is full"; existing files aren't affected and can still be downloaded. Delete files you no longer need, or shorten the attachment retention days; for more quota, change plan or contact us.
View files
owner and admin can search files below the usage, by one of these at a time:
- By use: message attachments, user avatars, group avatars or group files;
- By owner: enter a username to list files belonging to that user, including files they uploaded from the client and their user avatar;
- By group ID: list that group's group files.
Also choose a status: available, uploading, blocked or deleted, available by default. Results are sorted newest upload first, and show file ID, file name, use, type and format, size, owner, status and upload time; hover over a deleted or blocked status to see why.
Click a row to open "File info", which also shows:
| Item | Description |
|---|---|
| Dimensions | Image width and height in pixels |
| Group | The group ID a group file belongs to |
| In use | Whether an avatar is currently used by a user's or group's profile |
| Uploaded via | client, openapi (server) or console |
| URL | The file URL for message attachments and group files; the public URL for avatars |
| Expires | For message attachments and group files with retention days, the expiry computed from the current retention days; other files show "Doesn't expire" |
"Blocked" files were blocked for violations; the info shows the reason and whether platform or tenant rules blocked them. Blocked files can't be downloaded or deleted; contact us if you disagree.
Download files
When a file is "Available", download or view it in the list's "Actions" column:
- Message attachments and group files: click "Download", enter a reason (up to 256 characters, such as "Handling complaint 123"), and after verifying your identity again as prompted, the browser opens the file in a new window. Each download is written to the operation log, including the reason. The download URL is only valid for a while (up to 90 minutes); don't share it;
- Avatars: click "View" to open the avatar's public URL directly, with no reason needed.
Attachments and group files are your users' private data
Only download users' files when needed, such as handling complaints or troubleshooting, and give the real reason. The tenant's owner and admin can see in the operation log who downloaded files, when and why.
Delete files
owner or admin clicks "Delete" on an available file and confirms:
- The file can no longer get download URLs, and clients see "File expired" when downloading; messages referencing it stay in conversations. Download URLs already opened may still work until they expire (up to 90 minutes);
- The file is then deleted from storage, unrecoverably;
- Storage usage drops right away;
- The deletion is written to the operation log.
Deleting an avatar in use doesn't change the user's or group's profile; the avatar URL in the profile just stops working. To change a user's avatar, edit the profile under the user's "Profile".
Upload files
Click "Upload file" at the top right of "Storage usage", choose a use and fill in as needed:
| Field | Description |
|---|---|
| Use | Message attachment, user avatar, group avatar or group file |
| Owner (username) | Required for user avatars: the user who'll use the avatar; optional for other uses |
| Group ID | Only for group files; the file is uploaded to that group's files. The group must exist and not be dissolved, with up to 1000 group files per group |
Click "Choose file and upload" to pick a local file. When it's done, the page shows the file's URL to copy, for example as the image or file URL when your server sends a message, or as a user's or group's avatar URL.
- For message attachments and group files, JPEG, PNG, GIF and WebP images up to 20 MB upload as images (with thumbnails), videos as videos, and everything else as files. For size limits, see attachment and group file size limits in the runtime policy, 100 MB by default;
- Avatars must be JPEG, PNG, GIF or WebP images up to 5 MB, scaled after upload so the long side is at most 640 pixels;
- Uploaded message attachments are also deleted per the attachment retention days; avatars not used by a user's or group's profile within 24 hours of upload are deleted automatically.
For the server upload API, see Uploading files; for querying and deleting files, see Downloading and managing files.
Standalone RTC channels
Channels are managed on the app's separate "RTC channels" page, not in the group or chat room lists. For searching, closing, removing and banning, see RTC channel management. A member's occupied seats, authorization status and actual media presence all mean different things; the length of the member list isn't the number of occupied seats.
Cross-app lookup for the platform
This page covers app management in the tenant console. Platform admins' eight IM data lists show the latest records across apps by default, with tenant and app pre-filters; for permissions and steps, see Platform IM data lookup. Viewing metadata doesn't grant permission to review or act on content.
