Интеграция U-ON.Travel и amoCRM под ключ

Менеджер туристической компании создаёт заявку в U-ON.Travel, но в amoCRM сделка появляется через час - вручную, с ошибками в имени клиента и без истории переписки. Пока данные переносятся руками, лид остывает, а менеджер тратит до 40 минут в день только на дублирование информации между системами. Интеграция устраняет этот разрыв: данные движутся автоматически, в реальном времени, без участия человека.

Как мы это делаем

  1. Аудит и проектирование. Изучаем текущие процессы: какие поля используются в U-ON.Travel, как устроена воронка в amoCRM, где сейчас данные теряются или дублируются. Фиксируем схему потоков данных в обе стороны.
  2. Подключение API и настройка webhook-триггеров. Подключаемся к REST API U-ON.Travel и API amoCRM, настраиваем webhook-события на стороне каждого сервиса - новая заявка, смена статуса, оплата, создание контакта.
  3. Построение сценариев в n8n. Собираем автоматизированные цепочки: каждый триггер обрабатывается отдельным workflow с условиями, фильтрами и обработкой ошибок. Логика хранится в виде версионируемых сценариев.
  4. Маппинг полей и тестирование. Сопоставляем поля двух систем, обрабатываем несовпадения форматов (даты, телефоны, валюты). Прогоняем 20+ тестовых сценариев: создание, обновление, аннулирование, частичная оплата.
  5. Запуск и мониторинг. Переводим интеграцию в продакшн, настраиваем алерты на ошибки синхронизации в Telegram или e-mail. Передаём документацию и инструкцию по управлению сценариями.

Что синхронизировать между U и On-Travel-Amocrm

Для корректной работы бизнес-процессов необходимо обеспечить маппинг данных между API платформы U и методами интеграции On-Travel-Amocrm.

  • ФИО клиента: U GET /customers (поле name) → On-Travel crm.contact.add (поле name).
  • Контактный email: U GET /customers (поле email) → On-Travel crm.contact.update (поле custom_fields с ID email-поля).
  • Статус бронирования: U GET /bookings (поле status) → On-Travel crm.lead.update (поле status_id воронки).
  • Сумма сделки: U GET /bookings (поле price) → On-Travel crm.lead.add (поле price).
  • Дата заезда: U GET /bookings (поле check_in_date) → On-Travel crm.lead.update (кастомное поле типа date).
  • ID внешнего объекта: U GET /objects (поле id) → On-Travel crm.lead.update (поле custom_fields, ExternalID для связи).

Технические детали интеграции U ↔ On-Travel-Amocrm

  • Направление: Двусторонняя синхронизация. U инициирует обновления через Webhooks, On-Travel транслирует изменения статусов через POST /api/v4/leads/events.
  • Формат данных: Обмен данными осуществляется исключительно в формате JSON с использованием UTF-8 кодировки.
  • Обработка конфликтов: Приоритет отдается данным из U (Master-система). При обнаружении расхождений updated_at (Timestamp), скрипт выполняет PATCH-запрос к API для перезаписи поля.
  • Частота обновления: Синхронизация работает в режиме Near Real-time. Webhooks из U срабатывают мгновенно; для GET-запросов используется очередь (Queue) с интервалом опроса 1 минута.
  • Retry-логика: При получении кодов ответа 429 (Too Many Requests) или 5xx, интегратор выдерживает паузу по алгоритму Exponential Backoff (1с, 2с, 4с, 8с) до 5 попыток.
  • Обработка удалений: При удалении записи в U (метод DELETE /customers/{id}) в On-Travel выставляется тег "Archive" или статус "Закрыто и не реализовано" через crm.lead.update, физическое удаление в CRM не рекомендуется.

Частые вопросы про U + On-Travel-Amocrm

Как настроить авторизацию?

Для U необходимо сгенерировать API Key в разделе настроек безопасности, для On-Travel-Amocrm используется OAuth 2.0 (client_id, client_secret, code). Токены обновляются автоматически через refresh_token каждые 24 часа.

Что происходит, если один из сервисов недоступен?

Интегратор записывает невыполненные запросы в таблицу failed_jobs в локальной БД. Как только сервис восстанавливает соединение (статус 200 OK), очередь автоматически отправляет накопленные пакеты данных.

Какие есть лимиты API?

Amocrm ограничивает количество запросов в зависимости от тарифа, обычно до 5-10 запросов в секунду. U не имеет жестких лимитов, но рекомендуется группировать изменения в пакеты по 50 записей для снижения нагрузки.

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

При создании нового контакта используется поиск по email или phone через метод crm.contact.list перед вызовом crm.contact.add. Если запись найдена, интегратор обновляет существующий ID вместо создания нового.

Какова скорость синхронизации?

При стандартной нагрузке изменение статуса в U отражается в On-Travel в течение 3-7 секунд. Массовый импорт (более 1000 записей) занимает до 15 минут из-за лимитов rate-limiting API.

Настроить связку U + On-Travel-Amocrm под ключ — flowframe.ru, от 40 000 ₽, срок 7-21 день.

Готов связать U-ON.Travel с amoCRM?

Оставьте заявку — вернёмся в течение часа со сметой и планом работ.

Оставить заявку