AISARAISAR
Все вебхуки

Сообщения

Реакция на сообщение

message.reaction.updated

Отправляется, когда к сообщению добавляют или с него снимают реакцию. Содержит эмодзи, действие (added/removed) и того, кто отреагировал. В WhatsApp у каждого отправителя может быть только одна реакция на сообщение — новая заменяет предыдущую; при снятии реакции emoji равен null.

HTTP-запрос

AISAR отправляет подписанный POST-запрос на ваш webhook_url:

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

{
  "event": "message.reaction.updated",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "message_id": 123,
    "conversation_id": 45,
    "channel_id": 2,
    "reaction": {
      "emoji": "👍",
      "action": "added",
      "actor": {
        "type": "contact",
        "contact_id": 10,
        "user_id": null,
        "name": "John Doe"
      }
    }
  }
}

Заголовок X-AISAR-Signature содержит HMAC-SHA256 подпись тела запроса — используйте её, чтобы убедиться, что запрос пришёл от AISAR.

Пример payload

json
{
  "event": "message.reaction.updated",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "message_id": 123,
    "conversation_id": 45,
    "channel_id": 2,
    "reaction": {
      "emoji": "👍",
      "action": "added",
      "actor": {
        "type": "contact",
        "contact_id": 10,
        "user_id": null,
        "name": "John Doe"
      }
    }
  }
}

Поля payload

ПолеТипОписание
message_idintegerID сообщения, на которое поставили или с которого сняли реакцию
conversation_idintegerID диалога
channel_idintegerID канала
reaction.emojistring|nullЭмодзи реакции. null, если action = removed
reaction.actionstringadded или removed
reaction.actorobjectКто добавил или снял реакцию
reaction.actor.typestringuser или contact
reaction.actor.contact_idinteger|nullID контакта (если реакцию поставил контакт)
reaction.actor.user_idinteger|nullID пользователя (если реакцию поставил оператор)
reaction.actor.namestringОтображаемое имя актора