Інтеграція Bitrix24 та Tableau
Директор просить звіт по воронці продаж за квартал. Менеджер вивантажує дані з B24 в Excel, чистить дублі, будує зведну таблицю, вручну рахує конверсію за етапами. Через два дні дані застарілі — потрібно повторювати. У B24 є вбудована аналітика, але для складних зрізів (когортний аналіз, перехресні звіти по каналах та менеджерах, динаміка LTV) її недостатньо. Tableau вирішує це завдання, але дані туди ще потрібно доставити.
Архітектура рішення
Tableau не підключається до B24 напряму — немає нативного коннектора. Зв'язка працює через проміжне сховище:
B24 REST API → ETL-скрипт → PostgreSQL/MySQL → Tableau Desktop/Server → дашборд
ETL-скрипт (на Python, Node.js або PHP) витягує дані з B24 через REST API, трансформує та завантажує в реляційну базу. Tableau підключається до цієї бази як до звичайного джерела даних.
Альтернативний варіант — Tableau Web Data Connector (WDC). Це JavaScript-додаток, який Tableau викликає для отримання даних. WDC звертається до middleware, який запитує дані з B24 REST API та повертає їх у форматі, зрозумілому Tableau. Підходить для невеликих обсягів, але для серйозної аналітики проміжна база надійніше.
Які дані витягуємо
B24 REST API надає доступ до основних сутностей CRM та не тільки:
| Сутність | Метод API | Ключові поля |
|---|---|---|
| Ліди | crm.lead.list |
Статус, джерело, UTM-метки, сума, відповідальний, дата створення |
| Угоди | crm.deal.list |
Стадія, воронка, сума, дата закриття, контакт, компанія |
| Контакти | crm.contact.list |
ПІБ, компанія, тип, джерело |
| Компанії | crm.company.list |
Назва, індустрія, виручка, тип |
| Товарні позиції | crm.item.productrow.list |
Товар, кількість, ціна, знижка, привязка до угоди |
| Активності | crm.activity.list |
Тип (дзвінок, лист, зустріч), дата, тривалість |
| Задачи | tasks.task.list |
Статус, виконавець, дедлайн, витрачений час |
| Телефонія | voximplant.statistic.get |
Тривалість, тип, запис, привязка до CRM |
Кастомні поля (UF_CRM_*) вивантажуються автоматично — ETL-скрипт запитує список полів через crm.deal.fields та включає їх у вивантаження.
ETL-процес
Extract. Скрипт викликає REST API з пагінацією. B24 видає максимум 50 записів за запит для більшості методів. При 10 000 угод — 200 запитів. З урахуванням лімріту 2 запити на секунду — 100 секунд. Для прискорення використовуємо batch-запити (до 50 викликів в одному batch), що скорочує час у десятки разів.
Інкрементальне вивантаження: після першої повної загрузки скрипт запитує тільки записи, змінені після останнього запуску (фільтр >DATE_MODIFY). Це скорочує обсяг даних та час виконання.
Transform. Дані з B24 приходять у специфічному форматі:
- Стадії угод — у вигляді кодів (
C1:NEW,C1:WON). Скрипт підставляє людиночитаємі назви зі довідника (crm.status.list). - Множественні поля (телефони, email) — масиви об'єктів. Скрипт розворачує їх у окремі колонки або рядки.
- Дати — у форматі ISO 8601 з таймзоною портала. Конвертуються у UTC.
- Зв'язки (контакт → компанія → угода) — денормалізуються: до кожної угоди додаються поля контакту та компанії.
Load. Дані записуються у PostgreSQL (або MySQL). Структура таблиць:
-
crm_deals— угоди з денормалізованими полями -
crm_leads— ліди -
crm_activities— активності з привязкою до угод -
crm_products— товарні позиції -
dim_stages— довідник стадій -
dim_sources— довідник джерел -
dim_users— співробітники (відповідальні, менеджери)
Структура «факт + довідник» — стандартна для BI. Tableau будує зв'язки між таблицями та дозволяє створювати будь-які зрізи.
Дашборди в Tableau
Типові дашборди, які будуємо на даних B24:
Воронка продаж. Конверсія між етапами, середній цикл угоди, сума за стадіями. Фільтри: період, менеджер, воронка, джерело. Горизонтальна воронка з абсолютними числами та відсотками конверсії.
Аналітика менеджерів. Кількість угод, сума закритих, середній чек, конверсія з ліда у угоду, середній час на етапі. Ранжування менеджерів за KPI. Drill-down до конкретних угод.
Джерела лідів. ROI по каналах: UTM-метки → ліди → угоди → сума. Порівняння каналів по конверсії та середньому чеку. Динаміка по місяцях.
Когортний аналіз. Ліди, згруповані за місяцем створення, з відстеженням конверсії у угоду та оплату у наступні місяці. Показує, чи покращується якість лідів та робота відділу продаж.
Активність. Дзвінки, листи, зустрічі по днях та менеджерах. Кореляція активності з закритими угодами. Виявлення паттернів: скільки касань потрібно для закриття угоди.
Автоматичне оновлення
ETL-скрипт запускається за розписанням:
- Щогодини — інкрементальне вивантаження змінених записів. Дашборди в Tableau Server оновлюються автоматично по привязаному розписанню extract refresh.
- Кожної ночі — повна перезагрузка для гарантії консистентності.
- Вручну — кнопка в middleware для примусового оновлення перед важливим засіданням.
Tableau Server/Online підтримує scheduled extract refresh — автоматичне оновлення даних з підключеної бази у визначений час.
Що впроваджуємо
- ETL-скрипт для витягування даних з B24 REST API у реляційну базу
- Структуру проміжної бази даних, оптимізовану для BI-аналітики
- Підключення Tableau до проміжної бази
- Набір типових дашбордів: воронка, менеджери, джерела, когорти, активність
- Налаштування розписання автоматичного оновлення даних
- Інкрементальне вивантаження для мінімізації навантаження на B24 API







