Skip to main content
message.read fires when a message your agent sent reaches Read.

Read the payload

This is a complete envelope as the staging agent received it. The data object is the MessageEvent schema from the API contract; the fields around it are the same on every event and are described in the event catalog. Route on event_type, deduplicate on event_id, and keep trace_id for support:
captured-output

Handle the event

Read is optional and advances only when the other side marks the chat read, so treat its absence as unknown rather than unread. read_at is set in this event and null in the earlier message.sent and message.delivered events for the same message. In a group chat the app does not show read labels.

Next steps