Инженерная практика Сертификация и соответствие

Виджет аналитики сертификации в amoCRM: документы по ИНН/ОГРН и подписки за месяц

Виджет в карточке amoCRM подтягивает сертификаты и декларации по ИНН/ОГРН, плюс подписки-уведомления об отслеживаемых контрагентах. Две версии за месяц, затем вывод из эксплуатации при смене CRM.

45ч выполнено
Виджет аналитики сертификации в amoCRM: документы по ИНН/ОГРН, подписки за месяц

У клиента два рабочих инструмента: amoCRM как основное окно менеджеров по продажам и наша платформа, которая закрывает внутреннюю аналитику по сертификации продукции. Без интеграции менеджер живёт в двух окнах: в одном карточка сделки, в другом аналитика по контрагенту, и ИНН или ОГРН он вручную носит из первого во второе. Виджет должен был свести эти окна в одно.

Сделали то, что согласовали и закрыли актом: виджет в карточке плюс движок подписок-уведомлений. Несколько расширений к виджету просчитали в часах, но заказчик в работу их так и не отдал — в кейсе показываем и их. Через 2 года клиент решил не продлевать amoCRM и перейти на Битрикс24, и виджет штатно вывели из эксплуатации. Честная развязка: интеграция прожила ровно столько, сколько прожила сама CRM на стороне клиента.

Сводка

Отрасль Сертификация продукции, B2B-аналитика рынка
Конечный клиент «Аналитика сертификатов»
Формат сотрудничества Регулярное сопровождение — интеграция amoCRM с внутренней платформой
Тип проекта Виджет аналитики в карточке amoCRM + подписки-уведомления об отслеживаемых контрагентах
Объём работ ТЗ: виджет и движок уведомлений (45 ч, сдано). Расширения — синхронизация базы заявителей (80 ч) и сводка «дата последнего документа» (26 ч) — оценены, но в работу не отданы
Дата проекта Август 2022 (запуск) — июнь 2024 (вывод из эксплуатации при переезде на Битрикс24)
Трудозатраты 45 часов по ТЗ (сданная часть)
Команда Антон Херсун (руководитель проекта) и разработчик аналитической панели — интеграцию amoCRM он ведёт с первого дня
Технологический стек API amoCRM · сервер на Laravel · пользовательский виджет amoCRM · движок подписок и уведомлений
Сдано Виджет в карточке amoCRM (поиск аналитики по ИНН/ОГРН), движок подписок и уведомлений о новых документах по отслеживаемым контрагентам

Постановка задачи

Менеджер открывает карточку сделки в amoCRM. Чтобы понять, сколько у компании сертификатов и деклараций и по каким техрегламентам, ему нужно идти в другое окно и копировать туда ИНН или ОГРН. Раз в день это терпимо, 30 раз в день — уже нет.

Развилка, которая определила архитектуру, вылезла из переписки сразу. Изначально предлагали показывать сводку в правой колонке amoCRM, в штатных виджетах, но там мало места: полноценная аналитика туда не помещается. Поэтому остановились на отдельном виджете — он распознаёт поле ИНН/ОГРН в карточке и выводит всплывающее окно с данными из нашей платформы.

Второй пласт задачи: не разовый просмотр, а отслеживание. Менеджеру важно узнавать, когда у отслеживаемой компании появляется новый документ, а не просто смотреть текущую картину. Это уже не виджет, а подписка: набор «пользователь — ИНН», мониторинг новых документов по этим ИНН и доставка уведомлений в amoCRM и на почту аккаунта.

Был и третий запрос, от стороны заказчика: показывать дату последнего документа прямо в списке сделок, по всем ~30 тысячам карточек, не заходя внутрь. Его просчитали отдельно, об этом ниже.

Что в этом сложного. Сам виджет в amoCRM несложно написать. Сложно заставить его работать каждый день без падения, когда amoCRM меняет правила доступа к своему API, а портал на стороне клиента живёт своей жизнью. Например, amoCRM по соображениям безопасности отказывается сообщать виджету, какой именно пользователь сейчас работает в системе. Это ограничение приходится закладывать в саму модель подписок: кто увидит иконку у ИНН, кто получит всплывающее уведомление, а кто прочитает его только в общем списке. Не проговоришь этого заранее — и менеджеры решат, что «уведомления не приходят», хотя они приходят.

Как мы это сделали

1. Тонкий виджет: вся логика на нашей стороне.
Виджет в карточке делает минимум: вытаскивает ИНН или ОГРН и отправляет запрос на наш сервер на Laravel. Сервер ходит во внутреннюю платформу, собирает аналитику по контрагенту (количество сертификатов и деклараций, технические регламенты, динамику) и возвращает готовую страницу. В самом amoCRM бизнес-логика не живёт вообще — только встройка. Решение сознательное: любое обновление CRM ломает то, что лежит у неё внутри, поэтому внутри должно лежать как можно меньше. Перед открытием бывает небольшая задержка, пока виджет ждёт ответа от базы.

Отдельно учли особенность данных: в киргизских реестрах у контрагента прописан только ИНН, в российских стоит ОГРН, но по сути это один и тот же идентификатор. Сервер ищет компанию и в российских, и в киргизских таблицах.

2. Окно, которое не должно мешать работе в CRM.
Виджет показывает окно поверх карточки, и оно конкурирует за экран с самим amoCRM. По обратной связи от менеджеров за первую же неделю окно научили менять размер, свободно ездить по экрану, запоминать размер при следующем открытии и сворачиваться в строку, чтобы не закрывать работу со сделкой. Мелочь, но без неё виджетом просто перестают пользоваться.

3. Движок подписок: набор «пользователь — ИНН».
Поверх просмотра построили отслеживание. Менеджер оформляет подписку на контрагента по его ИНН, и пара «пользователь — ИНН» в системе единственная: если тот же ИНН попытаются отследить из другой сделки, система это поймет и предупредит, а не заведёт молчаливый дубль. Раз в сутки движок сверяет отслеживаемые ИНН с новыми документами в платформе. Появился документ — уведомление уходит ответственному менеджеру и внутрь amoCRM, и на почту аккаунта, а по клику из него менеджер проваливается в нужную сделку.

4. Две версии за месяц, с честным предупреждением о простоях.
Первую версию виджета, ещё без уведомлений, запустили 8 августа 2022. Систему уведомлений доделывали ещё 2 недели и 23 августа переключили amoCRM с первой версии на вторую. Переключались вживую, на рабочем портале, поэтому заранее предупредили заказчика: пока идёт миграция версии, возможны временные сбои, а тестовые уведомления в этот период не настоящие. Работу приняли и закрыли актом 2 сентября 2022, нареканий на уведомления не было.

5. Где упёрлись в ограничение amoCRM.
В день переключения на вторую версию у части пользователей виджет перестал открываться. Разобрались быстро. Часть клиентов ходила на старый адрес, это лечилось обновлением страницы, но корневая причина сидела глубже: виджет спрашивал у amoCRM по api v4 users, какой пользователь сидит в системе, а amoCRM отвечал «узнавать запрещено». Это не баг, а политика платформы, и модель уведомлений пришлось строить вокруг неё: пользователь, который сейчас в системе под своим логином, видит иконку у ИНН и всплывающее уведомление, остальные читают то же самое в общем разделе уведомлений amoCRM.

Что осталось в статусе оценённого

Не всё, что обсуждали по этой интеграции, дошло до запуска. Два расширения просчитали в часах и отдали заказчику на решение — на нём они и остались. Показываем их честно, потому что дисциплина «оценка → согласование → работа» действует в обе стороны: если заказчик не согласовал, работа не стартует.

Дата последнего документа в списке сделок (26 ч, не запущено). Сторона заказчика хотела видеть дату последнего оформленного документа прямо в канбан-списке amoCRM, по всем ~30 тысячам сделок: менеджер выбирает компанию для проработки, не открывая карточку. Решение спроектировали без виджета. В карточке заводится отдельное поле «дата последнего документа», скрипт получает через API amoCRM список всех активных сделок, подключает их к мониторингу дат по ИНН и раз в сутки обновляет карточки через тот же API. Риск отметили отдельно: ещё надо проверить, как amoCRM вообще даст обновлять 30 тысяч карточек за проход. Оценка вышла в 26 часов. Ответ заказчика: «Подумаем». На этом задача и остановилась.

Синхронизация базы заявителей с amoCRM (80 ч, зависло на согласовании). Самостоятельное ТЗ: выгружать заявителей из нашей платформы в amoCRM как сделки, разложенные по воронкам («Заявители», «Производители РФ», «КЗ», «ДФО»), с отсечкой компаний, у которых меньше 3 документов за 2 месяца, чтобы в CRM не сыпался шум. Оценили в 80 часов, оформили план и дополнения. До запуска дело не дошло: согласование затянулось, да и часть команды в тот период переезжала, так что старт всё время сдвигался. ТЗ так и осталось согласуемым.

Инцидент: 404 на казахстанском портале

Через 9 месяцев после запуска, в мае 2023, прилетела жалоба: виджет тормозит, а на казахстанском портале на любой карточке отдаёт 404 — при этом в России всё работает. География подсказала направление. Виджет кодирует данные аккаунта, из которого идёт запрос, и для конкретного казахстанского аккаунта части этих данных не хватало, отсюда и 404 ровно на этом портале. Запросили доступ к проблемному аккаунту, посмотрели, чего не хватает в кодировании, и поправили. Российские порталы не трогали: проблема была локальной, в одном аккаунте.

Развязка: уход с amoCRM на другую CRM

История интеграции закончилась не поломкой, а сменой платформы у клиента. В мае 2024 заказчик решил не продлевать amoCRM с 29 мая. Раз CRM уходит, уходит и всё, что к ней привязано: в июне мы предложили отключить виджет и его серверную обработку, чтобы не держать живой код под мёртвой системой, и 21 июня 2024 виджет вывели из эксплуатации.

Аналитику в карточках клиент при этом не потерял. Направление переехало на Битрикс24, и тот же принцип «тонкий виджет, логика на нашем сервере» лёг в основу нового виджета уже под Битрикс — это отдельная история и отдельный кейс. Здесь важно другое: интеграция с amoCRM отработала свой срок и закрыта чисто, без брошенного кода и зависших процессов на чужом портале.

Результаты

Метрика Значение
Сдано по ТЗ Виджет аналитики в карточке + движок подписок-уведомлений, 45 ч
Время запуска v1 — 8 августа 2022, v2 с уведомлениями — 23 августа, закрыто актом — 2 сентября 2022
Точки встраивания Карточка сделки amoCRM (поиск аналитики по ИНН/ОГРН), уведомления в amoCRM и на почту аккаунта
Оценено, но не запущено Дата последнего документа по списку (~30 тыс. сделок, 26 ч); синхронизация базы заявителей по воронкам (80 ч)
Инцидент и реакция 404 у казахстанского аккаунта (05.2023) — диагностирован как нехватка данных в кодировании аккаунта, исправлен
Вывод из эксплуатации amoCRM не продлён с 29.05.2024, виджет штатно отключён 21.06.2024, направление переехало на Битрикс24

Процесс и хронология

Этап Период Результат
ТЗ и оценка виджета июль 2022 План и цена по ТЗ (45 ч)
Запуск виджета v1 август 2022 Поиск аналитики по ИНН/ОГРН в карточке
Движок уведомлений, v2 август 2022 Подписки по ИНН, уведомления в amoCRM и на почту аккаунта
Приёмка сентябрь 2022 Акт по ТЗ
Расширения (оценены) август–сентябрь 2022 «Дата последнего документа» и синхронизация базы — не запущены
Инцидент 404 (КЗ) май 2023 Исправление кодирования данных аккаунта
Вывод из эксплуатации июнь 2024 Отключение виджета при переезде на Битрикс24

Команда

  • Антон Херсун, Xaver Pro — руководитель проекта: проектирование виджета и модели подписок, согласование ограничений amoCRM, запуск версий вживую на рабочем портале, разбор инцидента и вывод из эксплуатации.
  • Разработчик аналитической панели — серверная часть на Laravel: агрегация аналитики по контрагенту, движок подписок и доставка уведомлений. Интеграция amoCRM относится к направлению аналитической панели, и ведёт его этот разработчик с первого дня. Контекст «как устроен поиск по ИНН/ОГРН на нашей стороне» держит тот же человек, что пишет правки, поэтому передавать его между людьми не приходится.

Скриншоты и материалы

Будут добавлены отдельным проходом.

Если ваш amoCRM и внутренняя аналитика разъезжаются по разным окнам, и менеджеры вручную переносят ОГРН, пришлите выгрузку базы. Посмотрим, какие связки можно поднять без переезда инфраструктуры. За разбор денег не берём.

Связать amoCRM и аналитику →


Прокрутить вверх