# Manage Unread Messages (/how-to/chat/manage-unread-messages)



Resytech tracks read status separately for operators and customers. This guide covers how unread tracking works and how to use it to stay on top of customer inquiries.

When to use this [#when-to-use-this]

* You want to quickly see which conversations have new customer messages.
* Multiple team members share the inbox and you need to know what still needs a response.
* You want to clear unread indicators after reviewing a thread.

How unread tracking works [#how-unread-tracking-works]

Operator side (dashboard) [#operator-side-dashboard]

Each chat thread has an `operatorReadAt` timestamp that records when a team member last viewed the thread. Any customer message (`senderType: 0`) sent after that timestamp is counted as unread.

* When you **open a thread**, it is automatically marked as read -- the `operatorReadAt` timestamp updates to the current time.
* When you **send a reply**, the thread is also marked as read.
* The **unread count** on each thread in the list shows how many customer messages arrived since the last read.

Customer side (booking portal) [#customer-side-booking-portal]

Each thread also has a `customerReadAt` timestamp. Any operator message (`senderType: 1`) sent after that timestamp is counted as unread for the customer.

* When the customer **opens the chat** on the booking portal, the thread is marked as read on their side.
* When the customer **sends a message**, the thread is marked as read on their side.

Global unread count [#global-unread-count]

The dashboard provides a global unread count that represents the number of **threads** (not messages) with at least one unread customer message across the current location. This count can be used to display a badge or notification indicator in the navigation.

Steps [#steps]

Identifying threads with unread messages [#identifying-threads-with-unread-messages]

1. Navigate to **Customer Portal** from the sidebar menu.
2. Look at the thread list on the left. Threads with unread customer messages show:
   * A **teal badge** next to the customer's name with the unread count (displays "9+" if more than 9).
   * The **last message preview** in a slightly bolder font weight.
3. The thread list is sorted by most recent message, so threads with new messages typically appear near the top.

Marking a thread as read [#marking-a-thread-as-read]

Opening a thread automatically marks it as read. There is no manual "mark as read" button -- simply:

1. Click the thread in the conversation list.
2. The messages load and the thread's unread count resets to zero.
3. The unread badge disappears from the thread list.

This also happens during polling: if new customer messages arrive in the thread you're currently viewing, they are automatically marked as read.

Sending a reply marks the thread as read [#sending-a-reply-marks-the-thread-as-read]

When you send a message to a thread, the `operatorReadAt` timestamp is updated to the current time. This means:

* Any customer messages that arrived before your reply are now considered read.
* The unread count for that thread drops to zero.

Understanding the unread count calculation [#understanding-the-unread-count-calculation]

The system calculates unread counts as follows:

| Scenario                                         | Unread count                                       |
| ------------------------------------------------ | -------------------------------------------------- |
| Thread has never been read by an operator        | All customer messages in the thread                |
| Thread was read, then customer sent new messages | Only customer messages sent after `operatorReadAt` |
| Operator just replied                            | Zero (reply updates `operatorReadAt`)              |
| Thread has only operator messages                | Zero (no customer messages to count)               |

Tips [#tips]

* **Check the Customer Portal page regularly.** The polling interval is 7.5 seconds, so new messages appear quickly, but only while the page is open.
* **Unread counts are per-location.** If you manage multiple locations, switch to each location to see its unread threads. The global unread count reflects only the currently selected location.
* **Any team member can mark a thread as read.** Read status is shared across your team -- when one person opens a thread, it shows as read for everyone. Coordinate with your team if multiple people monitor the inbox.

Related guides [#related-guides]

* [Respond to Customer Messages](/how-to/chat/respond-to-customer-messages) -- reply to the messages you find.
* [View Chat History](/how-to/chat/view-chat-history) -- review full conversation history.
* [Workflows & Automation](/how-to/workflows) -- set up automated alerts when new messages arrive.
