Niwa 查看演示
Niwa
niwa@niwachat.com联系

更新日志

更新日志

这里记录 Niwa Ai 的更新与改进。

0.13.1062:客户关系与自动预约提醒

此版本为 Niwa AI 添加客户记录和客户关系流程。预约提醒通过已连接的 WhatsApp 和电子邮件渠道发送,不要求客户确认到场。当客户取消预约时,Niwa 可以将空出的时段提供给已有未来预约的合适客户,并在对方接受调整之前保留原预约。

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。流程配置使用与设置表单相同的操作。写入客户记录和发送消息需要稳定的请求 ID。

店铺智能体和私人客户渠道智能体仅能使用 customer_relationship:列出客户自己的预约和邀请、取消预约、接受或拒绝邀请、唤醒替代客户搜索、记录客户自己的陈述、设置偏好,或关联已签名的客户令牌。它们不能浏览其他客户的记录,也不能选择主动联系的接收者。更改操作需要引用客户当前消息中的原话;模型通过语义理解意图。

WhatsApp 身份归属使用已验证的入站完整电话号码,并要求与已保存记录唯一匹配。群聊、未解析的 LID 和存在歧义的号码无法获得访问权限。Facebook/Instagram 身份需要已验证的经营者关联,或客户的签名链接。公开评论无法访问预约记录。签名链接会出现在经营者的客户记录和生成的提醒中,用于打开已验证的浏览器会话;应仅向该客户提供,保持私密。

发送与恢复

该功能复用现有 Meta 持久化队列中的 crm 通道、原生 WhatsApp 发件箱、已配置的 SMTP/FluentSMTP 和 WhatsApp Cloud 中继。系统注册 niwa_relationship_tick 为每分钟运行,并注册取消预约唤醒事件;两者均参与 Niwa 管理的后台执行器。停止运行的工作进程通过下一次扫描和会过期的队列租约恢复,并非仅依靠 finally 代码块。队列归属在 600 秒后过期。每轮最多启动三个任务,并在 45 秒后停止启动新工作;单次服务商或模型调用可能运行更久。

已准备的消息和发送方式会在发送前持久保存。重试时,网关 ID 和 Cloud 请求 ID 保持稳定。SMTP 没有服务商幂等键,因此被中断或失败的发送会标记为 uncertain ,等待检查,而不会盲目重发。已排队或已接受的回执不等于送达确认。流程设置和每位客户的记录,会显示待处理、失败、已跳过和不确定状态。已完成的 CRM 队列记录会保留用于去重,并随联系人删除而移除。

Cloud WhatsApp 在客户服务窗口之外发送消息,需要使用获批准的模板。Niwa 准备本地化的编号模板,并通过已配置的中继提交;实际批准仍由 Meta 决定,发送模块会在发送前检查。也可以提供已有的获批准模板绑定。中继必须包含编号模板支持和客户关系流程标志;仅部署客户端无法更新较旧的中央中继。手动发送自由格式的 CRM 消息,仍须在回复窗口内;发送指定的获批准模板,则使用专门的 WhatsApp Cloud 工具。模板回执会记录模板名称、语言和参数,不会将尚未发送的自由格式草稿呈现为已发送的消息。

验证

tests/relationship-integration.php 通过 WP-CLI 运行,使用临时 MySQL 表、真实的预约、存储和工具代码,以及隔离的 AI、电子邮件、WhatsApp 和 Calendar 边界。它检查身份归属、取消预约、候选客户选择、接受邀请时的回滚、持久化发送、重复请求、工作进程终止、模板、暂停和客户关系日程,不联系真实客户。 tests/meta-whatsapp-cloud.php 使用 HTTP 测试数据覆盖 Cloud 服务商边界。浏览器检查使用隔离的本地 WordPress 测试环境,验证档案、客户记录和设置的持久保存、访问控制,以及桌面和移动布局。这些检查并不证明消息已送达真实客户,也不证明已获得实际服务商批准。

v4.3.44

  • 稳定性改进
  • 更好地理解 WooCommerce 商品信息

最后更新:2026 年 10 月 9 日

Niwa
How can I help?
与 Niwa 聊天