Заявка с сайта упала на почту, менеджер её не открыл вовремя, клиент дозвонился конкуренту — и никто в компании даже не знает, сколько таких обращений уходит в никуда за месяц. Заказы менеджеры ведут в переписке и в голове, а руководитель отдела продаж не видит воронку: сколько сделок в работе, где они застревают и какая реклама реально приносит деньги. Знакомая картина для растущего магазина. Решение — интеграция витрины на 1С-Битрикс с amoCRM: заявки с форм и оформленные заказы автоматически становятся сделками в воронке, а отдел продаж работает в одной системе, где ничего не теряется.
Эта статья — практический разбор того, как связать интернет-магазин на 1С-Битрикс с amoCRM: какие данные передавать, как устроены сделки из заказов, как работают воронки и этапы под e-commerce, как не наплодить дублей контактов, чем интеграция по REST API отличается от готового виджета и где проходит граница ответственности между магазином, 1С и CRM. Материал основан на наших проектах по разработке сайтов с интеграцией CRM — по делу, без маркетинговых обещаний и выдуманных цифр.
Коротко
- amoCRM — это CRM для продаж (сделки, воронки, задачи), а не учётная система (1С) и не корпоративный портал (Битрикс24). Сайт связывается с ней через REST API и вебхуки как с внешней системой.
- В amoCRM уходит то, с чем работает отдел продаж: заявки с форм и заказы как сделки, контакты, суммы, товары в сделке, метка источника и UTM. Каталог и остатки — в 1С.
- Авторизация — по OAuth 2.0 (access- и refresh-токены); обратные события (смена этапа) приходят вебхуками amoCRM на сайт.
- Дедупликация по телефону и email обязательна, иначе один клиент превращается в несколько карточек и аналитика врёт.
- До настройки зафиксируйте, где «хозяин» заказа — в 1С или в amoCRM — и учитывайте лимиты API при потоковой отправке.
Зачем магазину amoCRM
Интернет-магазин каждый день генерирует обращения: заявки с форм, звонки, сообщения в чат и мессенджеры, оформленные и брошенные заказы. Пока этих обращений немного, менеджер справляется вручную — читает почту, перезванивает, помнит клиентов. Но с ростом потока эта схема ломается: обращения теряются между каналами, никто не видит общей картины, а руководитель не может ответить на простой вопрос «где мы теряем клиентов». CRM собирает все обращения в единую воронку продаж, где у каждой сделки есть этап, ответственный менеджер и срок следующего касания.
amoCRM среди CRM выделяется тем, что она сделана вокруг продаж и максимально проста для менеджера: воронка перед глазами, сделки двигаются по этапам, автоматизация напоминает перезвонить и написать. Именно поэтому её часто выбирают магазины, которым нужна лёгкая и быстрая «CRM про сделки», а не тяжёлый корпоративный портал. Интеграция с сайтом нужна, чтобы обращения попадали в эту воронку автоматически, без ручного переноса и без «человеческого фактора».
Что даёт связка магазина на 1С-Битрикс с amoCRM:
- Ни одно обращение не теряется. Заявка с формы сразу становится сделкой в воронке, у неё есть ответственный, этап и задача — менеджер физически не может её «забыть».
- Единая воронка продаж. Заявки, заказы, повторные обращения одного клиента — всё в одном месте с понятными этапами от первого контакта до оплаты.
- Прозрачность для руководителя. Видно, сколько сделок в работе, на каких этапах они застревают, какая конверсия и какой прогноз выручки.
- Аналитика источников. С каждой заявкой в CRM приходит метка канала и UTM — понятно, какая реклама приносит сделки, а не просто визиты.
- История клиента. Все касания — заявки, заказы, звонки, переписка — собраны в карточке, и менеджер не начинает разговор «с нуля».
Важно сразу задать правильную рамку: amoCRM не заменяет ни сайт, ни 1С. Она берёт на себя ровно одну задачу — довести обращение до продажи и не потерять клиента по дороге. Всё, что связано с каталогом, ценами и складским учётом, остаётся за 1С, а витрина остаётся на 1С-Битрикс. Об этом — следующий раздел, потому что путаница именно здесь порождает большинство ошибок в постановке задачи.
amoCRM, 1С и Битрикс24: не путаем продукты
Прежде чем говорить об интеграции, разведём три системы, которые в разговорах постоянно смешивают. От того, насколько чётко вы понимаете, кто за что отвечает, напрямую зависит корректность технического задания. Ошибка на этом уровне стоит дорого: люди ждут от CRM того, что она в принципе не делает, и наоборот.
| Продукт | Что это | За что отвечает |
|---|---|---|
| 1С (УТ, ERP, УНФ) | Учётная система | Товары, цены, остатки, заказы как документы, склад, отгрузка |
| 1С-Битрикс: Управление сайтом | CMS / платформа сайта | Сам сайт и интернет-магазин, каталог, корзина, оформление заказа |
| amoCRM | CRM для продаж | Сделки, воронки, задачи менеджерам, работа с клиентом до оплаты |
| Битрикс24 | CRM и корпоративный портал | CRM плюс задачи, диск, чаты, телефония, инструменты для всей компании |
Разберём по порядку. Сайт магазина работает на платформе «1С-Битрикс: Управление сайтом» — это CMS, на которой держатся витрина, каталог и корзина. Каталог и заказы этот сайт получает и отдаёт в 1С — учётную систему, где живут номенклатура, цены, остатки и заказы-документы; обмен идёт по формату CommerceML. А обращения, заявки и сделки — отдельная история: сайт передаёт их в CRM. И вот здесь развилка: CRM может быть amoCRM или Битрикс24 (либо другой системой).
Ключевой момент: amoCRM — это не 1С. 1С считает и учитывает (товары, остатки, деньги как документы), amoCRM продаёт (ведёт клиента по воронке). Это разные задачи, и класть в amoCRM остатки и номенклатуру так же неправильно, как вести в 1С воронку продаж. Точно так же amoCRM — это не «1С-Битрикс»: похожесть в названии платформы сайта случайна, никакого «родства вендоров» тут нет. Сайт на 1С-Битрикс интегрируется с amoCRM как с любой внешней системой — через её REST API, а не «потому что где-то есть слово Битрикс».
Если в вашем проекте есть и 1С, и CRM, то у вас две независимые интеграции, каждую из которых планируют и настраивают отдельно. Тему обмена именно с 1С мы разбираем в статье про интеграцию магазина с 1С — там про каталог, цены и остатки. Здесь же речь исключительно про связку с CRM.
amoCRM или Битрикс24: чем отличаются
Раз уж обе системы — это CRM, логичный вопрос магазина: что выбрать. Полный сравнительный разбор выходит за рамки статьи об интеграции, но для правильной постановки задачи важно понимать разницу в философии продуктов, потому что она влияет и на то, как строится связка с сайтом.
| Критерий | amoCRM | Битрикс24 |
|---|---|---|
| Основной фокус | Продажи: воронки и сделки | Единый портал: CRM + задачи + коммуникации |
| Основные сущности | Сделки, контакты, компании, задачи | Лиды, сделки, контакты, компании + модули портала |
| «Неразобранное» | Входящие заявки до квалификации | Стадия лида до конвертации в сделку |
| Порог входа для менеджера | Низкий, интерфейс «про сделки» | Выше: больше инструментов и настроек |
| Размещение | Облако | Облако или коробка на своём сервере |
| Связь с сайтом | REST API + вебхуки, OAuth 2.0 | REST API + вебхуки |
| Кому ближе | Отделу продаж, которому нужна «чистая» CRM | Компании, которой нужен портал для всех процессов |
Если упростить: amoCRM — это остро заточенный инструмент продаж. В ней нет лишнего, менеджер видит воронку и сделки, а автоматизация подталкивает совершать касания вовремя. Магазины любят её за скорость внедрения и понятность. Битрикс24 — это швейцарский нож: помимо CRM там задачи, документы, чаты, телефония, инструменты для всей команды; он мощнее, но и тяжелее в освоении. Подробно про связку с ним мы писали в статье про интеграцию магазина с Битрикс24 — если сомневаетесь в выборе, сравните оба материала.
С точки зрения интеграции сайта принципиальная механика похожа: обе CRM связываются через REST API и вебхуки. Различия — в модели данных (в amoCRM входящие заявки часто попадают в «Неразобранное», в Битрикс24 есть отдельная стадия лида) и в деталях авторизации. Но главный вывод для этой статьи: выбор CRM — это бизнес-решение про процессы продаж, а не про «у кого лучше API». Определитесь с процессом, а интеграцию мы подстроим под него в рамках услуги интеграций с внешними системами.
Что передавать с сайта в amoCRM
Первое, что нужно спроектировать в любой интеграции с CRM, — состав передаваемых данных. В amoCRM уходит то, с чем работает отдел продаж, а не технические данные каталога. Полезно заранее очертить список, потому что от него зависят и поля в CRM, и логика обработчиков на сайте.
| Что передаём | Куда в amoCRM | Зачем |
|---|---|---|
| Заявки с форм | Сделка + контакт (часто через «Неразобранное») | Обращение попадает в воронку, менеджер видит его сразу |
| Оформленные заказы | Сделка со составом и суммой | Сопровождение заказа и аналитика продаж |
| Имя, телефон, email | Контакт | Идентификация клиента, дедупликация, связь |
| Компания (для B2B) | Компания, связанная с контактом | Опт и работа с юрлицами |
| Товары заказа | Позиции сделки / поле состава | Менеджер видит, о чём сделка |
| Сумма заказа | Бюджет сделки | Прогноз выручки, аналитика |
| Источник, UTM-метки | Поля сделки, теги | Сквозная аналитика каналов |
| Комментарий клиента | Поле / примечание сделки | Контекст обращения для менеджера |
А вот что в amoCRM передавать не нужно: полный каталог, остатки по складам, справочники цен и номенклатуру. Это данные учёта, им место в 1С, и дублировать их в CRM бессмысленно и вредно — они устареют, засорят карточки и создадут иллюзию «второго склада». В сделку кладут товары именно как позиции для контекста менеджера (что заказал клиент), а не как учётную сущность с остатком. Эту границу важно держать с самого начала, чтобы CRM оставалась инструментом продаж.
Отдельно про минимальный набор. Даже самая простая заявка «обратный звонок» должна принести в CRM хотя бы имя и телефон (или email) — без контакта сделка бесполезна, менеджеру некуда звонить. Поэтому в интеграции закладывают обязательные поля: если ключевого контакта нет, заявка не должна «молча» уходить пустой. Лучше отправить её с пометкой и дублирующим уведомлением, чем создать в воронке карточку-призрак.
Как устроена связка: REST API и OAuth
Сайт и amoCRM общаются через REST API — программный интерфейс CRM, который умеет создавать и читать сделки, контакты, компании, задачи и примечания. Технически всё строится на HTTP-запросах: сайт отправляет в amoCRM данные, CRM создаёт сущность и возвращает её идентификатор, который сайт может сохранить, чтобы потом обновлять запись.
Авторизация в amoCRM построена на протоколе OAuth 2.0. Это важное отличие от «простого вебхука с ключом»: доступ выдаётся через интеграцию (приложение), которое получает пару токенов — access-токен (короткоживущий, им подписывают запросы) и refresh-токен (им обновляют access-токен, когда тот истёк). Интеграция обязана вовремя обновлять токены, иначе связь «протухнет» и заявки перестанут доходить. Это одна из тех деталей, которую часто недооценивают в самодельных скриптах.
Общая картина связи выглядит так:
- Событие на сайте. Отправлена форма или оформлен заказ — срабатывает обработчик.
- Подготовка данных. Обработчик собирает контакт, состав, сумму, источник и приводит их к формату amoCRM.
- Авторизация по OAuth. Интеграция подписывает запрос действующим access-токеном (при необходимости заранее обновив его по refresh-токену).
- Вызов REST API. Создаётся/находится контакт, создаётся сделка, они связываются, проставляются поля и теги.
- Ответ CRM. amoCRM возвращает идентификаторы созданных сущностей; сайт при желании сохраняет их у себя.
Отдельно про «Неразобранное». В amoCRM входящие обращения удобно заводить не сразу как готовую сделку, а через сущность «Неразобранное» (unsorted) — это буфер входящих, который менеджер квалифицирует и принимает в работу, после чего создаётся сделка и контакт. Такой путь ближе к логике amoCRM для форм с сайта: обращение видно как входящее, его нельзя пропустить, а квалификация отделена от ведения сделки. Для заказов, наоборот, чаще создают сделку сразу — заказ уже «квалифицирован» самим фактом оформления.
Безопасность здесь так же критична, как в любом обмене: токены — это ключи доступа к вашей CRM, их нельзя хранить в открытом коде и светить в репозитории, канал держат по HTTPS, а у интеграции должны быть только необходимые права. Сложные двусторонние сценарии и работа с API — это уже разработка, и мы ведём её в рамках интеграционных проектов. Общие принципы работы с REST-интерфейсами на платформе мы разбираем в статье про REST API 1С-Битрикс — многие подходы (очереди, повторы, безопасность токенов) применимы и к связке с amoCRM.
Вебхуки amoCRM: обратные события
REST API отвечает за направление «сайт → amoCRM». Но часто нужна и обратная связь: когда менеджер в CRM сдвигает сделку по воронке или закрывает её, полезно, чтобы об этом узнал сайт — например, чтобы показать клиенту статус в личном кабинете или запустить свою логику. Для этого у amoCRM есть вебхуки — механизм, которым CRM сама уведомляет внешнюю систему о событиях.
Работает это так: в настройках интеграции вы указываете адрес обработчика на сайте и выбираете события, о которых хотите получать уведомления (создана сделка, изменён этап, добавлен контакт, закрыта сделка и т. д.). Когда событие происходит, amoCRM отправляет на ваш адрес HTTP-запрос с данными о том, что изменилось. Обработчик на сайте принимает его и делает своё дело.
- Смена этапа сделки. Менеджер перевёл сделку на «Оплачен» — сайт может отразить это в кабинете клиента или в статусе заказа.
- Закрытие сделки. Успешно или с отказом — сайт может обновить свою аналитику или запустить сценарий удержания.
- Изменение контакта. Обновились данные клиента — можно синхронизировать их обратно, если это нужно по логике проекта.
Вебхуки — мощный инструмент, но с ним нужна аккуратность. Во-первых, обработчик должен быстро отвечать и не «завешивать» отправителя: тяжёлую логику выносят в фоновую обработку, а на сам вебхук отвечают сразу. Во-вторых, события могут приходить повторно, поэтому обработчик делают идемпотентным — повторный вебхук по одной и той же сделке не должен ломать данные. В-третьих, адрес обработчика — это точка входа извне, её защищают и проверяют, что запрос действительно от вашей CRM. Двусторонняя синхронизация статусов, которую строят на вебхуках, — тема отдельного раздела ниже.
Заявки с форм: путь до сделки
Самый частый и востребованный сценарий — превращение заявок с форм в сделки CRM. Разберём путь заявки от клика покупателя до карточки в воронке amoCRM.
- Клиент отправляет форму. Обратный звонок, вопрос о товаре, заявка на КП, быстрый заказ в один клик — на сайте срабатывает обработчик отправки формы.
- Сайт сохраняет заявку. Данные пишутся на стороне сайта (в журнал или очередь), чтобы не зависеть от мгновенной доступности CRM и не потерять обращение при сбое связи.
- Проверка контакта. Интеграция ищет в amoCRM контакт по нормализованному телефону или email: если клиент уже есть — используем его, если нет — создаём новый.
- Создание сделки. Обработчик вызывает REST-метод создания сделки в нужной воронке на стартовом этапе (часто через «Неразобранное»), передавая имя, контакт, текст обращения, источник и UTM.
- Проставление полей и тегов. Заполняются поля сделки (источник, страница обращения, тип заявки) и теги, по правилам распределения назначается ответственный менеджер.
- Задача менеджеру. Автоматически ставится задача «связаться с клиентом» с дедлайном, чтобы обращение не зависло без действия.
- Менеджер видит обращение. Сделка с уведомлением появляется у ответственного — обращение в работе, ничего не потеряно.
Ключевой технический момент — сопоставление полей формы и полей сделки/контакта: что станет именем контакта, что телефоном, что комментарием сделки, какой источник проставить, какие теги повесить. Чем аккуратнее сделано это сопоставление, тем чище данные в CRM и тем меньше менеджер тратит времени на «расшифровку» заявки. Небрежное сопоставление, когда имя клиента улетает в комментарий, а телефон — не в то поле, — одна из самых частых причин, по которой менеджеры начинают жаловаться на «неудобную CRM», хотя проблема в интеграции.
Заказы магазина как сделки
Второй ключевой сценарий — передача оформленных заказов как сделок. Когда покупатель оформляет заказ на витрине, его можно отправить в amoCRM сделкой: с составом (какие товары и сколько), суммой, контактом покупателя, компанией для B2B и привязкой к источнику. Менеджер ведёт такую сделку по воронке, видит её бюджет и этап, а руководитель получает картину продаж и прогноз.
Что обычно кладут в сделку из заказа:
- Состав заказа. Позиции — товары и количество — как контекст для менеджера. Это не складской учёт, а информация «о чём сделка».
- Сумма. Итог заказа становится бюджетом сделки — основой для прогноза выручки и аналитики.
- Контакт и компания. Покупатель связывается с карточкой контакта, а для оптовых клиентов — и с компанией.
- Источник и UTM. Откуда пришёл заказ — для аналитики каналов и оценки рекламы.
- Способ оплаты и доставки. Если это важно для работы менеджера — в отдельные поля сделки.
- Номер заказа. Ссылка на заказ на сайте/в 1С, чтобы менеджер мог сопоставить сделку с документом.
Здесь снова всплывает разделение ролей, о котором мы подробно поговорим ниже. Если заказ как документ уходит в 1С, то в amoCRM он попадает как сделка для сопровождения и аналитики, а правки состава и сумм остаются за 1С. Это убирает конфликт «двух хозяев». Если же 1С в схеме нет и заказы ведутся в CRM, тогда amoCRM может быть основным местом работы с заказом — но это решают до настройки, а не по ходу.
Отдельно про товары в сделке. У amoCRM есть каталоги (списки), куда можно завести товары и привязывать их к сделкам как позиции. Это удобно, когда номенклатура стабильна и менеджеры продают из фиксированного списка. Но для большого и часто меняющегося каталога магазина тянуть весь ассортимент в amoCRM не нужно — достаточно передавать состав заказа как позиции сделки для контекста, а полноценный учёт оставить 1С. Решение зависит от того, насколько активно менеджеры собирают заказы прямо в CRM. Для оптовых проектов сделки из заказов особенно ценны: менеджер ведёт крупную закупку как сделку, согласует условия, готовит КП — это хорошо ложится на схему интернет-магазина с CRM, где у клиента есть кабинет, а у менеджера — сделка по нему.
Воронки и этапы под e-commerce
Сердце amoCRM — воронка продаж. Это цепочка этапов, по которым сделка движется от первого контакта до оплаты и отгрузки. От того, насколько воронка отражает реальный процесс продажи в вашем магазине, зависит и польза CRM, и качество аналитики. Универсальной «правильной» воронки не существует, но для e-commerce есть типовые ориентиры.
Пример воронки для розничного магазина
Для розницы с быстрым циклом сделки воронка обычно короткая и отражает путь заказа:
- Новая заявка / Неразобранное. Обращение только пришло, менеджер его ещё не взял.
- В работе. Менеджер связался с клиентом, уточнил детали.
- Ожидает оплаты. Заказ подтверждён, выставлен счёт или ожидается оплата.
- Оплачен. Деньги получены, заказ передан в сборку/отгрузку.
- Выполнен (успех). Заказ доставлен, сделка успешно закрыта.
- Закрыт без продажи (отказ). С причиной отказа для аналитики.
Пример воронки для B2B и опта
Для оптовых продаж цикл длиннее, и воронка это отражает: добавляются этапы согласования, подготовки коммерческого предложения и переговоров. Здесь особенно важны причины отказа и длительность этапов — они показывают, где сделки «застревают».
Несколько практических принципов настройки воронки под магазин:
- Этап = реальное действие, а не «настроение». «Клиент думает» — плохой этап, потому что по нему нельзя понять, что делать. «Отправлено КП, ждём ответ» — хороший.
- Отдельные воронки под разные процессы. Розничные заказы, оптовые сделки и, например, сервисные обращения удобнее вести в разных воронках — у них разная логика и аналитика.
- Фиксируйте причины отказа. Обязательное поле при закрытии сделки в отказ превращает потери в данные: дорого, нет в наличии, передумал, купил у конкурента.
- Стартовый этап под входящие. Заявки с сайта падают на первый этап или в «Неразобранное», а не в середину воронки.
Для интеграции воронка — это не абстракция, а конкретная настройка: сайт должен знать, в какую воронку и на какой этап класть заявку и заказ. Поэтому воронку проектируют до технической связки. Если сначала «подключить amoCRM», а потом придумывать воронку, придётся переделывать сопоставление — а это лишняя работа.
Поля, теги и качество данных
Чтобы CRM была полезной, сделка и контакт должны нести структурированные данные, а не только имя и телефон. За это отвечают поля и теги — и их состав проектируют вместе с воронкой.
Поля
Поля — это именованные ячейки данных у сделки, контакта и компании. В интеграции их заполняют автоматически из заказа и заявки. Полезные поля для магазина:
- У сделки: источник, тип заявки, номер заказа, способ оплаты и доставки, UTM-метки, сумма, промокод.
- У контакта: телефон, email, имя — базовый набор для связи и дедупликации.
- У компании (B2B): название, ИНН, город, сегмент — для работы с юрлицами.
Важное правило: телефон и email заводят как правильные типы полей контакта (не строкой в комментарии). Это не косметика — именно по типизированным полям телефона и почты работает поиск дублей и связь с телефонией. Если телефон лежит текстом в примечании, CRM не сможет ни найти дубль, ни связать звонок с карточкой.
Теги
Теги — это метки для быстрой фильтрации и сегментации. Ими помечают тип обращения («опт», «розница», «рекламация»), канал («сайт», «форма КП»), особенности («горячий», «повторный»). Теги удобны в отчётах и в автоматизации: по ним настраивают правила и находят нужные сделки. Но с тегами легко переборщить — десятки хаотичных тегов превращаются в кашу. Лучше договориться о фиксированном наборе и проставлять его из интеграции единообразно.
UTM, источник и сквозная аналитика
Большой бонус интеграции — достоверная аналитика продаж. Когда каждая заявка и сделка несут метку источника и UTM, видно не «сколько было визитов», а «какие каналы реально принесли сделки и на какую сумму». Это превращает рекламный бюджет из догадок в управляемую величину.
Чтобы аналитика работала, источник нужно передать с первого касания и донести до CRM без потерь. Механика такая: когда посетитель приходит на сайт с рекламы, в URL есть UTM-метки; их сохраняют (обычно в cookie или сессии) и «привязывают» к посетителю. Когда он оставляет заявку или оформляет заказ, эти метки вместе с обращением уходят в поля сделки amoCRM. Тогда в отчётах видно стоимость и количество сделок по каналам.
- UTM-метки. source, medium, campaign, content, term — базовый набор для оценки рекламных кампаний.
- Источник обращения. Канал верхнего уровня: органика, реклама, прямой заход, реферал.
- Страница обращения. С какой страницы клиент оставил заявку — полезно для оценки посадочных.
- Идентификатор посетителя. Для связки с системами веб-аналитики и построения сквозной аналитики.
Полноценная сквозная аналитика — это связка «реклама → визит → заявка → сделка → выручка». amoCRM в этой цепочке отвечает за часть «заявка → сделка → выручка», а данные о рекламе подтягивают из рекламных систем и веб-аналитики. Задача интеграции с сайтом — не потерять метку канала по дороге от рекламы до сделки. Если UTM теряется где-то на пути, вся сквозная аналитика «слепнет».
Дедупликация контактов
Как только обращения текут в CRM автоматически, всплывает главная проблема потоковых интеграций — дубли. Один клиент оставил заявку на обратный звонок, через неделю задал вопрос о товаре, потом оформил заказ — и в воронке три записи об одном человеке, три контакта, три обрывка истории. Без дедупликации amoCRM быстро превращается в свалку, где менеджер не понимает, с кем уже общались и на чём остановились.
Дедупликация в связке с сайтом строится вокруг двух ключей — телефона и email. Перед созданием новой сделки интеграция ищет существующий контакт, и если находит — привязывает сделку к нему, а не плодит нового клиента.
- Поиск по телефону. Основной ключ. Перед созданием контакта интеграция запрашивает amoCRM: есть ли уже контакт с таким номером.
- Поиск по email. Дополнительный ключ, особенно когда телефон не указан или указан неверно.
- Нормализация телефона. Номер приводится к единому формату, чтобы «+7 (999) 123-45-67», «89991234567» и «7 999 123 45 67» считались одним номером.
- Привязка новой сделки к найденному контакту. Если клиент найден — создаём новую сделку и связываем её с существующим контактом, сохраняя его историю.
У amoCRM есть и встроенный механизм поиска дублей, но при потоковой загрузке с сайта надёжнее проверять дубли до создания сущностей, на стороне интеграции. Так вы не создаёте дубль, который потом придётся сливать вручную, а сразу кладёте обращение в правильную карточку. Отдельный вопрос — что считать «одним клиентом»: для розницы обычно достаточно телефона, для B2B иногда важнее связка с компанией по ИНН. Эти правила проектируют под конкретный бизнес.
Где «хозяин» данных: магазин, 1С или amoCRM
Самый важный вопрос при связке трёх систем — кто чем владеет. Если этого не решить заранее, заказ начнут править в трёх местах сразу, и данные неизбежно разъедутся: в 1С одна сумма, на сайте другая, в CRM третья. Рабочее разделение ролей обычно такое:
- 1С — учёт. Каталог, цены, остатки, заказ как документ, отгрузка, оплата. «Хозяин» товарных данных и заказа-документа.
- Сайт (1С-Битрикс) — витрина. Показывает каталог из 1С, принимает заказ и заявки, оформляет покупку, собирает источник и UTM.
- amoCRM — продажи. Сделки из заявок и заказов, воронка, задачи менеджерам, аналитика, общение с клиентом. «Хозяин» процесса продажи, но не заказа-документа.
В этой схеме заказ как документ живёт в 1С, а в amoCRM он попадает как сделка для ведения менеджером и аналитики — не как второй «хозяин», который правит состав и суммы. Заявка с формы, у которой ещё нет заказа, — это чистая сделка в CRM без документа в 1С. Такое распределение убирает конфликты и делает понятным, где искать истину по каждому типу данных.
Возможна и схема без 1С: если учёт ведётся упрощённо, заказы можно вести прямо в amoCRM, и тогда она становится основным местом работы с заказом. Но это осознанное решение, а не «случайно так вышло». А если нужна прямая связка учёта с CRM (чтобы менеджер видел оплаты и отгрузки из 1С), её планируют отдельно — это уже третья интеграция со своей логикой. Схему из двух связок — сайт ↔ 1С и сайт ↔ CRM — и её зоны ответственности хорошо иллюстрирует картинка ниже.
Синхронизация статусов заказа и этапов сделки
Отдельная и часто желаемая функция — двусторонняя связь между статусом заказа (на сайте/в 1С) и этапом сделки (в amoCRM). Идея красивая: заказ оплачен — сделка сама переходит на «Оплачен»; менеджер закрыл сделку — сайт узнал об этом. Но здесь легко наделать проблем, поэтому подходят к этому осознанно.
Направления синхронизации:
- Заказ → сделка. Изменение статуса заказа на сайте/в 1С двигает сделку по воронке. Например, статус «Оплачен» переводит сделку на соответствующий этап.
- Сделка → заказ. Смена этапа сделки менеджером отражается в заказе или кабинете клиента. Реализуется через вебхуки amoCRM.
Главная опасность двусторонней синхронизации — циклы и конфликты. Если заказ двигает сделку, а сделка двигает заказ, легко получить бесконечную петлю обновлений или «войну» систем, когда каждая перезаписывает изменения другой. Чтобы этого не было, нужно:
- Составить карту соответствия. Каждый статус заказа однозначно сопоставить с этапом сделки — таблица «статус ↔ этап» без пробелов и двусмысленностей.
- Определить ведущее направление для каждого перехода. Решить, кто главный по конкретному переходу: оплату двигает 1С, а «взял в работу» — менеджер в amoCRM. Один переход — один инициатор.
- Защититься от циклов. Обновление, пришедшее по синхронизации, не должно порождать обратное обновление. Помечают источник изменения и не «отбивают» его назад.
- Сделать обработчики идемпотентными. Повторный вебхук или повторная синхронизация по одному событию не должны ломать данные.
На практике многим магазинам достаточно односторонней синхронизации в одну ключевую сторону — например, только «оплата двигает сделку». Полная двусторонняя связка оправдана там, где менеджеры активно управляют заказом из CRM. Не гонитесь за «всё синхронизируется со всем»: чем больше двусторонних связей, тем выше риск рассинхрона. Лучше меньше связей, но надёжных.
Задачи менеджеру и уведомления
CRM полезна не сама по себе, а тем, что заставляет процесс двигаться. Ключевой инструмент здесь — задачи и уведомления. Интеграция с сайтом может не только создавать сделку, но и сразу ставить менеджеру задачу, чтобы обращение не зависло.
- Автозадача на первый контакт. При создании сделки из заявки ставится задача «связаться с клиентом» с дедлайном — менеджер видит её в списке дел.
- Распределение по ответственным. Сделка сразу назначается менеджеру по правилам (по очереди, по товарной группе, по региону), а не «висит ничья».
- Уведомления о новой заявке. Ответственный получает оповещение, что пришло новое обращение, и не пропускает его.
- Эскалация просроченного. Если задача просрочена, а сделка стоит, срабатывает напоминание или уведомление руководителю.
Многое из этого делается штатными средствами amoCRM (автоматизация воронки, триггеры на этапах), а роль интеграции — правильно создать сделку в нужной воронке на нужном этапе, чтобы эти механизмы сработали. То есть задача интеграции — не «настроить всю автоматизацию продаж», а корректно доставить обращение с полными данными в ту точку воронки, откуда автоматизация amoCRM подхватит его дальше. Разделение зон здесь такое же чёткое, как между 1С и CRM: сайт доставляет и обогащает данные, amoCRM ведёт процесс продажи.
Способы интеграции: виджет, API, сервис
Связать сайт с amoCRM можно разными путями, и выбор зависит от сложности сценариев, бюджета и требований к надёжности. Разберём три основных подхода честно, с их плюсами и ограничениями.
| Способ | Когда подходит | Ограничения |
|---|---|---|
| Готовый виджет / модуль | Типовые сценарии: заявки с форм в сделки | Ограниченная гибкость, чужая логика, зависимость от поставщика |
| Прямая интеграция по REST API | Свои сценарии: заказы, дедупликация, UTM, статусы | Нужна разработка и поддержка на стороне сайта |
| Промежуточный сервис / коннектор | Много систем, сложная маршрутизация, очереди | Дополнительное звено, свой хостинг и обслуживание |
Готовый виджет или модуль
Самый быстрый старт: ставите готовое решение, авторизуетесь в amoCRM, настраиваете сопоставление полей — и заявки с форм идут в сделки. Подходит для типовых магазинов с простыми сценариями. Минус — ограниченная гибкость: вы работаете в рамках того, что придумал автор виджета. Как только нужны нестандартные вещи (своя дедупликация, особый проброс UTM, состав заказа по своей логике), готовое решение упирается в потолок.
Прямая интеграция по REST API
Обработчики на стороне сайта сами вызывают REST API amoCRM. Это максимальная гибкость: вы реализуете ровно ту логику, которая нужна вашему бизнесу — воронки, дедупликацию, поля, UTM, статусы. Минус — это разработка, которую нужно написать, протестировать и поддерживать. Для большинства проектов со сколь-нибудь нестандартными требованиями это оптимальный путь, и именно его мы обычно и выбираем.
Промежуточный сервис
Между сайтом и amoCRM ставят отдельный сервис-коннектор, который принимает данные, ставит их в очередь, обрабатывает и раскладывает по системам. Оправдан, когда систем много (сайт, 1С, CRM, телефония, аналитика) и нужна надёжная маршрутизация с очередями и повторами. Минус — это дополнительное звено, которое надо где-то разместить и обслуживать. Для одного сайта и одной CRM он часто избыточен, но для сложной экосистемы бывает единственным вменяемым решением.
Универсального «лучшего» способа нет — есть подходящий под ваши сценарии и бюджет. Мы отталкиваемся от требований: для простой передачи заявок хватит компактной интеграции по API, для сложной экосистемы — сервиса с очередями. Подобрать способ и оценить работу мы помогаем в рамках услуги интеграций с внешними системами.
Защита от потери обращений
Самый болезненный сбой любой CRM-интеграции — «тихая» потеря заявки. Форма отправилась, клиент увидел «спасибо», но в amoCRM сделка не создалась: связь моргнула, токен истёк, CRM была недоступна или сработал лимит API. Если это никак не обработано, обращение исчезает бесследно — и это прямые потерянные деньги, которые никто даже не заметит.
Надёжная интеграция строится так, чтобы заявка не пропадала ни при каком сбое:
- Сначала сохранить, потом отправить. Заявка пишется на стороне сайта до вызова amoCRM — даже если передача упадёт, данные не потеряны и их можно доотправить.
- Очередь и повтор. Если CRM недоступна или сработал лимит API, заявка остаётся в очереди и переотправляется автоматически с задержкой, пока не уйдёт.
- Дублирующее уведомление. Параллельно менеджеру уходит письмо или сообщение — на случай, если CRM временно недоступна, обращение всё равно дойдёт до человека.
- Обновление токена. Интеграция сама следит за сроком access-токена и обновляет его по refresh-токену, чтобы связь не «протухла».
- Мониторинг ошибок. Сбои передачи логируются, и при росте ошибок ответственный получает сигнал — проблему видно до того, как накопятся потери.
Эти меры превращают хрупкую «отправку и надежду» в надёжный конвейер. На потоке обращений именно защита от потери отличает рабочую интеграцию от «вроде настроили». Подход тот же, что и в любой ответственной интеграции, — об этом мы регулярно пишем в материалах рубрики «Интеграции».
Настройка пошагово
Общий порядок настройки связки сайта на 1С-Битрикс с amoCRM выглядит так. Конкретные пункты меню зависят от версии CRM и редакции сайта, но логика неизменна.
- Спроектируйте воронки и поля. Настройте воронки (розница, опт), этапы, обязательные поля сделки и контакта, теги, правила распределения по менеджерам. Это делают до технической связки.
- Создайте интеграцию в amoCRM. В разделе интеграций заведите приложение, получите доступы OAuth 2.0 (client-данные, токены) и сохраните их в защищённом хранилище на стороне сайта.
- Опишите сопоставление данных. Решите, какие поля форм и заказов сайта в какие поля сделки и контакта попадают, как проставляется источник, UTM и теги.
- Настройте дедупликацию. Определите правило поиска клиента (по телефону, email, для B2B — по компании) и нормализацию телефона.
- Подключите обработчики на сайте. На отправку форм и оформление заказа повесьте передачу данных в amoCRM через REST API с предварительным сохранением на стороне сайта.
- Настройте очередь и повтор. Заявки сохраняются и переотправляются при сбое; access-токен обновляется по refresh; параллельно идёт дублирующее уведомление.
- Настройте вебхуки (если нужна обратная связь). Подпишитесь на нужные события amoCRM и сделайте обработчик идемпотентным и защищённым.
- Проверьте на боевых сценариях. Прогоните реальные формы и тестовый заказ, проверьте сделку и контакт в CRM, воронку, этап, источник, ответственного, дедупликацию и поведение при сбое.
Порядок важен: воронка и поля проектируются до технической связки, потому что от них зависит сопоставление данных. Если сначала «подключить amoCRM», а воронку придумывать потом, сопоставление придётся переделывать. Если процесс продаж сложный — с несколькими воронками, распределением и автоматизацией, — настройку CRM и интеграцию стоит вести вместе, единой командой.
Риски и лимиты API amoCRM
Честный разговор об интеграции невозможен без темы ограничений. У API amoCRM, как у любого облачного сервиса, есть лимиты, и их игнорирование — частая причина, по которой «самописная интеграция иногда теряет заявки».
- Лимит частоты запросов. Есть ограничение на число запросов к API в единицу времени. При потоковой отправке и особенно при массовой синхронизации нельзя слать запросы «в лоб» — часть отклонится. Решение: очередь и разумный темп отправки.
- Лимиты пакетных операций. Массовое создание/обновление сущностей делают пакетами ограниченного размера. Большие выгрузки бьют на порции.
- Срок жизни токенов. Access-токен короткоживущий, его нужно вовремя обновлять по refresh-токену. Просроченный токен — и запросы перестают проходить.
- Ограничения структуры. Количество полей, воронок и другие структурные лимиты аккаунта стоит учитывать при проектировании, чтобы не упереться в потолок после запуска.
- Доступность сервиса. Облачная CRM может быть временно недоступна (профилактика, сбой) — интеграция обязана это переживать без потери данных.
Правильная интеграция закладывает работу с лимитами с самого начала: отправка идёт через очередь, запросы группируются в пакеты где возможно, временные ошибки и превышение лимита приводят к повтору с задержкой, а не к потере заявки. Это ровно те детали, которые отличают устойчивую связку от «скрипта, который работает, пока поток небольшой». Конкретные значения лимитов меняются и зависят от тарифа, поэтому актуальные цифры всегда сверяют с текущей документацией amoCRM, а не берут по памяти.
Частые ошибки интеграции с amoCRM
- Путают amoCRM с 1С и Битрикс24. Ждут от CRM учёта остатков или каталога, а от обмена с 1С — воронки продаж. Из-за этого ставят неверную задачу.
- Нет разделения ролей. Заказ правят и в 1С, и на сайте, и в CRM — данные расходятся. Не зафиксирован «хозяин» заказа и клиента.
- Заявка теряется при сбое. Нет очереди, повтора и обновления токена — при недоступности CRM или превышении лимита обращение исчезает молча.
- Дубли контактов. Нет дедупликации по телефону и email — один клиент превращается в несколько карточек, аналитика и история врут.
- В amoCRM льют каталог и остатки. CRM засоряется учётными данными, которым место в 1С, и превращается во «вторую 1С».
- Токены в открытом коде. Доступы OAuth хранятся небезопасно или светятся в репозитории — прямой риск компрометации CRM.
- Теряется источник и UTM. Метка канала не доходит до сделки — невозможно посчитать эффективность рекламы и построить сквозную аналитику.
- Грязное сопоставление полей. Имя клиента попадает в комментарий, телефон — не в поле телефона; ломается дедупликация и связь с телефонией.
- Двусторонняя синхронизация без защиты от циклов. Заказ двигает сделку, сделка двигает заказ — получается петля и «война» систем.
- Воронку придумали после интеграции. Связку настроили, а воронка не отражает процесс — приходится переделывать сопоставление данных.
Чек-лист внедрения
- Системы разведены. Понятно, что в 1С (учёт), что на сайте (витрина), что в amoCRM (продажи); amoCRM не путают с 1С и Битрикс24.
- Роли зафиксированы. Определён «хозяин» заказа и клиента, направление синхронизации каждого поля.
- Воронки готовы. Этапы, обязательные поля, теги, правила распределения по менеджерам настроены до технической связки.
- Доступы безопасны. OAuth-токены в защищённом хранилище, канал по HTTPS, минимум прав, автообновление по refresh.
- Поля сопоставлены. Поля форм и заказов аккуратно ложатся в поля сделки и контакта, телефон и email — правильными типами, проставляются источник и UTM.
- Дедупликация включена. Поиск контакта по телефону/email до создания, нормализация номеров.
- Защита от потери. Заявка сохраняется на сайте, есть очередь, повтор с учётом лимитов API и дублирующее уведомление.
- Задачи и распределение. При создании сделки ставится задача и назначается ответственный, обращение не «висит ничьим».
- Аналитика настроена. Источник и UTM доходят до сделки, отчёты по каналам работают.
- Синхронизация статусов проверена. Карта «статус ↔ этап» без пробелов, защита от циклов, идемпотентные обработчики.
- Проверено на боевых сценариях. Реальные формы и заказ, поведение при сбое CRM и превышении лимита, чистота данных.
Вывод
Интеграция витрины на 1С-Битрикс с amoCRM закрывает разрыв между сайтом и отделом продаж: заявки с форм и оформленные заказы автоматически становятся сделками в воронке, и ни одно обращение не теряется в почте или мессенджерах. Главное — не путать системы и заранее развести роли: 1С отвечает за учёт, сайт — за витрину, amoCRM — за продажи и работу с клиентом. amoCRM — это CRM про сделки, а не вторая 1С и не корпоративный портал.
Сделайте связку надёжной: авторизация по OAuth с обновлением токенов, дедупликация контактов по телефону и почте, защита заявок очередью и повтором с учётом лимитов API, передача источника и UTM — это то, что отличает рабочую интеграцию от формальной. Спроектируйте воронку под ваш процесс продаж до технической настройки, зафиксируйте, где «хозяин» заказа, и договоритесь о направлении синхронизации. Тогда amoCRM станет честным источником правды по продажам, а вы наконец увидите, сколько обращений приходит, откуда они и во что превращаются.