Реакция на нажатие
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
ActionDto — реакция на нажатие по элементу записи таймлайна. Действие бывает трех видов, и каждый описывается своим набором полей:
|
Значение |
Что происходит по нажатию |
Когда использовать |
|
Открывается ссылка: слайдер объекта Битрикс24, страница или внешний сайт |
Нужно увести пользователя к сделке, лиду или внешнему сервису |
|
|
Приложению приходит событие |
Нажатие должно выполнить логику на стороне приложения |
|
|
Открывается слайдер приложения, задавшего действие |
Нужен собственный интерфейс приложения поверх таймлайна |
Действие задают в таких полях:
titleActionзаголовка — необязательноеactionтега — необязательноеactionлоготипа в контентной области — необязательноеactionблокаlinkв контентных блоках — обязательноеactionкнопки нижней части — обязательноеactionпункта меню — обязательное
Поле type обязательное. Значение вне списка метод отклонит с ошибкой ENUM_FIELD, а поле, которого нет ни в одном из трех наборов, — с ошибкой FIELD_IS_REDUNDANT. Поля чужого типа действия Битрикс24 не отклоняет, но и не использует.
Переход по ссылке redirect
Относительная ссылка на стандартный объект Битрикс24, который поддерживает слайдер, открывает слайдер. Остальные относительные ссылки открываются обычным переходом. Ссылка с указанием домена считается внешней и открывается в новой вкладке браузера.
Параметры
Обязательные параметры отмечены *
|
Поле |
Описание |
|
type* |
Значение |
|
uri* |
Валидный URI ссылки, например |
Пример
{
"type": "redirect",
"uri": "/crm/deal/details/1/"
}
Событие restEvent
Чтобы получать событие onCrmTimelineItemAction, приложение подписывается на него методом event.bind или объявляет обработчик при установке.
Событие получает только то приложение, которое задало действие: для конфигурируемого дела — приложение, создавшее дело, для дополнительных контентных блоков — приложение, установившее блоки. Другим приложениям событие не приходит.
В обработчик всегда приходит контекст:
|
Поле |
Описание |
|
id |
Идентификатор события — значение поля |
|
entityTypeId |
Идентификатор типа объекта CRM, к которому привязано дело |
|
entityId |
Идентификатор элемента этого объекта |
|
activityId |
Идентификатор дела |
Значения из actionParams передаются через браузер пользователя, поэтому секреты и токены в них помещать нельзя.
Пользователя, который нажал на элемент, определяют по стандартному полю события auth[user_id] — в контекст действия он не попадает.
Параметры
Обязательные параметры отмечены *
|
Поле |
Описание |
|
type* |
Значение |
|
id* |
Идентификатор события. Можно указать любое значение, например |
|
actionParams |
Данные приложения, которые придут в обработчик события: ключ — имя параметра, значение — скаляр. Не более 20 значений, все они приводятся к строкам |
|
animationType |
Анимация на время обработки события: |
Обработчик события часто меняет саму запись: добавляет блоки или заменяет набор кнопок. На время обработки animationType показывает пользователю, что нажатие принято:
|
Значение |
Что блокируется |
|
|
Вся запись таймлайна, поверх нее появляется лоадер |
|
|
Только кнопка, по которой нажали |
Блокировка сама не снимается: она держится, пока приложение не обновит дело методом crm.activity.configurable.update.
Пример
{
"type": "restEvent",
"id": "resetButtonClick",
"actionParams": {
"myId": 123,
"someImportant": "qwerty"
},
"animationType": "disable"
}
Такое действие назначают на кнопку или пункт меню. Кроме полей контекста, в обработчик придут заданные приложением myId и someImportant.
Открытие слайдера приложения openRestApp
Важно
Действие не поддерживается в мобильном приложении. Если сценарий должен работать на мобильных устройствах, выберите redirect или restEvent.
Слайдер открывается поверх таймлайна, внутри него работает интерфейс приложения. В слайдер придет контекст:
|
Поле |
Описание |
|
entityTypeId |
Идентификатор типа объекта CRM, к которому привязано дело |
|
entityId |
Идентификатор элемента этого объекта |
|
activityId |
Идентификатор дела |
Параметры
Обязательные параметры отмечены *
|
Поле |
Описание |
|
type* |
Значение |
|
actionParams |
Данные приложения, которые придут в слайдер вместе с контекстом: ключ — имя параметра, значение — скаляр. Не более 20 значений, все они приводятся к строкам |
|
sliderParams |
Опции, с которыми открывается слайдер |
Пример
{
"type": "openRestApp",
"actionParams": {
"myId": 123,
"someImportant": "qwerty"
},
"sliderParams": {
"title": "Это заголовок слайдера приложения",
"width": 700
}
}
Объект ActionSliderParamsDto
Объект задает размер слайдера, заголовок окна браузера и метку в шапке. Все его поля необязательные: без sliderParams слайдер откроется с настройками по умолчанию.
Параметры объекта ActionSliderParamsDto
|
Поле |
Описание |
Дополнительно |
|
width |
Ширина слайдера, |
Задавайте либо |
|
leftBoundary |
Слайдер во всю ширину окна браузера с отступом слева, |
Задавайте либо |
|
title |
Текст заголовка окна браузера при открытии слайдера |
|
|
labelText |
Текст метки в шапке слайдера |
Например, |
|
labelBgColor |
Цвет фона метки |
Допустимые значения: |
|
labelColor |
Цвет текста метки |
Шестизначный HEX-код с решеткой, например |