Niwa Посмотреть демо
Niwa
niwa@niwachat.comКонтакты

История изменений

История изменений

Здесь собраны обновления и улучшения Niwa AI.

0.13.1062: работа с клиентами и автоматические напоминания о записи

В этом выпуске в Niwa AI появились записи о клиентах и процессы работы с ними. Напоминания о приёме отправляются через подключённые WhatsApp и электронную почту без запроса подтверждения присутствия. Когда клиент отменяет запись, Niwa может предложить освободившееся время подходящему клиенту с будущей записью, сохраняя её до согласия на перенос.

Страница Customer relationships в Niwa хранит внутренний профиль клиента, день рождения, предпочитаемый язык, дополнительные поля, журнал с датами, записи на приём, сообщения и предложения более раннего времени. Сотрудники могут добавлять заметки и отправлять сообщения через WhatsApp или почту. Разговоры на сайте и в сопоставленных личных каналах записываются в карточку клиента. Внутренние заметки исключены из инструмента записи для клиентов.

Автоматические процессы записи

Когда функция записи включена, напоминания и предложения свободного времени на текущий день включены по умолчанию. Используется уже имеющееся разрешение на связь; отозванное разрешение или приостановленный клиент блокируют исходящие инициативные сообщения. Новый шаг согласия или подтверждения присутствия не добавляется.

  • Напоминания: одно на каждое время начала приёма и подключённый канал, обычно за 24 часа. При наличии обоих каналов отправляются и письмо, и сообщение WhatsApp. При записи незадолго до приёма напоминание отправляется за два часа, а при записи менее чем за четыре часа до начала в середине интервала от создания записи до приёма. Записи сохраняют существующий подтверждённый статус.
  • Отмена: аутентифицированный клиент явно запрашивает её через сеанс на сайте или сопоставленный личный канал. Инструмент проверяет принадлежность записи, текущее время начала и статус жизненного цикла. Затем запускается устойчивый к сбоям поиск замены.
  • Предложения свободного времени: отменённый приём на сегодня предлагается одному клиенту с подтверждённой будущей записью на ту же услугу к тому же специалисту, с учётом настроенного допустимого отклонения по времени суток. По умолчанию: следующие 30 дней, отклонение 90 минут, уведомление не менее чем за 60 минут и предложение на 20 минут. Каждый клиент получает не больше одного такого предложения в день. Истечение срока или отказ позволяют рассмотреть следующего кандидата.
  • Согласие: существующая запись переносится только после явного согласия. Блокировка участника в MySQL, транзакция, блокировка строки предложения, блокировки строк записей и повторная проверка доступности не дают потерять исходную запись, если время уже занято. Перенос, запись истории и очередь отправки в Calendar фиксируются вместе. Существующая интеграция с Google Calendar обновляет событие записи.
  • Повторные обращения и поздравления с днём рождения: настраиваются владельцем и изначально выключены. Для повторного обращения нужна запись о завершённой услуге и отсутствие более поздней активной или завершённой записи. Настроенный интервал также разделяет последовательные задания повторного обращения. Для поздравления нужен известный день рождения в формате MM-DD; используется только явно настроенный подарок. Niwa составляет текст по сохранённым фактам и языку клиента, без выбора маршрута по языковым ключевым словам.

Инструменты и идентификация

Доверенный чат администратора, Telegram и MCP используют общие инструменты crm_workflows_get, crm_workflows_configure, crm_contacts_list, crm_contact_get, crm_contact_update, crm_journal_add, crm_message_send и crm_identity_link. Настройка процессов использует ту же операцию, что и форма настроек. Записи в журнал и исходящие сообщения требуют постоянных идентификаторов запросов.

Агентки магазина и личных каналов клиентов получают только customer_relationship: просмотр собственных записей и предложений, отмена, принятие или отклонение предложения, запуск поиска замены, сохранение высказывания самого клиента, настройка предпочтений или привязка подписанного токена клиента. Они не могут просматривать карточки других клиентов или выбирать получателя исходящего обращения. Для изменений нужна цитата из текущего сообщения клиента; модель определяет намерение по смыслу.

Идентификация в WhatsApp использует полный номер телефона из проверенного входящего сообщения и требует единственного совпадения в сохранённых данных. Групповые чаты, неразрешённые LID и неоднозначные номера не получают доступ. Для идентификации Facebook/Instagram нужна подтверждённая владельцем привязка или подписанная ссылка клиента. Публичные комментарии не имеют доступа к записям на приём. Подписанная ссылка появляется в карточке клиента у владельца и в созданных напоминаниях, открывая проверенный сеанс браузера; она должна оставаться доступной только этому клиенту.

Доставка и восстановление

Функция повторно использует существующую устойчивую очередь Meta в канале crm , стандартную очередь WhatsApp, настроенный SMTP/FluentSMTP и сервис WhatsApp Cloud. Она регистрирует niwa_relationship_tick каждую минуту и событие запуска при отмене; оба участвуют в управляемом фоновом выполнении Niwa. Остановленный обработчик восстанавливается через следующую проверку и истекающее право владения заданием очереди, а не только через блок finally . Право владения заданием истекает через 600 секунд. Один цикл запускает не больше трёх заданий и прекращает запуск новых через 45 секунд; один вызов провайдера или модели может длиться дольше.

Подготовленные сообщения и выбранный транспорт сохраняются перед отправкой. Идентификаторы шлюза и запросов Cloud остаются постоянными при повторных попытках. SMTP не имеет ключа идемпотентности провайдера, поэтому прерванная или неудачная отправка отмечается как uncertain для проверки вместо повторения вслепую. Подтверждение постановки в очередь или принятия не подтверждает доставку. Настройки процессов и каждая карточка клиента показывают ожидающие, неудачные, пропущенные и неопределённые состояния. Завершённые записи очереди CRM хранятся для предотвращения дублей и удаляются при удалении контакта.

Для Cloud WhatsApp вне окна обслуживания клиента нужен одобренный шаблон. Niwa готовит локализованные нумерованные шаблоны и отправляет их через настроенный сервис подключения; фактическое одобрение Meta остаётся внешним условием и проверяется транспортом перед отправкой. Можно указать существующие одобренные привязки. Сервис подключения должен поддерживать нумерованные шаблоны и флаг процессов работы с клиентами; установка только клиентской части не обновит старый центральный сервис. Ручным сообщениям CRM в свободной форме по-прежнему нужно окно ответа; отправка конкретного одобренного шаблона использует специальный инструмент WhatsApp Cloud. Подтверждение шаблона сохраняет его имя, язык и параметры, не выдавая неотправленный черновик свободного текста за отправленное сообщение.

Проверка

tests/relationship-integration.php выполняется через WP-CLI с временными таблицами MySQL, реальным кодом записей, магазина и инструментов и изолированными взаимодействиями с ИИ, почтой, WhatsApp и Calendar. Она проверяет принадлежность записей, отмену, выбор кандидата, откат при принятии предложения, устойчивую доставку, повторные запросы, завершение обработчика, шаблоны, приостановки и расписания обращений без связи с реальными клиентами. tests/meta-whatsapp-cloud.php проверяет границу провайдера Cloud с тестовыми HTTP-ответами. Проверки в браузере используют изолированную локальную установку WordPress для сохранения профиля, журнала и настроек, контроля доступа и отображения на компьютере и телефоне. Эти проверки не подтверждают доставку реальному клиенту или одобрение действующего провайдера.

v4.3.44

  • Улучшения стабильности
  • Улучшено понимание товаров WooCommerce

Последнее обновление: 9 октября 2026 года

Niwa
How can I help?
Чат с Niwa