Quick Reference for AI Agents & Developers
Delete a Message
UsedeleteMessage() with the message ID to remove a message:
- JavaScript
- TypeScript
- Async/Await
deletedAt and deletedBy fields to identify deleted messages.
Delete Permissions
| User Role | Conversation Type | Can Delete |
|---|---|---|
| Message Sender | One-on-One | Own messages |
| Message Sender | Group | Own messages |
| Group Admin | Group | All messages |
| Group Moderator | Group | All messages |
Real-Time Delete Events
Listen for message deletions while your app is running:Deleted Message Properties
| Property | Method | Description |
|---|---|---|
| Deleted At | getDeletedAt() | Timestamp when deleted |
| Deleted By | getDeletedBy() | UID of user who deleted |
Missed Delete Events
When fetching message history, deleted messages includedeletedAt and deletedBy fields:
- JavaScript
- Async/Await
Action message is created when a message is deleted:
| Field | Value |
|---|---|
action | "deleted" |
actionOn | Deleted message object |
actionBy | User who deleted |
actionFor | Receiver (User/Group) |
Hide Deleted Messages
To exclude deleted messages from history, use the filter:- JavaScript
- Async/Await
Example: Delete Message UI
- JavaScript
- Async/Await
Soft Delete vs Hard Delete
CometChat uses soft delete by default:- Message remains in the database
deletedAtanddeletedByfields are set- Message can still be retrieved in history (unless filtered)
- Show “This message was deleted” placeholders
- Maintain conversation context
- Comply with data retention requirements