# U-ON Travel: как работает коннектор

В этой статье вы узнаете, как коннектор U-ON Travel выгружает данные в хранилище ROMI center: какие таблицы он создаёт, с какой периодичностью идёт выгрузка и зачем нужна ночная сверка. Полный список полей — в статье [U-ON Travel: описание выгружаемых полей](https://help-ru.romi.center/u-on-travel-opisanie-vygruzhaemyh-polej).

## Что выгружается: до шести таблиц

Каждая включённая сущность — своя таблица. Сущность считается включённой, когда в ней отмечено хотя бы одно поле на шаге «Выбор полей».

| Таблица | Что внутри | Когда появляется |
| --- | --- | --- |
| `…_requests` | Заявки | включены «Заявки» |
| `…_leads` | Обращения — лиды до превращения в заявку | включены «Обращения» |
| `…_services` | Услуги внутри заявок и обращений: туры, билеты, страховки | включены «Услуги»; требуют заявок или обращений |
| `…_payments` | Платежи по заявкам | включены «Платежи»; требуют заявок |
| `…_tourists` | Туристы — клиенты аккаунта | включены «Туристы»; требуют заявок |
| `…_request_tourist` | Связка «заявка — турист» | вместе с заявками и туристами, в интерфейсе не выбирается |

> **Примечание**
> У заявки и обращения — по строке на карточку. У услуг, платежей и туристов — по строке на каждый элемент внутри карточки: три услуги в заявке дают три строки. У услуги, приехавшей из обращения, в колонке «ID заявки» стоит идентификатор обращения, а не заявки.

## Периодичность

Коннектор опрашивает U-ON за сегодняшний день каждые 2 часа и заливает собранное в таблицы каждую минуту, до 400 строк за проход. Дважды в сутки идут более глубокие проходы:

> **Важно**
> Ежедневно в 02:00 коннектор перечитывает последние семь дней, а в 03:00 — делает полную сверку за последние месяцы (по умолчанию один месяц) по дате создания заявки. Полная сверка нужна потому, что U-ON помечает заявку изменённой только когда сохранили карточку самой заявки: правка карточки клиента, переименование сотрудника или статуса в справочнике обычный прогон не видит вовсе, и такие изменения протухали бы до ручной перезагрузки.

## За какой период забираются данные

Прогон раз в два часа берёт заявки и обращения, созданные или изменённые сегодня. Ночной прогон в 02:00 перечитывает семь дней назад по вчерашний. Историческая перезагрузка идёт по одному заданию на день.

> **Примечание**
> Новое подключение историю не подтягивает сразу. В первые часы в хранилище попадает только сегодняшний день, ближайшей ночью добавятся предыдущие семь. Всё, что старше, нужно запросить вручную — «Загрузить исторические данные».

## Как сохраняет данные

*   **Куда:** хранилище ROMI center на движке ClickHouse.
*   **Имя таблицы:** `uon_<поддомен аккаунта>_<id подключения>_<таблица>`. Аккаунт `mycompany.u-on.ru` даёт таблицу заявок `uon_mycompany_53_requests`.
*   **Структура таблицы:** движок `MergeTree`, разбиения на партиции нет. Ключ сортировки — `rc_data_id` (у таблицы обращений — `id`, у таблицы связок — `request_id`).
*   **Структура догоняется, а не пересоздаётся.** Поле, отмеченное в настройках, приходит новой колонкой. Колонки никогда не удаляются: снятое поле останется в таблице со старыми значениями, а новые строки будут писаться в него пустыми.
*   **Повторная выгрузка не плодит дубли.** Строка ищется по колонке `id` — идентификатору сущности в U-ON. Найденная строка удаляется и вставляется заново, а прежнее значение `rc_created_at` переносится со старой.
*   **Связки «заявка — турист» обновляются пачкой на заявку.** Перед вставкой удаляются все связки перечитанных заявок, затем вставляются свежие — так уходят туристы, которых из заявки убрали.
*   **Удаления в U-ON до хранилища не доходят.** Заявка, услуга, платёж или турист, удалённые в CRM, остаются в таблице: коннектор только добавляет и обновляет строки. Исключение — связки «заявка — турист», они пересобираются целиком.

## Перезагрузка данных

Ночная перезагрузка в 02:00 перечитывает последние семь дней; полная сверка в 03:00 — заявки и обращения, созданные за последние месяцы, вместе с их услугами, платежами и туристами (в журнале выгрузок такой прогон помечен «Полная сверка»). Обе перезаписывают строки по `id`, ничего заранее не удаляя. Функция «Загрузить исторические данные» в меню подключения работает за любой период, по одному дню за задание.

> **Важно**
> Галочка «Удалить ранее загруженные данные за период» удаляет все таблицы подключения целиком — заявки, обращения, услуги, платежи, туристов, связки, — а не только выбранный период, и вместе с ними очищается вся очередь подключения. После такой перезагрузки останется только перезагруженный период.

> **Примечание**
> Подключения на вебхуках (заводились на старой странице) ведут себя иначе: строка адресуется не идентификатором сущности, а номером строки очереди, поэтому изменённая заявка ложится не поверх прежней, а второй строкой — в таблице копится история версий. Полная сверка им не ставится.

## Дополнительные настройки

| Настройка | Что делает |
| --- | --- |
| Адрес аккаунта и API-ключ | Шаг «Доступ»: адрес вида `mycompany.u-on.ru` и ключ. У подключаемого пользователя нужны права администратора — без них передача данных может быть недоступна. Адрес после создания неизменен — на нём построены имена таблиц. |
| Сущности и поля | Шаг «Выбор полей»: заявки, обращения, услуги, платежи, туристы. Внутри каждой отмечаются поля — стандартные плюс дополнительные поля вашего аккаунта U-ON. |
| Глубина полной сверки | Сколько последних месяцев перечитывать в 03:00. По умолчанию один месяц, ноль отключает сверку. В интерфейс не выведена — меняется по запросу. |

Шага «Дополнительные настройки» в визарде U-ON нет вовсе — ни часового пояса, ни глубины ежедневной перезаписи он не спрашивает.

## Технические поля

| Колонка | Что внутри |
| --- | --- |
| `rc_data_id` | Номер строки во внутренней очереди ROMI. Заполнен всегда; у большинства таблиц он же служит ключом сортировки. |
| `rc_created_at` | Момент, когда коннектор собрал строку. При повторной заливке переносится со старой строки. |

Других служебных колонок нет. В предпросмотре данных служебные колонки скрыты — они отрезаются по префиксу `rc_`.
