Freshdesk
Ноутбуки, используемые в примере:
В данной статье рассматривается пример получения данных с портала поддержки клиентов Freshdesk https://freshdesk.com. Пример не является шаблонным: в каждом случае задачи разнятся, и работать с данными придется по-другому.
Вот особенности данного кейса:
Количество получаемых данных небольшое - порядка 400 строк, поэтому все выгруженные и обработанные данные сохраняются в XLSX файл, а не в CSV или SQL базу данных.
Будут использоваться два ноутбука: первый для данных заявок, второй для данных контактов и агентов. На выходе будет два Excel файла для загрузки в платформу.
Здесь не рассматривается:
Данные будут забираться с Freshdesk вручную. Для регулярной автоматический выгрузки необходимо настроить планировщик Chronicle.
Для дальнейшей загрузки в платформу можно воспользоваться стандартными средствами в платформе: “создание загрузчика” и “планы загрузки”. Всё описано в разделе документации (ссылка для версии 2.17):
https://visiology-doc.atlassian.net/wiki/pages/createpage.action?spaceKey=v17&title=%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B8%20%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B%20%D0%B2%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9%20%D0%B1%D0%B0%D0%B7%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20ViQubeПодробности работы подключенных Python библиотек. Это необходимо изучать отдельно.
Сначала необходимо внимательно ознакомиться с описанием работы библиотеки python для Freshdesk:GitHub - sjkingo/python-freshdesk: An API for the Freshdesk helpdesk, а также с API Freshdesk https://developers.freshdesk.com/api.
Теперь можно приступать к работе в JupyterLab.
Создаем новый ноутбук для заявок, например, с именем Tickets.
Первым блоком подключаем все необходимые нам для работы Python библиотеки:
import petl as etl from freshdesk.api import API from datetime import date
Вторым блоком подключаемся к Freshdesk, используя адрес своего портала и токен. Адрес портала нужно обязательно указывать с доменом freshdesk.com.
a = API('yourname.freshdesk.com', 'gj34pg98hyatoken')
Получаем заявки c 1 января 2015 года, кроме удаленных и помеченных как спам. Параметр filter_name необходим для получения всех заявок. Если его не указать, придут только открытые заявки, назначенные агенту, чей токен указан в подключении.
tickets = a.tickets.list_tickets(updated_since='2015-01-01', filter_name=None)
Кладем все данные в список, где каждый элемент - это словарь. Это нужно для создания таблицы petl в следующем шаге. В некоторых местах данные сразу преобразовываются к нужном виду, например, для tags данные в виде списка преобразуются в строку и разделяются пробелами.
Создаем таблицу petl с указанными столбцами и наполняем ее данными о заявках.
Вручную расшифровываем кастомные статусы тикетов. Они уникальны для каждого портала Freshdesk. В данном случае их всего четыре. У вас их может не быть вовсе.
Выгружаем в Excel.
Создаем новый ноутбук для заявок, например, с именем Contacts. Импортируем библиотеки.
Вторым блоком подключаемся к Freshdesk, используя адрес своего портала и токен. Адрес портала нужно обязательно указывать с доменом freshdesk.com.
Записываем в две переменные информацию о контактах и агентах.
В рамках данного примера мы хотим на выходе сформировать одну общую таблицу контактов, где будут и обычные контакты (клиенты), и агенты. Причем, чтобы отличать обычных контактов от агентов, мы добавим дополнительный столбец isAgent. Также, чтобы отличать штатного агента от временного добавим столбец isOccasional.
Создаем переменную, куда будем помещать все данные в виде списка.Сначала помещаем всю информацию об обычных контактах в нашу переменную. Здесь же мы вычисляем название компании company_name по адресу электронной почты контакта.
Для столбца isAgent конечно же ставим False, так как мы сейчас работаем с обычными контактами. Для столбца isOccasional ставим None, так как обычный контакт не может быть ни штатным, ни временным агентом.Добавляем в ту же переменную информацию об агентах.
Формируем таблицу petl на основе единой информации о контактах и агентах в contacts_array.
Экспортируем в Excel.
Полученные файлы можно брать и загружать в платформу через стандартный загрузчик. На этом работа в ViXtract завершена.