Заказчику говорят "нужна интеграция по API", и на этом объяснение обычно заканчивается. Разбираем, что такое API-интеграция, какие данные она гоняет между сайтом и другими программами и почему она стоит дороже, чем ещё одна страница.
Разговор чаще всего начинается так: клиент видит в смете строку "обмен с CRM, 60 000 рублей" и не понимает, за что платит. Заявка ведь просто перекладывается из формы в карточку. Логика понятная, но она не учитывает вторую сторону обмена, которую мы не контролируем.
Что такое API, если объяснять без кода
API - это дверь, через которую одна программа обращается к другой по заранее описанным правилам. Человек кнопку не нажимает: запрос отправляет и принимает программа.
Ближайшая бытовая аналогия - окно выдачи на складе. Ходить по стеллажам самому нельзя, вы подаёте бумажку с номером, кладовщик приносит коробку или отвечает "такого номера нет". Формат бумажки задан заранее, самодеятельность не принимается.
Обмен устроен так же. Сайт подаёт запрос в оговорённом виде, а на той стороне отвечают данными или отказом. Половина работы в интеграции это не программирование, а согласование того, как именно выглядит бумажка.
Два направления обмена, и они разной сложности
Заказчики обычно говорят "интеграция" про всё сразу, хотя это два разных куска работы с разной ценой.
Сайт отправляет. Заявка из формы уходит в CRM и становится сделкой с ответственным менеджером. Заказ из корзины падает в учётную систему как документ. Данные о посылке уезжают в службу доставки, оттуда возвращается номер отправления. Это направление проще: мы сами формируем данные, знаем их состав и отвечаем за качество.
Сайт получает. Остатки со склада, актуальные цены, статус заказа для личного кабинета, список пунктов выдачи, история покупок клиента. Здесь мы зависим от чужой системы: как она отдаёт данные, как часто, что делает при обновлении, что присылает вместо цены на товар без цены.
Второе направление почти всегда дороже. Отправить заявку в amoCRM можно за пару дней, а забрать номенклатуру из 1С и разложить её по категориям сайта - отдельный проект, разбирали его в статье про интеграцию сайта с 1С.
Как выглядит путь одной заявки
Без кода, но по шагам. Человек заполнил форму и нажал кнопку.
- Сайт собирает данные в структуру: имя, телефон, комментарий, страница, с которой пришла заявка, метки рекламной кампании.
- К запросу прикладывается ключ доступа. Это длинная строка, которую выдаёт принимающая система, чтобы понимать, кто к ней стучится. Ключ хранится на сервере и в браузер не попадает.
- Запрос уходит на конкретный адрес и метод - что-то вроде "создать сделку". У каждой системы свой набор методов, они описаны в документации.
- Приходит ответ. Хороший ответ содержит идентификатор созданной сделки: значит, запись есть и её можно найти. Плохой ответ содержит код и текст ошибки.
Ошибки бывают трёх типов. Отказ по данным ("телефон в неверном формате") лечится правкой на нашей стороне. Отказ по доступу требует нового ключа. Отказ по доступности означает, что вторая сторона легла, и заявку надо повторить позже.
На третьем пункте и ломаются дешёвые интеграции: обмен без обработки сбоев работает до первого технического окна у CRM, а потом заявки уходят в никуда.
Сразу или по расписанию
Обмен бывает мгновенный (событие произошло - запрос ушёл) и по расписанию (раз в час, раз в сутки ночью). Второй вариант звучит хуже, но подходит чаще, чем кажется.
| Что обменивается | Как лучше | Почему |
|---|---|---|
| Заявка с формы | Сразу | Менеджер должен перезвонить в первые минуты |
| Заказ из корзины | Сразу | Клиент ждёт подтверждения |
| Остатки товаров | Раз в час или ночью | Ассортимент меняется медленнее, чем кажется |
| Цены | Ночью | Массовая переоценка днём мешает работе |
| Статусы доставки | Раз в 15-30 минут | Клиенту достаточно этой точности |
| Новые товары и описания | Ночью | Требует проверки контентом |
Мгновенный обмен дороже: нужна очередь, повторные отправки и защита от того, чтобы сайт не подвешивал посетителя в ожидании чужого сервера. Ночная выгрузка делается проще и на многих проектах закрывает задачу полностью.
Отдельный случай - личный кабинет клиента, где данные тянутся из учётной системы прямо в момент открытия страницы. Про требования к нему писали в разборе личного кабинета на сайте.
Что делает интеграцию дорогой
Цену задают пять вещей, и ни одна из них не про красоту сайта.
Нестандартный формат данных. Если на той стороне цена лежит строкой со словом "руб", а количество бывает отрицательным, каждый такой случай обрабатывают отдельно.
Отсутствие документации. Самописная система без описания методов означает, что программист выясняет правила через переписку с её автором. Это недели вместо дней, и срок заранее не предскажешь.
Сопоставление справочников. Самая недооценённая часть. На сайте категория называется "Смесители для кухни", в 1С она "Санттехн. изд. гр. 4", единицы измерения не совпадают, у товара три артикула. Пока таблицы соответствия не составлены, обмен невозможен.
Обработка сбоев. Надо решить, что делать с заявкой, которая не ушла: сколько раз повторять и куда складывать окончательно неудачные.
Разграничение, кто главный. Если цену меняют и на сайте, и в учётной системе, при следующем обмене одна из правок затрётся. Правило "цены из учётной системы, описания с сайта" фиксируют письменно до начала работ.
Что закладывать в работу обязательно
Три пункта, без которых интеграцию нельзя считать сделанной. Они добавляют к смете 15-25 процентов и окупаются на первом же сбое.
Логирование. Каждый запрос и ответ сохраняются с датой. Когда клиент говорит "заявка не дошла", лог за две минуты отвечает, ушла она и что ответила CRM. Без логов начинается перекладывание вины между подрядчиками.
Уведомление о сбое. Если обмен не прошёл, сообщение уходит ответственному сотруднику. Молчащая интеграция опаснее сломанной: она теряет заявки неделями.
Ручная повторная отправка. Кнопка в админке "отправить ещё раз" рядом с неудачной заявкой. Стоит недорого, а спасает, когда CRM полдня была недоступна и накопилось тридцать обращений.
Сроки и порядок цен
Цифры по нашим проектам 2026 года. Диапазоны широкие намеренно: половину стоимости задаёт вторая сторона обмена.
| Задача | Срок | Порядок цены |
|---|---|---|
| Формы сайта в CRM с метками рекламы | 2-4 дня | 15 000 - 40 000 руб. |
| Заказы из корзины в учётную систему | 5-10 дней | 40 000 - 90 000 руб. |
| Остатки и цены с сайта из 1С | 2-4 недели | 80 000 - 250 000 руб. |
| Расчёт доставки и создание отправлений | 5-12 дней | 35 000 - 120 000 руб. |
| Личный кабинет с данными из учётной системы | от 4 недель | от 200 000 руб. |
К любой из строк добавляется поддержка: чужие API меняются, и раз в год-полтора обмен требует правок. Это нормальный режим, а не брак работы.
Сценарии по конкретным системам разобраны отдельно: amoCRM, службы доставки. Если CRM ещё не выбрана, полезно сначала прочитать сравнение систем: менять её после настроенного обмена дороже, чем выбрать один раз.
Что спросить у подрядчика перед стартом
Короткий список вопросов, который снимает большинство будущих споров.
- Есть ли у второй системы официальная документация по API и открыта ли она? Если нет, кто и в какие сроки даёт описание методов.
- Кто на стороне второй системы отвечает за доступы и вопросы по данным. Нужна фамилия, а не "поддержка 1С".
- Какие поля передаются и в какую сторону. Список полей на бумаге, до начала работ.
- Что считается источником истины по ценам, остаткам, описаниям.
- Как часто идёт обмен и что происходит, если вторая сторона недоступна.
- Где смотреть логи и кто получает уведомления о сбоях.
- Входит ли в цену тестирование на реальных данных, а не на трёх выдуманных товарах.
- Что делаем, если API второй стороны изменится: правки по часовой ставке или в рамках поддержки.
- Сколько заявок или товаров в сутки обмен должен выдерживать. Выгрузка на 200 позиций и на 40 000 позиций делается по-разному.
Отдельно проговорите тестовый контур: обмен сначала гоняют в тестовой базе, а на боевую переключают после проверки. Если тестовой базы нет, срок вырастет.
Чего ждать от интеграции по деньгам
Обмен данными не приносит заявок сам по себе, он убирает ручную работу и ошибки переноса. Считать выгоду проще всего в часах: если менеджер тратит два часа в день на перенос заказов и правку остатков, за год набегает около 500 часов. На этом фоне сумма в 80 000 рублей за обмен выглядит иначе, чем в первый момент.
Если система самописная и без документации, закладывайте запас по времени и делайте работу этапами: сначала одно направление, потом второе.
Соберите список систем, с которыми должен подружиться сайт, и передайте его через бриф на разработку. По названиям и объёму данных вилку называем сразу, а точную цифру фиксируем после документации второй стороны.

