При добавлении сообщения в чат открытой линии OnOpenLineMessageAdd

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

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

Scope: imopenlines

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

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

  • клиент написал сообщение через коннектор или онлайн-чат
  • Битрикс24 передал коннектору сообщение оператора или системное сообщение, в том числе отправленное методом imopenlines.crm.message.add

Для сообщений оператора в онлайн-чате событие не отправляется.

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

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

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

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

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

Сообщение клиента. В data приходит только ключ DATA:

{
    "event": "ONOPENLINEMESSAGEADD",
    "event_handler_id": 145,
    "data": {
        "DATA": {
            "connector": {
                "connector_id": "livechat",
                "line_id": 1,
                "chat_id": 10585,
                "user_id": 1985
            },
            "chat": {
                "id": 10585
            },
            "message": {
                "id": 80964,
                "date": "",
                "text": "Здравствуйте, нужна консультация",
                "files": [],
                "attach": "",
                "system": "N",
                "user_id": 1985
            },
            "ref": [],
            "extra": {
                "EXTRA_URL": ""
            }
        }
    },
    "ts": 1714649632,
    "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": "ONOPENLINEMESSAGEADD",
    "event_handler_id": 145,
    "data": {
        "CONNECTOR": "my_connector",
        "LINE": 1,
        "DATA": {
            "connector": {
                "connector_id": "my_connector",
                "line_id": 1,
                "user_id": 1985,
                "chat_id": "ext-chat-42"
            },
            "message": {
                "id": 80970,
                "chat_id": 10587,
                "user_id": 1,
                "text": "Добрый день! Чем могу помочь?",
                "files": [],
                "attachments": [],
                "params": [],
                "system": "N"
            },
            "no_session": "N"
        }
    },
    "ts": 1714649640,
    "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

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

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

event_handler_id*
integer

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

data*
object

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

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

ts*
timestamp

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

auth*
object

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

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

Параметр data

Параметр
тип

Описание

CONNECTOR
string

Код коннектора, которому Битрикс24 передал сообщение. Приходит только для сообщения оператора или системы

LINE
integer

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

DATA*
object

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

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

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

Параметр
тип

Описание

connector*
object

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

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

chat*
object

Объект с информацией о чате, который передал коннектор.

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

message*
object

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

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

ref*
array

Массив с кодом трекера trackId для привязки сообщения к объекту CRM. Если коннектор его не передал, приходит пустой массив

extra*
object

Объект с дополнительной информацией.

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

Параметр connector

Параметр
тип

Описание

connector_id*
string

Код коннектора. Для онлайн-чата — livechat

line_id*
integer

Идентификатор открытой линии

chat_id*
string

Идентификатор чата, который передал коннектор. Для внешнего канала связи это идентификатор чата во внешней системе, для онлайн-чата — идентификатор чата онлайн-чата в Битрикс24

user_id*
integer

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

Параметр chat

Объект chat содержит поля чата в том виде, в котором их передал коннектор, например методом imconnector.send.messages.

Параметр
тип

Описание

id*
string

Идентификатор чата. Совпадает с connector.chat_id

Параметр message

Объект message содержит поля сообщения в том виде, в котором их передал коннектор. Для онлайн-чата набор полей показан в примере.

Параметр
тип

Описание

id*
string

Идентификатор сообщения. Для внешнего канала связи это идентификатор сообщения во внешней системе

date
string

Дата и время сообщения. Для онлайн-чата приходит пустая строка

text
string

Текст сообщения

files
array

Файлы сообщения

attach
string

Вложение сообщения. Приходит для онлайн-чата

system
string

Отметка, что сообщение системное: Y — да, N — нет. Приходит для онлайн-чата

user_id*
integer

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

Параметр extra

Параметр
тип

Описание

EXTRA_URL
string

Адрес сайта из профиля клиента. Приходит для онлайн-чата

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

Параметр
тип

Описание

connector*
object

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

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

message*
object

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

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

no_session*
string

Отметка, что сообщение отправлено без привязки к сессии: Y — да, N — нет

Параметр connector

Параметр
тип

Описание

connector_id*
string

Код коннектора

line_id*
integer

Идентификатор открытой линии

user_id*
integer

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

chat_id*
string

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

Параметр message

Параметр
тип

Описание

id*
integer

Идентификатор сообщения в Битрикс24. Передайте его в метод imconnector.send.status.delivery, чтобы подтвердить доставку

chat_id*
integer

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

user_id*
integer

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

text*
string

Текст сообщения

files*
array

Файлы сообщения

attachments*
array

Вложения сообщения

params*
array

Дополнительные параметры сообщения

system*
string

Отметка, что сообщение системное: Y — да, N — нет

Параметр 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 в коде.

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

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