Подключение виджетов по сути представляет собой подключение 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.