Правила
На этой странице
Правило говорит, когда что-то случается с визитом, для каких визитов и что Talemo пишет клиенту. В нём три части:
- Когда (
event): за несколько часов до начала визита (от 1 до 72) или что-то случилось с визитом — его записали, перенесли или отменили. - Для каких визитов (
conditions): только визиты выбранных услуг, групп услуг или мастеров, не больше 50 в каждом перечне. Ничего не выбрано — любой визит; выбрано в нескольких перечнях — визит должен подойти ко всем. - Что делать (
action): написать клиенту одно из трёх сообщений, которое подходит к событию. Подтверждение идёт с «записали» и «перенесли», напоминание — с «за несколько часов до визита», сообщение об отмене — с «отменили». Слова — из заготовки сообщения, своих слов у правила нет (см. Окно канала и заготовки WhatsApp).
Правила принадлежат филиалу. talemo_list_rules перечисляет их, talemo_get_rule показывает одно. У
каждого есть created_by_name — имя того, кто его завёл; у встроенного правила, когда человека уже нет
или у него нет имени, поля нет. В приложении помощник показывает их карточками «Правила» (rules, филиал)
и «Правило» (rule, одно правило с историей); в вебе это карточка «Клиентам» на странице «Правила записи».
Встроенные и добавленные словами
Три уведомления о визите — подтверждение, напоминание, отмена — это встроенные правила каждого
филиала (см. Уведомления о визите). Они работают как работали, а правила записи
филиала (confirm_on_booking, remind_before_hours) — те же настройки: изменение одного — изменение
другого (см. Правила записи). Встроенные меняются меньше остальных:
подтверждение можно только включить или выключить, у напоминания меняются только часы, сообщение об
отмене не меняется совсем, и условий у них нет. Другая правка отклоняется со статусом 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;
пауза снимается, а тот, кто это сделал, становится тем, чьими правами правило работает. Счёт трёх отправок
начинается заново с включения (и с любой правки правила): старые отказы правило на паузу не возвращают. До этого дело
«правило на паузе» ждёт всех, кто может менять филиал правила (см. Виды дел в «Ждёт вас»);
оно уходит само, когда правило включили или выключили.
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 говорит, почему не ушло (причины канала — в Уведомлениях о визите); правила
добавили три: 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 дней.