跳转到内容

让它等待人的决定

本课让教程里的退货台学会等待一个人的决定。新的退货一进来,就会给值班经理发一封带有“批准”(Approve)和“拒绝”(Reject)两个按钮的邮件;在对方答复之前,不会向客户承诺任何事。对方一答复,同一次工作流程运行就接着往下走:把决定、审核人的姓名和时间写在这一行上,然后通知客户。

这是第二次动手。请从已经完成的退货台开始;你在教程里构建的任何东西都不会被丢掉。

你将构建什么

一个在任何东西送到客户面前之前,先等一个人答复的退货流程。你要在自己的收件箱里,扮演审核人——Harbor Bicycle Co. 的值班经理 Jordan Vance。

  1. 一笔新的退货出现在数据表上,退款金额照旧算出来。
  2. 退货台给审核人发一封邮件,写明这笔退货的事实,并带有两个按钮:“批准”(Approve)和“拒绝”(Reject),然后暂停。等待期间,不会有任何东西发给客户。
  3. 每个按钮都会打开一个显示所选结果的页面。仅仅打开它,不会决定任何事;只有页面上的“确认”(Confirm)按钮才会做出决定。
  4. 审核人确认之后,同一次运行接着往下走:在这一行上写入 Decision、Decided by 和 Decided at,然后给客户发邮件——批准就写明退款金额,拒绝则是一段不带金额的简短致歉。

做决定时,没有人需要在单元格里输入任何内容。这里的一切都不是 Harbor Bicycle Co. 的真实系统——在把它演示给任何人看之前,请换成你自己的公司、审核人和措辞。

你需要什么

  • 你在教程里完成的退货台,在同一个测试组织上:Return Requests 和 Refund Rules 两张数据表、Calculate refund amount 工作流程(新的一行会自己得到 Refund amount),以及 Return Desk Assistant。
  • 同一个 AI 编程工具,像教程里那样,通过 MCP 以写入权限连接到该组织。
  • 两个你能读取的邮箱地址:一个扮演审核人,一个扮演客户。两个指向同一个收件箱的地址也可以,比如你邮箱账户的一个别名。只使用你自己的地址——绝不使用真实客户的地址,也不使用同事的地址。
  • 组织里一个名为 Gmail 的邮件连接,或者一个能登录来创建它的人。第 1 步会指出去哪里看。

本页会用到几个词:运行(run)是工作流程的一次执行;处于暂停(paused)状态的运行,是在它的等待步骤处停了下来,等有人答复之后,再从原处接着往下走。审核人(reviewer)是收到邮件的那个人;Decided by 记录的是他的姓名。一次性链接(one-time link)是只对一次答复有效的地址,末尾带一段随机代码;退货台只保存这段代码的指纹(fingerprint)——一种单向的“打乱”,能用来核对一段代码,却永远还原不出它。答复之后,这个链接会显示这笔退货已经做出决定。确认页面(confirm page)是邮件里的按钮所打开的页面:它显示所选的结果,只有页面上的“确认”按钮才会记录它。批准任务(approval task)是运行创建并等待的那一项,它有两个答案,“批准”和“拒绝”;答复的人并不需要看到它。决定链接(decision link)是批准任务自己为某一个答案准备的链接:一旦打开就立刻决定,所以它只放在一张私有数据表里(第 2 步会构建它),绝不放进邮件。代码步骤(code step)是你的工具写的小步骤,与之相对的是平台自带的原生步骤。

步骤

在下面的提示词里,方括号标出的是由你的工具填入的值。其中只有两处要由你来提供:你能读取的那两个邮箱地址——第 3 步里审核人的地址,第 4 步和第 5 步里客户的地址。

1. 先把退货台准备好

先做两件小事:给客户的地址留一个位置,再把邮件连接准备好。

你输入:

在 Return Requests 中添加一个 Customer email 列(纯文本)。所有行保持原样。

给客户的确认邮件会发到这一行上的地址,所以退货台需要这一列。邮件本身通过平台自己的连接发出,绝不通过工作流程里的任何东西。打开“行动模块”(Actions)>“流程运营模块”(FlowOps)>“更多”>“连接”:邮件凭证就在那里,是一个独立命名的连接,名为 Gmail。如果没有,就需要有人在每个组织里登录一次 Gmail 来创建它——请在第 3 步之前做好。使用“连接”列表里用于新建连接的按钮,并用你能读取的 Google 账号登录;退货台的邮件会从这个账号发出。

流程运营模块的“连接”列表,显示一个名为 Gmail 的连接 1“流程运营模块”(FlowOps)>“更多”>“连接”。2 唯一一个名为 Gmail 的连接。

本课是按 Gmail 连接来编写和检查的。如果你用的是别种邮件连接,请在粘贴之前,把第 3 步第 9 点里的 Gmail 一词换成它的名称,并在信任这次运行之前,先确认两封邮件都能送达。

这是教程的第一个习惯——使用平台自带的东西——一路延续下来:凭证属于平台自身的连接库,绝不属于某个工作流程。如果之后导出一个工作流程,打开导出的文件,确认里面没有任何密钥或密码。

你现在应该会看到:Return Requests 有十列,Customer email 是最后一列,每一行里都是空的;还有一个“连接”列表,里面有一个名为 Gmail 的连接。

2. 构建确认决定的页面

在能请任何人做决定之前,先决定他们在哪里答复。审核人会从一封带有两个按钮的邮件里做决定,每个按钮都会在 iMBrace 上打开一个页面,显示所选的结果,并请他们确认。这一步构建的是那个页面,以及它所核对的、存放一次性链接的私有数据表。发送邮件的工作流程由第 3 步构建。

请先读提示词下面的通俗说明,再粘贴整个提示词。它是写给你的工具的,所以你不必看懂其中的每一个技术词。

你粘贴,放在一条消息里:

分两部分,构建一个用来确认决定的地方。

第一部分:一张名为 Return Decision Links 的私有数据表,包含以下纯文本列:Fingerprint、Group、Action、Order reference、Decision link、Expires at、Used at、Used action、Created at。不要 Link-type 列。Decision link 列存放承载批准任务决定的那个链接,这个批准任务由下一步创建。只有工作流程使用这张数据表;不要把它交给任何智能体。

第二部分:一个名为 Confirm a return decision 的工作流程,以公开页面作答——不用登录,不用密钥。使用能直接回应调用方的触发器,并以原始 HTML 回复(content type 为 text/html)。页面地址带一个名为 t 的随机代码。它的工作方式如下:

  1. 从 t 中取出代码(有人访问地址时,从地址里取;按下页面自己的按钮时,从名为 t 的表单字段里取)。算出它的单向指纹。只比较指纹;绝不保存或显示代码本身。
  2. 在 Return Decision Links 里找到带有这个指纹的行。没有代码,或者没有这一行:显示一个简单页面,写着“This link is not valid.”,没有按钮。
  3. 如果有这一行,就读取与它共用同一个 Group 的每一行,并按 Order reference 读取 Return Requests 上的这笔退货。链接有三种状态:fresh(未使用、未过期)、used(Used at 已填)或 expired(已过 Expires at)。
  4. 访问只显示页面,不改变任何东西。Fresh:显示“Approve return [order reference]?”(或“Reject return [order reference]?”)、客户、商品和退款金额、一个把代码回传的 Confirm 按钮,以及这一行文字:“Nothing is decided until you press Confirm.”;Used:显示“This return has already been decided.”;Expired:显示“This link has expired.”
  5. 只有在 fresh 的链接上按下 Confirm 时:先使用 Decision link 里的链接(一次不带凭证的普通 GET;即使失败也继续往下走,这样你能读到它的状态)。如果状态是 200 到 299,就把这个 Group 的两行都标为已使用(Used at 为当前时间,Used action 为该动作),并显示“Return [order reference] approved”(或“rejected”),外加一行说明客户正在收到邮件。如果失败,什么都不改,保持链接仍可使用,并显示“Your decision was not recorded. Try the button again in a minute.”

每条路径都以一个页面结束。用一个只把值变成文本、并对插入的每个值做转义的小型代码步骤来生成页面:不发起网络调用,不持有凭证。数据表的读写、调用和响应使用原生步骤。发布之后,把页面地址告诉我。

通俗地说。 私有数据表排在最前面。每一行保存一个按钮的一次性链接——以指纹保存,绝不保存代码本身——以及那个按钮的决定链接,由第 3 步填入。Group 把一笔退货的两个按钮关联在一起。只有工作流程使用这张数据表,所以不会有任何智能体拿到它。然后是页面,逐点说明:

  1. 页面从链接里读出代码,只保留它的指纹,所以代码本身不会被存在任何地方。
  2. 对不上任何一行的链接,会得到一个显示“not valid”的简单页面,没有按钮。
  3. 一个真实的链接,会根据私有数据表判定是 fresh、used 还是 expired;页面上显示的事实,则来自这笔退货自己的那一行。
  4. 访问只显示事实和一个“确认”按钮。邮件扫描程序和预览功能会打开它们发现的每一个链接,所以打开一个链接不能决定任何事。
  5. 只有“确认”会做出决定。页面先记录答复,再让两个按钮一起失效,所以一笔退货只会被决定一次;如果记录失败,什么都不会改变,页面会如实说明。

大部分步骤都是原生的。其余是小型代码步骤,它们只对拿到的值做计算;没有一个发起网络调用或持有凭证。

你现在应该会看到:在“知识模块”(Knowledge)>“数据表”(DataIQ)里,有一张新的数据表 Return Decision Links,有九列,没有行。在“行动模块”(Actions)>“流程运营模块”(FlowOps)里,有一个已发布的工作流程 Confirm a return decision;打开这个工作流程,就能进入它的运行历史。让你的工具告诉你页面的地址,在无痕窗口里打开它:先是地址后面什么都不加,再是加上 ?t= 且后面什么都没有,再是加上 ?t=notacode。每一次你都会看到同一个简单页面,上面写着“This link is not valid.”,没有按钮。在运行历史里,每次访问都显示为一次已完成的运行,没有任何数据表被改动。

不带链接打开的确认页面:一句简单的话,没有按钮 不带链接打开的页面:一句简单的话,没有按钮。

这个简单页面是正确的第一个答案:没有链接,就没有什么可决定的,也没有按钮可按。你会在第 4 步里看到带着真实链接的页面。

如果你看到的不是这一句话,就把你看到的原样告诉你的工具,并要求它让这个工作流程以一个无需登录的网页来作答,然后在继续之前,再把地址打开一次。

页面背后的规则:邮件里的链接不是一项决定。打开链接只会显示一个页面;只有“确认”才会做出决定。随机代码从不被保存,保存的只有它的指纹,而存放指纹的数据表是私有的。人工批准说明了原因。

3. 通过邮件询问,等待答复,然后通知客户

这一步是退货台开始等待的地方。一个工作流程通过邮件询问一个人,在等待步骤处停下,只有在对方确认之后,同一次运行才会把决定写到这一行上,并通知客户。请把整个提示词放在一条消息里交给你的工具——询问的一半和收尾的一半是一体的——并且在它说这个工作流程已发布之前,不要添加任何退货。你在这里要提供的一个值,是审核人的地址。和第 2 步一样,请先读提示词下面的通俗说明:提示词是写给你的工具的。

你粘贴,放在一条消息里:

构建一个名为 Apply return decision 的工作流程:它通过邮件请一个人做决定,等待答复,然后把事情做完。它在 Return Requests 某一行的 Refund amount 被写入时启动——是针对 Refund amount 的“列已更新”(column updated)自动化,不是“行已创建”(row created)。审核人是 Jordan Vance,地址是 [你自己的地址]。按顺序做这些:

  1. 读取这一行。除非 Order reference 和 Refund amount 都已填写、且 Decision 为空,否则什么都不做。
  2. 读取 Return Decision Links 中属于这个 Order reference 的行,按 Created at 从新到旧,取一行。如果读到一行且它的 Used at 为空,或者读取失败,就说明已经在请某个人决定:到此停止。不要第二个任务,不要第二封邮件。
  3. 用平台自带的日期步骤获取当前时间(UTC)。
  4. 一个小型代码步骤把这一行变成决定卡片:标题“Return [order reference] needs a decision”、一句话的概要,以及一张包含 Customer、Order reference、Item、Condition、Price 和 Refund amount 的表格。卡片上不写截止决定的时间。
  5. 用平台自带的任务步骤创建一个批准任务:以那张卡片作为它的描述,带两个选项,Approve(绿色)和 Reject(红色)。把它分配给我的 API 密钥所代表的用户。绝不要让被分配人为空,也绝不要分配给同事。
  6. 一个小型代码步骤生成两个随机代码,Approve 一个、Reject 一个,并为每个代码算出单向指纹——与确认页面用的是同一种方法。每个一次性链接是 Confirm a return decision 页面的地址,加上 ?t= 和它的代码,有效期七天。批准任务对每个答案还有它自己的决定链接,也就是携带决定的那个链接:只在这一点里读取它们,别处一概不读,并且绝不要把它们放进邮件、页面、Return Requests 的某一行或回复里。
  7. 用原生数据表步骤向 Return Decision Links 写入两行,每个按钮一行:指纹、Group(任务的 id,两行相同)、Action、Order reference、Decision link(批准任务对应那个答案的决定链接,纯文本)、Expires at 和 Created at。Used at 和 Used action 保持为空。绝不保存代码。
  8. 一个小型代码步骤把同一张卡片渲染成带两个按钮的 HTML 邮件,Approve(绿色)和 Reject(红色),每个按钮只指向第 6 点中它自己的一次性链接,绝不指向决定链接,另加一行文字:“Each button opens a page where you confirm. Nothing is decided by opening a link.”
  9. 用平台自带的 Gmail 发送邮件步骤(Send Email)发出,通过组织的 Gmail 连接,使用该组织提供的这个步骤的最新版本。如果还没有邮件连接,就停下来告诉我:需要有人登录来创建它。发件人名称为“Harbor Bicycle Returns Desk”,其中不带逗号。主题为“Return [order reference] needs your decision”。
  10. 等待批准任务(也就是会等待答复的那个任务步骤)。第 5 到第 10 点必须一个接一个地连续运行:中间没有任何东西,并且在第 10 点之前的任何地方,都不能有会暂停或休眠的东西。

答复回来、运行接着往下走之后:

  1. 再按 Order reference 读取这笔退货。
  2. 对答复采取行动。只有当 Decision 仍然为空、并且你刚读到的这一行就是启动这次运行的那一行时,Approve 或 Reject 才算数;其他任何情况都不写入任何东西。Approve:获取时间(UTC);在这一行上写入 Decision 为“Approved”、Decided by 为“Jordan Vance (confirmed by email)”,以及 Decided at;然后才给 Customer email 里的客户地址发邮件,主题为“Your Harbor Bicycle return is approved”,纯文本,写明退款金额。Reject:同样的做法,Decision 为“Rejected”,主题为“Your Harbor Bicycle return was not approved”,内容是一段不提任何退款金额的简短致歉,并说明请联系退货台。

每一次数据表读写、任务、等待、时钟和邮件,都使用原生步骤。只有第 4、6、8 点使用小型代码步骤。

通俗地说,逐点来看。询问的一半:

  1. 除非这笔退货已经就绪,否则什么都不做:它有订单编号和退款,而且还没有人决定过它。
  2. 一次只问一个人:如果这笔退货已经在等答复,就停下,这样对这一行的第二次写入不会引发第二次询问。
  3. 读取时钟,好让链接有一个过期时间。
  4. 把审核人需要的事实放在一张卡片上。
  5. 创建运行要等待的批准任务:一个带两个答案“批准”和“拒绝”的项目,归属于你的 API 密钥所代表的用户。
  6. 生成两个一次性链接,每个按钮一个,并取出批准任务自己的决定链接。只有这一点会从批准任务里取它们;此后它们只存在于私有数据表里,只有确认页面会用到它们。
  7. 把每个按钮的指纹和它的决定链接保存在私有数据表里,确认页面会在那里找到它们。
  8. 把卡片变成带两个按钮的邮件。
  9. 通过组织的 Gmail 连接把它发给审核人。
  10. 等待。运行在这里暂停,停在原处,直到审核人答复。

收尾的一半,答复之后:

  1. 再读一遍这笔退货,这样运行就是基于这一行现在的样子在工作。
  2. 先写入 Decision、Decided by 和 Decided at,再给客户发邮件。同一行只有第一个答复才算数;其他任何情况都不写入任何东西。

第 4、6、8 点是小型代码步骤,和教程里的计算属于同一类:每一个都只对拿到的值做计算,不发起网络调用,也不持有凭证。

你现在应该会看到:在“行动模块”(Actions)>“流程运营模块”(FlowOps)里,Apply return decision 已发布,Calculate refund amount 保持不变。打开 Apply return decision,从上往下读:创建批准任务的步骤、通过 Gmail 发送邮件的步骤和等待的步骤依次排列,在等待之前没有任何会暂停的东西。要检查,可以让你的工具按顺序列出 Apply return decision 的步骤,只要名称,再拿这份清单和画布对照。也让它确认,这里做出的指纹和 Confirm a return decision 里的指纹用的是同一种方法。现在先不要添加退货;第 4 步会来做。

如果你的工具提问,就回答它。如果它构建出的东西和编号的各点不一致,就让它把这个工作流程改成与它们一致,然后再把各步骤读一遍。

读一次运行,看的是每个步骤的状态。一个步骤的内容里可能含有能做出决定的链接,所以你从来不需要打开任何一个步骤。在真实的组织里,只让负责审阅构建的人打开运行历史和 Return Decision Links 数据表,并清理旧的运行。

Apply return decision 工作流程:给审核人发邮件的步骤,然后是等待的步骤 1“流程运营模块”(FlowOps)。2 给审核人发邮件的步骤。3 等待决定的步骤。

4. 试一次批准

现在按审核人的做法来运行一遍。每一笔测试退货都要使用一个新的订单编号,一个还不在数据表上的编号:退货台是按订单编号来追踪每一笔退货的。

你输入:

在 Return Requests 中添加一行:Customer name 为 Morgan Ellery,Order reference 为 HB-3001,Item 为 helmet,Condition 为 unopened,Price 为 45,Customer email 为 [你扮演客户所用的地址]。Refund amount、Decision、Decided by 和 Decided at 留空。

你现在应该会看到,一个时刻接一个时刻地:

  1. 几秒之内,这一行上的 Refund amount 自动填好:45。Decision、Decided by 和 Decided at 仍然为空。在“行动模块”(Actions)>“流程运营模块”(FlowOps)里,Apply return decision 的运行历史多了一次新的运行,这次运行处于暂停状态。创建批准任务和发送邮件的步骤都标示为成功。等待期间,让你的工具只告诉你批准任务的状态和被分配人:它是打开的,并且已分配。

Apply return decision 的运行历史:新的一次运行处于暂停状态 1“流程运营模块”(FlowOps)。2 Apply return decision 的新运行,已暂停。

  1. 审核人的收件箱里有一封邮件,主题正是你要求的那个。邮件写明这笔退货的事实——客户、订单编号、商品、商品状况、价格和退款金额——以及两个按钮,“批准”和“拒绝”。Return Decision Links 现在有两行,每个按钮一行,Used at 为空。

审核人的邮件,带有“批准”和“拒绝”按钮 审核人的邮件:这笔退货的事实,以及“批准”和“拒绝”两个按钮。

  1. 打开“批准”。一个页面显示所选的结果:客户、商品和退款金额,以及一个“确认”按钮。什么都没有改变。你愿意的话,可以再打开一次:运行仍然处于暂停,这一行仍然没有决定。

从“批准”按钮打开的确认页面 确认页面:这笔退货的事实,和一个“确认”按钮。在按下它之前,不会决定任何事。

  1. 按下“确认”。页面显示这笔退货已批准,并说客户正在收到邮件。在“流程运营模块”(FlowOps)里,刚才暂停的那次运行就是完成的那一次,这笔退货没有任何运行还停在暂停状态。在数据表上,这一行现在显示 Decision 为 Approved,Decided by 为 Jordan Vance (confirmed by email),以及一个 Decided at 时间。客户的收件箱里有一封写明退款金额的邮件,Return Decision Links 上的两行 Used at 都已填好。

Return Requests 数据表滚动到 Decision、Decided by 和 Decided at,由这次运行写入 1“知识模块”(Knowledge)>“数据表”(DataIQ)。2 由这次运行写入的 Decision、Decided by 和 Decided at。

Apply return decision 的同一次运行,已完成,它的两个 Send Email (Gmail) 步骤都标示为成功 1“流程运营模块”(FlowOps)。2 同一次运行,已完成,它的两个“Send Email (Gmail)”步骤都标示为成功。

  1. 回到审核人的邮件,打开“拒绝”。页面显示这笔退货已经做出决定。两个按钮会一起失效,所以一笔退货只会被决定一次。

这是第五个习惯:决定是由发起询问的那次运行写在一行上的一个值——答复、审核人的姓名和时间——不是有人在聊天里打出“看起来没问题”,也不是有人编辑的一个单元格。在有人答复之前,不会有任何东西发给客户,运行只是在等待。

Decided by 显示的是你指定的审核人,后面跟着“(confirmed by email)”:这个决定是从那位审核人自己的邮件里确认的,所以请把这封邮件留在自己手里,不要转发。

如果这一步里有一项检查没有通过,就一个环节一个环节地往回查。Refund amount 填上了吗?Apply return decision 有新的运行吗,它是暂停,而不是失败吗?创建任务和发送邮件的步骤标示为成功了吗?然后看看你的垃圾邮件文件夹。把停在了哪一项检查告诉你的工具,并让它只修这一处。

5. 试一次拒绝

把第二笔退货往另一个方向答复。

你输入:

在 Return Requests 中添加一行:Customer name 为 Riley Okafor,Order reference 为 HB-3002,Item 为 bike lock,Condition 为 used,Price 为 28,Customer email 为 [同一个客户地址]。Refund amount、Decision、Decided by 和 Decided at 留空。

你现在应该会看到:

  1. 开头和之前一样:几秒之内出现一次新的暂停的运行,审核人的收件箱里有一封带两个按钮的邮件。
  2. 打开“拒绝”,然后按下“确认”。页面显示这笔退货已被拒绝。同一次运行从暂停变为完成,这一行显示 Decision 为 Rejected,Decided by 和 Decided at 都已填好。
  3. 客户的收件箱里有一封说明这笔退货未获批准的邮件:一段简短的致歉,以及一句请联系退货台的话,没有退款金额。
  4. 在同一封邮件里打开“批准”:页面显示这笔退货已经做出决定。这笔退货没有向客户发出任何批准邮件。

如何检查是否成功

不要把编程工具对自己所做操作的总结当作证据。一个听起来合理、构建成功的说法很容易编造出来,也很容易被误当真——自己去看一看。其中大部分检查,你在第 4 步和第 5 步里已经做过了。额外的几项是:按钮地址的检查、批准任务状态的读回、一次只问一个人、连接,以及助手。如果你再运行一笔退货,请使用新的订单编号。

批准

  1. 它会等待。 Apply return decision 的一次新运行在几秒之内进入暂停,它里面创建批准任务和发送邮件的步骤都标示为成功。在这一行上,Refund amount 已填好,Decision、Decided by 和 Decided at 为空。等待期间,让你的工具只告诉你批准任务的状态和被分配人:它是打开的,并且已分配。
  2. 一封邮件,没有捷径。 这笔退货恰好收到了一封邮件,带两个按钮。让你的工具把你收到的那封邮件里的两个按钮地址打印出来,每个代码都缩短显示。每一个都是确认页面的地址,后面跟着 ?t= 和一个代码,再没有别的东西。请把这些代码留在自己手里。
  3. 访问不会决定任何事。 把“批准”打开两次。你得到的是一个带一个按钮的页面,运行仍然处于暂停,Return Decision Links 上的两行 Used at 仍然为空。
  4. 确认才会决定。 按下“确认”。刚才暂停的那次运行完成了,这笔退货没有任何运行还停在暂停状态。Decision 是 Approved,Decided by 是审核人的姓名,后面跟着“(confirmed by email)”,Decided at 是一个时间,客户的地址收到了写明退款金额的邮件。Return Decision Links 上的两行 Used at 都已填好。
  5. 另一个按钮失效。 在同一封邮件里点“拒绝”,会显示这笔退货已经做出决定。
  6. 批准任务与此一致。 让你的工具只告诉你它的状态:它现在显示已答复,答复为 Approve。绝不要打印它的链接。

拒绝

  1. 同样的开头。 一次暂停的运行,和一封带两个按钮的邮件。
  2. 拒绝会做出决定。 按下“拒绝”,然后按“确认”。同一次运行从暂停变为完成。Decision 是 Rejected,Decided by 和 Decided at 都已填好,批准任务显示已答复,答复为 Reject。
  3. 没有任何金额发给客户。 客户的邮件说明这笔退货未获批准:一段简短的致歉,以及一句请联系退货台的话。检查一下里面有没有退款金额——它没有提到任何退款金额,也没有任何等于价格的数字。
  4. 没有发出任何批准。 客户没有收到这笔退货的任何批准邮件,而“批准”按钮现在显示这笔退货已经做出决定。

一次只问一个人、连接和助手

  • 再添加一笔退货,让它一直等着。这笔退货只用于这项检查,不要答复它。修改它的 Condition。不会有第二封邮件到达,第一次运行仍然处于暂停。可能会出现第二次很短的运行,并立刻完成:那是第 3 步的第 2 点把它拦住了。
  • 打开“行动模块”(Actions)>“流程运营模块”(FlowOps)>“更多”>“连接”,确认邮件凭证是一个具名连接,Gmail,而不是某个步骤里的文本。
  • 让你的工具把 Return Desk Assistant 的设置读回给你:一项技能,Log return request,没有数据表,所以链接和决定都由工作流程负责。

如果以上任何一条不成立,这比一个看起来没问题、实际上却有问题的构建更有价值。修好出问题的那一处,再检查一遍。

接下来做什么

  • 留一笔退货不答复。运行会一直保持暂停,等待期间不会有任何东西发给客户。你在第 3 步里要求生成的链接,有效期是七天。
  • 用一笔新编的退货,与 Return Desk Assistant 对话,并观察 Apply return decision 的运行历史。在你决定助手记录下来的某一笔退货之前,先把客户的地址填到它那一行的 Customer email 里。
  • 阅读人工批准,了解本课背后的方法:决定放在哪里、什么让关卡真正守住,以及如何证明它从头到尾都接上了线路。
  • 参见构建模块,了解退货台的每一个部分在屏幕上的位置:数据表、工作流程、智能体和邮件连接。
  • 关于 SDK、CLI 或 MCP 连接本身的任何内容,engineer.imbrace.co 是保持最新的信息来源——本页的内容会先过时,那个网站不会。设置你的编程工具有完整的设置说明。