В RetailCRM есть возможность управлять реакциями на сообщения в чатах RetailCRM. Реакции представлены в виде эмодзи, которые могут быть добавлены, обновлены или удалены как пользователями системы, так и клиентами (со стороны модулей транспортов). Для транспортных модулей поддержка реакций реализована в виде REST методов в Transport API, а события о реакциях передаются через webhook вызовы.
В настоящий момент доступны следующие операции:
- Добавление реакций – возможность отметить сообщение выбранным эмодзи.
- Удаление реакций – удаление ранее установленной реакции.
- Настройка разрешенных реакций – управление списком допустимых эмодзи.
- Webhook-уведомления – получение событий о добавлении, замене или удалении реакций.
API Методы
Добавление реакции
POST /messages/reaction
Описание
Позволяет добавить реакцию к сообщению в чате.
Тело запроса
{
"message": {
"external_id": "7151734053_563"
},
"channel": 71,
"reaction": "🎄"
}
Параметры
message.external_id
(строка, обязательное) – внешний идентификатор сообщения.channel
(число, обязательное) – идентификатор канала.reaction
(строка, обязательное) – эмодзи, добавляемый в качестве реакции.
Удаление реакции
DELETE /messages/reaction
Описание
Позволяет удалить ранее установленную реакцию. Данный метод применяется только для добавления реакций клиентов со стороны транспортных модулей.
Тело запроса
{
"message": {
"external_id": "7151734053_563"
},
"channel": 71,
"reaction": "🎄"
}
Параметры
message.external_id
(строка, обязательное) – внешний идентификатор сообщения.channel
(число, обязательное) – идентификатор канала.reaction
(строка, опциональное) – если передано, будет проверено соответствие удаляемой реакции. Если не передано, удаляется первая найденная реакция клиента.
Настройка канала для поддержки реакций в чатах
Для поддержки реакций в канале необходимо указать соответствующие опции в объекте настроек. Обновление настроек канала производится путем вызова метода PUT /channels/{channel_id}
.
Для каждого из типов сообщений text
, product
, order
, image
, file
необходимо указать тип поддержки реакций. Значение both
в данной настройке означает, что транспортом поддерживается как добавление, так и получение реакций в данном канале. Значения receive
и send
означают поддержку только отправки или получения реакций.
Ниже приведен пример конфигурации настроек канала для поддержки им реакций (другие поля настроек в примере опущены для краткости).
{
"settings": {
"text": {
"reaction": "both"
},
"product": {
"reaction": "both"
},
"order": {
"reaction": "both"
},
"image": {
"reaction": "both"
},
"file": {
"reaction": "both"
},
"reactions": {
"dictionary": ["👍", "👎", "❤", "🔥", "🎄"],
"max_count": 1
}
}
}
Параметры
reactions.dictionary
(массив) – список эмодзи, доступных для добавления пользователем системы. Эмодзи должны соответствовать стандарту Unicode.reactions.max_count
(число) – максимальное количество реакций на одно сообщение со стороны системы. Данная настройка не влияет на количество реакций, добавляемых со стороны транспортных модулей.
Webhook вызовы
Описание полей webhook вызовов
new_reaction
– новое эмодзи-реакция, добавленная пользователем. Поле доступно только при добавлении и замене реакции.old_reaction
– предыдущее эмодзи-реакция, которую заменили или удалили. Поле доступно только при удалении и замене реакции.all_reactions
– массив всех актуальных на данный момент реакций со стороны менеджера системы.
Добавление реакции
{
"type": "reaction_add",
"meta": {
"timestamp": 1739958066
},
"data": {
"external_user_id": "99883965",
"external_chat_id": "99883965",
"channel_id": 71,
"external_message_id": "7151734053_560",
"new_reaction": "🎄",
"all_reactions": [{ "reaction": "🎄" }]
}
}
Замена реакции
{
"type": "reaction_add",
"meta": {
"timestamp": 1739958180
},
"data": {
"external_user_id": "99883965",
"external_chat_id": "99883965",
"channel_id": 71,
"external_message_id": "7151734053_560",
"new_reaction": "👀",
"old_reaction": "🎄",
"all_reactions": [{ "reaction": "👀" }]
}
}
Удаление реакции
{
"type": "reaction_delete",
"meta": {
"timestamp": 1739958235
},
"data": {
"external_user_id": "99883965",
"external_chat_id": "99883965",
"channel_id": 71,
"external_message_id": "7151734053_560",
"old_reaction": "👀",
"all_reactions": []
}
}