diff --git a/docs/ats/ss-dialog.agi b/docs/ats/ss-dialog.agi
index 3da48ff..f1a9595 100644
--- a/docs/ats/ss-dialog.agi
+++ b/docs/ats/ss-dialog.agi
@@ -64,7 +64,7 @@ on_interrupt () {
if [ -z "$OUTCOME" ]; then
if [ -n "$HALF" ]; then
OUTCOME=no_input_half # день выбрал, время не назвал
- elif [ -n "$DAY" ] && [ "$DAY" != "0" ] && [ "$DAY" != "9" ]; then
+ elif [ -n "$DAY" ] && [ "$DAY" != "0" ]; then
OUTCOME=no_input_half # день выбран, до времени не дошло
elif [ -z "$ANY_DIGIT" ] && [ "$RING_SEC" -ge 20 ]; then
OUTCOME=no_answer # объявление оператора: человека не было
@@ -114,7 +114,7 @@ save () {
# Отправляем в БД сразу при финальном исходе (клиент может бросить трубку
# в любой момент — результат должен успеть уйти). Идемпотентность по uniqueid.
case "$OUTCOME" in
- confirmed|confirmed_kept_previous|confirmed_silent|no_answer|no_input_day|no_input_half|operator|opt_out|invalid_number|error)
+ confirmed|confirmed_kept_previous|confirmed_silent|no_answer|no_input_day|no_input_half|operator|invalid_number|error)
send_result ;;
esac
}
@@ -236,7 +236,6 @@ if [ "$TYPE" = "pkp" ] && [ -n "$PICKUP_DAY1" ]; then
fi
CHOSEN_DAY=$DIGIT
case "$CHOSEN_DAY" in
- 9) play "ru/ss_optout"; OUTCOME=opt_out; break ;;
1|2|3) [ "$CHOSEN_DAY" -le "$DAYS" ] || CHOSEN_DAY="" ;;
*) CHOSEN_DAY="" ;;
esac
@@ -320,7 +319,6 @@ if [ "$TYPE" = "dlv" ] && [ -n "$DELIVERY_DAY1" ]; then
wait_digit 9000
CHOSEN_DAY=$DIGIT
case "$CHOSEN_DAY" in
- 9) play "ru/ss_optout"; OUTCOME=opt_out; break ;;
1|2) [ "$CHOSEN_DAY" -le "$DLV_DAYS" ] || CHOSEN_DAY="" ;;
*) CHOSEN_DAY="" ;;
esac
@@ -373,7 +371,7 @@ while [ -z "$OUTCOME" ]; do
if [ "$SCENARIO" = "A" ]; then
digit "ru/ss_a_day_${TYPE}"
DAY=$DIGIT
- if [ "$DAY" != "1" ] && [ "$DAY" != "2" ] && [ "$DAY" != "0" ] && [ "$DAY" != "9" ]; then
+ if [ "$DAY" != "1" ] && [ "$DAY" != "2" ] && [ "$DAY" != "0" ]; then
digit "ru/ss_a_day_${TYPE}"
DAY=$DIGIT
fi
@@ -382,9 +380,7 @@ while [ -z "$OUTCOME" ]; do
fi
save
- if [ "$DAY" = "9" ]; then
- play "ru/ss_optout"; OUTCOME=opt_out; break
- elif [ "$DAY" != "1" ] && [ "$DAY" != "2" ]; then
+ if [ "$DAY" != "1" ] && [ "$DAY" != "2" ]; then
if [ -z "$ANY_DIGIT" ] && [ "$RING_SEC" -ge 20 ]; then
OUTCOME=no_answer; break # объявление оператора, человека не было
fi
diff --git a/docs/autocall/autocall-how-it-works.html b/docs/autocall/autocall-how-it-works.html
index 8526bda..f70b688 100644
--- a/docs/autocall/autocall-how-it-works.html
+++ b/docs/autocall/autocall-how-it-works.html
@@ -83,6 +83,6 @@
-СУПЕР САМ · ДОСТАВКА И САМОВЫВОЗ
Автодозвон: как это работает
Робот звонит клиенту, согласует день и половину дня — без участия оператора
Что описано: правила звонка, паузы, поведение в нештатных случаях (не дозвонились,
сбросили трубку, не нажали цифру), где что настраивается и что видит менеджер.
Основано на текущем коде и настройках боевой системы, без обещаний и продажи.
Что делает робот
Коротко: он не продаёт и не консультирует — только согласует день и половину дня
Три задачи
- Дозвониться, когда заказ готов и клиент не подтвердил день по ссылке из SMS
- Предложить конкретные дни голосом и получить выбор цифрой
- Записать выбор в заказ — дату, половину дня и признак «согласовано роботом»
Чего он не делает
- Не соединяет с живым менеджером — такой цифры в диалоге нет
- Не спорит и не уговаривает: нет ответа — повторит по расписанию
- Не предлагает нерабочие дни и не звонит вне рабочего времени
Как это выглядит для клиента
- Звонок с одного номера, голос один и тот же: «Ваш заказ готов. Выберите день и время»
- Клиент нажимает цифру дня и цифру половины дня — робот подтверждает выбор вслух
- После подтверждения даёт возможность изменить выбор (нажатием цифры 2)
Путь заказа до звонка
Когда именно звучит звонок
1. Заказ из 1Сприходит готовымпо обмену›
2. Ссылка и SMSссылка создаётсясама, SMS уходит›
3. Пауза 90 минутнастройка админки:столько ждём ответа›
4. Звонок роботаесли клиент неподтвердил по ссылке›
5. Результат в заказдата и половина дняв самом заказе
Важно
- Готовность заказа приходит из 1С по обмену: заказ приходит уже готовым, вручную в системе её никто не отмечает
- Если клиент подтвердил день по ссылке сам — звонка не будет: заказ уже согласован
- Звонок идёт только в рабочее время и только в рабочие дни (настройки кампании)
Откуда берутся дни и время
Админка → Расписание → Рабочие дни: один источник правды
Что настраивается
- Рабочие дни склада (самовывоз) и рабочие дни доставки
- Часы: открытие и закрытие склада, часы доставки
- «Первая половина — до» — граница между половинами дня
- «Сегодня предлагаем до» — до какого времени предлагать сегодняшний день
Как это работает в коде
- Окно звонка считается рабочими днями: выходные не сокращают окно, а пропускаются
- Робот называет реальные дни голосом: «сегодня», «в понедельник», «во вторник»
- Клиентская ссылка использует те же дни — расхождений между звонком и ссылкой нет
Текущие значения в системе
- Склад: пн–пт, 09:00–17:30, половина дня до 13:00, «сегодня» предлагаем до 15:30
- Доставка: пн–пт (суббота — выходной) 09:00–21:00, половина дня до 15:00
- Утро и вечер: до 13:00 робот спросит, какая половина дня удобнее; после 13:00 — сразу зафиксирует вторую
Самовывоз: какие дни предлагает
Окно — «день готовности + два рабочих дня», выходные пропускаются
| Заказ готов | Что предложит робот | Почему так |
|---|
| в понедельник | пн, вт, ср | три рабочих дня подряд |
| в пятницу | пт, пн, вт | суббота и воскресенье — выходные склада |
| в субботу | пн, вт, ср | сам выходной не предлагаем |
| в пятницу после 15:30 | пн, вт | «сегодня» больше не предлагаем (настройка) |
| в понедельник после 13:00 | пн, вт, ср | половину дня не спрашиваем — сразу вторая |
| неделю назад | звонка нет | окно прошло — звонить не о чем |
Две настройки, которые это двигают
- «Сегодня предлагаем до» (сейчас 15:30) — позже этого времени сегодняшний день исчезает из звонка и из ссылки
- «Первая половина — до» (сейчас 13:00) — после неё робот не спрашивает половину дня, сразу пишет вторую
Доставка: не в день готовности
Нужен запас времени, чтобы собрать маршрут — поэтому начинаем со следующего дня
| Заказ готов | Что предложит робот |
|---|
| в понедельник | вторник и среда |
| в пятницу | понедельник и вторник (в субботу не возим) |
| в субботу | понедельник и вторник |
| в четверг, звонок в пятницу | пятница и понедельник |
| в пятницу, звонок в понедельник | понедельник и вторник |
Ключевое отличие от самовывоза
- В день готовности доставку не предлагаем никогда — только следующие рабочие дни
- Суббота и воскресенье в графике доставки — выходные, их робот не назовёт
- Время доставки — половина дня: до 15:00 или после (границу задаёт админка)
Как проходит разговор
Робот задаёт вопрос и ждёт цифру; молчание не считается согласием
| Шаг | Что говорит робот | Что делает клиент | Сколько ждёт |
|---|
| Приветствие | «Ваш заказ готов. Выберите день и время доставки» | слушает | — |
| День | «Нажмите один, чтобы доставить. В понедельник. Нажмите два…» | нажимает 1 или 2 | 9 секунд |
| Половина дня | «Первая половина дня или вторая?» | нажимает 1 или 2 | 9 секунд |
| Подтверждение | «Первая половина дня» — озвучивает выбор | слушает | — |
| Изменить? | подсказка про кнопку 2 — один раз | нажимает 2, чтобы переделать | 6 секунд |
Что делает при ошибке ввода
- Не понял цифру — повторяет тот же вопрос один раз
- Снова не понял или молчит — завершает: «Вы не выбрали время. С вами свяжется менеджер»
- Клиент нажимает 2 — диалог начинается заново («день и время»), прежний слот при этом не теряется
Что можно нажать
Всего несколько цифр — и одна из них «больше не звоните»
| Цифра | Значение | Что происходит |
|---|
| 1 | первый предложенный день | робот переходит к выбору половины дня |
| 2 | второй предложенный день | робот переходит к выбору половины дня |
| 3 | третий день (только самовывоз) | робот переходит к выбору половины дня |
| 1 / 2 | половина дня | первая половина / вторая половина |
| 9 | отказ от звонков | робот больше не позвонит; в карточке — «отказ от звонков» |
| 0 и прочие | не принимаются | вопрос повторяется; соединения с оператором нет |
Отдельно про «0»
- Раньше в диалоге была попытка «позвать менеджера», но она никогда не срабатывала (нажатие не отличалось от тишины)
- Эту ветку убрали: живого соединения с оператором у робота нет, менеджер подключается только задачей из системы
Если не дозвонились
Робот различает «не взял трубку» и «вместо человека ответил автоответчик/оператор»
Как понимает, что трубку не взяли
- Никто не ответил за 45 секунд — попытка считается неудачной
- Трубку подняли, но гудки шли больше 20 секунд и ни одной цифры не нажали — это объявление оператора, а не человек: пишем «не взял трубку»
- Живой человек почти всегда берёт трубку раньше, поэтому правило надёжно отделяет автоответчик
Что происходит дальше
- Повторный звонок — не раньше чем через 120 минут (настройка)
- Всего не больше 5 попыток на заказ (настройка)
- Звонит только в рабочие часы кампании: 09:00–20:00, дни — по настройке
- Исчерпали попытки — заказ уходит менеджеру, автозвонок по нему останавливается
Для менеджера это видно в карточке
- Каждая попытка — отдельная строка истории: время, результат, длительность разговора
- Статус заказа меняется на «нужен менеджер» — с комментарием «не дозвонились / не нажал»
- Отдельно красным предупреждаем, если заявка «Позвонить сейчас» висит больше 15 минут
Если сбросили трубку в середине разговора
Робот запоминает то, что успел услышать, и не портит уже согласованный слот
| Когда положили трубку | Что запишет робот | Что увидит менеджер |
|---|
| до выбора дня | ответил, ничего не нажал | «взял, не нажал (день)» — попытка зачтена |
| день выбрал, время не успел | день выбран, время нет | «взял, не нажал (время)» |
| выбор подтвердил и сбросил | слот согласован | дата и половина дня в заказе, статус «согласовано» |
| начал менять выбор и сбросил | остаётся прежний слот | «правка не доведена» — прежнее согласование в силе |
Почему так
- Слот становится согласованным только после двух ответов: день и половина дня — это защита от «услышал половину фразы»
- Обрыв не считается согласием: если клиент не подтвердил, робот перезвонит по расписанию или отдаст заказ менеджеру
- Если клиент уже согласовал слот, а потом начал менять и бросил трубку — прежний выбор сохраняется, ничего не теряется
Когда подключается менеджер
Робот доводит дело до конца сам, но в трёх случаях передаёт человеку
Не нажал цифру 2 раза
- Робот писал «взял, но не нажал» дважды
- Заказ помечается «нужен менеджер», комментарий «не дозвонились / не нажал»
- Порог «не нажал × N» настраивается в админке автодозвона
Исчерпаны 5 попыток
- Каждый звонок — отдельная попытка
- Когда попытки закончились, автозвонок прекращается
- Заказ остаётся в списке у менеджера
Отказ или неверный номер
- Цифра 9 — клиент просит больше не звонить: ставим запрет автоматически
- Неверный номер — задача менеджеру
- Отказ клиента действует и на другие заказы: он в списке «не звонить»
Что видит менеджер в карточке заказа
- Единый статус автодозвона и история всех попыток с результатами и слотами
- Кнопка «Позвонить сейчас» — ручной звонок клиенту (не тестовый номер) и живое состояние: «в очереди», «звоним», «звонок сделан» с результатом
- Кнопка «Не звонить» — если робот не должен беспокоить этого клиента
Когда робот не звонит вообще
Список условий, при которых звонка не будет — проверяются до набора номера
По клиенту и заказу
- Клиент сам подтвердил день по ссылке — звонок не нужен
- Клиент просил больше не звонить (нажал 9) или менеджер поставил «Не звонить»
- Номер в списке исключений — например, на МТС-диапазон звонки не идут
- Самовывоз: автообзвон по самовывозу включается отдельной галочкой (сейчас выключен)
По времени и географии
- Вне рабочих часов кампании (09:00–20:00) и вне рабочих дней
- Город исключён целиком или для города выключен канал
- В админке автодозвона выключены звонки по городу — например, Ялта: SMS идут, звонков нет
- Меньше 90 минут прошло после SMS со ссылкой
Админка автодозвона: где это переключается
- Панель «Автодозвон»: тестовый режим, часы и дни звонков, паузы, лимит попыток, порог «не нажал × N»
- Панель «Локации»: для каждого города — звонки включены или выключены (SMS не затрагивается)
- Панель исключений: номера и префиксы, на которые не звоним, с причиной
Что записывается в заказ
Результат звонка виден там же, где всё остальное
| Поле | Значение |
|---|
| Дата | конкретная дата, которую назвал робот (например, понедельник 21.09) |
| Время | «первая половина дня» или «вторая половина дня» |
| Источник | «согласовано роботом» — видно, что выбор сделал клиент в звонке |
| Статус | «согласовано» / «нужен менеджер» / «отказ от звонков» |
| Комментарий | «Согласовано роботом: завтра, первая половина дня» |
Зачем это нужно
- Менеджер видит причину и источник решения, а не просто «дата стоит»
- История звонков хранится отдельно: видно, сколько было попыток и чем они закончились
- Дата, названная роботом, используется дальше в работе склада и доставки
Тестовый режим и текущее состояние
Сейчас обзвон клиентов выключен — система в тестовом режиме
| Параметр | Значение сейчас | Что будет при запуске |
|---|
| Обзвон клиентов | выключен | включается отдельной командой |
| Тестовый номер | звонит только на него | массовый обзвон идёт клиентам |
| Кнопка «Позвонить сейчас» | звонит клиенту сразу | так же — звонок клиенту |
| Звонки по самовывозу | выключены галочкой | включаются отдельно от доставки |
Как проверяется перед запуском
- Тестовый звонок на свой номер: диалог, дни, половина дня, запись результата
- Прогон диалога без звонка: проверка всех веток (согласие, обрыв, молчание, отказ)
- Проверка окон: робот предлагает именно те дни, которые заданы в админке
Что пока не учитывается
Честный список: это важно знать до запуска
График
- Праздники: календаря нерабочих дат нет — если праздник попадёт в окно, робот его предложит
- Часы доставки используются частично: границу половины дня робот проговаривает словами, без конкретного времени
Настройки, которые пока не влияют
- «Попыток в день» — поле есть, но расписание повторов задаётся интервалом между попытками
- «Попытки следующего дня (10:00, 14:00)» — пока не используются
- «Таймаут звонка, 30 секунд» — звонок ждёт ответа 45 секунд (значение в самом звонке)
Что предлагаем уточнить до боевого запуска
- Список праздников (или решение не учитывать их)
- Нужен ли жёсткий график повторов по времени, кроме интервала 120 минут
- Оставить ли «0» без реакции — сейчас это просто неверная цифра
Коротко
Одна страница вместо всей презентации
Что делает система
- Ждёт 90 минут после SMS и звонит, если клиент не подтвердил день сам
- Предлагает только рабочие дни по графику: самовывоз — включая сегодня, доставка — со следующего дня
- Спрашивает день и половину дня, подтверждает вслух, даёт один раз переделать выбор
- Повторяет попытки не чаще чем раз в 2 часа, максимум 5 раз, только 09:00–20:00 в рабочие дни
- После двух «взял, но не нажал» или исчерпания попыток передаёт заказ менеджеру
- Отказ (цифра 9) останавливает обзвон клиента навсегда
- Каждая попытка и результат видны в карточке заказа; ручной звонок идёт клиенту и показывает своё состояние
Что осталось решить
- Праздники и точный график повторов — по вашим правилам
- Момент включения боевого обзвона клиентов и по самовывозу
+СУПЕР САМ · ДОСТАВКА И САМОВЫВОЗ
Автодозвон: как это работает
Робот звонит клиенту, согласует день и половину дня — без участия оператора
Что описано: правила звонка, паузы, поведение в нештатных случаях (не дозвонились,
сбросили трубку, не нажали цифру), где что настраивается и что видит менеджер.
Основано на текущем коде и настройках боевой системы, без обещаний и продажи.
Что делает робот
Коротко: он не продаёт и не консультирует — только согласует день и половину дня
Три задачи
- Дозвониться, когда заказ готов и клиент не подтвердил день по ссылке из SMS
- Предложить конкретные дни голосом и получить выбор цифрой
- Записать выбор в заказ — дату, половину дня и признак «согласовано роботом»
Чего он не делает
- Не соединяет с живым менеджером — такой цифры в диалоге нет
- Не спорит и не уговаривает: нет ответа — повторит по расписанию
- Не предлагает нерабочие дни и не звонит вне рабочего времени
Как это выглядит для клиента
- Звонок с одного номера, голос один и тот же: «Ваш заказ готов. Выберите день и время»
- Клиент нажимает цифру дня и цифру половины дня — робот подтверждает выбор вслух
- После подтверждения даёт возможность изменить выбор (нажатием цифры 2)
Путь заказа до звонка
Когда именно звучит звонок
1. Заказ из 1Сприходит готовымпо обмену›
2. Ссылка и SMSссылка создаётсясама, SMS уходит›
3. Пауза 90 минутнастройка админки:столько ждём ответа›
4. Звонок роботаесли клиент неподтвердил по ссылке›
5. Результат в заказдата и половина дняв самом заказе
Важно
- Готовность заказа приходит из 1С по обмену: заказ приходит уже готовым, вручную в системе её никто не отмечает
- Если клиент подтвердил день по ссылке сам — звонка не будет: заказ уже согласован
- Звонок идёт только в рабочее время и только в рабочие дни (настройки кампании)
Откуда берутся дни и время
Админка → Расписание → Рабочие дни: один источник правды
Что настраивается
- Рабочие дни склада (самовывоз) и рабочие дни доставки
- Часы: открытие и закрытие склада, часы доставки
- «Первая половина — до» — граница между половинами дня
- «Сегодня предлагаем до» — до какого времени предлагать сегодняшний день
Как это работает в коде
- Окно звонка считается рабочими днями: выходные не сокращают окно, а пропускаются
- Робот называет реальные дни голосом: «сегодня», «в понедельник», «во вторник»
- Клиентская ссылка использует те же дни — расхождений между звонком и ссылкой нет
Текущие значения в системе
- Склад: пн–пт, 09:00–17:30, половина дня до 13:00, «сегодня» предлагаем до 15:30
- Доставка: пн–пт (суббота — выходной) 09:00–21:00, половина дня — граница 13:00
- Граница половины дня — 13:00 для обоих каналов: звоним после 13:00 — говорим про вторую половину дня, первую уже не предлагаем
Самовывоз: какие дни предлагает
Окно — «день готовности + два рабочих дня», выходные пропускаются
| Заказ готов | Что предложит робот | Почему так |
|---|
| в понедельник | пн, вт, ср | три рабочих дня подряд |
| в пятницу | пт, пн, вт | суббота и воскресенье — выходные склада |
| в пятницу после 15:30 | пн, вт | «сегодня» больше не предлагаем (настройка) |
| в понедельник после 13:00 | пн, вт, ср | половину дня не спрашиваем — сразу вторая |
| заказ готов давно | звонка нет | окно самовывоза прошло — звонить не о чем |
Две настройки, которые это двигают
- «Сегодня предлагаем до» (сейчас 15:30) — позже этого времени сегодняшний день исчезает из звонка и из ссылки
- Граница половины дня (13:00): звоним после 13:00 — робот говорит про вторую половину дня, первую не предлагает
Доставка: не в день готовности
Нужен запас времени, чтобы собрать маршрут — поэтому начинаем со следующего дня
| Заказ готов | Что предложит робот |
|---|
| в понедельник | вторник и среда |
| в пятницу | понедельник и вторник (в субботу не возим) |
| в четверг, звонок в пятницу | пятница и понедельник |
| в пятницу, звонок в понедельник | понедельник и вторник |
Ключевое отличие от самовывоза
- В день готовности доставку не предлагаем никогда — только следующие рабочие дни
- Суббота и воскресенье в графике доставки — выходные, их робот не назовёт
- Половина дня — граница 13:00: звоним после 13:00, значит говорим про вторую половину дня
Как проходит разговор
Робот задаёт вопрос и ждёт цифру; молчание не считается согласием
| Шаг | Что говорит робот | Что делает клиент | Сколько ждёт |
|---|
| Приветствие | «Ваш заказ готов. Выберите день и время доставки» | слушает | — |
| День | «Нажмите один, чтобы доставить. В понедельник. Нажмите два…» | нажимает 1 или 2 | 9 секунд |
| Половина дня | «Первая половина дня или вторая?» | нажимает 1 или 2 | 9 секунд |
| Подтверждение | «Первая половина дня» — озвучивает выбор | слушает | — |
| Изменить? | подсказка про кнопку 2 — один раз | нажимает 2, чтобы переделать | 6 секунд |
Что делает при ошибке ввода
- Не понял цифру — повторяет тот же вопрос один раз
- Снова не понял или молчит — завершает: «Вы не выбрали время. С вами свяжется менеджер»
- Клиент нажимает 2 — диалог начинается заново («день и время»), прежний слот при этом не теряется
Что можно нажать
Всего несколько цифр — и одна из них «больше не звоните»
| Цифра | Значение | Что происходит |
|---|
| 1 | первый предложенный день | робот переходит к выбору половины дня |
| 2 | второй предложенный день | робот переходит к выбору половины дня |
| 3 | третий день (только самовывоз) | робот переходит к выбору половины дня |
| 1 / 2 | половина дня | первая половина / вторая (после 13:00 — только вторая) |
| 2 после подтверждения | изменить выбор | робот спрашивает день и время заново — один раз |
| любая другая цифра | не принимается | вопрос повторяется один раз; после двух таких звонков — менеджеру |
Что происходит после подтверждения
- Робот называет выбранный день и половину дня вслух — клиент слышит, что именно записано
- Дальше один раз предлагает изменить выбор: нажатие 2 — и день со временем спрашивают заново
- Если клиент ничего не меняет, разговор завершается, а выбор уходит в заказ
Если не дозвонились
Робот различает «не взял трубку» и «вместо человека ответил автоответчик/оператор»
Как понимает, что трубку не взяли
- Никто не ответил за 45 секунд — попытка считается неудачной
- Трубку подняли, но гудки шли больше 20 секунд и ни одной цифры не нажали — это объявление оператора, а не человек: пишем «не взял трубку»
- Живой человек почти всегда берёт трубку раньше, поэтому правило надёжно отделяет автоответчик
Что происходит дальше
- Повторный звонок — не раньше чем через час (настройка)
- Всего не больше 5 попыток на заказ (настройка)
- Звонит только в рабочие часы кампании: 09:00–20:00, дни — по настройке
- Исчерпали попытки — заказ уходит менеджеру, автозвонок по нему останавливается
Для менеджера это видно в карточке
- Каждая попытка — отдельная строка истории: время, результат, длительность разговора
- Статус заказа меняется на «нужен менеджер» — с комментарием «не дозвонились / не нажал»
- Отдельно красным предупреждаем, если заявка «Позвонить сейчас» висит больше 15 минут
Если сбросили трубку в середине разговора
Робот запоминает то, что успел услышать, и не портит уже согласованный слот
| Когда положили трубку | Что запишет робот | Что увидит менеджер |
|---|
| до выбора дня | ответил, ничего не нажал | «взял, не нажал (день)» — попытка зачтена |
| день выбрал, время не успел | день выбран, время нет | «взял, не нажал (время)» |
| выбор подтвердил и сбросил | слот согласован | дата и половина дня в заказе, статус «согласовано» |
| начал менять выбор и сбросил | остаётся прежний слот | «правка не доведена» — прежнее согласование в силе |
Почему так
- Слот становится согласованным только после двух ответов: день и половина дня — это защита от «услышал половину фразы»
- Обрыв не считается согласием: если клиент не подтвердил, робот перезвонит по расписанию или отдаст заказ менеджеру
- Если клиент уже согласовал слот, а потом начал менять и бросил трубку — прежний выбор сохраняется, ничего не теряется
Когда подключается менеджер
Робот доводит дело до конца сам, но в трёх случаях передаёт человеку
Не нажал цифру 2 раза
- Робот писал «взял, но не нажал» дважды
- Заказ помечается «нужен менеджер», комментарий «не дозвонились / не нажал»
- Порог «не нажал × N» настраивается в админке автодозвона
Исчерпаны 5 попыток
- Каждый звонок — отдельная попытка
- Когда попытки закончились, автозвонок прекращается
- Заказ остаётся в списке у менеджера
Неверный номер
- Если номер не существует или недоступен — задача менеджеру
- Менеджер может поставить «Не звонить» — тогда робот этого клиента не беспокоит
- Такая отметка видна в карточке заказа и учитывается при обзвоне
Что видит менеджер в карточке заказа
- Единый статус автодозвона и история всех попыток с результатами и слотами
- Кнопка «Позвонить сейчас» — ручной звонок клиенту (не тестовый номер) и живое состояние: «в очереди», «звоним», «звонок сделан» с результатом
- Кнопка «Не звонить» — если робот не должен беспокоить этого клиента
Когда робот не звонит вообще
Список условий, при которых звонка не будет — проверяются до набора номера
По клиенту и заказу
- Клиент сам подтвердил день по ссылке — звонок не нужен
- Менеджер поставил «Не звонить» — робот этого клиента не беспокоит
- Номер в списке исключений — например, на МТС-диапазон звонки не идут
- Самовывоз: автообзвон по самовывозу включается отдельной галочкой (сейчас выключен)
По времени и географии
- Вне рабочих часов кампании (09:00–20:00) и вне рабочих дней
- Город исключён целиком или для города выключен канал
- В админке автодозвона выключены звонки по городу — например, Ялта: SMS идут, звонков нет
- Меньше 90 минут прошло после SMS со ссылкой
Админка автодозвона: где это переключается
- Панель «Автодозвон»: тестовый режим, часы и дни звонков, паузы, лимит попыток, порог «не нажал × N»
- Панель «Локации»: для каждого города — звонки включены или выключены (SMS не затрагивается)
- Панель исключений: номера и префиксы, на которые не звоним, с причиной
Что записывается в заказ
Результат звонка виден там же, где всё остальное
| Поле | Значение |
|---|
| Дата | конкретная дата, которую назвал робот (например, понедельник 21.09) |
| Время | «первая половина дня» или «вторая половина дня» |
| Источник | «согласовано роботом» — видно, что выбор сделал клиент в звонке |
| Статус | «согласовано» / «нужен менеджер» / «не звонить» (запрет ставит менеджер) |
| Комментарий | «Согласовано роботом: завтра, первая половина дня» |
Зачем это нужно
- Менеджер видит причину и источник решения, а не просто «дата стоит»
- История звонков хранится отдельно: видно, сколько было попыток и чем они закончились
- Дата, названная роботом, используется дальше в работе склада и доставки
Тестовый режим и текущее состояние
Сейчас обзвон клиентов выключен — система в тестовом режиме
| Параметр | Значение сейчас | Что будет при запуске |
|---|
| Обзвон клиентов | выключен | включается отдельной командой |
| Тестовый номер | звонит только на него | массовый обзвон идёт клиентам |
| Кнопка «Позвонить сейчас» | звонит клиенту сразу | так же — звонок клиенту |
| Звонки по самовывозу | выключены галочкой | включаются отдельно от доставки |
Как проверяется перед запуском
- Тестовый звонок на свой номер: диалог, дни, половина дня, запись результата
- Прогон диалога без звонка: проверка всех веток (согласие, обрыв, молчание, отказ)
- Проверка окон: робот предлагает именно те дни, которые заданы в админке
Что пока не учитывается
Честный список: это важно знать до запуска
График
- Праздники: календаря нерабочих дат нет — если праздник попадёт в окно, робот его предложит
- Часы доставки используются частично: границу половины дня робот проговаривает словами, без конкретного времени
Настройки, которые пока не влияют
- «Попыток в день» — поле есть, но расписание повторов задаётся интервалом между попытками
- «Попытки следующего дня (10:00, 14:00)» — пока не используются
- «Таймаут звонка, 30 секунд» — звонок ждёт ответа 45 секунд (значение в самом звонке)
Что предлагаем уточнить до боевого запуска
- Список праздников (или решение не учитывать их)
- Нужен ли жёсткий график повторов по времени, кроме паузы в час
- Кто и когда разбирает заказы, которые робот не согласовал за 5 попыток
Коротко
Одна страница вместо всей презентации
Что делает система
- Ждёт 90 минут после SMS и звонит, если клиент не подтвердил день сам
- Предлагает только рабочие дни по графику: самовывоз — включая сегодня, доставка — со следующего дня
- Спрашивает день и половину дня, подтверждает вслух, даёт один раз переделать выбор
- Граница половины дня — 13:00: звоним после 13:00, значит говорим про вторую половину
- Повторяет попытки не чаще чем раз в час, максимум 5 раз, только 09:00–20:00 в рабочие дни
- После двух «взял, но не нажал» или исчерпания попыток передаёт заказ менеджеру
- Каждая попытка и результат видны в карточке заказа; ручной звонок идёт клиенту и показывает своё состояние
Что осталось решить
- Праздники и точный график повторов — по вашим правилам
- Момент включения боевого обзвона клиентов и по самовывозу