У клиента два рабочих инструмента: 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 и внутренняя аналитика разъезжаются по разным окнам, и менеджеры вручную переносят ОГРН, пришлите выгрузку базы. Посмотрим, какие связки можно поднять без переезда инфраструктуры. За разбор денег не берём.