Moderation and analytics

Moderate interactions between users and view their chat activity

TalkJS gives you full visibility and control over user communications. Use moderation tools and the REST API to review chats, remove unwanted content, and gain insights into engagement across your platform.
<?php
use LcobucciJWTEncodingChainedFormatter;
use LcobucciJWTEncodingJoseEncoder;
use LcobucciJWTSignerKeyInMemory;
use LcobucciJWTSignerHmacSha256;
use LcobucciJWTTokenBuilder;
require 'vendor/autoload.php';

$tokenBuilder = new Builder(new JoseEncoder(), ChainedFormatter::default());
$algorithm = new Sha256();
$signingKey = InMemory::plainText("<SECRET_KEY>_GOES_HERE_REPLACING_THIS_TEXT");

$now = new DateTimeImmutable();
$token = $tokenBuilder
  ->withClaim('tokenType', 'app')
  ->issuedBy('<APP_ID>')
  ->expiresAt($now->modify('+30 seconds'))
  ->getToken($algorithm, $signingKey)
  ->toString();
echo $token;
Ava JohnsonLiam Patel
4
Design sprint discussion
Ava Johnson, Liam Patel, Maya Chen, Jonas Lee
Ava Johnson
Ava Johnson
morning everyone — how’s the new onboarding flow looking so far?
8m ago
Liam Patel
Liam Patel
pretty smooth! only a small issue with the tooltip alignment on mobile.
7m ago
Maya Chen
Maya Chen
I can take that one — will push a fix after stand-up.
6m ago
Jonas Lee
nice. once that’s done, we’re ready to test with beta users.
just now
Write a reply...
You
Hey, I’m having trouble accessing my account. It says my password is incorrect.
5m ago
SupportBot
No problem, let’s get that sorted. Have you tried resetting your password using the “Forgot password?” link?
4m ago
thinking
thumbs-up
You
This **** reset link is useless. My email is [email hidden].
3m ago
SupportBot
Please keep the conversation respectful. We automatically mask contact details for safety.
2m ago
SupportBot
I’ve sent a new reset link. Check your inbox and spam folder. If it doesn’t arrive in 5 minutes, I’ll verify your account manually.
1m ago
You
Sorry about that. I’ll check now.
just now
Got it — checking my inbox now!

Safeguard messages with chat moderation tools

TalkJS provides built-in tools to monitor chat activity and moderate user messages in real time. When you need more flexibility, the REST API lets you take full control of user actions and message data.
Monitor and moderate chat activity
See who’s chatting and review messages directly in the TalkJS Dashboard. Stay in control of every conversation so you can step in when needed and remove messages if required.
Mask contact information
Prevent users from sharing email addresses, phone numbers, or links. You can fine-tune your settings to allow specific exceptions where needed.
Analyze overall user activity
Use analytics to understand how people interact in chat over time. Track active users, total messages sent, and engagement trends to gain deeper insight into platform activity.
Create word blocklists
Block specific words or phrases to maintain a positive environment. Customize your blocklists to fit your community standards and keep messages appropriate.
Block inappropriate words
Filter offensive or unwanted language to keep conversations respectful and safe.
Monitor specific conversations
Track individual chats in real time to keep discussions on topic and within guidelines.
Analyze user data within timeframes
Review chat activity over specific periods to understand engagement patterns and growth.
Case study
FreeUp logo

FreeUp streamlines chat moderation and insights with TalkJS

Discover how FreeUp uses TalkJS to monitor and manage thousands of client and freelancer conversations. With analytics and moderation tools, their team can easily track interactions and gain a clear overview of activity across the platform.
Read the full case study

Using the REST API for moderation

With the REST API developers edit or delete messages, which can help to remove unwanted content.
Using webhooks, it's possible to receive updates when a user posts a message, which you could use to keep some internal moderation tool up to date, or to pass them to a 3rd party app for spam content detection.
curl --request PUT
  --url https://api.talkjs.com/v1/APP_ID/         
  conversations/CONVERSATION_ID/messages/MESSAGE_ID
  --header 'Authorization: Bearer YOUR_SECRET_KEY'
  --header 'Content-Type: application/json'
  --data '{
  "text": "(Message removed by moderator)"
}
Classtime logo
We chose TalkJS because it aligned well with our usage, as we have a large number of users but low usage per user.
Micha Riser
CTO, Classtime