Рано или поздно компании сталкиваются с необходимостью получения подробного финансового отчета. В некоторых случаях для ведения такой отчетности можно использовать специализированные сервисы, например, ПланФакт. Но если вам нужна кастомная аналитика по узким показателям с выводом визуализации на дашборд (например, для использования на плановых совещаниях), то получить ее можно с помощью Пинкит. Расскажем в статье, как именно это сделать.
1. Отчетность для отеля
Проблема
К нам обратился клиент - владелец сети отелей. Ему необходимо было настроить учет всех платежей по броням для подробной аналитики.
Клиент использует сервис для бронирования Bnovo.
В сервисе есть встроенный финансовый отчет, но в нем нет визуализации и клиенту сложно использовать этот отчет для понимания реальной картины финансового состояния компании.
То есть, нужна отчетность по значениям полей из 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: Инструменты
- Способ оплаты
Используем сопоставление данных по полю 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.
2.3. Шаг 3: Куда
Добавляем строку в PostgreSQL. Выбираем заранее созданную таблицу.
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}}
2.5. Шаг 5: Запуск
Запускаем интеграцию.
3. Итог
На основе данных, которые выгружает интеграция Пинкит из Bnovo в базу PostgreSQL, будет формироваться дашборд по поступлениям и расходам примерно в таком формате:
Инструкцию по подключению СУБД к сервису Yandex DataLens читайте здесь.
Остались вопросы? Спросите у нас в Телеграм или WhatsApp.
Если вам нужна интеграция с сервисом, которого в Пинкит нет, или приватное событие/действие, через Пинкитбилдер вы можете самостоятельно добавить авторизацию, необходимые события и действия без разработки. Протестируйте Пинкит, зарегистрировавшись в личном кабинете по ссылке: https://lk.pinkit.io/register.
Алексей Окара, продакт-менеджер Пинкит
#пинол #пинкит #pinall #pinkit #bitrix24 #битрикс24 #amo #amocrm #амо #амоцрм #crm #црм #црмсистема #црм_система #внедрениецрм #интеграция #миграция #обмен #bnovo #пинкит_bnovo_postgresql