Wallboards в колл-центре Infinity

Данный инструмент позволяет вывести на большой экран в вашем Call-центре результаты работы отдела и отдельных специалистов за текущий день. По отзывам наших клиентов, это очень позитивно влияет на внутреннюю мотивацию персонала, побуждая сотрудников добиваться наилучших результатов

Настройка Wallboards

В последних версиях программы Infinity Call-Center X появилась возможность использовать wallboard-ы. Wallboard необходимы , чтобы отображать информацию по работе операторов во входящих/исходящих кампаниях.

В параметрах системы можно изменить настройки WallBoard-ов

Индикаторы

Индикаторы предназначены для построения наглядных инструментов онлайн-мониторинга различных показателей работы call-центра.

По аналогии с отчетами индикатором может быть любое количество. Можно одновременно расположить на экране несколько индикаторов. Кроме этого, индикаторы могут содержать в себе друг друга, чтобы обеспечить наиболее удобное и наглядное отображение информации.

В большинстве случаев источником данных для индикатора являются SQL-запросы в базы данных. Запросы выполняются с заданной частотой. В более сложных случаях можно использовать сценарии, которые позволяют корректировать значения индикаторов, выполнять HTTP-запросы, выполнять фрагменты кода и т.д.

Простые индикаторы

Индикатор отображает данные, которые возвращает первая строка SQL-запроса. Остальные строки игнорируются. Количество ячеек индикатора определяется заданными количеством строк и столбцов. Ориентация индикатора (горизонтальная или вертикальная) определяет порядок заполнения ячеек данным – по строкам или по столбцам. Если размер индикатора (произведения количества строк и количества столбцов) не позволяет отобразить все значения, не уместившиеся значения отображаться не будут.

Пример настройки индикатора – SQL-запрос и значения (появляются автоматически после проверки запроса):

Горизонтальный индикатор (3 столбца, 1 строка):

Вертикальный индикатор (1 столбец, 3 строки):

Увеличенный размер второго значения (2х2) и увеличенный размер индикатора (2х3):

Пороговые значения для желтого/красного, а также формат значения «{0} сек»:

Вложенные индикаторы

В дополнение к SQL-запросу (либо вместо него), можно добавлять к индикатору дочерние элементы. Рекурсия (добавление самого себя напрямую или через цепочку) игнорируется. Для каждого дочернего элемента можно задать размер (по умолчанию 1х1).

Если в SQL-запросе есть входные параметры, для дочернего элемента нужно задать их значения. Таким образом можно создавать шаблоны (например, ряд показателей для очереди) и размещать несколько шаблонов с заданными параметрами внутри одного индикатора

Обработка данных

Если SQL-запрос возвращает null, значение не отображается. Чтобы отобразить 0 необходимо использовать оператор coalesce(value, 0).

Для дочерних индикаторов используется период обновления родительского индикатора самого верхнего уровня.

Всегда используется только первая строка.

Отрисовка интерфейса

Внешний вид интерфейса определяется глобальными параметрами системы, а также настройками индикаторов (цвет заголовка) и значений (цвета и размеры шрифта).

Прозрачный цвет игнорируется (используется параметр системы).

Пустые заголовки не отображаются.

Если заголовок занимает слишком много места, он автоматически скрывается, если значение не умещается в ячейку, размер шрифта уменьшается автоматически

Значения параметров системы по умолчанию:

Сценарии

Назначенный бизнес-сценарий выполняется после каждого обновления данных. В него передается информация о текущем индикаторе и полученные в результате SQL-запроса значения. В простом случае сценарий может вернуть одно значение. Если оно не пусто (null), то на него будут заменены все значения индикатора. Идентификатор текущего индикатора можно получить через parameters_.GetValue(“ID”):

return Convert.ToString(parameters_.GetValue("ID"))+" from scenario";

В более сложном случае можно вернуть словарь значений (заменить одно или несколько значений индикатора, как с использованием старых значений, так и без него):

var result = new System.Collections.Generic.Dictionary();

result["first"] = 111;

result["second"] = parsedContent_.get("first")+"_"+parsedContent_.get("second");

result["third"] = 333;

result["fourth"] = DateTime.Now;

return result;

В самом сложном случае можно полностью переопределить набор значений индикатора и их параметры. Это позволяет сформировать структуру индикатора, значения и их свойства динамически:

var result = new System.Collections.Generic.List();

result.Add(new Cx.Client.Indicators.IndicatorValue()

{

Caption = "первый",

Value = 1,

DefaultColor = System.Drawing.Color.LightBlue.ToArgb()

});

result.Add(new Cx.Client.Indicators.IndicatorValue()

{

Value = 123,

DefaultColor = System.Drawing.Color.Orange.ToArgb()

});

var r = new Random();

if (r.Next(10) < 5)

{

result.Add(new Cx.Client.Indicators.IndicatorValue()

{

Caption = "тест",

Value = DateTime.Now

});

}

else

{

result.Add(new Cx.Client.Indicators.IndicatorValue());

}

result.Add(new Cx.Client.Indicators.IndicatorValue()

{

Value = DateTime.Now,

DefaultColor = System.Drawing.Color.Magenta.ToArgb(),

BorderColor = System.Drawing.Color.Black.ToArgb()

});

return result;

Структура объекта IndicatorValue и значения по умолчанию:

public class IndicatorValue

{

public IndicatorValue()

{

Width = 1;

Height = 1;

FormatString = "{0}";

WarningValue = 0;

CriticalValue = 0;

CaptionColor = Color.Transparent.ToArgb();

DefaultColor = Color.Transparent.ToArgb();

WarningColor = Color.Transparent.ToArgb();

CriticalColor = Color.Transparent.ToArgb();

BorderColor = Color.Transparent.ToArgb();

CaptionFontSize = 0;

ValueFontSize = 0;

}

public string Name { get; set; }

public string Caption {get;set;}

public string FormatString { get; set; }

public int WarningValue { get; set; }

public int CriticalValue { get; set; }

public int CaptionColor { get; set; }

public int DefaultColor { get; set; }

public int WarningColor { get; set; }

public int CriticalColor { get; set; }

public int BorderColor { get; set; }

public int ValueFontSize { get; set; }

public int CaptionFontSize { get; set; }

public int Width { get; set; }

public int Height { get; set; }

public object Value { get; set; }

}

В сценарии можно запустить воспроизведение звукового файла:

Cx.Client.Utils.GlobalUtils.StartPlay("c:\\1.wav"); // по умолчанию используется плеер mpc-hc64.exe

Cx.Client.Utils.GlobalUtils.StartPlay("c:\\1.wav", "wmplayer.exe"); // заданный явно плеер

Cx.Client.Utils.GlobalUtils.StopPlay(); // остановка воспроизведения

Экспорт-импорт

Экспорт-импорт позволяет переносить настройки индикаторов между инсталляциями системы.

Каждый индикатор при создании получает GUID. Это позволяет обеспечить корректный экспорт-импорт связанных индикаторов.

При экспорте родительского индикатора вместе с ним экспортируются все дочерние.

При импорте цепочки индикаторов производится проверка GUIDов. Дочерние дубли не создаются. Дубль первого уровня создается всегда (это позволяет копировать индикаторы).

При импорте все индикаторы помещаются в текущую папку (независимо от прежней структуры).

Формат данных импорта-экспорта – JSON. Позволяет при необходимости вносить изменения вручную