Документация Talemo

Правила

На этой странице

Правило говорит, когда что-то случается с визитом, для каких визитов и что 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 дней.

Инструменты этой темы

Связанные темы