Статический коллтрекинг

Статический коллтрекинг и анализ телефонных номеров

Столкнулся я с задачей аналитики телефонных звонков для федеральной сети. Проблема заключается в том, что клиенту нужно видеть звонки в разрезе регионов. Это простая задача, если мы используем динамический коллтрекинг, который определяет звонившего по ip. Но сколько стоит такое удовольствие?

Посчитаем-с варианты

  1. Динамический коллтрекинг

У клиента 300 филиалов по РФ, для использования динамического коллтрекинга нам нужны номера 8 (800) в количестве 12 шт. (6 – Директ, 6 – AdWords). Итого в месяц абонентская плата составит 9 000 рублей, без стоимости разговоров и прочих плюшек. Для сравнения, два статических номера с таким же тарифным планом в месяц обойдутся в 4 000 руб.

+ Решаем поставленную задачу

+ Видим эффективность ключевых слов

– Дополнительные расходы 5 000 руб/ мес.

– Низкий процент определения региона (на одном из клиентов кол-во определенных регионов составило 25% от общего числа звонков)

  1. Прослушивание звонков

Более затратный вариант – это прослушка звонков с тегированием региона. Регион можно узнать по номеру или из разговора. Стоимость прослушивания одного звонка около 20 руб. итого при 600 звонков в месяц, затраты составят 12 000 руб. + 4 000 руб. за пользование Комеджиком.

+ Решаем поставленную задачу

+ Получаем отчет о работе колл-центра и рекомендации

– Дополнительные расходы от 12 000 руб/мес.

Есть еще 3й вариант – купить под каждый филиал региональный номер, но цена абонентской платы перевалит за 100к. как видим из возможных вариантов решить поставленную задачу можно либо частично (динамический коллтрекинг) либо через ручной труд, что в век автоматизации не комильфо. Поэтому будем автоматизировать.

Автоматизация

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

Углубившись в эту тему, я нашел открытые исходные данные по телефонным кодам: тут-с с регулярным обновлением.  И решил, что юзать онлайн сервисы не оптимально, лучше самому парсить данные.  В результате на свет появился мой первый скрипт, написанный на R. Это полуавтоматическое решение, подходит для создания ежемесячного отчета и занимает на подготовку 5 минут.

R script

Подготовка

Первым делом скачиваем с россвязи CSV-файлы с кодами, открываем и пересохраняем их с именами: «1.csv», «2csv»… Почему-то с исходных данных в R выгружается не вся информация и я решил эту проблему пересохранением.

Подготовка файлов для R-скрипта

Далее нам понадобиться файлик «phones.csv» с телефонными номерами. Важно: в ячейке А1 должно быть название столбца.

Подготовка файлов для R-скрипта

В папке, где по умолчанию работает R нужно создать папку «ROpred» и загрузить туда все подготовленные файлы. На этом все. Запускаем скрипт и получаем результат в виде файла: «result.csv»

Подготовка папки для R-скрипта

Код

 

 

Смотреть

# start
library('XLConnect')

# Создаем директорию для работы
setwd("ROpred")

# Считываем из директории файл с номерами
dfTel = read.csv2("phones.csv", header = TRUE)

df1 <- read.csv2("1.csv", header = TRUE)
df2 <- read.csv2("2.csv", header = TRUE)
df3 <- read.csv2("3.csv", header = TRUE)
df4 <- read.csv2("4.csv", header = TRUE)

# Создаем общую таблицу для проверки кодов
dfTOT <-rbind(df1,df2,df3,df4)

# Создаем таблицу результата
res1 <- data.frame()
result <- data.frame()

#Внешний цикл обработки списка номеров ABC
sTel <- nrow(dfTel)

for (i in 1:sTel){
x <- as.integer(substr(dfTel[i,1],2,4))
rowABC <-c(grep (x,dfTOT[,1]))
dfABC <- dfTOT[rowABC,]
y <- as.integer(substr(dfTel[i,1],5,11))

# Внутренний цикл обработки номера DEF
sABC <- nrow(dfABC)
for (q in 1:sABC){

if (y >= dfABC[q,2] & y <= dfABC[q,3]) res1<- dfABC[q,]
}

result <- rbind(result, res1)
}

result <- cbind(result,dfTel)
write.csv2(result, file="result.csv")

 

 

Нюансы

Скрипт сырой. На данный момент в нем не реализован процесс обработки номеров, которых нет в исходниках россвязи. Если такие номера попадут в «phones.csv» скрипт прекратит работу при обработке номера.

Буду рад комментариям по коду. Есть подозрение, что циклы можно заменить, функцией “apply”.

Добавить комментарий

Ваш e-mail не будет опубликован.