Со временем любая компания неизбежно сталкивается с потребностью в составлении детализированного отчета по финансам.
Для этих целей могут подойти специализированные инструменты, например, ПланФакт.
Однако если требуется настроить индивидуальную аналитику по конкретным показателям с визуализацией на дашборде (например, для проведения плановых совещаний), вам поможет Пинкит.
В этом материале объясним, как использовать интеграцию Bnovo и базы данных PostgreSQL для получения кастомных отчетов на дашборде Yandex DataLens.
1. Пример заказчика: проблема и решение
В нашу компанию обратился заказчик, который является владельцем сети отелей.
Ему нужна была помощь с настройкой интеграции для учета всех платежей по бронированиям и подробного анализа финансовых данных.
Для бронирования заказчик использует платформу Bnovo.
В Bnovo есть встроенный финансовый отчет, но он не предоставляет такой визуализации, которая была нужна заказчику, что затрудняет ему видеть ясную картину финансового положения компании.
Для решения этой задачи мы предложили следующий подход:
Во-первых, будем выгружать информацию о платежах и расходах из Bnovo в базу данных PostgreSQL.
Создание чистой статистики на вашем дашборде Yandex DataLens, если пользователи предпочитают удалять сущности в Битрикс24: подробности в статье.
Во-вторых, используем эти данные для создания дашборда в Yandex DataLens.
Создание сквозной аналитики на базе данных PostgreSQL/ MySQL из Битрикс24 и Roistat и визуализация на дашбордах Yandex DataLens: читайте по ссылке.
Как все настроить с помощью платформы Пинкит, расскажем дальше.
2. Выгрузка данных по поступлениям и расходам из Bnovo в PostgreSQL
В Пинкит ранее не было триггера "Поступления и расходы" для сервиса Bnovo, который необходим для активации наших интеграций.
Поэтому перед тем как приступить к настройке отчета, мы добавили данное событие с помощью Пинкитбилдер.
Шаг первый: Откуда
Выбираем источником данных Bnovo и событие “Поступления и расходы”. Подключение к приложению - доступы к Bnovo.
Шаг второй: Инструменты
— Способ оплаты
Используем сопоставление данных по полю source.type_id. Получаем типы оплат.
— Статья денежных средств
Используем API-запрос методом GET с указанием URL /finance/items.
— Преобразовать данные в нужный формат
Нам понадобится декодировать JSON в поле step2.0.
— Определить статью денежных средств
Используем фильтр элементов массива в поле step3. Условие - ЧислоРавно, Сравниваемое значение - source.item_id.
— Статус печати чека
Используем сопоставление данных по полю source.fiscal_status. Получаем статусы печати чека.
— Получить юридических лиц отеля
Используем API-запрос методом GET с указанием URL /finance/details.
— Определить юридическое лицо
Используем фильтр элементов массива в поле step7.suppliers. Название поля внутри элемента массива - finance_supplier_id. Условие - ЧислоРавно, Сравниваемое значение - source.supplier_id.
— Определить юридическое лицо, на которого поступил платеж
Используем фильтр элементов массива в поле step7.suppliers. Название поля внутри элемента массива - id. Условие - ЧислоРавно, Сравниваемое значение - source.external_supplier_id.
Шаг третий: Куда
Добавляем строку в PostgreSQL. Выбираем заранее созданную таблицу.
Шаг четвертый: Сопоставление данных
Выполняем сопоставление полей в 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}}
Шаг пятый: Запуск
Запускаем интеграцию.
Резюмируем
На основе данных, выгружаемых интеграцией Пинкит из Bnovo в базу PostgreSQL, будет сформирован дашборд по поступлениям и расходам в следующем формате:
Инструкцию по подключению СУБД к сервису Yandex DataLens можно найти тут.
![]()
Если у вас есть вопросы, пишите нам в Телеграм или WhatsApp.
Если вам нужна интеграция с сервисом, которого в Пинкит нет, или приватное событие/действие, через Пинкитбилдер вы можете самостоятельно настроить авторизацию, необходимые события и действия без разработки с ограниченным доступом к ним.
Также вы можете самостоятельно протестировать Пинкит, для этого зарегистрируйтесь в личном кабинете по ссылке: https://lk.pinkit.io/register.
Алексей Окара,
продакт-менеджер Пинкит

Время работы специалистов Пн.–Пт.: с 9:30 до 18:30; Сб.-Вс.: выходные.
![]()
Павел Филатов
|
Сервис
Самые востребованные интеграции по API: Google Sheets, Unisender, СберБанк, HH.ru, Контур.Фокус, GetCourse, Банки, iiko. |
![]()
Павел Филатов
|
А вы уже смотрели наш раздел "
|
![]()
Павел Филатов
|
Для тех, кто идет в ногу со временем, мы проводим регулярные
Если у Вас есть вопросы по настройке, по функционалу или вы просто хотите быть в курсе новых трендов, тогда регистрируйтесь и подключайтесь к нашим вебинарам. Для вас всегда интересные спикеры, разбор задач на примере реальных кейсов, а также подарки самым активным. |