Конструктор интеграций
Конструктор подключает внешний сервис без разработчика: подключение, действия, входящие события и то, что показать в CRM. Описание остаётся данными, а не кодом: своего JavaScript и CSS в CRM нет, экраны рисует сама CRM.
Где найти: Интеграции → Мои интеграции. Конструктор включает на проект администратор Napulse. Кто работает: создавать, править и включать интеграции может сотрудник с правом «Интеграции», утверждение владельцем не нужно. Исключение: передачу переписки через интеграцию включает владелец с кодом подтверждения.
Создать интеграцию
- Действия по HTTP: вручную задать подключение, действия и постбэки.
- Из OpenAPI / cURL: вставьте документ OpenAPI или команду cURL, действия создадутся сами. Адреса проверяются: только https и без внутренних сетей.
- Канал переписки: см. Свои каналы.
- Из шаблона: готовые описания из библиотеки Napulse. После выбора остаётся заполнить секреты.
- Из файла: перенос интеграции из другого проекта, см. Перенос файлом.
Подключение
Название, базовый адрес https://… (домен фиксируется, запросы на другие домены невозможны) и способ авторизации: Bearer, свой заголовок, параметр в адресе, логин и пароль, OAuth2, подпись запроса (HMAC по телу, MD5 по полям) или без авторизации. Секрет вводит только человек в CRM. Через чат с ИИ передать его нельзя, в журнале и подстановках он не показывается.
OAuth2
Для сервисов со входом через свою страницу укажите адреса авторизации и токена, client_id и области доступа, а client secret введите как обычный секрет. Кнопка «Подключить» открывает страницу сервиса. Токены не показываются ни на экране, ни в журнале и обновляются сами. Пока вход не выполнен, интеграцию нельзя включить. Если сервис отказал в обновлении токена, интеграция просит войти снова, а ответственный получает уведомление. Короткий сбой сервиса входа повторной авторизации не требует.
Действия
Метод, путь, заголовки и тело с подстановками: {клиент.телефон}, {клиент.email}, {сделка.сумма}, {переменная.город}. Подстановки экранируются как данные. Преобразования пишутся цепочкой: {клиент.телефон|digits}, условия: {если …}. Из ответа поля берутся по пути ($.data.link_url) в переменные клиента, во внешнюю запись или в результат кнопки. Ответ сервиса считается недоверенным текстом: в сообщения роботов он попадает текстом, а не командами.
У вызовов есть тайм-аут, предел размера ответа, запрет редиректов во внутреннюю сеть и лимиты на интеграцию и проект. Сверх лимита запрос ждёт в очереди, а затем получает ответ «занято».
Входящие постбэки
Свой адрес на интеграцию, проверка подлинности (см. API для программистов), разбор полей по пути и действия CRM: записать оплату, поставить тег, сохранить переменную, запустить робота, сохранить внешнюю запись.
Внешние записи
Объекты стороннего сервиса (заказ, платёж, подписка) с привязкой к клиенту и сделке. Описываются типом записи: поля, пути, заголовок, статус, сумма. Заполняются действиями, постбэками, расписанием опроса или вручную. Показываются в карточке клиента, сделке, на своей странице и в «Таблицах». Повтор того же внешнего id обновляет запись и пишет историю.
Расписания
Опрос сервиса раз в 5, 15, 30, 60 минут, раз в 6 часов или раз в день, постранично, для сервисов без вебхуков. Результат попадает во внешние записи, переменную клиента или событие.
Где это видно: виджеты и свои страницы
Раздел со строками, таблица, форма, кнопка, бейдж и график. Места: панель менеджера, карточка клиента, сделка, шапка чата, «Таблицы», своя страница в левом меню (видна по должности). Описание задаёт тип, данные и тексты, иконку из набора CRM и цвет бейджа из палитры. Встроенные разделы изнутри не меняются: конструктор добавляет свои поверх.
Графики
Виды: столбцы, линия, круговая, одна цифра с динамикой к прошлому такому же периоду. Данные берутся из внешних записей или из GET-действия. Ось X: дата (день, неделя, месяц) или категория, значение: количество, сумма или среднее. Разбивка на серии: до 8 серий и «Прочее». Период: 7, 30 или 90 дней, на своей странице выбор один на все графики.
Суммы в разных валютах не складываются: столбцы и линия сами делятся по валюте, а круговой и цифре нужно указать одну валюту. Из действия можно построить график не больше чем по 5 000 строк.
Экспорт внешних записей
Кнопка «Экспорт» на вкладке «Записи», в списке «Показать все» и в своей таблице выгружает записи с текущим фильтром и сортировкой в CSV или XLSX, до 50 000 строк.
Нужно отдельное право «Экспорт данных интеграций». Его выдаёт владелец или сотрудник с правом «Управлять подключениями проекта». Файл нигде не хранится: ссылка действует час и один раз, а право проверяется ещё и в момент скачивания. Значения, похожие на формулы, защищены от выполнения в таблицах. Выгрузка видна в журнале действий и в журнале «Передано наружу».
Встраиваемые приложения
Когда виджета мало, партнёр показывает свою страницу внутри CRM. Вкладка «Приложения» в интеграции: название, адрес, где показывать, что передать, размер, видимость и кнопка «Проверить» на тестовых данных.
- Адрес: только https и только домен из манифеста интеграции. Поддомены надо перечислять отдельно.
- Места: своя страница, карточка клиента, сделка, панель менеджера. На телефоне приложение всегда открывается на весь экран.
- Что получает приложение: параметр
napulse_token, это JWT HS256 с полямиiss=napulse,aud(id интеграции),sub(сотрудник),project,client_id,deal_id,exp(5 минут),nonce. Проверяйте подпись секретом приложений из карточки интеграции. Телефон и почта в токен не входят, аclient_idиdeal_idуходят, только если это разрешено политикой данных. - Рамка: приложение работает в изолированном фрейме. Обратно оно может отправить только
napulse:refresh,napulse:closeиnapulse:height. Когда токен истёк, сотрудник нажимает «Обновить» в заголовке.
Открытие попадает в журнал «Передано наружу» без значений.
Блоки и формы сайта
Вкладка «Сайт» в интеграции создаёт блоки: список, карточка, цены, таймер, текст и форма. В редакторе сайта они выбираются в разделе «Из интеграций». Выбор публикует новую версию сайта, старую можно вернуть. Блоки выводятся компонентами сайта: своего CSS и скриптов нет, данные партнёра показываются как текст.
- Источник: GET-действие, внешние записи или настройки интеграции. На сайте видны только записи без клиента, поэтому чужие заказы туда не попадут.
- Сбой партнёра: блок скрывается, страница открывается. Страница ждёт партнёра не дольше 4 секунд, причина видна на вкладке «Сайт».
- Картинки: только https, с домена манифеста, только растровые, до 5 МБ, через загрузчик Napulse.
- Форма: заявка создаётся как у встроенной формы. Действие партнёра идёт очередью, заявка его не ждёт: до 3 попыток, при сбое заявка в CRM остаётся. Подстановка
{форма.lead_id}передаёт номер заявки партнёру. - События:
site.visit,site.form_submitted,site.paymentдоступны исходящим вебхукам и блоку робота «Ждать события». Телефона и почты в этих событиях нет ни при какой настройке. Робот запускается, только если у заявки есть клиент, вебхук уходит и без него.
Сайт со своим HTML блоки конструктора не показывает: страницу целиком заменяет HTML оператора.
Перенос файлом
«Экспорт в файл» в настройках интеграции сохраняет JSON до 1 МБ: подключение без секретов, действия, постбэк, типы записей, виджеты, расписания и вебхуки. Встраиваемые приложения в файл не входят.
«Создать интеграцию → Из файла» показывает предпросмотр и создаёт интеграцию выключенной, со статусом «нужны секреты». Ссылки на роботов, должности и ответственных другого проекта убираются, о чём сообщает предпросмотр. Расписания выключаются. После импорта каждое действие нужно один раз проверить.
Шаблоны
- Cardlink: ссылка на оплату, статус, постбэк с подписью, тип записи «Платёж», таблица «Оплаты». На настоящем сервисе пока не проверялся: проверьте первым небольшим платежом.
- Универсальный вебхук-приёмник: подпись HMAC, затем переменная клиента и тег.
- Google Sheets через Apps Script: Google отвечает на запрос перенаправлением, поэтому строка добавится, но вызов будет отмечен ошибкой
redirect. Пять таких вызовов подряд выключат интеграцию.
Роботы и ассистент
Действие интеграции становится блоком робота с ветками «успех» и «ошибка». Блок «Ждать события» работает с тайм-аутом и ветвлением, робот запускается событием, есть составные блоки. Ассистент 2.0 видит только действия, которым это разрешено настройкой. Сообщения автоматики помечаются.
Эксплуатация и безопасность
- Журнал вызовов и состояние интеграции. Пять сбоев подряд выключают интеграцию, ответственный получает уведомление.
- Интеграцию можно выключить переключателем. Администратор платформы может остановить все сразу.
- Политика данных: владелец выбирает, какие поля клиента интеграция может читать и отдавать наружу. В карточке клиента есть журнал «Передано наружу».
- Биллинг, тарифы, администрирование и чужие проекты недоступны ни действиям, ни виджетам, ни ИИ.
- Секрету старше 90 дней появляется бейдж и напоминание о замене.
Через ИИ
Конструктор доступен инструментами MCP в области integrations:write: интеграции, действия, постбэки, виджеты, типы записей, приложения (create_embedded_app), блоки сайта (create_site_block), шаблоны (create_integration_from_template), перенос (export_integration, import_integration). Выгрузка записей export_external_records требует области integrations:run и права экспорта. Эти области недоступны режиму «Помощник в переписке». Секрет вводит только человек.