Beta Проект в бета-тестировании
ГлавнаяФункцииWikiПланыКонтактыВойти →
Главная / Wiki / Автосообщения

Автосообщения: правила и планировщик

Правило = объект + шаблон + канал + триггер + время. Таблица auto_message_rules. Отправки фиксируются в auto_message_dispatches (защита от дублей).

1. Поля правила

property_id
Объект. Правило работает только на его брони — для каждого объекта свои правила
template_id
Шаблон из шаблонов. Рендерится под каждую бронь отдельно
channel_profile_id
Через какой профиль отправлять (должен быть привязан к объекту)
trigger_type
booking_created / before_checkin / checkout_day
offset_days
Для before_checkin: за сколько дней до заезда (1 = завтра)
send_time
Время «ЧЧ:ММ» для before_checkin и checkout_day. Пусто = сразу при проверке
enabled
Вкл/выкл без удаления

2. Как срабатывает каждый триггер

  • booking_created — функция ProcessBookingCreatedAutoMessages(bookingID) сразу при создании брони (авто или вручную). Без расписания.
  • before_checkin — планировщик ищет брони объекта с date(check_in) = сегодня + offset_days, время наступило (isAutoRuleTimeReached: текущие минуты ≥ send_time).
  • checkout_day — брони с date(check_out) = сегодня и наступившим временем.

3. Планировщик

  • StartAutoMessageScheduler — тикер каждую минуту → ProcessDueAutoMessageRules(now).
  • Скрытые (is_hidden=1) и отменённые (payment_status='cancelled') пропускаются.
  • Дубль невозможен: пара (rule_id, booking_id) отправляется один раз (hasAutoMessageDispatch).
  • Отправка — dispatchAutoMessage(rule, bookingID): рендер шаблона + отправка через мессенджер профиля. Ошибка пишется в dispatches со статусом и текстом.

4. Не отправилось — чеклист

Правило enabled? Совпадает property_id с бронью?
У брони есть активный чат на канале правила? Без чата отправлять некуда.
Бронь не скрыта и не cancelled?
Для before_checkin/checkout_day: время send_time уже наступило? Дата совпала (offset_days)?
Не было ли уже отправки (таблица dispatches)? Проверьте историю чата.

API: GET/POST /api/auto-message-rules, PUT/DELETE /api/auto-message-rule/{id}.

📷 Скриншот: Правила автосообщенийassets/screenshots/automsg-rules.pngПоложите файл с этим именем в папку web-landing/assets/screenshots/ — он появится здесь автоматически
Правила: объект + шаблон + триггер + время

Контакты

Проект в бета-тестировании — пишите, поможем с подключением.

Emailinfo@gostvchat.ruОтветим в течение рабочего дня
Telegramt.me/gostvchatБыстрые вопросы
Панельgostvchat.ru/workspace/Вход через Яндекс OAuth