Автоматизация
Автоматизация заявлений
Раздел Курсы → Настройки → Автоматизация позволяет автоматизировать три ключевых процесса работы с заявлениями:
- Автоотправка — автоматическая отправка заявлений на подпись
- Напоминания — отправка напоминаний о неподписанных заявлениях (email или SMS)
- Автоаннулирование — автоматическое аннулирование заявлений, которые не были подписаны в срок
Примечание: Автоматизация работает независимо для каждой организации. Настройки одной организации не влияют на другие.
Как открыть настройки автоматизации
- Перейдите в Курсы → Настройки в боковом меню.
- Выберите вкладку Автоматизация в панели навигации.
Право доступа: Для просмотра требуется право
course.setting.view, для изменения —course.setting.edit.
Автоотправка
Автоотправка автоматически отправляет заявления на подпись плательщику после настраиваемой задержки.
Как это работает
Когда студент (или администратор) создаёт заявление на курс, оно получает статус Создано. Без автоматизации администратор должен вручную нажать «Отправить» для каждого заявления. Автоотправка делает это автоматически.
Процесс:
- Заявление создаётся → статус Создано
- Проходит указанное количество дней
- Система автоматически:
- Генерирует PDF-документ заявления (по шаблону курса)
- Меняет статус на Отправлено
- Отправляет уведомление плательщику (по шаблону уведомления курса)
Настройка
- Включите переключатель «Автоотправка включена».
- Укажите задержку в днях — сколько дней ждать после создания заявления перед автоматической отправкой.
- Нажмите Сохранить.
| Значение задержки | Поведение |
|---|---|
| 0 | Заявление отправляется при ближайшей обработке (в течение часа после создания) |
| 1 | Отправка через 1 день после создания |
| 3 | Отправка через 3 дня после создания |
Важно: Для корректной работы автоотправки на курсе должен быть настроен шаблон заявления (вкладка «Шаблон» на странице курса). Если шаблон отсутствует, автоотправка для этого курса будет пропущена с записью в лог.
Когда автоотправка НЕ сработает
- У заявления уже другой статус (не «Создано») — например, администратор вручную отправил его раньше
- Для курса не настроен шаблон заявления
- Произошла ошибка генерации PDF (записывается в лог)
Напоминания
Напоминания позволяют автоматически уведомлять плательщиков о заявлениях, которые были отправлены на подпись, но ещё не подписаны. Можно настроить несколько правил с разными задержками и каналами доставки.
Как это работает
- Заявление отправлено → статус Отправлено
- Проходит указанное количество дней (от даты отправки)
- Система отправляет напоминание по выбранному каналу (email или SMS)
- Каждое конкретное напоминание отправляется один раз для каждого заявления
Пример сценария
Вы настроили три напоминания:
| Напоминание | Дней после отправки | Канал |
|---|---|---|
| 1 | 3 | |
| 2 | 7 | |
| 3 | 10 | SMS |
Что произойдёт:
- День 3: Плательщик получает email-напоминание
- День 7: Второе email-напоминание
- День 10: SMS-напоминание
- Если плательщик подписал заявление на день 5 — второе и третье напоминания НЕ будут отправлены (статус изменился)
Настройка напоминания
- Нажмите кнопку «Добавить напоминание».
- Заполните поля:
| Поле | Описание |
|---|---|
| Дней после отправки | Через сколько дней после отправки заявления сработает напоминание (минимум 1) |
| Канал | Способ доставки: Email или SMS |
| Тема (только email) | Тема письма на каждом языке системы (эстонский, русский) |
| Содержание | Текст напоминания на каждом языке. Поддерживает переменные [[KEY]] |
- Нажмите Сохранить.
Удаление напоминания
- Нажмите кнопку «Удалить» рядом с напоминанием.
- Напоминание будет деактивировано. Уже отправленные напоминания не отзываются.
Переменные для шаблонов
В тексте напоминания (и в теме email) можно использовать переменные в двойных квадратных скобках. Они будут автоматически заменены реальными данными при отправке.
| Переменная | Описание | Пример значения |
|---|---|---|
[[STUDENT_FIRST_NAME]] |
Имя ученика | Мария |
[[STUDENT_LAST_NAME]] |
Фамилия ученика | Иванова |
[[PARENT_FIRST_NAME]] |
Имя плательщика | Иван |
[[PARENT_LAST_NAME]] |
Фамилия плательщика | Иванов |
[[COURSE_NAME]] |
Название курса | Математика — гр. А |
[[APPLICATION_DATE]] |
Дата создания заявления | 15.03.2026 |
[[CANCELLATION_DATE]] |
Дата автоаннулирования | 29.03.2026 |
Регистр не важен:
[[STUDENT_FIRST_NAME]]и[[student_first_name]]работают одинаково.
CANCELLATION_DATE: Рассчитывается как дата отправки + дни до автоаннулирования. Если автоаннулирование выключено — будет пустой строкой.
Пример текста напоминания
Эстонский:
Lugupeetud [[PARENT_FIRST_NAME]] [[PARENT_LAST_NAME]],
tuletame meelde, et õpilase [[STUDENT_FIRST_NAME]] [[STUDENT_LAST_NAME]]
avaldus kursusele [[COURSE_NAME]] ootab allkirjastamist.
Avaldus loodi [[APPLICATION_DATE]].
Palun allkirjastage enne [[CANCELLATION_DATE]], vastasel juhul avaldus tühistatakse.
Русский:
Уважаемый(ая) [[PARENT_FIRST_NAME]] [[PARENT_LAST_NAME]],
напоминаем, что заявление ученика [[STUDENT_FIRST_NAME]] [[STUDENT_LAST_NAME]]
на курс [[COURSE_NAME]] ожидает подписания.
Заявление создано [[APPLICATION_DATE]].
Пожалуйста, подпишите до [[CANCELLATION_DATE]], иначе заявление будет аннулировано.
Особенности каналов
- Получатель: email плательщика (из профиля Party или из записи Payer)
- Если email не указан — напоминание пропускается
- Тема обязательна для каждого языка
SMS
- Получатель: телефон плательщика → если нет, телефон студента
- Если телефон не указан — напоминание пропускается
- Лимит символов:
- Латиница: 160 символов = 1 SMS
- Кириллица: 70 символов = 1 SMS
- При превышении лимита сообщение разбивается на несколько SMS
- Счётчик символов показывается под полем текста в реальном времени
- Тема (subject) не используется для SMS
Язык напоминания
Язык текста определяется по полю lang плательщика. Если язык не задан — используется язык системы по умолчанию. Поэтому важно заполнять текст напоминания на всех доступных языках.
Автоаннулирование
Автоаннулирование автоматически аннулирует заявления, которые были отправлены на подпись, но не подписаны в течение указанного срока.
Как это работает
- Заявление в статусе Отправлено
- Проходит указанное количество дней (от даты отправки)
- Система автоматически:
- Меняет статус на Аннулировано
- Отправляет уведомление плательщику по стандартному шаблону аннулирования (из настроек курса)
Настройка
- Включите переключатель «Автоаннулирование включено».
- Укажите количество дней после отправки — через сколько дней после отправки заявления оно будет аннулировано (минимум 1).
- Нажмите Сохранить.
| Значение | Поведение |
|---|---|
| 7 | Аннулирование через 7 дней после отправки |
| 14 | Аннулирование через 14 дней (по умолчанию) |
| 30 | Аннулирование через 30 дней |
Важно: Уведомление при аннулировании отправляется по стандартному шаблону аннулирования, настроенному в Курсы → [Курс] → вкладка «Шаблон» (шаблон для статуса «Аннулировано»). Текст из напоминаний НЕ используется.
Взаимодействие с напоминаниями
Автоаннулирование и напоминания работают независимо. Рекомендуемая настройка — напоминания должны быть раньше аннулирования:
| Действие | Дней после отправки |
|---|---|
| 1-е напоминание (email) | 3 |
| 2-е напоминание (email) | 7 |
| 3-е напоминание (SMS) | 10 |
| Автоаннулирование | 14 |
Таким образом, плательщик получит три напоминания, прежде чем заявление будет аннулировано.
Расписание обработки
Автоматизация обрабатывается каждый час. Это означает:
- После создания заявления может пройти до 1 часа до автоотправки (при задержке 0 дней)
- Напоминания и аннулирование проверяются ежечасно
- Все действия выполняются один раз — повторная обработка не создаёт дубликатов
Техническая деталь: Команда
automation:process-applicationsзапускается каждый час с защитой от параллельного запуска (withoutOverlapping). Время обработки зависит от количества организаций и заявлений.
Логи и мониторинг
Все действия автоматизации записываются в Настройки → Логи. Вы можете отслеживать:
- Успешные отправки: запись с типом
AUTOMATION_AUTO_SEND - Отправленные напоминания: запись с типом
AUTOMATION_REMINDER - Аннулирования: запись с типом
AUTOMATION_AUTO_CANCEL - Ошибки: запись с типом
AUTOMATION_FAILED— содержит описание ошибки
При возникновении проблем (например, не отправляются напоминания) проверьте логи на наличие записей AUTOMATION_FAILED.
Типичные причины ошибок
| Ошибка | Причина | Решение |
|---|---|---|
template missing |
Для курса не настроен шаблон заявления | Перейдите в Курсы → [Курс] → Шаблон и выберите шаблон |
PDF generation failed |
Ошибка генерации документа | Проверьте корректность шаблона (.docx) |
payer notification failed |
Ошибка отправки email | Проверьте email плательщика и настройки почтового сервера |
not found or status changed |
Заявление было обработано вручную до срабатывания автоматизации | Нормальная ситуация, не требует действий |
Рекомендации по настройке
Базовая настройка
Для большинства организаций рекомендуется:
- Автоотправка: включена, задержка 0 дней (мгновенная отправка)
- Напоминание 1: email через 3 дня после отправки
- Напоминание 2: email через 7 дней после отправки
- Напоминание 3: SMS через 12 дней после отправки
- Автоаннулирование: включено, через 14 дней после отправки
С задержкой для проверки
Если администратор хочет проверять заявления перед отправкой:
- Автоотправка: включена, задержка 1 день (даёт время на проверку)
- Напоминания и аннулирование: как в базовой настройке
Только напоминания (без автоотправки)
Если отправка должна оставаться ручной:
- Автоотправка: выключена
- Напоминания: настроены (работают для вручную отправленных заявлений)
- Автоаннулирование: по желанию
Часто задаваемые вопросы
Что произойдёт, если я включу автоотправку — старые заявления тоже отправятся?
Да. При ближайшем запуске обработки все заявления в статусе «Создано», чей возраст превышает задержку, будут отправлены. Если вы не хотите отправлять старые заявления — сначала обработайте их вручную.
Можно ли отправить напоминание одновременно и по email, и по SMS?
Да. Создайте два правила напоминания с одинаковой задержкой, но разными каналами.
Что произойдёт, если плательщик подпишет заявление между напоминаниями?
Напоминание не будет отправлено, т.к. статус заявления изменится с «Отправлено» на «Подписано». Система проверяет статус при каждом запуске.
Можно ли отменить автоаннулирование для конкретного заявления?
Нет специального механизма отмены. Но если администратор вручную изменит статус заявления (например, закроет его) до срабатывания аннулирования — автоаннулирование не произойдёт.
Как часто проверяется автоматизация?
Каждый час. Точное время зависит от настройки планировщика Laravel.
Переменная [[CANCELLATION_DATE]] показывает пустое значение — почему?
Убедитесь, что автоаннулирование включено и указано количество дней. Дата аннулирования рассчитывается как: дата отправки + дни до аннулирования. Если автоаннулирование выключено, переменная будет пустой.
Изменение настроек влияет на уже отправленные напоминания?
Нет. Уже отправленные напоминания и совершённые аннулирования не отзываются. Изменения влияют только на будущие действия.
No comments to display
No comments to display