Перейти к содержанию

Создание отчетов по опросникам

У каждого отчета есть идентификатор survey_id, который используется для указания на конкретный отчет в метрике. Ниже приведен пример URL, где число 1 является идентификатором опросника:

account.webim.ru/agent/survey-configs/1

Также в отчете присутствуют формы опросника, идентификатор формы form_id обозначается порядковым номером формы, начиная с 0: 0, 1, 2...

Внутри формы у каждого вопроса есть свой идентификатор question_id, который так же, как и форма, обозначается порядковым номером.

Для указания на конкретный опрос:

survey_id == A, где A - идентификатор опросника

Для указания на конкретную форму опросника:

survey_id == A and form_id == B, где A - идентификатор опросника, B - идентификатор формы опросника

Для указания на конкретный вопрос:

survey_id == A and form_id == B and question_id == C, где A - идентификатор опросника, B - идентификатор формы опросника, C - идентификатор вопроса

Важные поля:

  • subjects - оцениваемая сущность, в данный момент оператор или бот, пример настройки для бота: has(subjects, "bot")
  • survey_id - идентификатор опросника
  • form_id - идентификатор формы опросника
  • question_id - идентификатор вопроса в форме
  • type - тип вопроса, например stars, radio или comment
  • question_text - сопроводительный текст вопроса, также может использоваться для указания на конкретный вопрос
  • answer - текст, содержащий оценку (с одним числом), вариант ответа (текст одного из вариантов) или развернутый ответ на вопрос

Пример опросника с добавлением форм

Создание статистики по оценкам

Суть составления метрик по оценкам заключается в формировании выражения, делающего выборку по строкам, содержащим тип stars: type == 'stars'

Метрика, считающая среднюю оценку по всем опросникам в системе, будет являться копией стандартной метрики Средняя оценка оператора (Опросники). Пример формулы расчета:

if(sum(type == 'stars' ? sign : 0) != 0, round(sum(type == 'stars' ? accurateCastOrDefault(answer, 'UInt8', 0) * sign : 0) / sum(type == 'stars' and isNotNull(accurateCastOrNull(answer, 'UInt8')) ? sign : 0), 2), 0)

Пример создания метрики, считающей среднюю оценку по всем опросникам в системе

В метрике, считающей среднюю оценку по конкретному опроснику, используется уточнение survey_id == N, где N - идентификатор интересующего опросника. Ниже приведен пример формулы расчета, где N = 1:

if(sum(type == 'stars' and survey_id == 1 ? sign : 0) != 0, round(sum(type == 'stars' and survey_id == 1 ? accurateCastOrDefault(answer, 'UInt8', 0) * sign : 0) / sum(type == 'stars' and survey_id == 1 and isNotNull(accurateCastOrNull(answer, 'UInt8')) ? sign : 0), 2), 0)

Пример создания метрики, считающей среднюю оценку по конкретному опроснику

В метрике, считающей среднюю оценку по конкретному вопросу во всей системе, также добавляется уточнение с номером конкретного опросника, формы и вопроса: survey_id == A and form_id == B and question_id == C. Ниже приведен пример формулы расчета, где А = 1, В и С = 0:

if(sum(type == 'stars' and survey_id == 1 and form_id == 0 and question_id == 0 ? sign : 0) != 0, round(sum(type == 'stars' and survey_id == 1 and form_id == 0 and question_id == 0 ? accurateCastOrDefault(answer, 'UInt8', 0) * sign : 0) / sum(type == 'stars' and survey_id == 1 and form_id == 0 and question_id == 0 and isNotNull(accurateCastOrNull(answer, 'UInt8')) ? sign : 0), 2), 0)

Пример создания метрики, считающей среднюю оценку по конкретному вопросу

Описанные выше подходы позволяют считать среднюю, максимальную и минимальную оценку в любых пределах, начиная от одного вопроса, заканчивая всеми вопросами в системе.

Пример конфигурации отчета по опросникам, содержащим вопросы типа stars

Пример результат запроса отчета

Создание статистики по вопросам с возможностью выбора варианта ответа

Суть составления метрик по оценкам заключается в формировании выражения, делающего выборку по строкам содержащим тип radio: type == 'radio'

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

sum(if(survey_id == 1 and form_id == 0 and question_id == 2 and type =='radio', sign, 0)

Пример создания метрики, считающей количество ответов для конкретного вопроса

Ниже приведены примеры метрик, считающих количество определенных ответов из вариантов.

Количество ответов "Ответ 1" в вопросе с выбором в опроснике 1:

sum(if(survey_id == 1 and form_id == 0 and question_id == 2 and type =='radio' and answer = "Ответ 1", sign, 0)
Метрика, считающая количество ответов "Ответ 1"

Количество ответов "Ответ 2" в вопросе с выбором в опроснике 1:

sum(if(survey_id == 1 and form_id == 0 and question_id == 2 and type =='radio' and answer = "Ответ 2", sign, 0)

Метрика, считающая количество ответов "Ответ 2"

N.B.

Такие метрики следует использовать для конкретных вопросов, так как подсчет ответов основывается на точной формулировке ответов заданных при создании опросника.

На примерах ниже показана конфигурация подобного отчета и результат запроса:

Конфигурация отчета по опросникам, содержащим вопросы типа radio

Результат запроса

Создание статистики по развернутым ответам

Суть составления метрик по оценкам заключается в формировании выражения, делающего выборку по строкам содержащим тип comment type == 'comment'. Ниже приведены примеры подобных метрик.

  1. Количество развернутых ответов в опросах:

    sum(if(type == 'comment', sign, 0)
    

    Пример метрики, считающей количество развернутых ответов на вопросы

  2. Количество развернутых ответов на вопросы содержащих плохие слова, заданные метрикой:

    sum(if(type == 'comment' and multiSearchAny(answer, ['badword1', 'badword2']), sign, 0)
    

    Пример метрики, считающей количество развернутых ответов на вопросы содержащих плохие слова, заданные метрикой

  3. Количество развернутых ответов на вопросы, длина ответов которых превышает 20 символов:

    sum(if(type == 'comment' and length(answer) > 20, sign, 0)
    

    Пример метрики, считающей количество развернутых ответов на вопросы, длина ответов которых превышает 20 символов

    На примерах ниже показана конфигурация подобного отчета и результат запроса:

    Конфигурация отчета по опросникам, содержащим вопросы типа comment

    Результат запроса

Пример запроса комплексного отчета

Для создания запроса комплексного отчета будут использоваться все ранее описанные метрики. На примере ниже показан подобный запрос с группировкой по временным интервалам по часам в течение дня:

Пример запроса комплексного отчета