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

История диалогов

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

Тексты диалогов, состоявшихся у оператора ранее, можно посмотреть на странице История, перейдя на неё из меню Панели управления:

Переход к истории диалогов через меню

Откроется страница истории диалогов.

Страница истории диалогов

Столбцы таблицы

В таблице истории диалогов отображаются следующие поля:

Поле Описание
Внутренний идентификатор обращения
Имя Имя посетителя (или «Посетитель», если имя не задано)
ID посетителя Уникальный идентификатор посетителя. Подробнее см. описание идентификаторов
Email посетителя Адрес электронной почты посетителя, если был указан
Телефон Номер телефона посетителя, если был указан
Адрес посетителя IP-адрес, с которого начат диалог
Оператор Оператор, который последним писал или совершил действие в диалоге
Сообщений посетителя Количество сообщений, отправленных посетителем в рамках обращения
Категории Список категорий, назначенных диалогу. Если их несколько, они выводятся через запятую
Отделы Отдел, в который было направлено обращение
Начат Дата и время начала диалога
Длительность обращения Общая продолжительность обращения от создания до закрытия
Действие Возможность начать новый диалог с посетителем (Начать диалог)

На этой странице отображается список всех диалогов, доступных для просмотра этим оператором, прежде всего между ним самим и посетителями, которых он(а) обслужил(а).

История диалогов может работать в двух режимах:

  • Стандартный режим - поиск по истории диалогов работает через аналитическую СУБД (MySQL, PostgreSQL), при большом количестве диалогов процесс может занять продолжительное время.

  • Режим интеграции Webim с Elasticsearch - поиск по истории диалогов работает через интеграцию с поисковым движком Elasticsearch, что ускоряет поиск по истории при большом количестве диалогов. Передача диалогов в движок осуществляется с помощью компонента es-storager.

Чтобы быстро осуществить навигацию по истории сообщений, Вы можете ввести в строке поиска имя посетителя, его внутренний ID или фрагмент текста сообщения.

Чтобы перейти к расширенному поиску, нажмите Все фильтры. Откроется вложенная вкладка:

Фильтры

В качестве дополнительных фильтров можно настроить следующие параметры:

  • Операторы: можно выбрать одного или несколько операторов, чьи диалоги необходимо найти;
  • Оценка: можно выбрать чаты, в которых посетитель поставил оператору определённую оценку;
  • Отделы: позволит показать чаты, обращения в которых были направлены в определённые отделы;
  • Язык диалога: отображение чатов на конкретном языке;
  • Категория: отображение чатов, которым была задана одна из выбранных категорий;
  • Показывать диалоги: позволит отобразить диалоги, которые попали в одну из следующих групп:
    • Онлайн: онлайн-обращения;
    • Офлайн: офлайн-обращения (обращение считается офлайн, если все операторы в отделе для обращения были в статусе Офлайн;
    • Пропущенные: обращение считается пропущенным, если посетитель ушёл до того, как ему начали набирать ответ, и не вернулся до того, как закрыли диалог;
    • Отказы: обращение, в котором посетитель написал, когда операторы были онлайн, и находился онлайн в течение этого тайм-аута, но не получил за это время ответа;
    • Отклонённые приглашения;
    • В обработке.
  • Минимум сообщений: показывает диалоги, в которых количество сообщений – не меньше указанного;
  • ID посетителя: отображает все чаты с посетителем с данным ID.

N.B.

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

Также в таблице с историей в крайней правой колонке есть кнопка Начать чат. Это позволит Вам начать новый чат с данным посетителем. В РМО он отобразится в отделе Приглашённые. Если посетитель не онлайн, у чата будет пометка «офлайн».

Скачивание данных пользователей

Чтобы выгрузить список всех посетителей, которые обращались к Вам за всё время, нажмите кнопку Скачать данные всех посетителей. Начнётся загрузка csv-файла. В нём будет содержаться информация о всех посетителях, когда-либо обращавшихся к Вам за консультацией, с указанием их идентификаторов, имени, даты и времени обращения.

Пример фрагмента списка посетителей

Выгрузка истории диалогов

Чтобы загрузить список диалогов на локальный диск, нажмите кнопку Сохранить как... и в выпадающем окне выберите нужный формат. Сервис сформирует файл и предложит сохранить его на диске. Выберите имя и директорию для сохранения. Откройте файл в любом текстовом редакторе.

Пример фрагмента истории диалогов в формате .TXT

Чтобы загрузить список диалогов на локальный диск в формате Microsoft Excel, нажмите Сохранить как XLSX с диалогами.

Функция доступна при включённой тарифной опции thread_search_leads_excel_export. Для её активации обратитесь к вашему менеджеру.

Сервис сформирует файл и предложит сохранить его на диске. Выберите имя и директорию для сохранения. Откройте файл в программе Microsoft Excel. Обратите внимание, что выгрузить можно не более 5000 диалогов.

Пример фрагмента истории диалогов в виде таблицы Excel

Поиск по тексту

Далее описаны правила того, как работает строка поиска и фильтр «Текст сообщения» в разделе История диалогов. В интерфейсе могут применяться два разных механизма:

  • Поиск по ElasticSearch — полнотекстовый, токенизирующий запрос.
  • Поиск по SQL — поиск подстроки в тексте сообщений.

Отличия видов поиска

Характеристика ElasticSearch SQL
Обработка фразы с несколькими словами Слова анализируются отдельно; по умолчанию — логическое И; порядок слов не важен (кроме запроса в кавычках) Ищется точная подстрока; порядок и пробелы важны
Кавычки "…" Поиск строгой последовательности слов Не имеют специального смысла, учитываются как обычные символы
Регистрозависимость Регистр не учитывается Регистр не учитывается
Маски Поддерживается только суффиксная * у одного слова Маски не используются; поиск по части слова возможен обычным вводом фрагмента
Ошибки в синтаксисе Невалидные части запроса игнорируются, поиск выполняется по валидным фрагментам Синтаксического парсинга нет; ищется введённая подстрока
Производительность и актуальность Быстрая индексация, «почти в реальном времени» Скорость зависит от объёма и периода; при длинных интервалах медленнее

Поля, по которым выполняется поиск

Свободная строка поиска и фильтр «Текст сообщения» применяются к текстам сообщений диалога (сообщения посетителя и оператора). Структурные фильтры (период, канал, оператор, отдел, категория и т. п.) сужают выборку диалогов и не меняют правила разбора текстового запроса.

N.B.

Внутренние системные события отображаются в истории, но в текстовом поиске учитываются только текстовые тела сообщений.

Поиск через ElasticSearch

Поддерживаются следующие операторы в строке поиска:

  • + — логическое И между словами
  • | — логическое ИЛИ
  • "…" — точная фраза (строгое совпадение порядка и соседства слов)
  • * — только в конце одного слова для поиска по префиксу

N.B.

Любые символы внутри кавычек трактуются как обычные символы. Другие расширенные операторы (например, -, ~, скобки) в интерфейсе истории не используются.

Особенности

  • Порядок слов вне кавычек не важен. Запрос из нескольких слов трактуется как логическое И между токенами.
  • Регистр не учитывается.
  • Если запрос сформулирован с ошибкой (например, не закрыты кавычки), невалидные части игнорируются и поиск всё равно выполняется по валидным фрагментам.
  • Маска * работает только как суффикс одного слова: эластик*. Конструкции вида поиска в эластик* не возвращают результатов.
  • Символ ? в текстовом поле не поддерживается и воспринимается как обычный символ.

Примеры (Elastic)

Пусть в сообщениях есть фрагмент: фраза для поиска в эластике.

Ввод Результат
фраза Диалоги, где встречается слово «фраза»
фраза для Диалоги, где встречаются оба слова «фраза» и «для», порядок не важен
"фраза для" Диалоги с точной последовательностью «фраза для»
"фраза для" | поиска Диалоги с точной фразой «фраза для» или со словом «поиска»
эластик* Диалоги со словами, начинающимися на «эластик…»
поиска в эластик* Результатов нет (маска работает только для одного слова)
"фраза для Работает как фраза для (первая кавычка будет проигнорирована)

Поиск через SQL

Поиск выполняется как независимое от регистра сравнение подстроки в тексте сообщений. Специальный синтаксис в строке не используется.

Особенности

  • Несколько слов, разделённых пробелами, трактуются как единая подстрока: порядок и наличие пробелов важны.
  • Кавычки, *, ? и другие символы не имеют специального смысла и воспринимаются как обычные символы.
  • Для поиска по части слова достаточно ввести фрагмент слова; он будет найден как подстрока.

Примеры (SQL)

Те же исходные данные: фраза для поиска в эластике.

Ввод Результат
фраза Диалоги, где встречается подстрока «фраза»
фраза для Диалоги, где встречается ровно «фраза␠для» (в этом порядке)
"фраза для" То же, что и выше: кавычки не влияют
эластик* Диалоги с подстрокой «эластик*» (звёздочка не является маской)
ласт Диалоги, где встречается «ласт» как часть слова

Влияние фильтров

Период ограничивает набор диалогов, в пределах которого выполняется текстовый поиск.

Канал, отдел, оператор, категория и другие параметры сужают выборку диалогов. Логика разбора текстового запроса при этом не меняется.

Ограничения

  • В Elastic не поддерживается комбинация маски * и нескольких слов. Если нужен поиск по нескольким словам и одному префиксу, используйте последовательные запросы или уточняйте фразу.
  • В SQL при длинных интервалах время отклика может увеличиваться, так как поиск подстроки линейно зависит от объёма текста.
  • Для строгого совпадения слов рядом и в заданном порядке используйте кавычки в режиме Elastic. В SQL того же эффекта можно добиться, введя фразу целиком, включая пробелы в нужном месте.

Выбор режима поиска

Переключение режима выполняется параметром elasticsearch_history.

  • true — строка поиска и фильтр «Текст сообщения» работают через ElasticSearch (simple_query_string).
  • false — используется SQL (регистронезависимый поиск подстроки по телу сообщений).

Подключение к кластеру Elastic настраивается по инструкции «Подключение Elasticsearch».

Где включить?

  • Через редактор настроек аккаунта (account config): найдите параметр elasticsearch_history и установите нужное значение.
  • После включения Elastic убедитесь, что запущен процесс индексации истории. Для старых сообщений может потребоваться первичная индексация.

N.B.

Если у вас нет доступа к account config, пожалуйста, обратитесь к вашему аккаунт-менеджеру.

Как проверить режим

  • В логах запросов видны обращения либо к Elastic, либо SQL с ILIKE по телу сообщений.
  • В интерфейсе начинают работать | и суффиксная маска * только в Elastic‑режиме.

Связанные страницы