При изменении сообщения в чате открытой линии OnOpenLineMessageUpdate

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: imopenlines

Кто может подписаться: любой пользователь

Событие OnOpenLineMessageUpdate сработает при изменении сообщения в чате открытой линии:

  • клиент изменил сообщение через коннектор, например коннектор вызвал метод imconnector.update.messages
  • оператор изменил сообщение, которое Битрикс24 уже передал во внешний канал связи

Для сообщения оператора событие придет, только если коннектор подтвердил его доставку методом imconnector.send.status.delivery. Без подтверждения Битрикс24 не знает идентификатор сообщения во внешней системе и событие не отправляет. Для онлайн-чата событие об изменении сообщения оператора не отправляется.

Подписаться на событие можно только через приложение. Событие приходит по всем каналам связи открытых линий, а не только по коннектору приложения. Проверяйте код коннектора в CONNECTOR или DATA.connector.connector_id.

События не будут отправляться в приложение, пока установка не завершена. Проверьте установку приложения

Что получает обработчик

Данные передаются в виде POST-запроса

Состав data зависит от того, кто изменил сообщение.

Сообщение клиента. В data приходит только ключ DATA. Его состав такой же, как у сообщения клиента в событии OnOpenLineMessageAdd:

{
    "event": "ONOPENLINEMESSAGEUPDATE",
    "event_handler_id": 146,
    "data": {
        "DATA": {
            "connector": {
                "connector_id": "my_connector",
                "line_id": 1,
                "chat_id": "ext-chat-42",
                "user_id": 1985
            },
            "chat": {
                "id": "ext-chat-42"
            },
            "message": {
                "id": "ext-msg-501",
                "text": "Исправленный текст сообщения",
                "user_id": 1985
            },
            "ref": [],
            "extra": []
        }
    },
    "ts": 1714649702,
    "auth": {
        "access_token": "s6p6eclrvim6da22ft9ch94ekreb52lv",
        "expires_in": 3600,
        "scope": "imopenlines",
        "domain": "some-domain.bitrix24.com",
        "server_endpoint": "https://oauth.bitrix24.tech/rest/",
        "status": "F",
        "client_endpoint": "https://some-domain.bitrix24.com/rest/",
        "member_id": "a223c6b3710f85df22e9377d6c4f7553",
        "refresh_token": "4s386p3q0tr8dy89xvmt96234v3dljg8",
        "application_token": "51856fefc120afa4b628cc82d3935cce"
    }
}

Сообщение оператора. Кроме DATA, в data приходят ключи CONNECTOR и LINE:

{
    "event": "ONOPENLINEMESSAGEUPDATE",
    "event_handler_id": 146,
    "data": {
        "CONNECTOR": "my_connector",
        "LINE": 1,
        "DATA": {
            "im": {
                "chat_id": 10587,
                "message_id": 80970
            },
            "message": {
                "id": [
                    "ext-msg-777"
                ],
                "text": "Добрый день! Уточните, пожалуйста, номер заказа"
            },
            "chat": {
                "id": "ext-chat-42"
            }
        }
    },
    "ts": 1714649710,
    "auth": {
        "access_token": "s6p6eclrvim6da22ft9ch94ekreb52lv",
        "expires_in": 3600,
        "scope": "imopenlines",
        "domain": "some-domain.bitrix24.com",
        "server_endpoint": "https://oauth.bitrix24.tech/rest/",
        "status": "F",
        "client_endpoint": "https://some-domain.bitrix24.com/rest/",
        "member_id": "a223c6b3710f85df22e9377d6c4f7553",
        "refresh_token": "4s386p3q0tr8dy89xvmt96234v3dljg8",
        "application_token": "51856fefc120afa4b628cc82d3935cce"
    }
}

Обязательные параметры отмечены *

Параметр
тип

Описание

event*
string

Символьный код события.

В данном случае — ONOPENLINEMESSAGEUPDATE

event_handler_id*
integer

Идентификатор обработчика события

data*
object

Объект с данными измененного сообщения.

Структура описана ниже

ts*
timestamp

Дата и время отправки события из очереди событий

auth*
object

Объект, содержащий параметры авторизации и данные о Битрикс24, на котором произошло событие.

Структура описана ниже

Параметр data

Параметр
тип

Описание

CONNECTOR
string

Код коннектора. Приходит только для сообщения оператора

LINE
integer

Идентификатор открытой линии. Приходит только для сообщения оператора

DATA*
object

Объект с данными сообщения.

Для сообщения клиента структура описана в событии OnOpenLineMessageAdd, для сообщения оператора — ниже

DATA для сообщения оператора

Параметр
тип

Описание

im*
object

Объект с информацией о сообщении в Битрикс24.

Структура описана ниже

message*
object

Объект с новым текстом и идентификаторами сообщения во внешней системе.

Структура описана ниже

chat*
object

Объект с информацией о чате во внешней системе.

Структура описана ниже

Параметр im

Параметр
тип

Описание

chat_id*
integer

Идентификатор чата открытой линии в Битрикс24

message_id*
integer

Идентификатор сообщения в Битрикс24

Параметр message

Параметр
тип

Описание

id*
array

Массив идентификаторов сообщения во внешней системе. Это идентификаторы, которые коннектор передал при подтверждении доставки

text*
string

Новый текст сообщения. Если в открытой линии включена подпись оператора, текст начинается с имени оператора

Параметр chat

Параметр
тип

Описание

id*
string

Идентификатор чата во внешней системе

Параметр auth

Обязательные параметры отмечены *

Название
тип

Описание

access_token
string

Токен авторизации OAuth 2.0

expires_in
integer

Время в секундах до истечения срока действия токена

scope*
string

Скоуп, в рамках которого произошло событие

domain*
string

Адрес Битрикс24, на котором произошло событие

server_endpoint*
string

Адрес сервера авторизации Битрикс24, необходимый для обновления токенов OAuth 2.0

status*
string

Статус приложения, подписавшегося на это событие:

client_endpoint*
string

Общий путь для вызовов методов REST API для Битрикс24, на котором произошло событие

member_id*
string

Идентификатор Битрикс24, на котором произошло событие

refresh_token
string

Токен продления авторизации OAuth 2.0

application_token*
string

Токен для безопасной обработки событий

Токены авторизации не всегда передаются в обработчик события. Если хит, инициировавший событие, не удалось привязать к конкретному пользователю Битрикс24, токены не передаются. Обязательно проверяйте содержимое ключа auth в коде.

Рекомендуем хранить токены, полученные ранее при установке приложения. Используйте их при работе с интерфейсом приложения в виде встроек, виджетов и так далее.

Продолжите изучение