Виджет в amoCRM. Структура.

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

При этом, сотни самых разных готовых расширений уже доступны для кастомизации CRM под ваши нужды даже без навыков программирования.

Минимальная структура Виджита. (https://www.amocrm.ru/developers/content/integrations/structure)

manifest.json

Файл в формате json, содержащий описание виджета, настройки виджета, параметры виджета, выводимые пользователю, локализации, с которыми работает виджет.

script.js

JS-файл, который будет подключен на стороне пользователя в указанных в manifest.json областях

images/

Папка для размещения файлов изображений, которые используются в виджете. Должна содержать в себе 5 файлов в формате (png, jpeg,jpg или gif), которые будут использоваться как логотип виджета в разных областях видимости. Размер каждого файла не должен превышать 300 КБ. logo_min.png и logo_medium.png — обязательно, если виджет работает в карточках, используется во всех списках и карточках контактов или сделок в свернутом и развернутом состоянии соответственно. Изображения logo_main и logo_small дублируют цели logo_min соответственно, обязательны к отгрузке с ноября 2018 года. Также необходимо загрузить logo.png для поддержки старых версий.

i18n/

Папка, содержащая файлы локализаций в формате ключ:значение. На текущий момент возможно использование только двух локализаций: русской (ru) и английской (en). Все переводы будут доступны в JS.

 

Структура manifest.json.

{
    "widget":{
            "name": "widget.name",
            "description": "widget.description",
            "short_description": "widget.short_description",
            "version": "1.1.",
            "interface_version": 2,
            "init_once": false,
            "locale":[
                    "ru"
                    ],
            "installation": true
            },
    "locations":[
            "lcard-1",
            "settings"
            ],
    "settings":{
                "label_account":{
                        "name": "settings.label_account",
                        "type": "text",
                        "required": false
                        }
            }
}

Где "locations" может иметь следующие значения (https://www.amocrm.ru/developers/content/integrations/areas):

lcard, cucard, ccard, comcard =>Карточки сделок, покупателей, контактов и компаний

llist, culist, clist, tlist => ​Списки сделок, покупателей, контактов и задач

settings => Cтраница установки и настройки виджетов

advanced_settings => Страница расширенных настроек виджета

card_sdk => SDK карточки (требует lcard, ccard, comcard для работы в карточках соответствующих сущностей)

catalogs => SDK списков

digital_pipeline => Digital воронка

lead_sources => Источники сделок

whatsapp_modal => Модальное окно интеграций, работающих с WhatsApp

everywhere => Виджет будет инициализироваться везде

sms => Виджет может быть использован в качестве отправителя системных SMS сообщений

Структура script.js.

define(['jquery'], function ($) {
    var CustomWidget = function () {
        var self = this, system = self.system;
        this.callbacks = {
            settings: function () {
            },
            init: function () {
                return true;
            },
            bind_actions: function () {
                return true;
            },
            render: function () {
    return true;
            },
            contacts: {
                selected: function () {
                }
            },
            companies: {
                selected: function () {
                }
            },
            leads: {
                selected: function () {
                }
            },
            tasks: {
                selected: function () {
                }
            },
            destroy: function () {
            },
            onSave: function () {
                return true;
            },
            advancedSettings: function () {
                return true;
            }
        };
        return this;
    };
    return CustomWidget;
});
 

Источник:

https://www.amocrm.ru/

https://www.amocrm.ru/developers/content/integrations/intro

Статья написана 18.12.2020.