We're excited to introduce the Mark Conversation Messages as Unread capability across CometChat UI Kits, SDKs, and APIs. This update gives you complete flexibility to manage message read states, whether through backend control, programmatic client-side actions, or user-facing UI components.
You can now mark messages as unread at every level of your application: reset unread status directly from your server using the REST API, programmatically trigger unread states from your client application using SDKs, or enable users to manually mark conversations as unread through our pre-built UI components. This makes it easier to support advanced workflows where messages need to resurface for user attention after they have already been read.
Why does this matter to me, as a developer?
Unread counts are more than just UI indicators. They often drive notifications, task prioritization, and user engagement. In many real-world applications, read states need to change based on business logic, user actions, or workflow requirements rather than just automatic read receipts.
With the Mark as Unread feature available across APIs, SDKs, and UI Kits, you can:
Re-surface important messages when a user needs to take action later.
Build reminder-based or follow-up workflows where messages intentionally return to an unread state.
Maintain consistent unread counts across devices and platforms using server-side logic.
Empower users to manually organize their conversations by marking messages they want to revisit.
Create custom UI experiences with programmatic control over unread states.
This gives you greater flexibility to design communication experiences that align with how your application actually works, whether you need backend automation, client-side logic, or user-driven controls.
Key features and capabilities
Backend control via REST API
Mark messages as unread using a REST API call without requiring any client-side interaction. This is especially useful for backend-driven workflows and automation where unread states need to be triggered by business logic, scheduled jobs, or external systems.
Client-side SDK integration
Programmatically mark messages as unread directly from your client applications using our SDKs for JavaScript, React Native, Android, Flutter, and iOS. This enables you to build custom workflows and UI experiences that trigger unread states based on user actions or application events.
Pre-built UI components
Our UI Kits for React, React Native, Android, Flutter, and iOS include ready-to-use Mark as Unread functionality with minimal configuration. Users can manually mark conversations as unread through intuitive message actions, and the UI automatically updates unread counts and conversation states in real-time.
Message-level precision
Specify a message to define exactly where the unread state should begin. Messages after the given ID are marked as unread, giving you fine-grained control over conversation state across all implementation methods.
User-specific execution
Whether triggered via API, SDK, or UI Kit, the unread state operates on behalf of a specific user, ensuring unread counts are applied correctly and securely for the intended recipient.
Conversation-aware updates
Unread counts updated through any method (API, SDK, or UI Kit) are reflected consistently across conversation lists and unread indicators, keeping your UI in sync across all platforms and devices.
Interesting tech details
This feature builds on CometChat's message state management system, which separates delivery, read, and unread states at the server level.
By exposing unread control across three integration layers (API, SDK, and UI Kit), CometChat enables:
Server-initiated state changes without requiring an active user session.
Client-side programmatic control for custom workflow implementation.
User-driven actions through pre-built, production-ready UI components.
Seamless coordination between backend systems, client SDKs, and UI components.
Consistent message state handling across platforms, even in multi-device scenarios.
This approach ensures read and unread states remain reliable, predictable, and scalable as your application grows, regardless of how you choose to implement the feature.
Reference links
Mark Conversation Messages as Unread – API Documentation
Mark as Unread on CometChat SDKs
Mark as Unread on CometChat UI Kits
Nivedita Bharathy
Product Marketing Specialist , CometChat
