Dev Crabs

Интеграция систем и сервисов по API

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

  • Без замены ваших систем
  • Начинаем с одного потока
  • Проверяем сбои и дубли

Попробуйте обмен

Что происходит, если система не ответила

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

Демонстрация

Сайт → интеграция → CRM · учебный стенд

  1. 01 · ИсточникЗаказ на сайтеorder-1042 · событие evt-1042
  2. 02 · ОбработчикПроверка и журналПоля → формат → идентификатор
  3. 03 · ПолучательЗапись в CRMОдна операция для одного события
Выберите условие обмена
Источник · заказ order-1042customer_id: demo-27total: 12500 RUB
Получатель · CRMexternal_id: order-1042amount: 12500 · currency: RUB

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

Записей в CRM: 0Нажмите «Передать событие», чтобы начать.

Журнал обмена · последние 8 действий

Пока нет попыток доставки.

В этом примере 503 означает, что запись не создана. При тайм-ауте реального API результат может быть неизвестен: перед повтором нужно проверить получателя.

Демонстрация на вымышленных данных. Все ответы и ошибки моделируются в браузере: внешние API, CRM и очереди не подключены. Это пример правил обмена, а не клиентский кейс или готовый сервер интеграции. Обновление страницы сбрасывает состояние.
  • Подтверждённый опыт

    Портал инвестора Academia Suites

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

  • Результат первого этапа

    Один обмен с понятной приёмкой

    До реализации согласуем источник, получателя, поля и критерии успеха. На приёмке проверим не только передачу записи, но и повтор события, недоступность получателя и ошибочные данные.

Когда это нужно

Когда ручной перенос мешает работе

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

  1. Заказы приходится вводить повторно

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

  2. Статусы в сервисах расходятся

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

  3. Документы и справочники живут отдельно

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

  4. Готового коннектора недостаточно

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

Когда отдельная разработка не нужна

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

Границы обмена

Сначала определяем, кто отвечает за данные

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

  • Сущности и поля

    Описываем соответствие полей, обязательные значения, форматы дат, валюты и идентификаторы. Изменение в одной системе не должно молча затирать независимые данные в другой.

  • Событие или расписание

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

  • Ответственный за исключения

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

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

Как работаем

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

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

  1. 01 · Разбор

    Проверяем доступные интерфейсы

    Изучаем документацию, авторизацию, ограничения и тестовую среду. Уточняем направления обмена и владельцев систем. Если нужной операции нет, обозначаем это до разработки.

  2. 02 · Правила

    Согласуем контракт данных

    Описываем поля, идентификаторы, условия создания и обновления. Готовим примеры успешного обмена, дубля, временного сбоя и некорректной записи.

  3. 03 · Проверка

    Собираем один поток

    Реализуем обработчик и проверяем на тестовых данных. Сверяем записи на обеих сторонах, журнал и действия при ошибках; согласуем условия повторной доставки.

  4. 04 · Запуск

    Передаём управление обменом

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

Как это устроено

Как устроена интеграция систем по API

  • Получение и преобразование

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

  • Повтор без второй записи

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

  • Разные ошибки — разные действия

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

  • Журнал и сверка

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

Отличие

Готовый коннектор или собственный обмен

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

Готовый коннекторИнтеграция под процесс
СценарийТиповые сущности и направления обменаСогласованные поля, условия и несколько шагов обработки
ОшибкиСредства и ограничения поставщикаПравила повторов, журнал и порядок разбора под ваш процесс
Изменения APIЗависят от обновлений коннектораНужен ответственный за проверку совместимости и доработки
СтоимостьЛицензия, тариф и настройкаРазработка, инфраструктура и согласованное сопровождение

Сравним варианты после изучения документации. Собственная связка тоже требует поддержки при изменении API и не отменяет ограничений стороннего сервиса.

Стоимость

Что нужно для оценки интеграции

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

  • Количество потоков

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

  • Возможности API

    Документация, тестовый контур, авторизация, лимиты, история изменений и поддержка защиты от дублей.

  • Объём и задержка

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

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

    Требования к размещению, журналу, оповещениям, сверке и поддержке после запуска.

Первый этап — один согласованный поток: источник → проверка и преобразование → получатель, с журналом и проверкой ошибок. Состав, срок и стоимость фиксируем до начала работ. Остальные направления обмена оцениваем отдельно.

Вопросы

Частые вопросы

Можно связать две системы, не заменяя их?

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

Чем интеграция API отличается от разработки CRM?

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

Можно настроить обмен с 1С или Битрикс24?

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

Как избежать дублей после повторной отправки?

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

Будут ли данные обновляться мгновенно?

Это зависит от поддержки событий, лимитов и доступности обеих систем. При опросе по расписанию появляется задержка. До реализации согласуем приемлемое время обновления и поведение при сбоях; обещать мгновенную доставку для любого API было бы неверно.

Что делать, если у системы нет API?

Сначала проверяем официальные возможности импорта, экспорта и доступ к данным с разрешения владельца. Работа через файл может закрыть задачу без API. Парсинг доступных источников — отдельный сценарий; обход ограничений доступа в услугу не входит.

Нужно ли передавать ключи в форме заявки?

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

Смежные задачи

Все услуги →

Ваш обмен данными

Какие системы нужно связать?

Опишите один поток: откуда, куда и какие данные передавать. Укажите частоту и главную проблему текущего обмена. Начнём с проверки возможностей API и состава первого этапа.

Или напрямую: Telegram ↗ · +7 931 203-30-78 · hello@dev-crabs.ru