Кастомный коннектор к Calltouch для Power BI

Кастомный коннектор к Calltouch для Power BI

Часто бывает нужно обработать статистику звонков из Calltouch и объединить её с данными их других источников. При этом многим клиентам нужен индивидуальный алгоритм обработки журнала звонков из коллтрекинга.

Для такой задачи нам идеально подойдёт Power BI. Он даёт возможность получать статистику из любого API, а также позволяет делать любые преобразования данных. 

К сожалению, мы сталкиваемся с проблемой – внутри Power BI нет встроенного коннектора к Calltouch. Да и вообще ни одного коннектора к коллтрекингу или системе аналитики, за исключением Google Analytics. 

Но кастомные коннекторы (или нативные коннекторы) позволяют решить эту проблему. Они не только обеспечивают возможность получать данные из разных источников, но и позволяют настроить автоматическое обновление отчёта!

В 2020 году я написал несколько таких кастомных коннекторов для Power BI и все они работают похожим образом. В данной статье я продемонстрирую работу моего коннектора в Power BI для системы Calltouch. На его примере вы сможете воспользоваться другими аналогичными соединителями.

1. Включаем коннекторы в Power BI Desktop

Первое, что нужно сделать – включить использование кастомных коннекторов в Power BI Desktop. Выбираем «Файл -> Параметры и настройки –> Параметры»:

В разделе «Безопасность» нужно разрешить загрузку любого расширения без проверок и предупреждений:

2. Переносим mez-файлы в папку

В качестве коннектора выступает файл-архив calltouch.mez. Нам необходимо поместить его в папку «C:\Users\USERNAME\Documents\Power BI Desktop\Custom Connectors», где USERNAME – имя вашего компьютера. Найти папку легко, а если её нет – создайте такую папку:

 

3. Запускаем коннектор

В панели управления Power BI Desktop нажимаю на кнопку «Получить данные». В поиске ввожу calltouch и вижу в списке коннекторов Calltouch Connector. Выбираю его и нажимаю кнопку «Подключить».

Появляется окно, где нужно указать свои параметры:

4. Настраиваем API Calltouch

Для получения всех необходимых параметров, зайдите в «Calltouch -> Интеграции -> API и Webhooks».

 

Включаете передачу данных по API, если нужно обновляете токен и убеждаетесь, 
что ваш ID активен:

 

Для коннектора вам понадобятся ID и Токен. 

Для удобства в Calltouch справа от ID и Токена сделана кнопка копирования.

5. Указываем параметры и получаем данные

«Report type» поддерживает 2 значения – calls и orders (звонки и сделки).

«Calltouch ID» – как раз из поля ID.

«Attribution model» поддерживает 2 модели – «last non-direct» и «last click» (последний непрямой и последний клик) и работает только для звонков.

Дата начала и дата окончания вводится либо в формате 2020-04-30 (день всегда задаётся двухзначный), либо в динамическом формате: today, yesterday или 69daysAgo. Вместо 69 может быть любое число. Как правило дату начала я указываю в формате yyyy-mm-dd, а дату окончания – today или yesterday. Это позволяет всегда иметь последние данные в отчёте, начиная с фиксированной даты до вчерашнего/сегодняшнего дня.

Заполняем параметры и нажимаем ОК. Теперь Power BI требует от нас ввести токен в качестве доступа. Копируем Токен из Calltouch и вставляем в наше поле «Ключ учётной записи»:

После ввода токена, получаем список звонков, каждый звонок пока находится в формате строки:

Жмём на преобразование данных и получаем табличку со строками. 

Чтобы увидеть сами данные, нужно развернуть строки, нажав на стрелки в правом верхнем углу таблицы:

Чтобы увидеть полный список доступных столбцов, нажимаем «Загрузить еще» и отключаем исходное имя столбца как префикс, чтобы не получать слово «data» в названии каждого столбца:

Далее оставляем галочки только на нужных столбцах и нажимаем ОК.

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

6. Разбираем функцию Calltouch.Data()

Если вы посмотрите код Power Query, то увидите, что извлечение данных происходит с помощью функции Calltouch.Data():

Если вместо вызова функции с параметрами вы напишите «Calltouch.Data» без скобок, то увидите небольшое описание с примерами и возможность вызвать функцию с выбором необходимых параметров:

7. Задействуем Personal Gateway

Для поддержки онлайн-обновления отчёта в Power BI Service, вам понадобится установить шлюз Power BI Gateway Personal Mode. Если вы уже установили его, при открытии окна шлюза на вкладке «Соединители» вы увидите в списке коннекторов наш коннектор к Calltouch. На всякий случай можно сверить корректно ли указана папка для расположения пользовательских коннекторов (соединителей):

Шлюз необходим чтобы Power BI Service видел нашу функцию «Calltouch.Data()» и мог использовать её. Как вы помните, сама функция лежит на вашем компьютере в специальной папке. Поэтому для её использования необходим персональный шлюз, как например для работы с локальными файлами. Чтобы заставить набор данных Calltouch обновляться автоматически, вам понадобится держать включенным персональный шлюз. Само окно шлюза можно закрыть. Но, если выключить компьютер, данные обновляться не будут.

8. Настраиваем автоматическое обновление отчёта

Чтобы всё работало корректно, после выгрузки отчёта в Power BI Service, нам нужно указать учётные данные для обращения к Calltouch. Переходим в наборы данных Power BI Service:

Выбираем «Подключение шлюза -> Персональный шлюз», нажимаем «Применить». Далее выбираем «Учётные данные источников данных -> Изменить учётные данные»:

Во всплывающем окне нужно еще раз ввести Токен и нажать «войти»:

После этого можно будет обновлять данный отчёт в Power BI Service по требованию:

А также станет доступной настройка расписания обновлений:

На моём YouTube-канале вы найдёте инструкции по другим коннекторам Power BI: https://www.youtube.com/playlist?list=PL3du-Tm1nAm4YeyOW6ICgc8mhPtStEv6l.

Архив со всеми коннекторами можно скачать здесь: https://github.com/morinad/all_connectors_pq 

А если вам нужно построить индивидуальный алгоритм обработки данных, у нас есть целый плейлист для новичков по Power Query:
https://www.youtube.com/playlist?list=PL3du-Tm1nAm6SSQOCpryquOx-6aasPARM

Комментарии