AISARAISAR
All webhooks

Messages

Message read

message.read

Fires when a user marks a conversation as read. Carries the ID of the last message considered read and the timestamp of the read action.

HTTP request

AISAR sends a signed POST request to your webhook_url:

http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...

{
  "event": "message.read",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "subject_type": "conversation_read",
    "subject_id": 88,
    "conversation_id": 45,
    "thread_id": 67,
    "user_id": 3,
    "last_read_message_id": 123,
    "last_read_at": "2026-03-26T12:00:00.000000Z"
  }
}

The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.

Example payload

json
{
  "event": "message.read",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "subject_type": "conversation_read",
    "subject_id": 88,
    "conversation_id": 45,
    "thread_id": 67,
    "user_id": 3,
    "last_read_message_id": 123,
    "last_read_at": "2026-03-26T12:00:00.000000Z"
  }
}

Payload fields

FieldTypeDescription
subject_typestringAlways conversation_read
subject_idintegerConversation read record ID
conversation_idintegerConversation that was read
thread_idinteger|nullThread that was read
user_idintegerUser who marked the conversation as read
last_read_message_idinteger|nullLast message ID considered read
last_read_atstring|nullISO 8601 timestamp of the read action