Appearance
Message Moderation
Message Moderation checks direct messages in Voxel's Messages (VX) inbox in real time, before the message is created. A flagged message can notify an administrator, be blocked from sending, or both.
Not the same as Messages Admin
This function screens messages as they're sent. Messages Admin is the admin screen for browsing and moderating messages after the fact. They're independent and can be used together.
Setup
- Go to Voxel Toolkit → Functions
- Find Message Moderation and toggle it on
- Open its settings and configure the checks below
The two checks
A message is flagged if either check matches. They work independently — use one or both.
Keyword list
A line-by-line list of words or phrases. Matching is case-insensitive and looks anywhere in the message.
Useful for phone numbers, competitor names, or specific phrases you know are used to move a conversation off-platform.
AI check
A plain-language description of what to flag, sent to the provider configured in AI Settings. For example:
Flag messages that attempt to arrange payment or contact outside the platform, contain harassment, or look like a scam.
The AI check understands intent and paraphrasing, so it catches attempts a keyword list can't anticipate. It costs an API call per message, so on a busy site consider using the keyword list as the first line and the AI check for tone or intent.
Configure AI Settings first
The AI check stays inert until an AI provider is configured. See AI Settings.
What happens when a message is flagged
| Action | Effect |
|---|---|
| Notify admin | Fires an App Event; the message still sends |
| Block message | The message is never created and the sender sees a notice |
| Both | The message is blocked and an admin is notified |
The message shown to a blocked sender is configurable, and deliberately generic — it never reveals which keyword or rule matched, so senders can't probe the list by trial and error.
The admin notification
The notification is a real Voxel App Event: "Voxel Toolkit: Message flagged by moderation", under Voxel → App Events. Recipient, in-app notification and email subject and body are all editable there.
Dynamic tags available in the notification:
| Tag | Returns |
|---|---|
| Sender | Who sent the message |
| Receiver | Who it was addressed to |
| Reason | What matched |
| Detection source | Whether the keyword list or the AI check flagged it |
| Content | The message text |
Notes
- Screening runs before the message is stored, so a blocked message leaves no record in the conversation.
- Both checks run on the message body. Attachments are not inspected.
- With no keywords entered and no AI prompt set, nothing is flagged and the function is inert.

