Как выгрузить данные по звонкам из Calltouch используя API и язык R?
Для кого это?
Статья будет интересна всем кто на ежедневной основе собирает данные из нескольких кабинетов (аккаунтов) Calltouch, с целью анализа данных по звонкам клиентов. Так же материал будет полезен тем, кто планирует выгружать данные колтача и дальше грузить их к себе в системы bi аналитики аккумулируя предварительно в каких-то базах данных.
Исходные данные
Для решения задачи подойдет любой язык программирования, который поддерживает работу с HTTP-запросами, — я пользуюсь языком R.
Для подключения его нужно скачать и установить. Также для комфортной работы с R рекомендую использовать бесплатную среду разработки RStudio.
Для решения вышеописанной задачи нам потребуется установить пакеты для:
- загрузки данных из кабинетов Яндекс Метрики — "httr"
- работы со временем и временными периодами — «lubridate»
- работы с таблицами и агрегации данных — «dplyr»
- агрегации строк и работы с ними — "stringr"
Чтобы установить пакеты из основного репозитория CRAN примените базовую функцию install.packages:
Пакет достаточно установить однажды, но подключать нужно каждый раз при запуске нового сеанса работы с R. Для подключения используйте функцию library.
Теперь приступаем к работе самими API Calltouch. В разделе интеграции есть необходимый нам блок
Переходя в него мы должны активировать API подключение и нам откроются три основных параметра для работы с API
Копируем ID, Сервер и Токен из кабинета в любой текстовый редактор, проверяем чтобы статус был «Активен» и можете закрывать кабинет Calltouc… на всегда =)
Возвращаемся в Rstudio и записываем наши доступы в переменные:
Задаем переменные дат, для определения периода сбора информации за который мы будем собирать информацию из кабинета колтача:
Пишем функцию
Теперь когда все исходные данные есть, мы пишем свою функцию для сбора статистики из кабинета Calltouch. Функция скорее всего будет сложна для понимания людям которые впервые столкнулись с языком R т.к. включает в себя различные приемы использования синтаксиса R, поэтому для общего понимания добавлены пояснения:
Далее запускаем нашу самописную функцию используя переменные полученные в самом начале:
Итог
Выполнив функцию, в среде разработки, мы получим таблицу со всеми полями, которые включаются в отчет по звонкам передаваемые API Calltouch. Далее мы можем либо сохранить данные себе на компьютер в виде csv файла
либо отправить в какую-нибудь базу данных так же используя R, либо использовать по какому-то своему усмотрению. Но это уже совсем другая история =)
На этом всё. Если статья была интересна, позднее планирую написать о том как передавать данные в БД или как собрать данные из множества кабинетов одновременно и подготовить данные для анализа.
Весь код в читаемом виде доступен на github
Я человек простой - вижу автоматизацию, ставлю плюс)
=)
А просто в CSV выгрузить нельзя средствами колтач? Зачем такие сложности?
Если необходимо собирать данные каждый день и писать их к себе в БД, то ежедневный ручной труд по выгрузке в БД с использованием csv (что видится мне тоже крайне не простой задачей) приведет к мозолям через несколько месяцев=)..
Привет, год наверное не заходил в RStudio :) Не планируется ли из этого создать готовый пакет?
Есть такая идея =) Если реализуется, обязательно здесь отпишу
Готово=)