Как вернуть лида в нужный сценарий
Работа чат-бота, написанного на конструкторе, — это последовательное выполнение действий. Вклиниваясь в диалог бота, оператор меняет его контекст, полностью прерывая сценарную ветку, не зависимо от того был ли перевод предусмотрен по логике или это произошло по решению человека-оператора.
Прерывание сценария — это прерывания сессии диалога или другими словами сброс диалога. Это происходит в нескольких случаях:
- Если в скрипте, в который попал пользователь, нет переходов дальше, т.е. команды прерываются и образуется тупик;
- Если в скрипте стоит команда СТОП;
- Если пользователю пришли рассылка или триггер также без продолжающих сценарий переходов;
- Если пользователю живой человек написал сообщение через интерфейс лида;
- Если живой человек забрал диалог из КЦ.
В этой статье будет рассмотрено решение для работы чат-бота в связке с КЦ.
Базовые команды
Для корректной работы перевода на оператора и обратно в чат-бота обязательно должны быть созданы 2 скрипта:
- Перевод на оператора — в котором происходит запрос вопроса или контактных данных и, собственно, сам перевод;
Однако если чат-бот работает полностью автономно, то этого скрипта может и не быть.
- Возврат в бота — с типом Возврат, в котором происходит передача боту и развилка по сценариям.
Работа в КЦ
В целях помощи лиду оператор может в любой момент диалога с ботом забрать его себе, нажав кнопку Начать общение.
Диалог бота будет прерван и вернется, только когда оператор его завершит.
В момент завершения сработает скрипт Возврат в бота с типом Возврат.
Возврат в выбранный сценарий.
Для того чтобы иметь возможность переводить бота в определенный сценарий/скрипт, необходимо подготовить скрипт возврата: добавить в него команду проверки условия переменной.
1 команда отвечает за возврат диалога боту — убирает галку параметра Чат с оператором у лида.
2 команда — текст, сообщающий лиду о том, что с ним снова общается бот.
3 команда работает только если у лида проставлена определенная переменная (которую проставит оператор).
4 команда работает также только при наличии этой команды и запрещает переход дальше, чтобы успел сработать запущенный переход из 3 команды.
5 команда — стандартный переход по сценарию возврата, обычно это главное меню бота.
//Условие команды
if (lead.getAttr('сценарий')) {
return true;
}
/*Условие проверяет, есть ли в переменной значение или там null. Если значения нет, то комнада не запустится*/
//Тело команды
let scriptNum = lead.getAttr('сценарий'); //присвоение переменной в код запуска скрипта
bot.runScriptForLead(scriptNum, leadId, null, false); //код запуска скрипта по его номеру в конструкторе
Как присвоить переменную?
Для этого оператору понадобится кликабельная шапка лида в КЦ.
Ниже в информационном поле лида можно посмотреть, какие переменные уже присвоены. Перейдя в лида, необходимо создать переменную со значением-номером скрипта.
Где взять номер скрипта?
Номер скрипта прописан в URL конструктора
Именно в него перейдет лид, после возврата в бота, если номер будет сохранен в переменной лида.
Пример
Ответы на другие вопросы
1. Можно ли назвать переменную не сценарий?
Можно, переменную разработчик/оператор бота может назвать как удобно. ВАЖНО, чтобы эти названия полностью совпадали, иначе код не запустится
2. Как потом работать с этим лидом? Надо ли удалять значение переменной?
Значение переменной нужно удалить либо в шаге, в который вы перебрасываете лида, либо просто в основной точке бота, например, в главном меню. Для этого нужно использовать функцию присвоения нулевого значения.
//Функция добавляет в значение перемнной null, т.е. очищает её
lead.setAttr('сценарий', null);
Также рекомендуем проверять переменную в работе оператора с ботом при завершении диалога. Если переменная есть, то ее также через редактирование лида можно очистить.
Нет комментариев