По нашему опыту, «нормального API нет» почти никогда не значит «связать нельзя». Обычно API есть, но он платный, урезанный или не отдаёт нужного, а рядом лежит штатный обмен, про который никто не вспомнил: у 1С — обмен с сайтом, у Яндекс Маркета — файл с товарами по ссылке, у Тильды — встроенная отправка заявок в CRM.
Связать сайт с amoCRM, Битрикс24, 1С или маркетплейсом можно шестью способами. От надёжного к хрупкому:
- API и вебхуки.
- Обмен файлами.
- Готовая интеграция — встроенная или через сервис-посредник.
- Почта.
- База данных напрямую.
- Работа через интерфейс, как человек.
Правило выбора: сначала проверьте готовое — встроенную интеграцию, штатный обмен 1С с сайтом, модуль для вашей CMS. Если оно закрывает задачу, берите его: это дешевле всего. Если нет — берите самый верхний доступный способ из списка и спускайтесь ниже, только если он закрыт.
Сразу к своему случаю: amoCRM и Битрикс24 · Telegram · 1С · маркетплейсы · когда хватит готового · уже сломалось.
Шесть способов, от надёжного к хрупкому
1. API и вебхуки
API — вход для программ, который система открыла и описала сама. Вебхук — обратное направление: система сама сообщает на ваш адрес о событии. Если нужные данные в API есть, это лучший способ: они приходят за секунды.
Ломается API обычно не потому, что «упал», а из-за правил, которые никто не прочитал: лимитов на запросы, ключей со сроком действия, вебхуков, которые ждут ответа пару секунд и после нескольких повторов сдаются. Цифры — в разделах про amoCRM, Битрикс24 и маркетплейсы. Владеть решением на API дешевле всего, если всё это заложено с первого дня.
«Нормального API нет» здесь значит одно из двух: доступ платный, как у облачного Битрикс24, или API не про ваш случай. Например, через API в «Неразобранное» amoCRM можно положить заявку с формы или звонок, а письмо нельзя.
2. Обмен файлами
Подходит для данных, которые меняются пачкой и терпят задержку: каталог, цены, остатки.
Обмен 1С с сайтом идёт по открытому протоколу «1С» и «1С-Битрикс», данные внутри — в формате CommerceML. Начинает его всегда 1С: по расписанию или по кнопке приходит на сайт, отдаёт каталог, цены и остатки и забирает заказы. YML — формат файла с товарами для Яндекс Маркета: магазин выкладывает файл по ссылке, Маркет сам его скачивает. Где стандарта нет, остаётся CSV или Excel по расписанию: одна система кладёт выгрузку, другая забирает.
Ломается формат: переименовали колонку, сменили кодировку, завели два товара с одним артикулом. И сам файл: выгрузка упала на середине, и полкаталога выглядит распроданным. Стандарты меняются редко — описание обмена 1С с сайтом на ИТС датировано 2009 годом, — поэтому владеть дёшево. Дорого другое: обмен настраивают двое, специалист по 1С и разработчик сайта, и при поломке каждый проверяет только свою половину.
3. Готовая интеграция
Подходит, когда связка типовая — «форма → CRM → уведомление», «учёт → площадка» — и обе системы есть в списке.
Встроенная уже есть в одной из систем: формы Тильды отправляют заявки больше чем в 24 сервиса, 1С:УНФ и Управление торговлей сами работают с маркетплейсами.
Посредник — сервис, где связку собирают мышкой. У российского Albato серверы в России, а тариф «Эксперт» стоит 2200 ₽ в месяц за 1000 транзакций, при оплате за год — 1760 ₽. Транзакция — одно действие после события: цепочка «заявка → строка в таблице → сообщение в Telegram» тратит две, так что пакета хватит примерно на 500 заявок; сверх пакета транзакции на 50% дороже. ApiX-Drive, несмотря на русскоязычный сайт, по собственному заявлению с Россией и Беларусью не работает: Битрикс24, amoCRM, МойСклад и Тильду он отключил, а аккаунты с российскими и белорусскими данными блокирует без возврата денег. Если есть свой сервер и человек при нём, подойдёт n8n: бесплатную редакцию ставят к себе, лицензия разрешает её для внутренних задач компании.
Ломается всё, чего автор интеграции не предусмотрел: разводка заявок по ответу внутри формы, обязательные поля, товары в сделке. Встроенная интеграция amoCRM с Авито, например, передаёт только текст, без файлов и видео. Владение — аренда, пока пользуетесь. Зато за изменениями чужих API следит поставщик, а не вы.
4. Почта
Подходит, когда система умеет только присылать письма: старый сайт, сервис записи, поставщик с прайсом во вложении. CRM разбирают такие письма сами: amoCRM кладёт письма с незнакомых адресов в «Неразобранное», а «Автопочта» заполняет из шаблонных писем поля сделки и контакта; Битрикс24 создаёт лиды из писем, если в настройках ящика включена интеграция с CRM.
Ломается шаблон: поменяли тему или порядок строк — и телефон молча попадает в поле «Имя» или теряется. Плюс спам-фильтр и переполненный ящик. Владеть дёшево, пока письмо не меняется. Почта хороша и как запасной канал: копия каждой заявки на ящик спасает, когда основная связка лежит.
5. База данных напрямую
Подходит, когда база ваша — свой сайт, своя программа — или поставщик прямо разрешает читать её таблицы. Безопаснее читать, а не писать, и из копии, а не из рабочей базы.
С 1С так нельзя: лицензия запрещает обращаться к данным средствами СУБД в обход платформы — и на запись, и на чтение. Законные входы в 1С — её штатные механизмы, о них в разделе про 1С.
Ломается структура: таблицы — внутреннее устройство программы, а не обещанный интерфейс, и с обновлением меняются без предупреждения. Запись в обход программы пропускает её проверки: остаток в таблице поменялся, а связанные с ним записи — нет. Владеть дёшево на старте и дорого после каждого обновления.
6. Через интерфейс
Последний вариант, и только при законном праве доступа: это ваш кабинет, ваши данные, и правила сервиса так работать не запрещают. Программа работает с сайтом как человек в браузере или через его внутренний интерфейс — это и есть интеграция без API в чистом виде.
Начинать надо с правил: оферта Wildberries разрешает продавцу автоматическую интеграцию с порталом только через публичный API, так что там этот способ отпадает.
Ломается всё: редизайн, проверка на робота, слетевший вход. В нашей работе для продавца на площадке без API API нет ни у площадки, ни у поставщика, и один шаг автоматизировать нельзя вовсе: вход к поставщику подтверждают с телефона, поэтому система отправляет код продавцу в чат и ждёт. Владеть таким решением дороже всего: оно требует внимания после каждого редизайна, смены защиты или порядка входа на той стороне, и знать это надо до старта. Как учесть это в расчёте — в статье о цене ручной операции.
Как выбрать способ
| Способ | Свежесть данных | Хрупкость | Цена владения | Когда брать |
|---|---|---|---|---|
| API и вебхуки | секунды | низкая | низкая, если учтены лимиты и ключи | нужные данные есть в API |
| Обмен файлами | от получаса до суток | низкая у стандартов, средняя у CSV | низкая | каталог, цены, остатки |
| Готовая интеграция | секунды или интервал опроса | средняя | аренда: тариф или подписка | проверять первой; связка типовая, обе системы в списке |
| Почта | минуты | средняя | низкая, пока шаблон не меняется | система умеет только письма |
| База напрямую | мгновенно | средняя | растёт с каждым обновлением | база ваша или доступ разрешён; не для 1С |
| Через интерфейс | как настроите | высокая | самая высокая | других входов нет, право доступа есть |
Оценки хрупкости и цены владения — наши, по опыту. Чтобы выбрать, ответьте на три вопроса:
- Как быстро нужны данные. Заявка в CRM за секунды и остатки на площадку раз в час — разные задачи: первой нужен вебхук, второй хватит файла.
- Кто меняет систему на той стороне. Вы, ваш подрядчик по 1С или площадка, которая вас не спросит. Чем меньше вы контролируете ту сторону, тем выше по таблице стоит держаться.
- Что будет, если обмен молча встанет на сутки. Потеряете заявки, продадите то, чего нет на складе, — или никто не заметит. От ответа зависит, сколько вкладывать в журнал и сверку.
Способы можно смешивать: заказы — вебхуком, каталог — файлом раз в сутки, копия каждой заявки — на почту.
Интеграция сайта с amoCRM и Битрикс24
Любой сайт. Проще всего вставить форму самой CRM: у Битрикс24 это CRM-формы, у amoCRM — конструктор форм, заявки с которого попадают в «Неразобранное». Разработка не нужна. Если форма должна остаться своей, нужен модуль для вашей CMS, сервис-посредник или обработчик, который пишет в CRM через API.
Тильда. Интеграция с amoCRM и облачным Битрикс24 встроена: Настройки сайта → Формы. Для amoCRM можно включить добавление сделок с поиском дублей, а чтобы разные формы попадали в разные воронки и к разным ответственным, заводят несколько приёмщиков — так Тильда называет подключённые сервисы. Если этого хватает, настройте по справке Тильды: разработчик не нужен.
Что стоит знать заранее:
- Битрикс24 — только облако и только за деньги. Коробочную версию Тильда подключает лишь через вебхук. Облачной нужны платный тариф и подписка «BitrixGPT + Маркетплейс» — она же открывает REST API для любых связок. На тарифе «Базовый» подписка стоит 1 000 ₽ в месяц без НДС сверх тарифа, сам тариф — от 1 990 ₽ в месяц при оплате за год (цены на октябрь 2026). Без подписки Тильда напишет в журнал ошибок «REST is available only on commercial plans».
- Связка с Битрикс24 слетает от простоя. Подключение, которым месяц не пользовались, аннулируется. Чтобы не слетело, раз в месяц отправляйте заявку через форму или открывайте Настройки сайта → Формы → «Настройки» у Битрикс24 и нажимайте «Подключить», если кнопка есть.
- amoCRM. Поля, созданные интеграцией, удалять нельзя, только переименовывать. Значения списков в форме должны совпадать со списками в amoCRM. Если Тильда пишет, что значение не совпадает, её справка советует сменить в amoCRM тип таких полей на текстовый.
- Ошибки Тильда пишет в «Заявки → Журнал ошибок» — туда первым делом, если заявка не дошла до CRM.
Встроенного не хватает, когда заявку надо разводить по ответу внутри формы (выбрали Минск — в одну воронку, Москву — в другую), сверять с 1С, отправлять в коробочный Битрикс24 или в CRM не из списка. Тогда нужен вебхук на свой обработчик. Две вещи в нём проверьте сами. UTM-метки дойдут, только если в настройках вебхука включено «Посылать Cookie» и посетитель пришёл с меткой не раньше чем за 30 дней до заявки. Адрес обработчика — ровно тот, что дал разработчик, с https и без переадресации, иначе данные заявки могут потеряться.
Если обработчик пишет в CRM через API, держите в голове четыре правила:
- Лимиты. amoCRM пропускает не больше 7 запросов в секунду от одной интеграции, дальше — ответ 429, а при повторных нарушениях закрывает аккаунту доступ к API. Облачный Битрикс24 — в среднем 2 запроса в секунду с запасом на всплеск до 50, дальше ответ 503.
- Срок доступа. Ключ обновления в amoCRM одноразовый и живёт 3 месяца: если интеграция три месяца им не пользовалась, доступ пропадает. Для интеграции под один ваш аккаунт проще выпустить долгосрочный токен — от 1 дня до 5 лет — и записать дату окончания в календарь.
- Вебхуки amoCRM ждут ответа 2 секунды. Нет ответа или пришла ошибка — amoCRM повторит через 5 и ещё через 15 минут, а если сервер отвечал ошибкой 5xx — ещё через 15 минут и через час. Больше 100 неудачных ответов за 2 часа — и хук отключается, пока его не включат вручную. Отсюда правило: ответить сразу, обработать потом.
- Адрес входящего вебхука Битрикс24 работает с правами сотрудника, который его создал. Держите его на сервере, а не в коде страницы.
Заявки с сайта в Telegram
Уведомление о заявке в Telegram — самая простая связка. На Тильде она встроена: Настройки сайта → Формы → Telegram, бота можно добавить и в рабочую группу. На своём сайте сообщение отправляет сервер через бота.
Главная ловушка: Telegram — канал уведомлений, а не хранилище. Если заявка существует только в сообщении, сбой по дороге стирает её без следа. У нас самих уведомления какое-то время молча не доходили: с нашего сервера в российском дата-центре не проходит соединение с api.telegram.org. Заявки уцелели, потому что сначала пишутся в базу и только потом уходят в Telegram, а уведомления теперь идут через отдельный узел-посредник. На Тильде копия заявки лежит в разделе «Заявки» — по умолчанию месяц; срок можно поднять до 90 дней в Настройках сайта → Формы → Общие настройки форм. Если уведомления уже пропадают — разбор по звеньям.
Интеграция сайта с 1С
Штатный путь — обмен по CommerceML из раздела про файлы. Какая у вас 1С, важнее, чем какой у вас сайт. В списке модулей обмена 1С-Битрикс — Управление торговлей, УНФ, ERP, Комплексная автоматизация и Розница. УНФ, кроме того, сама работает с InSales, UMI.CMS, HostCMS, Shop-Script и любым сайтом, который понимает CommerceML.
Обмен начинает 1С, поэтому, пока она выключена на обновление, заказы ждут на сайте. Если же сайт сам кладёт заказ в 1С в момент оформления, в такие часы заказы теряются, и нужна очередь.
1С:Бухгалтерии в списке модулей нет. Сама она умеет только загружать с сайта заказы — с доставкой и онлайн-оплатой (раздел «Торговля через интернет-магазины»), а выгружать на сайт каталог, цены и остатки, как УТ или УНФ, не умеет. Если в учёт нужны только заказы, начните со штатной загрузки; с какими CMS она работает в вашей редакции, уточните у специалиста по 1С. Не подошла — спросите разработчика про формат EnterpriseData: в упрощённом режиме сайт сам передаёт продажи в Бухгалтерию, без настройки обмена в базе. Если нужен ещё и каталог с остатками, пути такие:
- REST-интерфейс по OData. Платформа, начиная с версии 8.3.5, сама открывает данные наружу. Программисту 1С нужно опубликовать базу на веб-сервере, выбрать, какие данные открыть, и завести для обмена отдельного пользователя.
- HTTP-сервис. Программист 1С пишет в базе вход под вашу задачу.
- Файл по расписанию. Самый простой и самый медленный путь.
Если сайт — главный канал продаж, посчитайте и переход на УНФ или Управление торговлей, где обмен с сайтом встроен.
Тильда и 1С. Тильда синхронизирует товары и заказы с 1С:Управление торговлей по CommerceML, но сама предупреждает: настраивать должны опытные 1С-разработчики, версии новее 11.2 не тестировались, а по CommerceML к Тильде подключается только одна система — 1С или МойСклад.
Лицензии. Обращение к базе через веб-сервисы — тоже доступ: клиентских лицензий 1С нужно столько, сколько рабочих мест обращаются к базе одновременно. Уточните это до старта у того, кто ведёт вашу 1С.
Интеграция сайта с маркетплейсами
Выгрузить товары, цены и остатки на Озон, Wildberries или Яндекс Маркет с программистом — путь прямой: у всех трёх есть API для продавцов, а Маркет ещё и сам присылает уведомления о новых заказах и возвратах. Про токен WB владельцу стоит знать три вещи: создаёт его только владелец профиля в разделе «Интеграции по API», и показывается он один раз; живёт он 180 дней, за 3 дня до конца портал предупредит, но напоминание лучше поставить и себе; при смене телефона владельца все токены придётся выпустить заново.
Если программиста нет:
- Через 1С. УНФ обновляет карточки, цены и остатки на Озоне, Маркете и WB. Управление торговлей с Озоном и Маркетом работает напрямую: выгружает каталог, цены и остатки для продажи со своего склада (FBS) и забирает заказы. На WB она через промежуточный сервис 1С выгружает только цены и остатки FBS, а карточки придётся заводить иначе (подробности у 1С).
- Через МойСклад. Он сам принимает заказы с Озона, WB и Маркета и выгружает туда остатки, а сайт на Тильде подключается к нему по тому же CommerceML, что и к 1С.
- YML-файл для Маркета. Маркет скачивает файл по ссылке раз в 30 минут; отдаваться файл должен не дольше 150 секунд, а без атрибута
dateостатки не обновятся. Маркет советует держать два файла — с товарами и с условиями размещения, — и ведут они себя по-разному. Убрали товар из первого — в каталоге он останется, удалить можно только в кабинете. А во втором должны быть все товары, которые продаются сейчас: какого нет, тот пропадает с витрины. Чтобы вернуть его, мало снова добавить строку в файл: проверьте в кабинете, что в поле «Скрыть с витрины» не стоит «Да» и обновление этого поля из файла включено. - Шаблоном в кабинете, руками. Для сотни товаров раз в неделю это может оказаться дешевле любой интеграции — посчитайте в калькуляторе ручной операции.
Обратный случай — главный каталог на WB: Тильда сама подтянет оттуда на сайт товары и остатки по токену только на чтение, цены — не чаще раза в 15 минут. Работает это, только если в профиле Тильды указана страна Россия (справка).
Автоматизировать кабинет WB в обход API запрещает оферта. Поэтому на крупных площадках «без API» на деле значит «через 1С, МойСклад, файл или руками». Где API для продавцов нет вовсе, остаётся шестой способ — если правила площадки его допускают.
Когда хватит готового — и мы не нужны
- Нужна только заявка в CRM: форма самой CRM на любом сайте или встроенная интеграция Тильды с amoCRM и облачным Битрикс24 (ему нужна подписка). Разные воронки для разных форм — через несколько приёмщиков.
- Уведомления в Telegram: встроенный приёмщик Тильды или бот — если заявка при этом где-то сохраняется.
- Сайт с модулем обмена + 1С:УТ, УНФ, ERP, КА или Розница: штатный обмен. Нужен специалист по 1С, а не разработка.
- 1С:Бухгалтерия, в учёт нужны только заказы, и она работает с вашей CMS: штатная загрузка заказов.
- 1С:УТ или УНФ + Озон, Маркет, WB: встроенная интеграция 1С (у УТ на WB уходят только цены и остатки).
- Заявки приходят письмами: подключите ящик к amoCRM или Битрикс24.
- Цепочка «форма → CRM → Telegram» в пределах пакета: Albato или аналог.
- Сотня товаров раз в неделю: посчитайте ручной шаблон в кабинете — может выйти дешевле.
Проверить связку можно без подрядчика: раз в месяц — тестовая заявка с каждой формы, раз в неделю — «Журнал ошибок» на Тильде, раз в день — число заявок на сайте против числа сделок в CRM, заказов на сайте — против заказов в 1С. Расходятся — связка сломалась.
Своя интеграция у нас начинается от 50 000 ₽ — это около двух лет подписки на младший пакет Albato. Если связка целиком описывается настройками готового, готовое выгоднее, и мы скажем это сами.
Мы нужны, когда в связке появляется «если»: если в заявке выбран Минск — в эту воронку, если товара нет в 1С — создать, если площадка ответила отказом — разобрать, каким именно. Когда у системы нет ни API, ни выгрузки; когда у вас Бухгалтерия, а на сайт нужно выгружать каталог и остатки, или коробочный Битрикс24; когда объём упирается в лимиты. Это наша услуга интеграций.
Что ломается в любой интеграции
Способ определяет, как часто связка ломается. А что именно ломается, почти в любом обмене данными между программами одинаково.
Дубли
Сайт отправил заявку, CRM её записала, но ответ потерялся по таймауту. Сайт повторяет — в CRM две сделки: если источник умеет повторять, одно событие рано или поздно придёт дважды. Даже пакетный метод amoCRM с контролем дублей (если тот включён для интеграции) сверяет новые сделки только с уже сохранёнными, а заявки внутри одной пачки между собой — нет.
Дубли рождаются и там, где их не ждёшь. В нашей обработке заказов на торговых площадках их порождала слишком строгая проверка: площадка создавала лот и вместе со ссылкой на него возвращала замечание вроде «название обрезано», обработчик считал это ошибкой и на следующем проходе создавал лот снова. Теперь успехом считается ссылка на лот.
Защита — номер операции: у каждой заявки и заказа есть номер (у Тильды это tranid), и перед записью связка проверяет, не обработан ли он уже.
Потеря данных при сбое
Обработчик лёг на два часа. Вебхуки amoCRM за это время исчерпали попытки, Тильда — тоже: она повторяет отправку всего дважды, с интервалом в минуту. Заявка осталась только в самой Тильде и в её журнале ошибок, если туда кто-то заглянет.
Защита — сначала сохранить, потом обрабатывать. Обработчик заказов для площадки без API записывает каждый шаг заказа в файл: после перезапуска он знает, где остановился, и оплаченный заказ не теряется.
«Отправлено» — ещё не «доставлено»
Ответ «принято» (код 200) значит, что сервер ответил, а не что данные на месте. Поставщик в той же связке отвечал успехом и тогда, когда покупка не прошла, поэтому система считает покупки в истории до и после и верит следствию, а не ответу.
Защита — проверять результат, а не ответ: после записи найти сделку по номеру заявки и только тогда считать заявку доставленной.
Источник поменял формат
В CRM сделали поле обязательным — и с этой минуты лиды с сайта не создаются. Продавец переименовал товар — сопоставление по названию молча разваливается; поэтому та же система узнаёт заказ по случайной метке в описании, а не по названию.
Защита — журнал (что пришло, что ушло, что ответили) и тревога на первую ошибку, а не на сотую.
Пустой ответ принимают за «ничего нет»
Выгрузка упала на середине, вход слетел, кабинет на обслуживании — и пришёл пустой или неполный список. Поверите ему — обнулите остатки и уберёте товары с витрины. В мониторинге игровых витрин товар считается удалённым только после трёх обходов подряд без него, а если пропало больше половины, удаления не применяются вовсе. В сервисе данных по артикулу ответ по каждой части говорит, что с ней случилось: свежие данные, кэш, не найдено, отказ. Иначе «заблокировано» тихо превращается в «нет цены».
Вопросы подрядчику до старта
Номера операций и повторы владелец сам не пишет, но может проверить, заложил ли их подрядчик:
- Что будет, если CRM ответит через 10 секунд?
- Как связка поймёт, что эта заявка уже записана?
- Какие операции не повторяются никогда? В нашей обработке заказов, например, отправка платежа не повторяется ни при каком сбое — это записано в коде прямым запретом.
- Где я увижу, что ушло и что ответили?
- Кто узнает, что за день не пришло ни одной заявки?
- Что помешает обнулить полкаталога за один проход?
Внятного ответа нет — значит, этого в связке нет.
Интеграция уже сломалась: как найти, чья ошибка
В связке «сайт — 1С — CRM — площадка» до четырёх хозяев: разработчик сайта, специалист по 1С (бывает, у другого подрядчика), администратор CRM и сама площадка. Каждый видит свой кусок и честно говорит «у меня всё работает». Чтобы разбор не превратился в неделю переписки, соберите:
- Доступы ко всем участкам или контакты тех, у кого они есть.
- Журналы с обеих сторон: в Тильде — журнал ошибок, в 1С — журнал обмена, на сайте — лог обработчика.
- Один конкретный пример: какая заявка или товар, когда, что ожидали и что получили.
- Что и кто менял в последние дни.
Подсказки по ответам: слово failure при обмене с 1С вернул сайт — начинайте с его журнала. Ответ 429 от amoCRM, 503 или 429 от Битрикс24 — упёрлись в лимит частоты или времени выполнения. 402 от amoCRM — кончилась подписка. Лиды перестали создаваться в один день — ищите, что в этот день поменяли в CRM.
Если у связки нет хозяина и чинить её некому, это наша работа с застрявшими проектами.
Посчитать, во что обходится ручной перенос данных сейчас: калькулятор стоимости ручной операции.
Если готовое не подходит, опишите задачу: ответим, каким из шести способов её делать, что в ней будет ломаться и сколько это стоит.