Блок «Дедлайн»

Блок задаёт персональный таймер обратного отсчёта для каждого клиента. Отсчёт стартует индивидуально в момент, когда клиент попадает в этот блок, — у каждого свой личный дедлайн, а не общий для всех.

Главная задача блока — создать срочность: напомнить клиенту, что время на покупку или решение уходит, и подтолкнуть к действию до истечения таймера. Чаще всего применяется в онлайн-школах и инфобизнесе для продажи курсов с ограниченной по времени скидкой.

Когда использовать

  • Ограниченное по времени предложение: скидка действует N часов/дней с момента входа клиента в воронку
  • Персональные таймеры для каждого клиента вместо общей даты окончания акции
  • Серия напоминаний «осталось 24 часа», «остался 1 час» перед закрытием доступа
  • Сценарии дожима: после истечения дедлайна перевести клиента в другую ветку или убрать скидку

Настройки

  • Длительность дедлайна (число) — на сколько единиц времени даётся таймер. Целое число от 1. По умолчанию 3.
  • Единица длительности — «Часов» или «Дней». По умолчанию «Дней».
  • Напоминания — список сообщений, которые отправляются перед истечением. Каждое напоминание состоит из:

- За (число) — за сколько единиц до дедлайна слать. От 1. - Единица напоминания — «часов» или «минут». - Текст напоминания — что отправить клиенту. - По умолчанию заведены два напоминания: за 24 часа и за 1 час. Список можно очистить полностью или добавить новые (новое создаётся как «за 30 минут» с пустым текстом).

  • Сообщение при истечении — текст, который клиент получит, когда таймер дойдёт до нуля. По умолчанию: «Ваш дедлайн истёк. Предложение больше недоступно.»
  • Действие при истечении — что сделать после окончания таймера:

- «Отправить сообщение» (по умолчанию) — просто отправить текст истечения. - «Перевести в блок» — открывает поле ID целевого блока: клиент будет перенаправлен в указанный блок. - «Убрать скидку» — открывает поле Переменная скидки (например `discount_percent`): переменная обнуляется при истечении.

  • Показывать обратный отсчёт — переключатель. Если включён, клиент видит оставшееся время в сообщениях. По умолчанию включён.

Как работает

Блок относится к категории «Действие» и имеет один обычный выход к следующему блоку — отдельных веток (например «истёк» / «не истёк») у него нет, ветвление при истечении задаётся настройкой «Действие при истечении».

Когда клиент доходит до блока `deadline_timer`, движок создаёт персональный набор идемпотентных задач в PostgreSQL. Воронка сразу продолжает обычный путь, а scheduler независимо отправляет до 10 напоминаний и выполняет выбранное действие в момент истечения. Задачи переживают перезапуск API, атомарно забираются одной репликой и повторяются с backoff при временной ошибке.

Напоминания отправляются через тот же многоканальный dispatcher, что и обычные сообщения воронки. Если включён остаток времени, движок добавляет его в конец текста. Чтобы расположить значение вручную, вставьте `{{deadline_remaining}}` в нужное место сообщения.

При истечении движок отправляет настроенный текст, после чего либо завершает задачу, либо запускает указанный блок, либо атомарно обнуляет выбранную переменную скидки. Переход разрешён только к блоку текущей воронки на этапе публикации; scheduler дополнительно проверяет принадлежность проекта перед исполнением.

Пример

Онлайн-школа продаёт курс со скидкой 30%, которая «сгорает» через 2 дня.

  • Длительность дедлайна: 2, единица — «Дней».
  • Напоминание 1: за 24 часа — «Скидка 30% сгорит завтра! Успейте оформить.»
  • Напоминание 2: за 1 час — «Последний час! Через 60 минут цена вернётся к обычной.»
  • Сообщение при истечении: «Время вышло, скидка больше не действует.»
  • Действие при истечении: «Убрать скидку», переменная скидки — `discount_percent`.

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

Частые ошибки

  • Запланировать напоминание позже самого дедлайна. Preflight не разрешит публикацию, пока время напоминания не станет меньше общей длительности.
  • Оставить пустой текст у добавленного напоминания. Preflight покажет ошибку и заблокирует публикацию.
  • Указать несуществующий ID целевого блока в режиме «Перевести в блок». Preflight проверяет блок, а scheduler повторно проверяет принадлежность текущему проекту перед исполнением.
  • Перепутать единицы: длительность дедлайна задаётся в часах/днях, а напоминания — в часах/минутах. Минимум для обоих полей — 1, ноль и дробные значения не принимаются.