Подхват проекта — интеграции и API

Подхват интеграций и API от другого подрядчика

Заберём интеграции, API, обмены и middleware у предыдущей команды. Начинаем с аудита потоков данных, webhooks, очередей, CRM, 1С, платежей, маркетплейсов, логов, ретраев и доступов. Дальше — стабилизация, поддержка или развитие по согласованной модели.

  • Проверяем не только код, но и реальные потоки данных между системами.
  • Сначала убираем потери, дубли и ручные обходы, потом берёмся за новые интеграции.
  • Отчёт остаётся у вас, даже если дальше вы выберете другую команду.

Что мы понимаем под подхватом

Подхват интеграций — это возврат контроля над потоками данных, а не «починить один webhook».

Интеграция в проде — это не только код адаптера. Это контракты API, webhooks и события, очереди и фоновые задачи, таблицы обмена и статусы операций, ретраи и dead letters, ключи и токены, ручные процедуры восстановления, логи и трассировка. Подхват — это вернуть контроль над всем перечисленным.

Что мы относим к подхвату интеграций

Разбор схемы обменов между системами, фактических потоков данных, контрактов API и webhooks. Аудит очередей, ретраев, идемпотентности и dead letters. Состояние логов, мониторинга и ручных процедур. Письменный отчёт с приоритезированными рисками. Передача репозиториев, серверных доступов, ключей и аккаунтов с письменным актом. Дальше — поддержка или развитие интеграций по согласованной модели.

Что подхватом интеграций у нас не считается

Разработка новой интеграции с нуля без разбора текущей. Точечная правка одного обмена без аудита и без ответственности за последствия для смежных систем. Работа без подтверждённых прав на код и доступа хотя бы на чтение к подключённым системам. Сопровождение интеграций, для которых бизнес-процесс ещё не описан и неясно, какие данные должны ходить между системами.

Когда нужен подхват

Признаки, по которым стоит начинать разговор.

Если совпали два-три пункта — пора смотреть, что на самом деле происходит с обменами.

Подрядчик пропал или не чинит обмены

Команда перестала отвечать, обмены работают «как есть», запросы на исправление висят неделями, новые требования откладываются «до прояснения ситуации».

Данные между системами расходятся

Цифры в CRM, 1С, сайте и маркетплейсе не совпадают. Раз в месяц кто-то сверяет таблицы руками и правит расхождения, но причина повторяется.

Заказы, оплаты, статусы или остатки теряются

Часть операций не доезжает до целевой системы, статус заказа уезжает «в воздух», остаток на складе расходится с тем, что видит покупатель.

Webhooks приходят, но не обрабатываются стабильно

Платёжный или маркетплейс-вебхук иногда не обрабатывается, ретраи неуправляемы, дубликаты приводят к двойным операциям.

Очереди копятся или задачи выполняются повторно

Воркеры не успевают разгребать очередь, или одна и та же задача уходит в работу дважды. Ручные правки в базе становятся регулярной операцией.

Интеграции ломаются после релизов

Обмен с CRM, 1С, сайтом, мобильным приложением или ботом ломается после очередного релиза одной из систем. Причину не ловит никто из команд.

Нет логов, по которым можно понять потерю

Когда операция не доехала, восстановить её путь невозможно. Логи разрозненны, нет общего trace id, в каждой системе свой формат.

Нужно срочно исправить обмен, никто не понимает схему

Прод горит, бизнес теряет деньги на каждом часе, а единого понимания, что и куда ходит, в команде нет.

Кому не подойдёт

Когда подхват интеграций у нас — не ваша история.

Называем заранее, чтобы не тратить ваше время и не вводить в заблуждение.

Нужна новая интеграция с нуля

Если задача — собрать новую интеграцию без разбора и сохранения старой, это не подхват, а разработка интеграции. Это отдельный формат работы.

Нет доступов к исходникам, логам и подключаемым системам

Если у вас нет подтверждённого доступа хотя бы на чтение к исходникам, логам и системам, между которыми идут обмены, и получить его невозможно — мы не работаем.

Разовая правка без аудита и ответственности

Один webhook, одно поле, без понимания контекста и последствий для смежных систем — это та же история, которая привела в текущую ситуацию. Заходим минимум через аудит.

Бизнес-процесс ещё не описан

Если непонятно, какие данные должны ходить между системами, подхватывать нечего — сначала нужно описать процесс. Здесь мы можем помочь, но это другой формат работы.

Что проверяем в первые дни

Что входит в аудит интеграций.

Сразу не лезем чинить. Сначала проходим по списку и фиксируем состояние, чтобы дальше работать с фактами, а не с предположениями.

Схема потоков данных

Источники и получатели, события и расписания, какие данные ходят между системами, какие статусы операций хранятся и где.

API-контракты, webhooks, авторизация

Версионирование, auth (OAuth, JWT, API keys, подписи), rate limits, идемпотентность, обработка ошибок и формат ответов.

Очереди, retry, dead letters, cron

Как устроены очереди и фоновые задачи, политика ретраев, мёртвые письма, конфликты по подключениям к базе у воркеров и веб-процессов.

База, таблицы обмена, статусы, буферы

Таблицы с очередями событий, статусами операций, временные буферы, ручные правки, наличие индексов под выборки обмена.

Логи, мониторинг, trace и correlation id

Что и куда пишется, есть ли сквозной trace id у одной бизнес-операции через все системы, какие алёрты срабатывают при застоях и провалах.

Подключённые системы

CRM, 1С, сайт, мобильное приложение, бот, платежи, маркетплейсы, ERP-периферия, аналитика. Кто из них источник истины по каждому типу данных.

Доступы, ключи, токены, секреты

На кого оформлены OAuth-приложения, где лежат API-ключи и секреты, какие из них с истекающим сроком, кто и как ротирует credentials.

Сценарии ошибок и ручная дообработка

Что происходит при частичной записи, при повторе операции, при откате одной из сторон. Какие ручные процедуры запускают операторы и как они документированы.

Что вы получаете после аудита

Артефакты, которые остаются у вас.

Артефакты остаются у вас даже в случае, если дальше работаете не с нами.

Отчёт по состоянию интеграций

Письменный разбор кода адаптеров, API, webhooks, очередей, обменов и инфраструктуры с приоритезированными находками.

Карта рисков по API, очередям, данным и доступам

Таблица: риск, вероятность, влияние, приоритет, ответственный. Разнесена по слоям, чтобы видеть, где горит первым.

Схема обменов

Системы, события, направления, где хранятся статусы операций. Удобно использовать как опорную точку для любых дальнейших изменений.

Список доступов и артефактов для передачи

Что и в каком порядке забрать у прошлой команды: репозитории, серверные доступы, OAuth-приложения, API-ключи, аккаунты платежей и маркетплейсов.

План стабилизации на первые 2–4 недели

Список работ после старта подхвата с оценкой трудоёмкости. Цель — снять потери, дубли и ручные обходы.

Backlog технических и продуктовых задач

Сгруппирован по приоритету: что в ближайший релиз, что в следующий, что в техдолг.

Рекомендации по логам, retry, идемпотентности и бэкапам

Куда двигать наблюдаемость и устойчивость, как правильно ретраить, как делать операции идемпотентными и как должна выглядеть рабочая схема бэкапов.

Первый месяц

Как стабилизируем интеграции в первый месяц.

В первый месяц не пересобираем ландшафт. Убираем потери, дубли и ручные обходы, чтобы бизнес перестал терять деньги на каждой операции.

Фиксируем карту потоков и владельцев данных

Чёрным по белому: какая система источник истины по каждому типу данных, куда и какие события ходят, кто отвечает за каждый кусок схемы.

Вводим понятные статусы операций и обработку повторов

Каждой бизнес-операции — статус, время последнего изменения и идентификатор для повторов. Повторная доставка должна быть безопасной, а не «как повезёт».

Наводим порядок с токенами, env и доступами

Переносим секреты из репозитория в безопасное хранилище, ротируем критичные ключи, выдаём роли по принципу наименьших привилегий, фиксируем сроки действия credentials.

Стабилизируем очереди, cron и фоновые задачи

Чиним ретраи, подключаем dead-letter, разводим конкуренцию по подключениям, отлавливаем дублирующиеся cron-задачи на разных серверах.

Включаем логи, алёрты и трассировку критичных операций

Сквозной trace id одной операции через системы, алёрты на застой очередей, рост 5xx у внешних API и расхождения статусов между источниками.

Закрываем потери и дубли данных

Берём топ инцидентов из логов и обращений операторов, разбираем причины, чиним. Пересинхронизацию — только по плану, с бэкапом и сценарием отката.

Документируем ручные процедуры восстановления

Короткие регламенты: что делать оператору при провале webhook, при расхождении статусов, при невыдаче доступа. Без «знания в голове одного человека».

Чего не ломаем при переходе

Что мы намеренно не трогаем в переходный период.

Эти ограничения мы соблюдаем сами, чтобы переход был предсказуемым, а данные — не пострадали.

Не меняем API-контракты без согласования с потребителями

Любое изменение контрактов идёт через согласование с фронтом, мобильным клиентом, ботом, партнёрами и внутренними системами, использующими эндпоинты.

Не отключаем старые обмены, пока не проверены новые

Параллельный режим работы старого и нового обмена с проверкой расхождений идёт до тех пор, пока новый не подтверждён.

Не запускаем массовую пересинхронизацию без бэкапа и отката

Массовая повторная заливка данных без подготовки обычно делает хуже, чем было. Идём только по плану с бэкапом и заранее подготовленным rollback.

Не меняем владельца данных без решения бизнеса

Какая система источник истины — это бизнес-решение, а не техническое. Изменение источника истины — отдельный проект, а не «починим попутно».

Не удаляем ручные обходы, пока не заменили их процессом

Скрипты операторов и ручные правки — это компенсация за дыры в обменах. Убираем их только после того, как обмен закрывает эти дыры сам.

Стек и типовые конфигурации

На каких стеках подхватывали интеграции.

Заходим в проекты на стеках, с которыми работают наши команды. Если стека или системы нет в списке — спросите, честно скажем, готовы ли подхватить или порекомендуем тех, кто делает это лучше.

API

REST, GraphQL, SOAP, webhooks, OAuth, JWT, API keys, подписи запросов.

Очереди и фоновые задачи

RabbitMQ, Redis, Celery, BullMQ, RQ, cron, kafka-подобные шины.

Данные и форматы

PostgreSQL, MySQL, Redis, CSV, XML, JSON, ETL-процессы.

Backend

Python, Node.js, PHP, Go — там, где это уместно.

Бизнес-системы

CRM, 1С, сайты, мобильные приложения, Telegram-боты, платежи, маркетплейсы.

Инфраструктура

Docker, nginx, GitLab CI, GitHub Actions, VPS и cloud, мониторинг.

Частые проблемы

Что чаще всего всплывает на аудите интеграций.

Это не «страшилки». Это то, что регулярно встречается в ландшафтах, приходящих на подхват. Владелец продукта обычно об этом не знает.

Нет единой схемы обменов

Карта потоков данных существует у людей в голове по частям. Целиком её никто не видел, противоречия выясняются по факту инцидента.

Операции не идемпотентны и создают дубли

Повторная доставка webhook или повтор задачи в очереди приводят к двум одинаковым операциям в целевой системе.

Webhooks теряются без retry

Если внешняя система прислала вебхук, а целевая в этот момент недоступна, событие пропадает. Ретраев и dead-letter нет.

Ошибки пишутся в логи, но никто их не видит

Алёртов нет, дашбордов нет, проблема становится видимой только через звонок бизнеса или жалобу клиента.

Токены и ключи лежат в коде

API-ключи CRM, платежей и маркетплейсов закоммичены в репозиторий. После увольнения сотрудника они всё ещё в истории.

Статусы заказов расходятся между системами

В CRM заказ «оплачен», в 1С «новый», в маркетплейсе «отгружен». Операторы ежедневно сверяют таблицы руками.

Ручные cron-задачи запускаются в неподходящее время

Тяжёлый обмен идёт в пиковые часы и кладёт API. Перенос расписания требует знаний, которые есть у одного человека.

Внешнее API меняется, интеграция падает молча

Партнёр или маркетплейс изменили версию API, ответы стали другими, наш код принимает их «как ок» и пишет битые данные.

Нет dead-letter механизма

Проблемные сообщения возвращаются в очередь бесконечно или теряются после нескольких попыток. Отдельной полки для разбора нет.

Пересинхронизация делает хуже, чем было

Массовая повторная заливка без бэкапа и плана отката переписывает корректные данные битыми и создаёт новый каскад инцидентов.

Чек-лист передачи доступов

Что стоит подготовить со стороны заказчика.

Часть пунктов выглядит банально, но именно они срывают подхват интеграций чаще, чем сложный код.

Код

  • Доступ к репозиториям адаптеров и middleware на уровне владельца.
  • Историю веток и тегов без переписанной истории.
  • Конфиги интеграций и lock-файлы зависимостей.
  • Пайплайны CI/CD и секреты сборки.

Подключённые системы

  • CRM, 1С, сайт, мобильное приложение, бот — доступ на уровне администратора.
  • Платёжные провайдеры и эквайринг, оформленные на ваш аккаунт.
  • Кабинеты маркетплейсов и партнёрских API.
  • Аналитика и сервисы рассылок, через которые ходят события.

API и ключи

  • OAuth-приложения, выпущенные подрядчиком, с переводом на ваш аккаунт.
  • API-ключи, секреты, подписи и сроки их действия.
  • Список webhook-эндпоинтов и callback URL.
  • Настройки rate limits и квот у партнёров.

Данные

  • Доступ к базе на уровне администратора и read-only.
  • Доступ к Redis или другим хранилищам очередей и буферов.
  • Таблицы обмена и описание их назначения.
  • Бэкапы и проверенный сценарий восстановления.

Эксплуатация

  • SSH к серверам, где живут адаптеры и воркеры.
  • Переменные окружения и хранилище секретов.
  • Доступ к логам, мониторингу и алёртам.
  • Документация по ручным процедурам восстановления.

Типы интеграций

С какими типами интеграций работаем.

Если ваш случай — в списке ниже, опишите его в заявке. Обсуждаем по существу: что досталось, какие риски, с чего начнём.

CRM-интеграция

amoCRM, Bitrix24 или кастомная CRM, двусторонние сценарии.

Интеграция с 1С

УТ, УПП, ERP, КА, бухгалтерия — обмены и веб-сервисы.

Платёжная интеграция

Эквайринг, СБП, рекуррент, чеки, возвраты, вебхуки.

Интеграция с маркетплейсом

Заказы, статусы, остатки, цены, контент, отзывы.

Webhook-интеграция

Приём, валидация, ретраи, идемпотентность, dead-letter.

ETL и выгрузки

Регулярные обмены, отчёты, агрегации, импорт-экспорт файлами.

API для мобильного приложения

Контракты, авторизация, выдача доступа, push.

API для Telegram-бота

Бизнес-логика, обмен с backend, выдача доступа.

B2B и EDI-обмен

Партнёрские обмены, форматы XML и CSV, согласованные расписания.

Интеграция сайта с CRM и 1С

Лиды, заказы, остатки, цены, статусы между сайтом и учётом.

FAQ

Что обычно спрашивают перед подхватом интеграций.

С чего начинается подхват интеграций?

С короткой стартовой сессии и заявки на аудит. Обсуждаем, какие системы обмениваются данными, какие интеграции есть, что произошло с прошлой командой, какие доступы и аккаунты уже на вашей стороне. По запросу подписываем NDA. Дальше — аудит потоков данных, API, webhooks, очередей, обменов и доступов к подключённым системам. Условия подхвата обсуждаем после отчёта.

Что делать, если источник правды между CRM, 1С и сайтом не определён?

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

Что делать, если нет документации по обменам?

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

Что делать, если webhooks теряются?

Сначала фиксируем, где именно теряются: до приёма, при обработке или при записи в целевую систему. Дальше — идемпотентность, ретраи, dead-letter, мониторинг доставки. Параллельно проверяем, что внешняя система отправляет ретраи по нашим ответам, и согласуем с ней код возврата для повторной доставки.

Вы работаете с CRM-интеграциями?

Да. Подхватываем обмены с amoCRM, Bitrix24 и кастомными CRM на любой стороне. Разбираем двусторонние сценарии, расхождения статусов сделок, дубли контактов, потерянные лиды и события, не доходящие до CRM. Аудит покрывает и сторону CRM, и сторону внешних систем, которые с ней общаются.

Вы работаете с обменами с 1С?

Да. Подхватываем обмены с 1С (УТ, УПП, ERP, КА, бухгалтерия) через типовые и кастомные обработки, веб-сервисы, REST-обмены и файловые выгрузки. Разбираем расхождения по заказам, остаткам, оплатам и контрагентам, а также сценарии, где обмен встаёт молча и приводит к ручным правкам.

Можно ли подхватить только одну интеграцию, а не все?

Да, если внутри ландшафта есть чёткая граница ответственности. Часто так и заходим: забираем критичную интеграцию — например, обмен с маркетплейсом или платёжный шлюз — а остальные обмены продолжает поддерживать прошлая команда или ваша внутренняя команда. Аудит в этом случае фокусируется на выбранной интеграции и её ближайших соседях.

Что делать, если данные между системами расходятся и есть дубли?

На аудите фиксируем масштаб расхождений и причину: неидемпотентные операции, потерянные webhooks, ручные правки, конкурирующие cron-задачи. Пересинхронизацию делаем только после плана с бэкапом и сценарием отката — массовая повторная заливка без подготовки обычно делает хуже, чем было.

Как не потерять события в очередях и webhooks при смене подрядчика?

В первый месяц не трогаем брокеры сообщений, очереди и обработчики webhook без согласованного окна и без бэкапа состояния. Перевыпуск токенов и переключение URL обработчиков идут с предварительной проверкой идемпотентности и наличия dead-letter-очереди. Любой массовый replay или повторная обработка событий — отдельным сценарием с согласованным владельцем процесса.

Что нужно передать внутреннему интеграционному инженеру после стабилизации?

По итогам подхвата готовим чек-лист для внутреннего инженера: схема обменов с источниками правды по каждой сущности, репозитории обработчиков и брокеров, env и секреты, документация по API, регламент изменений контрактов, описание очередей и dead-letter сценариев. Документируем ручные обходы и временные решения, чтобы новый инженер понимал, что и почему так устроено. Можем сопровождать первые недели его работы.

Заказать аудит интеграций

Опишите ситуацию — вернёмся в течение рабочего дня.

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

Подхват интеграций и API

Короткая заявка на аудит.

Поля помечены под подхват интеграций: какие системы участвуют, какие признаки проблем, какие доступы есть.

Заявка придёт на hi@khaiam.ru. Можно написать сразу в Telegram .

Заказать аудит интеграций