Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.DS_Store


.kiro/settings/mcp.json
13 changes: 11 additions & 2 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2882,6 +2882,7 @@
"sdk/react-native/transfer-group-ownership"
]
},
"sdk/react-native/ai-moderation",
"sdk/react-native/ai-agents",
{
"group": "Resources",
Expand Down Expand Up @@ -3174,7 +3175,7 @@
"group": "Calling",
"pages": [
"sdk/ios/calling-overview",
"sdk/ios/calling-integration",
"sdk/ios/calling-setup",
"sdk/ios/default-calling",
"sdk/ios/direct-calling",
"sdk/ios/standalone-calling",
Expand Down Expand Up @@ -3522,7 +3523,7 @@
"group": "Calling",
"pages": [
"sdk/android/calling-overview",
"sdk/android/setup-calling",
"sdk/android/calling-setup",
"sdk/android/default-calling",
"sdk/android/direct-calling",
"sdk/android/standalone-calling",
Expand Down Expand Up @@ -5688,6 +5689,14 @@
{
"source": "/ai-chatbots/bots",
"destination": "/ai-chatbots/ai-bots/bots"
},
{
"source": "/sdk/android/setup-calling",
"destination": "/sdk/android/calling-setup"
},
{
"source": "/sdk/ios/calling-integration",
"destination": "/sdk/ios/calling-integration"
}
],
"integrations": {
Expand Down
Binary file added images/mobile-uikit-moderation-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/react-uikit-moderation-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
138 changes: 126 additions & 12 deletions moderation/blocked-messages.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,152 @@
title: "Blocked Messages"
---

## Overview
Blocked Messages provides a centralized view of all messages that have been automatically blocked by your moderation rules. Review blocked content to identify false positives, refine your rules, and optionally approve messages that were incorrectly blocked.

The Blocked Messages endpoint in the Moderation Service API provides app owners and collaborators with the capability to retrieve details about messages that have been blocked due to violations of message moderation rules. This endpoint plays a crucial role in enabling platform app owners and collaborators to review and manage content that has been deemed inappropriate, harmful, or non-compliant with platform guidelines.
<Note>
**Blocked messages are hidden immediately.** Unlike flagged messages which wait for review, blocked messages are never delivered to recipients. Use this dashboard to monitor what's being blocked and catch false positives.
</Note>

### List Blocked Messages
---

## Quick Start

Review blocked messages in under 2 minutes:

Retrieves the list of blocked messages, with the option to search messages within a specified date range.
<Steps>
<Step title="Open Blocked Messages">
Login to [CometChat Dashboard](https://app.cometchat.com) → Select your app → **Moderation** → **Blocked Messages**
</Step>
<Step title="Review Content">
Click on a blocked message to see the content, sender, rule that triggered the block, and timestamp
</Step>
<Step title="Take Action (Optional)">
Click **Approve** to unblock a false positive, or **Mark as Reviewed** to acknowledge without approving
</Step>
</Steps>

<Frame>
<img src="/images/237c0cfc-moderation_blocked_messages_overview-b788a493c85ffbec9816b147487ad2c3.png" />
</Frame>

You can also set this up from your end using the [List Moderation Blocked Message List REST API](/rest-api/moderation/list-moderation-blocked-messages).
---

## How It Works

```mermaid
flowchart LR
A[Message Sent] --> B{Rule Check}
B -->|Matches Rule| C[Message Blocked]
B -->|No Match| D[Message Delivered]
C --> E[Blocked Messages Dashboard]
E --> F{Moderator Review}
F --> G[Approve - Unblock]
F --> H[Mark as Reviewed]
F --> I[No Action]
```

| Status | Description |
|--------|-------------|
| **Blocked** | Message matched a rule and was not delivered |
| **Approved** | Moderator reviewed and unblocked the message |
| **Reviewed** | Moderator acknowledged but kept message blocked |

---

## Managing Blocked Messages

### List Blocked Messages

View all blocked messages with filtering options:
- **Date range**: Filter by when messages were blocked
- **Rule**: Filter by which rule triggered the block
- **Sender**: Search by sender UID

<Frame>
<img src="/images/237c0cfc-moderation_blocked_messages_overview-b788a493c85ffbec9816b147487ad2c3.png" />
</Frame>

### Approve Blocked Message

Allows the approval of messages previously blocked due to moderation violations.
Approving a blocked message automatically marks it as **reviewed**, showing that it has been checked and is okay.
Approving a blocked message:
1. Unblocks the message (makes it visible to recipients)
2. Marks it as reviewed
3. Helps identify false positives in your rules

<Frame>
<img src="/images/1600d6b8-moderation_approve_blocked_message-b788a493c85ffbec9816b147487ad2c3.png" />
</Frame>

You can also set this up from your end using the [Approve Blocked Message REST API](/rest-api/moderation/approve-blocked-messages).

<Warning>
Approving a message will deliver it to the recipient. Only approve if you're certain the message doesn't violate your guidelines.
</Warning>

### Review Blocked Message
### Mark as Reviewed

Allows to manually mark a blocked message as reviewed without approving it.
Mark a message as reviewed without approving it:
- Message stays blocked
- Indicates a moderator has seen it
- Useful for tracking review progress

<Frame>
<img src="/images/1600d6b8-moderation_mark_reviewed_blocked_message-b788a493c85ffbec9816b147487ad2c4.png" />
</Frame>

You can also set this up from your end using the [Mark Blocked Message as Reviewed REST API](/rest-api/moderation/review-blocked-message).
---

## Best Practices

<CardGroup cols={2}>
<Card title="Review Regularly" icon="calendar-check">
Check blocked messages weekly to catch false positives and refine rules.
</Card>
<Card title="Track Patterns" icon="chart-line">
Look for patterns in blocked content to identify if rules need adjustment.
</Card>
<Card title="Use Date Filters" icon="filter">
Filter by date range to focus on recent blocks or investigate specific incidents.
</Card>
<Card title="Refine Rules" icon="sliders">
If you see many false positives, adjust confidence levels in [Rules Management](/moderation/rules-management).
</Card>
</CardGroup>

---

## FAQ

<AccordionGroup>
<Accordion title="Can blocked messages be delivered after approval?">
Yes. When you approve a blocked message, it becomes visible to the recipient. However, depending on how much time has passed, the message may appear out of context in the conversation.
</Accordion>
<Accordion title="What's the difference between blocked and flagged messages?">
Blocked messages are immediately hidden and never delivered. Flagged messages are delivered but marked for moderator review. Use "Block" for clear violations and "Flag" for borderline content.
</Accordion>
<Accordion title="How do I reduce false positives?">
1. Increase confidence thresholds in your rules
2. Add exceptions to your keyword lists
3. Use more specific patterns instead of broad keywords
</Accordion>
<Accordion title="Can I bulk approve messages?">
Yes, select multiple messages and use the bulk approve action.
</Accordion>
</AccordionGroup>

---

## Related Resources

<CardGroup cols={2}>
<Card title="Rules Management" icon="shield-check" href="/moderation/rules-management">
Configure rules that block messages
</Card>
<Card title="Flagged Messages" icon="flag" href="/moderation/flagged-messages">
Review messages pending moderation
</Card>
<Card title="Lists Management" icon="list" href="/moderation/lists-management">
Manage keyword lists used by rules
</Card>
<Card title="Moderation Overview" icon="eye" href="/moderation/overview">
Learn about the moderation system
</Card>
</CardGroup>
119 changes: 91 additions & 28 deletions moderation/constraints-and-limits.mdx
Original file line number Diff line number Diff line change
@@ -1,42 +1,105 @@
---
title: "Constraints And Limits"
title: "Constraints and Limits"
---

This page outlines the system constraints and limitations for CometChat's Moderation Service. Understanding these limits helps you design your moderation strategy effectively.

<Note>
**Need higher limits?** Contact [CometChat Support](https://www.cometchat.com/contact) to discuss enterprise options for increased limits.
</Note>

---

## Constraints

### Rule Management
<Tabs>
<Tab title="Rules">
| Parameter | Limit |
|-----------|-------|
| **Rule ID** | Max 100 characters, no spaces or special characters |
| **Name** | Max 100 characters |
| **Description** | Max 255 characters |
| **Filters per rule** | Max 10 filters |
| **Conditions per rule** | Max 10 conditions |
| **Rules per app** | Max 25 custom rules (excludes default rules) |
</Tab>
<Tab title="Lists">
| Parameter | Limit |
|-----------|-------|
| **List ID** | Max 100 characters, no spaces or special characters |
| **Name** | Max 100 characters |
| **Description** | Max 255 characters |
| **CSV file size** | Max 1 MB |
| **Lists per app** | Max 25 custom lists (excludes default lists) |
</Tab>
<Tab title="Advanced Settings">
| Parameter | Limit |
|-----------|-------|
| **AI Context** | Max 50 messages sent to OpenAI/Custom API for analysis |
| **Custom Flag Reasons** | Max 5 per app |
</Tab>
</Tabs>

---

## Supported Formats

| Media Type | Supported Formats |
|------------|-------------------|
| **Images** | JPEG, PNG |
| **Videos** | MP4, MOV, AVI |

<Warning>
Other image and video formats are not currently supported for AI moderation.
</Warning>

Here are the constraints for managing rules within the system:
---

| Parameter | Constraint |
| ------------------- | ------------------------------------------------------------------------- |
| **Rule ID** | No spaces or special characters allowed, Maximum length of 100 characters |
| **Name** | Maximum length of 100 characters |
| **Description** | Maximum length of 255 characters |
| **Rule Filters** | Each rule can have a maximum of 10 filters |
| **Rule Conditions** | Each rule can have a maximum of 10 conditions |
| **Rules per app** | An app can have up to 25 rules (exluding default rules) |
## Known Limitations

### Lists Management
<AccordionGroup>
<Accordion title="SDK Version Requirement">
Moderation features require SDK version **3.0 or higher**. Ensure your app is updated before enabling moderation.
</Accordion>
<Accordion title="Message Delivery Status Behavior">
If a message is marked as delivered/read and previous messages include pending or disapproved ones, those will also be automatically marked as delivered/read—even though they weren't actually delivered to the receiver.
</Accordion>
</AccordionGroup>

Here are the constraints for managing lists within the system:
---

| Parameter | Constraint |
| ----------------- | ------------------------------------------------------------------------- |
| **ID** | No spaces or special characters allowed, Maximum length of 100 characters |
| **Name** | Maximum length of 100 characters |
| **Description** | Maximum length of 255 characters |
| **CSV File** | Accepted file size: up to 1 MB |
| **Lists per app** | An app can have up to 25 lists (excluding the default lists) |
## Quick Reference

### Advanced Settings
<CardGroup cols={2}>
<Card title="25 Rules" icon="shield-check">
Maximum custom rules per app
</Card>
<Card title="25 Lists" icon="list">
Maximum custom lists per app
</Card>
<Card title="10 Filters" icon="filter">
Maximum filters per rule
</Card>
<Card title="10 Conditions" icon="code-branch">
Maximum conditions per rule
</Card>
</CardGroup>

* **AI Context Limit**: Up to 50 messages can be sent to OpenAI/Custom API for contextual analysis.
* **Flag Reasons Limit**: A maximum of 5 custom flag reasons can be configured per app.
---

## Limitations
## Related Resources

* Make sure the SDK version you are using is 3.0 or higher.
* AI Image moderation currently supports & moderates JPEG and PNG image formats.
* AI video moderation currently supports & moderates MP4, MOV, and AVI formats.
* If a message is marked as delivered/read and previous messages include pending/disapproved ones, those will also be automatically marked as delivered/read, even though they haven't actually been delivered to the receiver.
<CardGroup cols={2}>
<Card title="Rules Management" icon="shield-check" href="/moderation/rules-management">
Configure moderation rules
</Card>
<Card title="Lists Management" icon="list" href="/moderation/lists-management">
Manage keyword lists
</Card>
<Card title="Moderation Overview" icon="eye" href="/moderation/overview">
Learn about the moderation system
</Card>
<Card title="Contact Support" icon="headset" href="https://www.cometchat.com/contact">
Request higher limits
</Card>
</CardGroup>
Loading
Loading