Moderation Tools

LAST EDIT May 17 2021

Flag

Copied!

Any user is allowed to flag a message. Flagging does not perform any particular action on the chat. The API will only trigger the related webhook event and make the message appear on your Dashboard Chat Moderation view.

Mutes

Copied!

Any user is allowed to mute another user. Mutes are stored at user level and returned with the rest of the user information when connectUser is called. A user will be be muted until the user is unmuted or the mute is expired.

nametypedescriptiondefaultoptional
timeoutnumberThe timeout in minutes until the mute is expired.no limit

After muting a user messages will still be delivered via web-socket. Implementing business logic such as hiding messages from muted users or display them differently is left to the developer to implement.

Messages from muted users are not delivered via push (APN/Firebase)

Ban

Copied!

Users can be banned from an app entirely or from a channel. When a user is banned, it will not be allowed to post messages until the ban is removed or expired but it will be able to connect to Chat and to channels as before.

It is also possible to ban the user's last known IP address to prevent creation of new "throw-away" accounts. This type of ban is only applicable on the app level. We do not recommend applying IP ban without reasonable timeout, however this is not restricted. The IP address will be unbanned either after reaching a timeout or with explicit user unban.

In most cases only admins or moderators are allowed to ban other users from a channel.

nametypedescriptiondefaultoptional
timeoutnumberThe timeout in minutes until the ban is automatically expired.no limit
reasonstringThe reason that the ban was created.
ip_banbooleanWhether or not to apply IP address banfalse
banned_by_idstringThe ID of the user who is performing the ban. This is required only when using API from the server-side
Banning a user from all channels can only be done using server-side auth.

Query Banned Users

Copied!

Banned users can be retrieved in different ways:

  1. Using the dedicated query bans endpoint

  2. User Search: you can add the banned:true condition to your search. Please note that this will only return users that were banned at the app-level and not the ones that were banned only on channels.

Query Bans Endpoint

Copied!

The query bans endpoint allows you to list bans for your application. Similar to other query endpoints, you can filter bans by different fields and control the ordering of results.

Globally banned users can only be retrieved using server-side auth

Available fields

Copied!

Name

Description

Example

Operators

channel_cid

The channel CID for the ban. When this parameter is not provided, both global and channel bans will be returned.

{ channel_cid :{$in:["livestream:1","livestream:2"]}}

$eq, $in

user_id

The ID of the banned user

{ user_id: "evil_user" }

$eq, $in, $neq, $nin

expired

The date (RFC339) of the ban expiration

{ expired: {$gt: "2020-10-02T15:00:00Z"} }

$eq, $gt, $gte, $lt, $lte

created_at

The date (RFC339) of the ban creation

{ created_at: {$gt: "2020-10-02T15:00:00Z"} }

$eq, $gt, $gte, $lt, $lte

banned_by_id

The ID of the user that created the ban

{ banned_by_id: "42"}

$eq, $in, $neq, $nin

Pagination for bans can be done in two ways: using offset/limit or using the "created_at" field. Bans are returned in ascending order by default so to get the second page you need to request bans with "created_at" less than the created_at of the last ban in the first page. Ordering can be reversed using the sort option.

Shadow Ban

Copied!

Users can be shadow banned from an app entirely or from a channel. When a user is shadow banned, they will still be allowed to post messages, but any message sent during, will have the shadowed: true field set. However, this will be invisible from the author of the message.

It's up to the client-side implementation to hide or otherwise handle these messages appropriately.
nametypedescriptiondefaultoptional
banned_by_idstringThe ID of the user who is performing the ban. This is required only when using API from the server-side-

Administrators can view shadow banned user status in queryChannels(), queryMembers() and queryUsers().

Block Lists

Copied!

A list of words you can define to moderate chat messages. A block list can be assigned to each channel type to either block or flag messages that contain these words. More information can be found here.

Advanced Chat Moderation

Copied!
Advanced Chat Moderation is currently in beta and accepting trial candidates. Please contact support to discuss your options.

An AI-based classification system to detect various types of bad content. The tool is powered by a machine learning model that provices a confidence interval (0-1) for a message, in each of three categories: Spam, Explicit and Toxic. The model is highly configurable for each channel type and removes the manual work of a human moderator. You can learn more here.