Skip to main content

Цели разговора

Цели разговора — список того, что должно быть установлено в разговоре. Платформа сама отмечает выполненное и постоянно напоминает агенту, что уже подтверждено, поэтому агент не переспрашивает то, что уже получил. Напоминание живёт не в истории реплик, а в служебной части инструкции и обновляется на каждом ходу, поэтому из памяти не выпадает даже на длинном звонке. Отметку ставит платформа, а не модель. Решение принимается по проверяемому условию, а не «на глаз»: значение поля видно в записи звонка и его можно перепроверить. Дополнительных обращений к языковой модели механизм не делает — на скорость и стоимость звонка он не влияет. Сводка подмешивается в инструкцию автоматически и в расшифровку разговора не попадает.
  • Отслеживать цели разговора — главный переключатель. Пока он снят или список целей пуст, механизм выключен полностью.
Каждая цель добавляется кнопкой Добавить цель: Секция «Цели разговора»: поля цели, условие из конструктора и карточка «Узел пройден»

Условия и откуда берутся значения

Условие — выражение по полям звонка: {{full_name}} exists, {{consent}} == "да", {{amount}} > 1000, {{intent}} CONTAINS оплат, {{crm_check_success}} == true, с AND и OR. Регистр в сравнениях не учитывается. Выражения со скобками и со смесью AND и OR правятся только текстом. Проверка «агент дошёл до шага сценария» добавляется карточкой Узел пройден — узел выбирается из списка. Значения полей приходят из трёх источников: извлечение из разговора, результаты обращений к вашим системам (у каждого запроса автоматически есть {{имя}}_success, {{имя}}_status, {{имя}}_error плюс поля, назначенные из ответа) и данные, известные до звонка — переменные звонка и кампании.

Предусловия вместо порядка

Порядок целей задать нельзя: живой человек отвечает не по списку, и механизм со строгой последовательностью с этим боролся бы. Вместо порядка — предусловия. Два следствия:
  • Ответ, данный заранее, не теряется: значение сохранится, и цель закроется в тот момент, когда предусловие выполнится.
  • Недоступная цель агенту не показывается вообще — ни в подтверждённых фактах, ни в остатке, иначе агент поднял бы заблокированную тему раньше времени.

Пересмотр факта

Если включено «Значение может быть пересмотрено» и задано условие отмены, то при его истинности цель перестаёт быть закрытой, зависящие от неё цели снова становятся недоступными, признак «все цели закрыты» гаснет, а в истории появляется событие «Отметка цели снята» с причиной. Снимать что-либо руками не нужно: состояние пересчитывается на каждом ходу, и при повторном подтверждении цель закроется снова. Выбор обязателен в обе стороны: без пересмотра условие отмены запрещено — чтобы не появлялись условия-заглушки, которые выглядят защитой, но ничего не защищают.

Признак «все обязательные цели закрыты»

Когда закрыты все цели, отмеченные обязательными, платформа выставляет признак. Необязательные цели его не удерживают. Звонок при этом не завершается автоматически — разговор редко заканчивается на последней галочке, и автоматический обрыв давал бы звонки, оборванные на полуслове. Как воспользоваться признаком, решаете вы: поставьте на нужном переходе условие-формулу goals_completed() и ведите его в блок прощания, к передаче оператору или к финальному подтверждению. Признак «все цели закрыты» и оценка успешности звонка — разные вещи: они считаются независимо и обе видны в записи. Первое означает «всё запланированное выяснено», второе — «звонок успешен по вашему критерию».
Состояние целей пересчитывается один раз в конце каждого хода. Поэтому цель, закрытая ответом на текущей реплике, попадает в сводку и в признак начиная со следующего хода. Задержка ровно в одну реплику — это нормально, а не сбой.

Что видно в истории звонка

В хронологии разговора появляются события Цель закрыта (видно, на какой реплике), Отметка цели снята (с причиной: сработало условие отмены, условие выполнения перестало быть истинным или отозвано предусловие) и Ошибка условия цели. Кроме событий сохраняется итоговая картина: какие цели закрыты и на какой реплике, какие остались открытыми, какие были сняты и почему, стоял ли признак «всё выяснено». Отдельного сводного экрана и статистики по целям за период пока нет; данные записываются с первого дня и будут доступны за прошедший период, когда экран появится.

Ошибки

Черновик принимает любой структурно целый документ, поэтому недописанная цель сохранится — но заблокирует публикацию агента и тестовый звонок. Блокирующие причины: не заполнено название, идентификатор, условие выполнения или формулировка факта; условие написано с ошибкой и не может быть проверено; два идентификатора совпадают; предусловие ссылается на несуществующую цель или на саму себя; предусловия образуют круг (A требует B, B требует A); галочка «может быть пересмотрено» не согласована с условием отмены; в условии цели использован goals_completed() — цель зависела бы от собственного результата. В каждом случае видно причину и название цели. Если условие сломалось уже во время звонка — например, поле переименовали, — звонок не прерывается: цель считается незакрытой, в хронологию один раз пишется предупреждение «Ошибка условия цели», разговор продолжается нормально.

Ограничения

  • Не работает с агентами на моделях «речь-в-речь» (realtime): такие агенты не заполняют поля по ходу разговора, а без полей проверять нечего. Галочку включить можно, эффекта не будет.
  • Не заменяет обязательные раскрытия. Уведомление о записи разговора, идентификация до обсуждения долга и подобные требования — не цели: цель подсказывает агенту, а подсказку можно проигнорировать. Там, где произнести что-то обязательно, нужен жёсткий маршрут в сценарии; цели могут отражать состояние раскрытия, но не обеспечивают его.
  • Не навязывает порядок разговора и не завершает звонок сам.
  • В жёстком сценарии поле заполняется только когда разговор дошёл до шага с извлечением или до обращения к вашей системе: цель на поле, которое сценарий нигде не заполняет, не закроется. У агентов свободного режима такого ограничения нет.
  • Цели настраиваются на агенте и версионируются вместе с ним (черновик и опубликованная версия).