Перейти к основному контенту

Контакт-Центр. Как вернуть лида в нужный сценарий

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

Прерывание сценария - это прерывания сессии диалога или другими словами сброс диалога. Это происходит в нескольких случаях:

  1. Если в скрипте, в который попал пользователь, нет переходов дальше, т.е. команды прерываются и образуется тупик. 
  2. Если в скрипте стоит команда СТОП.
  3. Если пользователю пришли рассылка или триггер также без продолжающих сценарий переходов.
  4. Если пользователю живой человек написал сообщение через интерфейс лида.
  5. Если живой человек забрал диалог из КЦ.

В этой статье будет рассмотрено решение для работы чат-бота в связке с КЦ.

1.  Базовые команды.

Для корректной работы перевода на оператора и обратно в чат-бота обязательно должны быть созданы 2 скрипта:

  • Перевод на оператора. В котором происходит запрос вопроса или контактных данных и, собственно, сам перевод.

Однако если чат-бот работает полностью автономно, то этого скрипта может и не быть.

  • Возврат в бота. С типом Возврат, в котором происходит передача боту и развилка по сценариям. 

image.png

2.  Работа в КЦ.

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

image.png

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

image.png

В момент завершения сработает скрипт Возврат в бота с типом Возврат.

3.  Возврат в выбранный сценарий.

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

image.png

1 команда отвечает за возврат диалога боту - убирает галку параметра Чат с оператором у лида.
2 команда - текст, сообщающий лиду о том, что с ним снова общается бот.
3 команда работает только если у лида проставлена определенная переменная (которую проставит оператор).
4 команда работает также только при наличии этой команды и запрещает переход дальше, чтобы успел сработать запущенный переход из 3 команды.
5 команда - стандартный переход по сценарию возврата, обычно это главное меню бота.

//Условие команды
if (lead.getAttr('сценарий')) {
return true;
}

/*Условие проверяет, есть ли в переменной значение или там null. Если значение нет, то комнада не запустится*/

//Тело команды
let scriptNum = lead.getAttr('сценарий');  //присвоение переменной в код запуска скрипта

bot.runScriptForLead(scriptNum, leadId, null, false);  //код запуска скрипта по его номеру в конструкторе
Как присвоить переменную? 

Для этого оператору понадобится Кликабельная шапка лида в КЦ.

image.png

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

image.png

image.png

Где взять номер скрипта? 

Номер скрипта прописан в URL конструктора 

image.png

Именно в него перейдет лид, после возврата в бота, если номер будет сохранен в переменной лида.

Пример

image.png

image.png

image.png

Ответы на другие вопросы

1. Можно ли назвать переменную не сценарий?

Можно, переменную разработчик/оператор бота может назвать как удобно. ВАЖНО, чтобы эти названия полностью совпадали, иначе код не запустится

2. Как потом работать с этим лидом? Надо ли удалять значение переменной?

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

//Функция добавляет в значение перемнной null, т.е. очищает её
lead.setAttr('сценарий', null);

Также рекомендуем проверять переменную в работе оператора с ботом и завершении. Если переменная есть, то ее также через редактирование лида можно очистить.