Реакция на нажатие

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

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

ActionDto — реакция на нажатие по элементу записи таймлайна. Действие бывает трех видов, и каждый описывается своим набором полей:

Значение type

Что происходит по нажатию

Когда использовать

redirect

Открывается ссылка: слайдер объекта Битрикс24, страница или внешний сайт

Нужно увести пользователя к сделке, лиду или внешнему сервису

restEvent

Приложению приходит событие onCrmTimelineItemAction

Нажатие должно выполнить логику на стороне приложения

openRestApp

Открывается слайдер приложения, задавшего действие

Нужен собственный интерфейс приложения поверх таймлайна

Действие задают в таких полях:

Поле type обязательное. Значение вне списка метод отклонит с ошибкой ENUM_FIELD, а поле, которого нет ни в одном из трех наборов, — с ошибкой FIELD_IS_REDUNDANT. Поля чужого типа действия Битрикс24 не отклоняет, но и не использует.

Переход по ссылке redirect

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

Параметры

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

Поле

Описание

type*
string

Значение redirect

uri*
string

Валидный URI ссылки, например https://ya.ru или /crm/deal/details/1/

Пример

{
    "type": "redirect",
    "uri": "/crm/deal/details/1/"
}

Событие restEvent

Чтобы получать событие onCrmTimelineItemAction, приложение подписывается на него методом event.bind или объявляет обработчик при установке.

Событие получает только то приложение, которое задало действие: для конфигурируемого дела — приложение, создавшее дело, для дополнительных контентных блоков — приложение, установившее блоки. Другим приложениям событие не приходит.

В обработчик всегда приходит контекст:

Поле

Описание

id

Идентификатор события — значение поля id из действия

entityTypeId

Идентификатор типа объекта CRM, к которому привязано дело

entityId

Идентификатор элемента этого объекта

activityId

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

Значения из actionParams передаются через браузер пользователя, поэтому секреты и токены в них помещать нельзя.

Пользователя, который нажал на элемент, определяют по стандартному полю события auth[user_id] — в контекст действия он не попадает.

Параметры

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

Поле

Описание

type*
string

Значение restEvent

id*
string

Идентификатор события. Можно указать любое значение, например resetButtonClick

actionParams
object

Данные приложения, которые придут в обработчик события: ключ — имя параметра, значение — скаляр. Не более 20 значений, все они приводятся к строкам

animationType
string

Анимация на время обработки события: loader или disable. Другое значение метод отклонит с ошибкой ENUM_FIELD

Обработчик события часто меняет саму запись: добавляет блоки или заменяет набор кнопок. На время обработки animationType показывает пользователю, что нажатие принято:

Значение

Что блокируется

loader

Вся запись таймлайна, поверх нее появляется лоадер

disable

Только кнопка, по которой нажали

Блокировка сама не снимается: она держится, пока приложение не обновит дело методом 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*
string

Значение openRestApp

actionParams
object

Данные приложения, которые придут в слайдер вместе с контекстом: ключ — имя параметра, значение — скаляр. Не более 20 значений, все они приводятся к строкам

sliderParams
ActionSliderParamsDto

Опции, с которыми открывается слайдер

Пример

{
    "type": "openRestApp",
    "actionParams": {
        "myId": 123,
        "someImportant": "qwerty"
    },
    "sliderParams": {
        "title": "Это заголовок слайдера приложения",
        "width": 700
    }
}

Объект ActionSliderParamsDto

Объект задает размер слайдера, заголовок окна браузера и метку в шапке. Все его поля необязательные: без sliderParams слайдер откроется с настройками по умолчанию.

Параметры объекта ActionSliderParamsDto

Поле

Описание

Дополнительно

width
integer

Ширина слайдера, px

Задавайте либо width, либо leftBoundary

leftBoundary
integer

Слайдер во всю ширину окна браузера с отступом слева, px

Задавайте либо width, либо leftBoundary

title
string

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

labelText
string

Текст метки в шапке слайдера

Например, Заявка

labelBgColor
string

Цвет фона метки

Допустимые значения: aqua, green, orange, brown, pink, blue, grey, violet. Другое значение метод отклонит с ошибкой ENUM_FIELD

labelColor
string

Цвет текста метки

Шестизначный HEX-код с решеткой, например #ffffff. Другой формат метод отклонит с ошибкой WRONG_FIELD_VALUE

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