---
title: Правила — что Talemo пишет клиентам и когда
summary: Правило говорит, когда что-то случается с визитом, для каких визитов и что Talemo пишет клиенту. Три уведомления о визите — встроенные правила каждого филиала, остальные добавляются словами. Правило показывает, что сделало бы, до того как начнёт работать; клиент получает не больше трёх автоматических сообщений в сутки, а правило встаёт на паузу, когда уходит тот, чьими правами оно работает, или он теряет право.
tools: [talemo_list_rules, talemo_get_rule, talemo_create_rule, talemo_update_rule, talemo_list_rule_firings]
related: [visit-notices, booking-rules, services-and-prices, ../conversations/channel-window-and-templates, ../clients/reminders-opt-out, ../work/item-kinds]
search: [автоматические сообщения клиентам, правило напоминания, правило подтверждения, правило на паузе, предел сообщений в сутки, стоимость заготовки WhatsApp]
---

# Правила

**Правило** говорит, когда что-то случается с визитом, для каких визитов и что Talemo пишет
клиенту. В нём три части:

- **Когда** (`event`): за несколько часов до начала визита (от 1 до 72) или что-то случилось с
  визитом — его записали, перенесли или отменили.
- **Для каких визитов** (`conditions`): только визиты выбранных услуг, групп услуг или мастеров,
  не больше 50 в каждом перечне. Ничего не выбрано — любой визит; выбрано в нескольких перечнях —
  визит должен подойти ко всем.
- **Что делать** (`action`): написать клиенту одно из трёх сообщений, которое подходит к событию.
  **Подтверждение** идёт с «записали» и «перенесли», **напоминание** — с «за несколько часов до
  визита», **сообщение об отмене** — с «отменили». Слова — из заготовки сообщения, своих слов у
  правила нет (см. [Окно канала и заготовки WhatsApp](../conversations/channel-window-and-templates.md)).

Правила принадлежат филиалу. `talemo_list_rules` перечисляет их, `talemo_get_rule` показывает одно. У
каждого есть `created_by_name` — имя того, кто его завёл; у встроенного правила, когда человека уже нет
или у него нет имени, поля нет. В приложении помощник показывает их карточками «Правила» (`rules`, филиал)
и «Правило» (`rule`, одно правило с историей); в вебе это карточка «Клиентам» на странице «Правила записи».

## Встроенные и добавленные словами

Три уведомления о визите — подтверждение, напоминание, отмена — это **встроенные правила** каждого
филиала (см. [Уведомления о визите](visit-notices.md)). Они работают как работали, а правила записи
филиала (`confirm_on_booking`, `remind_before_hours`) — те же настройки: изменение одного — изменение
другого (см. [Правила записи](booking-rules.md)). Встроенные меняются меньше остальных:
подтверждение можно только включить или выключить, у напоминания меняются только часы, сообщение об
отмене не меняется совсем, и условий у них нет. Другая правка отклоняется со статусом 400, кодом
`request.body_invalid` и `params.field` `enabled`, `event` или `conditions`.

Остальные добавляются `talemo_create_rule`, например «напомнить о маникюре за 2 часа до визита»:
`event` `{"on": "before_start", "hours": 2}`, `conditions` `{"services": [<service_id>]}` и `action`
`{"do": "write_to_client", "message": "visit_reminder"}`. Правило начинает работать сразу. То, что
с `before_start`, берёт и уже записанные визиты, чей час ещё не пришёл; то, что с `visit`, действует
на то, что случится после этого. `talemo_update_rule` включает и выключает правило и меняет его
время (`event`) и условия — они заменяют прежние целиком. Новое время сдвигает срабатывания, что
ждут своего часа. Правила не удаляют: ненужное выключают, а то, что оно сделало, остаётся в
визитах и в списке его срабатываний.

Сообщение, которое не подходит к событию, отклоняется со статусом 400, кодом `request.body_invalid` и
`params.field` `action`; часы вне пределов, пустой перечень того, что случилось с визитом, или слово,
названное дважды, — с `event`; перечень длиннее 50 или номер, названный дважды, — с
`conditions.services`, `conditions.groups` или `conditions.masters`. Услуга, группа или мастер другого
филиала отклоняется со статусом 422, кодом `record.reference_missing` и тем же `params.field`.
Правило всего бизнеса меняет только роль на весь бизнес; любой другой роли отказ — статус 403 и код
`role.forbidden`. Это законные ответы, а не сбои.

## Что сделало бы правило

Правило пишет клиентам само, поэтому до начала работы `talemo_create_rule` и `talemo_update_rule`
с `dry_run` показывают его вместе с **прогнозом** и ничего не меняют. `talemo_get_rule` показывает
прогноз правила, которое уже есть. У него два окна: `ahead` — ближайшие 14 дней — и `past` —
прошедшие 30 дней, как если бы правило стояло тогда. В каждом:

- `firings` — на скольких визитах сработало бы правило;
- `clients` — скольким клиентам;
- `sends` — сколько сообщений ушло бы;
- `by_template` — сколько из них ушло бы заготовкой WhatsApp, вне 24-часового окна. За них Meta
  берёт плату с бизнеса по своим тарифам, по стране и категории; прогноз считает сообщения, а
  сумму не считает, тарифы — в прайс-листе Meta для WhatsApp Business;
- `skipped` — почему остальные не ушли бы: причина и число, например `no_confirmed_contact`,
  `window_closed`, `template_not_approved`, `daily_limit`.

У правила с `visit` впереди считать нечего: что случится с визитами, заранее неизвестно, и окно
`ahead` пустое; прошедшие 30 дней показывают, что правило сделало бы. Уйдёт ли сообщение, решают те
же правила, что и для настоящего: контакт клиента, окно канала, одобренная заготовка, предел суток.

## Три сообщения в сутки

Все правила вместе пишут одному клиенту не больше трёх автоматических сообщений за любые 24 часа.
Четвёртое не отправляется и пропускается с `daily_limit`. Сообщение об отмене не считается и этим
пределом никогда не задерживается; ответы людей в переписке и слово «стоп» тоже не считаются.

## Чьими правами и пауза

Правило работает правами того, кто его создал, как если бы он написал сообщение сам. Когда этот
человек уходит из бизнеса или у него больше нет права менять правила записи филиала, правило
**встаёт на паузу** (`state` `paused`, `pause.reason` `creator_left` или `creator_lost_right`) и никому
не пишет. На паузу оно встаёт и тогда (`failures`), когда три последние отправки не ушли из-за самого
правила: канал отключён, заготовку WhatsApp отказали или у бизнеса нет способа оплаты в WhatsApp. Сбой Meta
или Talemo и то, что касается одного клиента (номер, до которого не достучаться, закрытое окно), не
считается и три не прерывает. Правило на паузе не пропадает: тот, кто может менять филиал, включает или выключает его через `talemo_update_rule`;
пауза снимается, а тот, кто это сделал, становится тем, чьими правами правило работает. Счёт трёх отправок
начинается заново с включения (и с любой правки правила): старые отказы правило на паузу не возвращают. До этого дело
«правило на паузе» ждёт всех, кто может менять филиал правила (см. [Виды дел в «Ждёт вас»](../work/item-kinds.md));
оно уходит само, когда правило включили или выключили.

Talemo может и сам выключить в бизнесе правила, заведённые словами, например после неполадки
(`feature.off`, `params.feature` `rules_in_words`). Тогда `talemo_create_rule` отказывает и в списке
инструментов его нет, включённые правила, заведённые словами, показываются как `paused` с `pause.reason`
`feature_off` и никому не пишут, а включать нечего: они заработают сами, когда Talemo включит правила
обратно. Три встроенных уведомления о визите работают как обычно.

Правило, которое включено, но в WhatsApp которого нет одобренной заготовки его сообщения, имеет
`state` `waits_template`: пока окно 24 часа открыто, сообщение уходит текстом, вне окна — не уходит,
пока Meta не одобрит заготовку.

## Что сделало правило

`talemo_list_rule_firings` перечисляет срабатывания правила, свежие сверху (`limit` от 1 до 200, без
него 50). Каждое — одно уведомление на одном визите: `kind` (`confirmation`, `reminder` или
`cancellation`) и `state`: `planned` ждёт своего часа (`due_at`), `sent` встало в очередь канала,
`skipped` не ушло, `cancelled` отозвано, потому что визит отменили, он состоялся или его перенесли.
`reason` говорит, почему не ушло (причины канала — в [Уведомлениях о визите](visit-notices.md)); правила
добавили три: `daily_limit` с `limit` — сколько сообщений в сутки получает клиент —, `has_later_visit`, когда
правило пишет только клиенту без визита позже, и `rule_paused`. `party_name` — имя в карточке клиента.
У ушедшего сказано как: `channel`, `via` (`text` или заготовка WhatsApp, `template`) и `delivery` (`queued`,
`sent`, `delivered`, `read` или `failed` с `code` отказа). У ждущего, что по тому, что Talemo знает сейчас,
не уйдёт, есть `expected_skip` — причина. `activity` правила считает срабатывания, что ждут сейчас, и те,
что ушли и не ушли за последние 30 дней.
