⏳ Как вернуть пользователя в незавершённый сценарий
Пользователь начал заполнять анкету, но отвлёкся и перестал отвечать. Это не всегда означает, что он передумал: возможно, ему позвонили, пришло другое сообщение или просто не хватило времени.
🔘Вернуть человека в сценарий можно с помощью отложенного напоминания.
Например, на каждом шаге анкеты запускаем таймер на один час:
let leadId = lead.getData("id");
// Отменяем ранее запланированные вызовы скрипта
bot.clearTriggerJobsByScriptCode("reminder", leadId);
// Если пользователь не ответит в течение часа — напоминаем
bot.runScriptByCodeForLead("reminder", leadId, null, false, {
"run_after_sec": 3600
});
Что происходит в этом коде? 👇
🔘Сначала получаем ID лида, для которого планируется напоминание.
🔘Затем отменяем предыдущий запуск скрипта reminder. Это важно, потому что такой же таймер мог быть установлен на прошлом шаге анкеты.
🔘После этого запускаем новый отсчёт — уже для текущего шага.
Получается следующая логика:
1️⃣ Пользователь перешёл к новому вопросу.
2️⃣ Старое напоминание отменилось.
3️⃣ Запустился новый таймер на один час.
4️⃣ Пользователь ответил — таймер снова обновился.
5️⃣ Не ответил — бот запустил скрипт reminder.
Так человек получит одно актуальное напоминание, а не несколько сообщений от каждого пройденного шага.
Например:
🔘Но что делать, если анкета состоит из нескольких шагов и пользователя нужно вернуть именно туда, где он остановился?
Для этого можно использовать теги.
Допустим, перед вопросом об имени добавляем тег:
ввод_имени
А в скрипте reminder проверяем его наличие:
if (lead.isTagExist("ввод_имени")) {
return true;
}
По этому условию можно показать подходящий текст и кнопки:
Для другого шага будет свой тег и своё напоминание. Например:
— ввод_телефона
— выбор_услуги
— подтверждение_заявки
⚠️ Самое важное: после прохождения шага удаляйте соответствующий тег.
Иначе у пользователя накопится сразу несколько тегов, а скрипт напоминания может запустить лишние сообщения или показать не тот этап анкеты.
В итоге сценарий сочетает три элемента:
✅ отложенный запуск скрипта;
✅ отмену устаревшего напоминания;
✅ тег текущего шага.
💡 Так бот не заставляет пользователя начинать всё заново, а аккуратно возвращает его именно к тому вопросу, на котором остановился.
Главное — не превращать механику в серию навязчивых сообщений. В большинстве случаев достаточно одного напоминания через час и, при необходимости, ещё одного сообщения позднее.
#метабот #инноваторыметабот #ЧатБоты #Автоматизация
Пользователь начал заполнять анкету, но отвлёкся и перестал отвечать. Это не всегда означает, что он передумал: возможно, ему позвонили, пришло другое сообщение или просто не хватило времени.
🔘Вернуть человека в сценарий можно с помощью отложенного напоминания.
Например, на каждом шаге анкеты запускаем таймер на один час:
let leadId = lead.getData("id");
// Отменяем ранее запланированные вызовы скрипта
bot.clearTriggerJobsByScriptCode("reminder", leadId);
// Если пользователь не ответит в течение часа — напоминаем
bot.runScriptByCodeForLead("reminder", leadId, null, false, {
"run_after_sec": 3600
});
Что происходит в этом коде? 👇
🔘Сначала получаем ID лида, для которого планируется напоминание.
🔘Затем отменяем предыдущий запуск скрипта reminder. Это важно, потому что такой же таймер мог быть установлен на прошлом шаге анкеты.
🔘После этого запускаем новый отсчёт — уже для текущего шага.
Получается следующая логика:
1️⃣ Пользователь перешёл к новому вопросу.
2️⃣ Старое напоминание отменилось.
3️⃣ Запустился новый таймер на один час.
4️⃣ Пользователь ответил — таймер снова обновился.
5️⃣ Не ответил — бот запустил скрипт reminder.
Так человек получит одно актуальное напоминание, а не несколько сообщений от каждого пройденного шага.
Например:
«Вы остановились на заполнении анкеты. Продолжим? Осталось ответить всего на несколько вопросов 👇»
🔘Но что делать, если анкета состоит из нескольких шагов и пользователя нужно вернуть именно туда, где он остановился?
Для этого можно использовать теги.
Допустим, перед вопросом об имени добавляем тег:
ввод_имени
А в скрипте reminder проверяем его наличие:
if (lead.isTagExist("ввод_имени")) {
return true;
}
По этому условию можно показать подходящий текст и кнопки:
«Кажется, мы остановились на знакомстве 🙂 Как вас зовут?»
Для другого шага будет свой тег и своё напоминание. Например:
— ввод_телефона
— выбор_услуги
— подтверждение_заявки
⚠️ Самое важное: после прохождения шага удаляйте соответствующий тег.
Иначе у пользователя накопится сразу несколько тегов, а скрипт напоминания может запустить лишние сообщения или показать не тот этап анкеты.
В итоге сценарий сочетает три элемента:
✅ отложенный запуск скрипта;
✅ отмену устаревшего напоминания;
✅ тег текущего шага.
💡 Так бот не заставляет пользователя начинать всё заново, а аккуратно возвращает его именно к тому вопросу, на котором остановился.
Главное — не превращать механику в серию навязчивых сообщений. В большинстве случаев достаточно одного напоминания через час и, при необходимости, ещё одного сообщения позднее.
#метабот #инноваторыметабот #ЧатБоты #Автоматизация