Области подключения

Области подключения виджетов

Подключение виджетов по сути представляет собой подключение JS-скриптов на определенных страницах (интерфейсах) amoCRM. Сделать это можно не на всех, а только на определенном списке экранов.

Названия всех областей перечислены ниже:

Параметр Описание
lcard, cucard, ccard, comcard Карточки сделок, покупателей, контактов и компаний
llist, culist, clist, tlist Списки сделок, покупателей, контактов и задач
settings Cтраница установки и настройки виджетов
advanced_settings Страница расширенных настроек виджета
card_sdk SDK карточки (требует lcard, ccard, comcard для работы в карточках соответствующих сущностей)
catalogs SDK списков
digital_pipeline Настройки Digital Pipeline
lead_sources Источники сделок
whatsapp_modal Модальное окно интеграций, работающих с WhatsApp
everywhere Виджет будет инициализироваться везде
sms Виджет может быть использован в качестве отправителя системных SMS сообщений
mobile_card Виджет доступен в мобильном приложении. Подробнее
amoforms Виджет доступен в веб-формах. Подробнее

Обратите внимание, что области для инициализации виджета именно в воронке сделок не предусмотрено. Для любого раздела amoCRM с непредусмотренной областью мы рекомендуем использовать инициализацию "везде", указав "everywhere". И уже в самом коде виджета управлять отображением.

Нашей системе необходимо сообщить информацию о том, в каких областях отображается виджет, и где он будет использовать правую колонку. Для этого в блоке "locations" файла manifest.json следует перечислить нужные области с указанием 1 или 0 после названия в качестве параметра использования правой колонки (по умолчанию он равен 1). Следует учесть, что область "everywhere" не принимает данный параметр (для этой области он всегда равен 0).

Например, данный виджет будет инициализироваться на странице настроек, в настройках digital воронки, в карточках и списках контактов и сделок, но использовать правую колонку будет только в указанных карточках:

"locations": [
        "lcard-1",
        "llist-0",
        "ccard-1",
        "clist-0",
        "comcard-0",
        "card_sdk",
        "settings",
        "digital_pipeline",
        "lead_sources",
        "whatsapp_modal",
        "catalogs",
        "advanced_settings",
        "amoforms"
    ]

Кроме того, указание true или false в блоке "init_once" файла manifest.json регулирует возможность каждый раз при переходе из области в область вызывать функции init() и bind_actions(), или вызвать их только один раз. К примеру, виджеты телефоний постоянно удерживают WebSocket соединение и его обрыва происходить не должно, поэтому init_once должно иметь значение true. Если же общего для всех страниц контекста нет, то лучше ставить в false.

Обратите внимание, что JS код виджета может быть "навешен" на определенные события. Есть определенная специфика по работе с событиями в карточках и в списках.

При подгрузке JS в любом интерфейсе сработает функция обратного вызова render(), а затем init() и bind_actions(). При инициализации виджета в областях ccard или lcard правая колонка виджетов с виджетом появляется сразу, а при работе со списком, правая колонка и виджет добавляются на страницу по событию selected — срабатывает соответствующая функция обратного вызова в script.js. Эта фукция вызывается при выборе пользователем нужных строк таблицы, используя checkbox, с последующим выбором виджета в контекстном меню. Контекстное меню появляется при использовании хотя бы одного checkbox.

Так же, для работы виджета в digital воронке, необходима php-часть виджета с endpoint’ом digital_pipeline.

Если ваш виджет имеет область видимости lead_sources, то вы можете проверить, к какой воронке аккаунта он привязан с помощью HTTP-запроса или в script.js вашего виджета:

https://myaccount.amocrm.ru/api/v4/widgets/my_widget_code

Для работы с SDK списков необходимо указать специальную область видимости "catalogs", id списка, с которым будет работать виджет, а также реализовать специальный callback loadCatalogElement. Подробнее о SDK каталогов.

Для создания собственной страницы в разделе "Настройки" необходимо указать область видимости advanced_settings, а также добавить в manifest.json блок advanced и реализовать специальный callback advancedSettings. Подробнее о расширенной странице настройки виджета.

Для отображения вашего виджета в Источниках сделок WhatsApp необходимо указать область видимости whatsapp_modal.