В этой статье вы узнаете, как коннектор Битрикс24 выгружает данные в хранилище ROMI center: что именно попадает в таблицы, с какой периодичностью идёт выгрузка и как устроена перезапись прошлых дней. Полный список полей — в статье Битрикс24: описание выгружаемых полей.
Что попадает в таблицу: не карточки, а переходы по стадиям
Коннектор выгружает историю стадий портала. Одна строка таблицы — это момент, когда сделка, лид или элемент смарт-процесса попал на стадию. Дата этого перехода кладётся в колонку event_date — по ней строятся воронки и отчёты. Остальные поля (сумма, ответственный, источник, поля контакта и компании) добираются из карточки на момент выгрузки, то есть показывают её состояние тогда, когда коннектор забрал событие.
Важно
У одной сделки в таблице по строке на каждую стадию, куда она попадала. Если сделка вернулась на стадию, где уже была, добавится ли вторая строка — решает настройка «Учитывать повторные переходы в этап»: включена — каждый возврат даёт ещё одну строку со своей датой события; выключена — в таблице остаётся только первое попадание на эту стадию.
Периодичность
Коннектор опрашивает портал каждые 30 минут (следующий прогон не стартует, пока идёт предыдущий) и заливает собранное в таблицы хранилища каждую минуту.
Примечание
Исходящий вебхук портала для хранилища не используется — он работает только для потоков офлайн-конверсий. Подключение к хранилищу коннектор пропускает и забирает данные опросом, поэтому задержка от события в CRM до строки в таблице — до получаса плюс время заливки, а не «в реальном времени».
За какой период забираются данные
Обычный прогон берёт данные с момента прошлой успешной выгрузки по текущий момент. Первый прогон нового подключения — за последние 7 дней. Даты портала читаются в часовом поясе из настроек подключения — если он указан неверно, события съедут на несколько часов и могут попасть в соседние сутки.
Как сохраняет данные
- Куда: хранилище ROMI center на движке ClickHouse.
- Одна таблица на сущность. Контакт и компания своих таблиц не создают: их поля приезжают колонками с префиксами
contact_иcompany_в таблицы лидов и сделок.
| Суффикс таблицы | Что внутри |
|---|---|
_lead | лиды |
_deal | сделки |
_d<N> | смарт-процесс с номером N |
Других сущностей у коннектора нет: счета, предложения и дела в хранилище не выгружаются.
- Имя таблицы:
bitrix24_<поддомен портала>_<id подключения>_<суффикс>— напримерbitrix24_acme_1234_deal. - Структура таблицы: движок
MergeTree, сортировка поrc_data_id. В отличие от рекламных коннекторов разбиения на партиции по дате нет — события приходят вперемешку по датам, партиции по дню здесь ничего бы не ускорили. - Структура догоняется, а не пересоздаётся. Новое поле, выбранное в настройках, добавляется командой
ALTER TABLE … ADD COLUMN. Колонки никогда не удаляются: если снять поле в настройках, колонка останется со старыми значениями, а новые строки будут писаться в неё пустыми. - Повторная заливка того же события не плодит дубли. У каждой строки есть
rc_data_id— номер события в очереди ROMI. При повторной заливке строка с таким жеrc_data_idудаляется и вставляется заново, а дата первой заливки (rc_created_at) переносится со старой строки. - Одинаковые события отсеиваются ещё до таблицы: если портал прислал событие, полностью совпадающее с уже сохранённым по тому же подключению и той же сущности, оно не сохраняется.
Перезапись прошлых дней
Битрикс24 позволяет менять сделки задним числом, поэтому коннектор регулярно перечитывает недавние дни. Глубина ежедневной перезаписи — настройка «Перезагрузка прошлых дней»: 0, 1, 3 (по умолчанию), 7 или 14.
Автоматическая перезагрузка за выбранное число дней назад по вчерашний день включительно удаляет из всех таблиц подключения строки этих событий, перечитывает их у портала и заливает заново; дни за пределами окна не трогаются. Функция «Загрузить исторические данные» в меню подключения работает за любой период: данные догружаются, уже загруженные события не задваиваются.
Важно
Галочка «Удалить ранее загруженные данные за период» у Битрикс24 удаляет все таблицы подключения целиком и всю очередь его событий — не только выбранный период. После такой перезагрузки в таблицах останется только перезагруженный период, остальная история пропадёт. Ставьте галочку, только если готовы перезагрузить всю историю.
Кроме перезагрузки с галочкой удаления таблицы не удаляются и не пересоздаются: коннектор удаляет только строки тех событий, которые собирается перечитать.
Дополнительные настройки
| Настройка | Что делает |
|---|---|
| Часовой пояс аккаунта | В нём читаются даты портала. Ставится один раз при настройке, менять его на живом подключении не стоит — старые строки пересчитаны не будут. |
| Перезагрузка прошлых дней (0 / 1 / 3 / 7 / 14) | Глубина ежедневной перезаписи. Больше дней — больше нагрузка на портал и дольше прогон. |
| Учитывать повторные переходы в этап | Включено — каждый возврат сделки на стадию даёт отдельную строку. Выключено — только первое попадание на стадию. |
Набор выгружаемых полей задаётся на шаге «Выбор полей»: сущности (лиды, сделки, смарт-процессы) и поля внутри каждой. Поле, добавленное позже, начинает заполняться со следующего прогона — задним числом оно появится только после перезагрузки.
Технические поля
| Колонка | Что внутри |
|---|---|
rc_data_id | Номер события в очереди ROMI. По нему строка обновляется и удаляется при перезагрузке. Заполнен всегда, проиндексирован. |
rc_created_at | Когда строка впервые попала в таблицу. При перезаливке того же события сохраняется прежнее значение. |
Других служебных колонок у Битрикс24 нет: rc_updated_at, rc_import_id и rc_datasource, которые встречаются у рекламных коннекторов, здесь не создаются. Колонка event_date — не служебная: это дата самого события, она приходит из истории стадий портала.
