Saltmarsh Funds 是一家虚构的共同基金公司。一笔 $20,000 的赎回刚刚进来,收款的银行账户是六天前才更改的。Saltmarsh 的规定是:这样的付款要先暂停,直到有人按档案里的电话号码给投资人打过电话。
今天,这通电话只是排队等着的一张工单。本指南替换的是等待,而不是团队:Omni Octo 先给投资人发一条提醒短信,再打电话,只问一个问题,然后把答案以格式固定的内容发回付款系统,付款系统可以直接据此处理。决定权仍在付款系统手里,只要不是明确的肯定回答,就交给人。
你只需要对 Octo 描述就能建成:这一部分不用拖拽,也不需要技术能力。这样的搭建通常要花好几天,Octo 大约十分钟。把你自己的付款系统接上去、做测试通话,还要再花大约一个小时,而这一部分需要有权修改你系统的人。
最终得到什么
一个工作流,四个步骤:
| 步骤 | 发生什么 |
|---|---|
| Webhook 接收 | 你的付款系统发来案件:投资人、金额、基金、电话号码 |
| 短信 | 投资人从你的号码收到一条提醒,带有金额和一个参考编号 |
| 打电话并等待 | 你的 AI 智能体给对方打电话。工作流会等到通话结束并完成分析 |
| 发出带签名的结果 | 一条带签名的消息发回你的系统,里面是格式固定的内容 |
Omni Octo 从不转移资金。它没有连接你的支付渠道。它发回的只是一个答复。
开始之前:你需要准备什么
- 一个既能发短信又能打电话的号码。 通常选免费电话(toll-free)号码。参见如何获得企业短信号码。短信发出之前,这个号码必须在 /phone-numbers 下显示已获准发送。
- 一个接收结果的地方。 即你的付款系统或运营系统上的一个地址,能接收 POST 并校验签名。
- 一个双方共用的签名密钥。 Octo 不能保管密钥,所以由你在下一步自己保存。
第 1 步:保存签名密钥
进入集成 → 添加集成,选择 Webhook 签名密钥。起一个你认得出的名字,例如 Saltmarsh payments system。粘贴密钥,在发送方如何使用它下选择给每个 Webhook 签名(HMAC),然后点击保存。
在这个工作流里,同一个集成承担两项工作:校验进来的案件,并给发出去的结果签名。
你不需要手动添加系统的地址。下一步里,Octo 会在一张由你批准的卡片上提出这个地址。
第 2 步:请 Octo 来建
和 Octo 开一个新对话,描述这项工作。下面第一段就是请求本身。其余的详细说明是为了让 Octo 不必猜你的数据项名称:
为 Saltmarsh Funds(一家共同基金公司)建一条回电核验专线。当我们的付款系统把案件发给你时,先给投资人发一条提醒短信,然后打电话。先按姓名确认对方是投资人本人,把申请内容读一遍,问对方是否提出过这笔申请。如果是,今天付款;如果不是、不确定,或想找人工,就暂停付款,并告知反欺诈专员会在一小时内回电。然后把结果发回我们的付款系统。
详细说明
- 一个工作流。 触发器:一个 webhook,用集成“Saltmarsh payments system”校验
X-Signature-256。案件的格式如下:{"case_id":"SF-20931","investor_name":"Jordan Lee","fund":"Saltmarsh Growth Fund","amount":"$20,000","bank_last4":"7731","bank_changed_on":"October 27","phone":"+1…"}- 先发短信,再打电话,用我们的免费电话号码。短信:“Saltmarsh Funds:我们现在用这个号码给你打电话,关于一笔 {amount} 的赎回申请,编号 {case_id}。我们绝不会向你索要密码。”等通话结束(上限 10 分钟),并在通话中带上案件编号。即使案件编号相同,每个案件也必须打一通新电话。两个步骤都开启免打扰时段。
- 智能体: 开场问候保持中性,不带任何姓名。第一个问题:“请问是 {investor_name} 吗?”如果不是,道歉,不透露任何信息,结束通话。如果是,读出金额、基金、银行账户尾号,以及银行信息被更改的日期,然后问“请问这笔申请是您本人提出的吗?”告知参考编号,道别,并由你自己结束通话。绝不索要密码、账号或社会安全号码。不提供理财建议。
- 对话洞察加在智能体上,只包含这几项:
case_id(文本)、outcome(released 或 held)、request_recognized(yes、no 或 unsure)、hold_reason(none、not_recognized、wants_specialist 或 no_answer)、summary。- 通话之后,在同一个工作流里: 向
https://payments.saltmarsh.example/hooks/octo发一个带签名的 POST,包含这些内容和通话状态。如果电话没有接通或被跳过,就发送outcome: "held"和hold_reason: "no_answer"。- 在集成上批准这个地址,验证,让工作流保持未启用,并把它的 webhook 地址给我。
Octo 会根据这一条消息建好智能体、对话洞察和工作流。它可能会问你时区,或者问通话时段以外的电话该怎么处理。
Octo 在创建、批准或开启任何东西之前,都会先停下来问你。 请逐张读完卡片并确认,包括批准地址卡片。这张卡片是工作流被允许向你的系统发送内容的唯一途径。
第 3 步:让你的系统指向它
Octo 会把 webhook 地址给你。你也可以在工作流的概览标签页里,在 Webhook 端点卡片上找到它,旁边有复制按钮和一个状态:
- 就绪:已上线,签名密钥已保存
- 未启用:还没有开启,所以你的系统发来的消息会被拒绝
- 设置未完成:还缺少某些东西
把你的付款系统配置好,让它把每个暂停的案件用 POST 发到这个地址,并用第 1 步的密钥签名。然后对 Octo 说“启用它”。
第 4 步:用你自己的手机测试
发一个带上你自己号码的测试案件,接听电话,并把投资人可能给出的每一种回答都试一遍:
| 你说 | 智能体应该说 | 你的系统应该收到 |
|---|---|---|
| “是的,是我本人提出的” | 今天会付款,并告知参考编号 | released、yes、none |
| “不,我没有提出这笔申请” | 已暂停,反欺诈专员会在一小时内回电 | held、no、not_recognized |
| “我能和真人说话吗?” | 同样的暂停说明 | held、wants_specialist |
| 让电话转入语音信箱 | 不提案件的任何内容 | held、no_answer |
结果会在通话结束、分析完成后几秒钟到达。
要在通话时段以外测试?不要关闭免打扰时段。请 Octo 对你自己的号码把工作流运行一次。那一次运行只能给你打电话,设置也保持原样。那次运行里短信仍然会被跳过,所以请在通话时段内测试短信。
如果哪里看起来不对,请 Octo 给你看最近一次运行并解释。各个步骤及其结果,也在工作流的运行记录里。
本指南和视频里的控制台
我们做了一个小型运营控制台,用来展示从付款团队的座位上看是什么样子。它代替的是你自己的系统:Saltmarsh Funds 是虚构的,案件和人物也都是虚构的。你自己的界面可以是任何能发送 POST 并校验签名的东西。
点击这个按钮,只是把案件发到工作流的 webhook 地址。你的付款系统可以在标记出付款后自己发送同样的案件,不需要任何人点击。
案件会带着下面三种结果之一回来。这三种情况下,控制台都是先校验签名,再读取任何内容。
投资人没有提出这笔申请。 付款继续暂停,案件交给反欺诈团队。
投资人确认了。 你的系统可以放行这笔付款。
没有人接听。 转入语音信箱算作无人接听,所以钱留在原处。
发回来的是什么
结果不是通话记录。它是你命名的那几项内容,加上签名:
{
"case_id": "SF-20931",
"outcome": "held",
"request_recognized": "no",
"hold_reason": "not_recognized",
"summary": "投资人没有提出这笔申请,也没有更改银行账户。已告知反欺诈专员会在一小时内回电。",
"status": "completed"
}
先校验签名,再读取其他任何内容。然后,除了 outcome: "released",其他一律按暂停处理,包括缺少内容的情况,以及结果根本没有到达的情况。运行失败的工作流应当让钱留在原处。
这几项内容就是对话洞察,所以在通话本身上也能看到。在会话里打开这通电话,就能在完整的通话记录旁边找到对话洞察。你的反欺诈专员回电之前,读的就是它。
让人始终参与其中
有三个环节会有人参与:
- 上线之前。 没有经过某个人确认的卡片,Octo 不会建任何东西,也不会开启任何东西。
- 每一通不是明确肯定回答的电话之后。 你的系统把暂停的案件转给反欺诈团队。投资人已被告知专员会回电,所以必须有人来打这通电话。
- 放行之前(如果你希望)。 请 Octo 在通话之后加一个审批步骤。工作流会在这里等待,指定的审批人在工作流的运行页面上回答批准或拒绝。金额较大时,多花这一分钟是值得的。
你也可以通过描述变更来修改工作流。例如:“赎回被暂停时,同时给反欺诈小组发一封邮件,写明案件编号、原因和摘要。”
它做不到什么
- 它不是身份验证。 智能体只会问对方是不是案件上写的那个人,并相信对方的回答。让它成为回电的,是你打的是档案里的号码,所以不要拨打随申请一起送来的号码。
- 答复在通话之后到达,而不是通话期间。 通话结束并完成分析之前,你的系统什么都收不到。
- 通话时段仍然适用。 默认情况下,两个步骤都遵守通话时段:投资人所在国家每个时区的上午 9 点到晚上 8 点,对美国和加拿大来说,冬季相当于太平洋时间上午 9 点到下午 4 点。在这个时段以外,该步骤会被跳过而不是延后,所以案件会以
no_answer回来。 - 转入语音信箱算作无人接听, 并以
no_answer回来。智能体不应该在留言里留下案件详情。 - 这些内容是 AI 对一次对话的解读。 通常是对的,也可能出错。这就是为什么不是明确肯定回答的一律暂停,也是审批步骤存在的原因。
- 智能体的话术只是一条指令。 “绝不索要密码”是你告诉智能体、并在自己的通话中测试的内容,而不是技术上的限制。
- 对短信的回复,会交给接听该号码的那个智能体。 上线之前请确认这一点。请 Octo 把回复转给核验智能体或某个人,否则投资人的一句“真的是你们吗?”可能会落到你的通用客服智能体手里。