Freshdesk

Ноутбуки, используемые в примере:


В данной статье рассматривается пример получения данных с портала поддержки клиентов Freshdesk https://freshdesk.com. Пример не является шаблонным: в каждом случае задачи разнятся, и работать с данными придется по-другому.

Вот особенности данного кейса:

  • Количество получаемых данных небольшое - порядка 400 строк, поэтому все выгруженные и обработанные данные сохраняются в XLSX файл, а не в CSV или SQL базу данных.

  • Будут использоваться два ноутбука: первый для данных заявок, второй для данных контактов и агентов. На выходе будет два Excel файла для загрузки в платформу.

Здесь не рассматривается:


Сначала необходимо внимательно ознакомиться с описанием работы библиотеки python для Freshdesk:GitHub - sjkingo/python-freshdesk: An API for the Freshdesk helpdesk, а также с API Freshdesk https://developers.freshdesk.com/api.

 

Теперь можно приступать к работе в JupyterLab.

  1. Создаем новый ноутбук для заявок, например, с именем Tickets.

  2. Первым блоком подключаем все необходимые нам для работы Python библиотеки:

    import petl as etl from freshdesk.api import API from datetime import date

     

  3. Вторым блоком подключаемся к Freshdesk, используя адрес своего портала и токен. Адрес портала нужно обязательно указывать с доменом freshdesk.com.

    a = API('yourname.freshdesk.com', 'gj34pg98hyatoken')

     

  4. Получаем заявки c 1 января 2015 года, кроме удаленных и помеченных как спам. Параметр filter_name необходим для получения всех заявок. Если его не указать, придут только открытые заявки, назначенные агенту, чей токен указан в подключении.

    tickets = a.tickets.list_tickets(updated_since='2015-01-01', filter_name=None)

     

  5. Кладем все данные в список, где каждый элемент - это словарь. Это нужно для создания таблицы petl в следующем шаге. В некоторых местах данные сразу преобразовываются к нужном виду, например, для tags данные в виде списка преобразуются в строку и разделяются пробелами.

     

  6. Создаем таблицу petl с указанными столбцами и наполняем ее данными о заявках.

     

  7. Вручную расшифровываем кастомные статусы тикетов. Они уникальны для каждого портала Freshdesk. В данном случае их всего четыре. У вас их может не быть вовсе.

     

  8. Выгружаем в Excel.

     


  1. Создаем новый ноутбук для заявок, например, с именем Contacts. Импортируем библиотеки.

     

  2. Вторым блоком подключаемся к Freshdesk, используя адрес своего портала и токен. Адрес портала нужно обязательно указывать с доменом freshdesk.com.

     

  3. Записываем в две переменные информацию о контактах и агентах.

     

  4. В рамках данного примера мы хотим на выходе сформировать одну общую таблицу контактов, где будут и обычные контакты (клиенты), и агенты. Причем, чтобы отличать обычных контактов от агентов, мы добавим дополнительный столбец isAgent. Также, чтобы отличать штатного агента от временного добавим столбец isOccasional.
    Создаем переменную, куда будем помещать все данные в виде списка.

     

  5. Сначала помещаем всю информацию об обычных контактах в нашу переменную. Здесь же мы вычисляем название компании company_name по адресу электронной почты контакта.
    Для столбца isAgent конечно же ставим False, так как мы сейчас работаем с обычными контактами. Для столбца isOccasional ставим None, так как обычный контакт не может быть ни штатным, ни временным агентом.

     

  6. Добавляем в ту же переменную информацию об агентах.

     

  7. Формируем таблицу petl на основе единой информации о контактах и агентах в contacts_array.

     

  8. Экспортируем в Excel.

 

Полученные файлы можно брать и загружать в платформу через стандартный загрузчик. На этом работа в ViXtract завершена.