Read Receipts

Prev Next

Read receipts allow users to confirm that their message was viewed. To enable this feature in your workspace, go to Manage Screenshot 2025-12-23 130522.png > Workspace > Settings > Message. On the Message settings page, go to the Read receipts tab and update the following settings:

Field

Description

Show Read Receipts

  • Enable this option to display read receipts for messages.

  • Delivered messages are indicated by a grey checkmark on the right. Once the message is read by all participants, the checkmark turns into a blue double checkmark.

Detailed Read Receipts

Performance warning

Enabling this setting may significantly impact system performance. This feature is not recommended for production environments and should only be used for testing or troubleshooting.

  • Enable this option to show each user's read receipts.

  • When this option is enabled, users can click the kebab menu (⋮) next to any message and select Read receipts. A pop-up window displays the list of users who have read the message, along with the corresponding date and time.

The following screenshot shows an example:

Enable Read Receipts Archive

By default, all read receipts remain in hot storage, consuming database capacity. Enabling the read receipts archive setting automatically moves older read receipts to cold storage after a specified retention period.

Cold storage refers to a data collection with less access within the same database. With this archival feature, the load on the principal database collection is reduced. The Rocket.Chat server fetches information from cold storage when it cannot find the relevant data for messages.

Keep this in mind before you use the setting: Enabling this setting on a workspace with large volumes of read receipts may cause the system to process migration to cold storage for an extended period. This may impact production performance. Clean up or manually migrate old read receipt data before enabling this setting. For details, refer to the following section on Read receipts management for archival.

Archive Retention Days

Enter the number of days to keep read receipts in hot storage before archiving to cold storage. For example, 30.

Archive Cron Schedule

Enter a cron expression to schedule when archiving runs. The default 0 2 * * * runs daily at 2:00 AM.

Archive Batch Size

Enter the number of read receipts to process per batch. For example, 10000. Lower values reduce server load but take longer to complete.

Once these settings are saved, the read receipts are immediately available in rooms.


Read receipts management for archival

Once the read receipts archival setting is enabled, all the receipts up to that time are migrated to a new collection (cold storage). This process can take a lot of time for large volumes of read receipts data. So, before enabling this setting, you can either delete the existing data or move the records in the database.

Option 1: Delete all existing read receipts (clean up) if you don't need historical read receipts and want a fresh start. Use the following command:

db.rocketchat_read_receipts.deleteMany({})

Then enable the read receipts archive setting in the workspace.

Option 2: Migrate existing read receipts to cold storage manually if you want to preserve the historical data in the archive collection before enabling the setting. Follow these steps:

  1. Copy all receipts to the archive collection using the following command:

db.rocketchat_read_receipts.aggregate([{ $merge: { into: "rocketchat_read_receipts_archive", whenMatched: "keepExisting" } }])
  1. Flag all messages so the system reads from the archive:

db.rocketchat_message.updateMany({}, { $set: { receiptsArchived: true } })
  1. Remove receipts from the hot collection:

db.rocketchat_read_receipts.deleteMany({})

Now, enable the read receipts archive setting in the workspace.

For large datasets, consider running these commands during a maintenance window.