AntlerChat · 2026 年 10 月 6 日 · 约 9 分钟

Homestay WhatsApp 自动回复怎么做到不乱编链接?我们 100 多间单位的做法

Antlerzone 的 WhatsApp 入住机器人每天发门锁密码、闸门通行证和入住指南,但 AI 从来不能自己写链接:链接由程式从订单生成,AI 只准读事实,不知道就转真人。含我们自己踩过的坑。

Bahasa Melayu → · English →

要让 WhatsApp 入住机器人不乱编链接,方法只有一个:根本不让 AI 写链接。我们的系统里,每一条 portal 链接、门锁密码、闸门通行证都是普通程式从订单资料生成的;AI 只负责判断「该发哪一条准备好的回复」,没有事实可依据时就闭嘴、转给真人。

这就是全部的核心。下面讲的是我们在新山和 Desaru 跑 100 多间 homestay、用 AntlerChat 做到这件事的实际流程,包括我们自己的机器人曾经编过一条网址的那天。

为什么「编一条链接」是入住机器人最严重的错?

因为客人是晚上十一点拖着行李站在大门口。一条点进去是空的链接,比不回复还糟。价钱报错可以退款;链接给错,客人进不了门、打电话给你、留一星差评、再告诉下一个客人。

这不是理论风险。2024 年加拿大一个仲裁庭判 Air Canada 要负责,因为它的客服聊天机器人向乘客描述了一个根本不存在的丧亲退款政策;航空公司辩称机器人是「独立法律个体」,输了。语言模型被要求「要帮忙」,遇到空白就会填一个看起来对的东西进去。网址是世界上最容易看起来对的东西。

我们自己也学过这课。早期,我们的通用 AI 被允许回复已经绑定订单的客人对话。它一被放出去,就编了一条不存在的 guest portal 网址,然后还向客人要一个我们早就有的订单编号。同一个星期我们就把它在绑定订单的对话里关掉,这个决定到今天还写在接待程式最上面的注解里。

Homestay 入住的「自动化」到底在自动什么?

网上多数讲 Airbnb 或 homestay WhatsApp 自动化的文章,讲的其实是定时模板:订单成立→发一条、前一天→发一条、退房早上→发一条。有用,我们也做。但模板是容易的那一半。难的那一半是:客人回话了。

时刻谁先开口我们的系统做什么
订单成立系统欢迎模板,两个按钮:去网站 portal 继续,或直接在聊天里办
入住前 7 天/1 天系统(可选,各经营者自己开)提醒客人目前卡在哪一步,只在经营者设定的马来西亚时间时段内发
客人问「怎么 check in?」客人读订单的 portal 步骤,推他做下一步,只推一次
客人按 Check in客人一步一步发到达指南,最后才发单位资料和门锁密码
客人问「泳池在哪一层?」客人从这个单位登记的事实里答,答不了就转同事
客人说「门打不开」客人AI 绝不回答,直接转真人

主动发的定时讯息,对每一个新经营者预设全部关闭,因为开了就是在打扰没有写信来的真人。回覆有写信来的客人,预设开。这个区分听起来很小,但信任大半在这里。

链接到底是从哪里来的?

从订单来,经过程式,永远不经过模型。

客人用订单上登记的手机号码在 WhatsApp 写信给我们,这个号码就已经被证明了。所以系统不会再发一个验证码到同一支手机,而是直接铸造 guest portal 本来就用的短效登入凭证,包进 portal 既有的登入入口。客人一点,落地就是已登入的自己的订单。

这件事周围有三条安全规矩,写在程式里,不是写在 prompt 里:

  1. 只对没有密码的帐号自动登入。 如果订单上的电邮已经属于某个设过真实密码的人,一个订单编号不能证明他是本人。这些客人拿到的是普通链接,自己登入。
  2. 「电话已验证」只在写信来的号码跟订单吻合时才盖章。 员工手动绑定的对话、客人自己打的订单编号,都不能悄悄把一个陌生号码变成「已验证」。
  3. 链接短效、绝不储存。 凭证有效期跟 portal 本身的 session 一样(预设 12 小时)。如果系统读不到这个数字,它就不提时间,而不是报一个自己编的。

AI 看不到以上任何一样。它编不出链接,因为生成链接的那个函数不是它能呼叫的东西。

机器人怎么知道客人走到哪一步?

它不自己记。网站 portal 和 WhatsApp 聊天是同一个状态栏位的两道前门:联络资料→身份验证(eKYC)→押金/付款→单位就绪→已入住→已退房。两边每一轮都读同一个栏位。

所以在网站做了一半的客人,打开 WhatsApp 不会被要求重来;在聊天里答了两题再打开 portal,portal 也停在对的那一步。程式无例外遵守两条:绝不自己主动把步骤往前推(只因为客人刚做完那一步在等的事才推),以及同事在测试工作室预览时绝不推步骤——因为跨进「单位就绪」那一刻,系统会把客人登记到大厦真正的保安系统、发出真正的闸门通行证。

这里面还有一点人味:催下一步的讯息每一步只发一次。客人回「谢谢 🙂」不会再被催同一句。

那 AI 到底在做什么?

三件很窄的事,每一件都有围栏。

第一件:看懂规则没抓到的句子。 一张规则表先跑:「check in」、选单数字、订单编号、已储存的对话状态。全部规则都没命中,才问模型把这句话归到四个标签之一。模型必须回传「是客人哪几个字让它这样判断」,而那几个字必须真的出现在客人的讯息里。证据是编的,答案就是编的,整个回覆直接丢掉。信心低于门槛就不路由,走预设。每个判断按整句快取,第二个客人打同一句话零成本。

第二件:回答关于单位的事实问题。 「泳池在哪?」「健身房几楼?」这个模型只拿到这个单位登记的事实和经营者自己的 FAQ,其他什么都没有。它的指令包括:绝不编楼层、时间、价钱、地址、电话;绝不给任何形式的链接;绝不叫客人「去看手册」;客人在报修(坏了、漏水、锁住、不安全)就不回答,让真人接。事实里没有答案,它回一个固定的「无答案」记号,同事就被叫过来。

第三件:没有了。 价钱、日期、退款、延住、取消,AI 一律不生成。从订单来,或者不说。

机器人什么时候给门锁密码,什么时候拒绝?

门锁密码、wifi 密码、信箱密码是客人自己的东西。晚上十一点拒绝给,不叫安全,叫服务差。但问的人必须真的已经入住。

所以密码放在系统其他部分都在问的同一个问题后面:这位客人完成 check-in 了吗? 之前,密码被遮住,跟印出来的指南一样遮;之后,客人一问就给,用客人的语言。

经营者还有逐项开关:给门锁密码、远端开门、发押金链接等等。「关」从来不等于沉默,也不等于「经营者关掉了这功能」。 关的意思是改由同事回答,客人永远不会被告知中间有个开关。每个开关都在生成那样东西的唯一函数里面执行,而不是在呼叫它的九个地方——要记九次的防线不是防线。

客人按下「Check in」之后会收到什么?

顺序是:图片 1、说明 1(自动翻成客人的语言)、图片 2、说明 2……最后才是单位资料和门锁密码,让客人先看完路线再拿到钥匙。

如果这个 listing 有两份到达指南,机器人按客人说的交通方式(开车或 Grab)发对应的那份;只有一份就大家都发那一份。第二条规则是后来加的——我们发现,客人勾了「Grab」、唯一的指南叫「开车版」就什么都不发,是规则压过了规则的目的。

我们最近写过一位收齐了所有说明还是打不开智能门锁的客人。自动化负责把说明送到,不负责让人看。这是这一整类软件诚实的极限。

没有 AntlerHub 也能用吗?

AntlerChat 任何生意都能单独用:WhatsApp Cloud API、Instagram、Messenger、TikTok、网站聊天框进同一个收件箱,AI 用客户打的语言回。上面讲的那些「认得订单」的行为(步骤、门锁密码、闸门通行证、指南)需要订单资料,那是 AntlerHub 提供的;AntlerHub 的经营者一开始就是连好的。

价格页今天列的是:月付 RM 450 不绑约,签一年每月 RM 405,签两年每月 RM 360,各含一个 WhatsApp Web 号码;每多一个 WhatsApp Web 号码每月 RM 200。价格未含 SST。

让机器人跟你的客人讲话之前,该问供应商什么?

别问「有没有 AI」。问这些:

  • AI 能不能在讯息里写网址?能的话,怎么测过?
  • 它不知道的时候会怎样——说不知道并叫人,还是硬试?
  • 「目前步骤」存在哪里?网站跟聊天看到的一样吗?
  • check-in 没完成之前会不会给门锁密码?
  • 发讯息看的是马来西亚时间,还是伺服器时钟?
  • 我能不能关掉某一项功能,而客人不会被告知「机器人拒绝了」?

供应商答不出自己的架构,那「它会不会编链接」的诚实答案就是「希望不会」。

你在马来西亚做 homestay,想用自己的 WhatsApp 号码、接上自己的 listing 看一遍,从 /chat 开始。

让入住问题自己回答自己

AntlerChat 帮民宿接 WhatsApp、微信和网页客服,该转人的时候转人,绝不捏造连结。

看 AntlerChat