Найти в Дзене

Выгрузка данных по оплаченным бронированиям из Bnovo в таблицу базы данных PostgreSQL и дашборд Yandex DataLens

Рано или поздно компании сталкиваются с необходимостью получения подробного финансового отчета. В некоторых случаях для ведения такой отчетности можно использовать специализированные сервисы, например, ПланФакт. Но если вам нужна кастомная аналитика по узким показателям с выводом визуализации на дашборд (например, для использования на плановых совещаниях), то получить ее можно с помощью Пинкит. Расскажем в статье, как именно это сделать. К нам обратился клиент - владелец сети отелей. Ему необходимо было настроить учет всех платежей по броням для подробной аналитики. Клиент использует сервис для бронирования Bnovo. В сервисе есть встроенный финансовый отчет, но в нем нет визуализации и клиенту сложно использовать этот отчет для понимания реальной картины финансового состояния компании. То есть, нужна отчетность по значениям полей из Bnovo по доходам и расходам. При этом, необходимо учитывать возвраты при отмене брони. Вручную формировать такой отчет, учитывая большой массив бронирований
Оглавление

Рано или поздно компании сталкиваются с необходимостью получения подробного финансового отчета. В некоторых случаях для ведения такой отчетности можно использовать специализированные сервисы, например, ПланФакт. Но если вам нужна кастомная аналитика по узким показателям с выводом визуализации на дашборд (например, для использования на плановых совещаниях), то получить ее можно с помощью Пинкит. Расскажем в статье, как именно это сделать.

1. Отчетность для отеля

Проблема

К нам обратился клиент - владелец сети отелей. Ему необходимо было настроить учет всех платежей по броням для подробной аналитики.

Клиент использует сервис для бронирования Bnovo.

В сервисе есть встроенный финансовый отчет, но в нем нет визуализации и клиенту сложно использовать этот отчет для понимания реальной картины финансового состояния компании.

-2

То есть, нужна отчетность по значениям полей из Bnovo по доходам и расходам. При этом, необходимо учитывать возвраты при отмене брони. Вручную формировать такой отчет, учитывая большой массив бронирований и оплат по ним, для клиента проблематично.

Интеграция системы управления отелем на Bnovo с Битрикс24 с финучетом на ПланФакт: читайте в нашем блоге.

Решение

Для решения задачи мы предложили следующий вариант:

1.1. Выгружаем данные по оплатам и расходам из Bnovo в базу данных PostgreSQL;

Создание чистой статистики на вашем дашборде Yandex DataLens, если пользователи предпочитают удалять сущности в Битрикс24: подробности в статье.

1.2. По данным из PostgreSQL строим дашборд в Yandex DataLens.

Создание сквозной аналитики на базе данных PostgreSQL/ MySQL из Битрикс24 и Roistat и визуализация на дашбордах Yandex DataLens: читайте по ссылке.

Как все настроить при помощи платформы Пинкит, расскажем далее.

2. Выгрузка данных по поступлениям и расходам из Bnovo в PostgreSQL

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

2.1. Шаг 1: Откуда

Откуда отправляем данные - Bnovo; Когда - Поступления и расходы; Подключение к приложению - доступы к Bnovo.

2.2. Шаг 2: Инструменты

-3
  • Способ оплаты

Используем сопоставление данных по полю source.type_id. Получаем типы оплат.

  • Статья денежных средств

Используем API-запрос методом GET с указанием URL /finance/items.

-4
  • Преобразовать данные в нужный формат

Нам понадобится декодировать JSON в поле step2.0.

-5
  • Определить статью денежных средств

Используем фильтр элементов массива в поле step3. Условие - ЧислоРавно, Сравниваемое значение - source.item_id.

-6
  • Статус печати чека

Используем сопоставление данных по полю source.fiscal_status. Получаем статусы печати чека.

  • Получить юридических лиц отеля

Используем API-запрос методом GET с указанием URL /finance/details.

-7
  • Определить юридическое лицо

Используем фильтр элементов массива в поле step7.suppliers. Название поля внутри элемента массива - finance_supplier_id. Условие - ЧислоРавно, Сравниваемое значение - source.supplier_id.

-8
  • Определить юридическое лицо, на которого поступил платеж

Используем фильтр элементов массива в поле step7.suppliers. Название поля внутри элемента массива - id. Условие - ЧислоРавно, Сравниваемое значение - source.external_supplier_id.

-9

2.3. Шаг 3: Куда

Добавляем строку в PostgreSQL. Выбираем заранее созданную таблицу.

-10

2.4. Шаг 4: Сопоставление данных

Сопоставляем поля в Bnovo и столбцы в таблице PostgreSQL. Нам понадобится множество пользовательских сопоставлений для полей Имя, Дата платежа, дата создания брони и так далее:

id_bnovo
Тип: Столбец SQL
Название параметра: id_bnovo
Значение параметра: {{source.id}}

supplier_id
Тип: Столбец SQL
Название параметра: supplier_id
Значение параметра: {{step8.0.name|default()}}

contractor_id
Тип: Столбец SQL
Название параметра: contractor_id
Значение параметра: {{source.contractor_id}}

external_hotel_id
Тип: Столбец SQL
Название параметра: external_hotel_id
Значение параметра: {{source.external_hotel_id}}

external_booking_id
Тип: Столбец SQL
Название параметра: external_booking_id
Значение параметра: {{source.external_booking_id}}

external_user_name
Тип: Столбец SQL
Название параметра: external_user_name
Значение параметра: {{source.external_user_name}}

external_payment_id
Тип: Столбец SQL
Название параметра: external_payment_id
Значение параметра: {{source.external_payment_id}}

external_supplier_id
Тип: Столбец SQL
Название параметра: external_supplier_id
Значение параметра: {{step9.0.name|default()}}

passport
Тип: Столбец SQL
Название параметра: passport
Значение параметра: {{source.passport}}

name
Тип: Столбец SQL
Название параметра: name
Значение параметра: {{source.name}}

type_id
Тип: Столбец SQL
Название параметра: type_id
Значение параметра: {{step1}}

amount
Тип: Столбец SQL
Название параметра: amount
Значение параметра: {{source.amount}}

balance
Тип: Столбец SQL
Название параметра: balance
Значение параметра: {{source.balance}}

paid_date
Тип: Столбец SQL
Название параметра: paid_date
Значение параметра: {{source.paid_date}}

reason
Тип: Столбец SQL
Название параметра: reason
Значение параметра: {{source.reason}}

create_date
Тип: Столбец SQL
Название параметра: create_date
Значение параметра: {{source.create_date}}

fiscal_status
Тип: Столбец SQL
Название параметра: fiscal_status
Значение параметра: {{source.fiscal_status}}

sub_amount
Тип: Столбец SQL
Название параметра: sub_amount
Значение параметра: {{source.sub_amount}}

id_command
Тип: Столбец SQL
Название параметра: id_command
Значение параметра: {{source.id_command}}

item_id
Тип: Столбец SQL
Название параметра: item_id
Значение параметра: {{step4.0.name}}
-11

2.5. Шаг 5: Запуск

Запускаем интеграцию.

-12

3. Итог

На основе данных, которые выгружает интеграция Пинкит из Bnovo в базу PostgreSQL, будет формироваться дашборд по поступлениям и расходам примерно в таком формате:

-13

Инструкцию по подключению СУБД к сервису Yandex DataLens читайте здесь.

Остались вопросы? Спросите у нас в Телеграм или WhatsApp.
Если вам нужна интеграция с сервисом, которого в Пинкит нет, или приватное событие/действие, через Пинкитбилдер вы можете самостоятельно добавить авторизацию, необходимые события и действия без разработки. Протестируйте Пинкит, зарегистрировавшись в личном кабинете по ссылке: https://lk.pinkit.io/register.
Алексей Окара, продакт-менеджер Пинкит
-14

#пинол #пинкит #pinall #pinkit #bitrix24 #битрикс24 #amo #amocrm #амо #амоцрм #crm #црм #црмсистема #црм_система #внедрениецрм #интеграция #миграция #обмен #bnovo #пинкит_bnovo_postgresql