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

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

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

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

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

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

    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.pngimage.png

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

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

    image.png

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

    Пример

    image.png

    image.png

    image.png

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

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

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

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

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

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

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