DM Champ Docs

自动化

自动化功能让您可以连接多步骤工作流 — 类似于 Zapier 或 n8n,但专为您的联系人和对话而构建。

自动化功能适用于所有账户 — 它已经出现在您的侧边栏中,无需启用或申请即可使用。


自动化即工作流:一个启动它的触发器 (trigger),后跟任意数量按顺序运行(或根据条件分支)的步骤 (steps)。它是处理比“发送开场白,将回复转交给坐席”更复杂任务的工具——包括多步骤序列、数据查找、连接外部工具,以及根据联系人行为进行分支的逻辑。

查找位置: 在侧边栏的 AI Studio 分组下,点击 自动化 (Automations)。

自动化页面空状态,带有机器人图标和“创建您的第一个自动化”按钮

在您构建任何内容之前的自动化页面。

创建自动化

点击 创建您的第一个自动化 (Create your first automation)(或者在已有其他自动化后点击 新建自动化 (New automation))。您将进入一个空白画布,有两种构建方式:

  • 用通俗易懂的语言描述。 在提示框中输入您的需求(例如“如果 1 小时内没有回复,则发送跟进消息”、“标记询问价格的联系人”或“为我的 AI 智能体提供查询订单状态的方法”),它就会为您构建触发器和步骤(包括您的智能体可以调用的 AI 智能体功能工具)。之后,您可以继续通过对话来优化结果。不知道该要求什么?框下方有一行示例建议。点击其中一个将其放入框中并进行编辑,或者点击更多建议来循环查看其余内容。在您输入时,框中还会显示补全句子的建议,以灰色显示在光标前方:按 Tab 键采纳建议,或直接继续输入以忽略它。

  • 手动构建。 从左侧面板将组件拖动到画布上并将它们连接起来。步骤上的 + 号双向可用:抓取并拖动它——一条线会跟随您的指针,无论您在哪里松开,都会在那里创建并连接好下一个步骤——或者直接点击它打开一个小选择器,并在那里插入步骤。您可以以同样的方式从输出点拖出,选择器中的项目本身也可以拖动到画布上。在选择器的搜索框中输入内容可以同时搜索所有内容——内置操作、已连接的应用和逻辑步骤——因此您不必知道某个功能位于哪个选项卡下。左侧面板顶部也有相同的搜索框:输入“loop”、“webhook”或应用名称,它会立即过滤所有部分——触发器、操作、应用和逻辑。

  • 询问 Champ。 在任何页面,告诉应用内助手您想要什么(“当有人预订时,给他们打上标签并在前一天发送提醒”,“在我接管聊天两小时后重新开启 AI”),他就会为您构建它。请参阅下方的让 Champ 构建或修复自动化。

您可以混合使用这三种方式:从提示词或 Champ 开始,然后在画布上调整结果,反之亦然。

使用提示栏构建

提示栏会一直停留在画布底部,因此您可以在构建的同时随时要求进行更改。

  • 您可以随时停止。 在构建过程中,发送按钮会变为 停止 按钮。点击它即可结束构建,画布将保持在您请求之前的状态。
  • 它会记住对话。 同一会话中您最近的几条指令会被记录下来,因此像“删除那一步”或“将延迟改为两天”这样的简短后续指令,无需您重新描述整个自动化流程即可被理解。
  • 更改需经您确认。 当您要求 AI 修改已有步骤的自动化流程时,它不会直接替换您的画布。建议版本会显示在画布上,其中新增步骤以绿色勾勒,更改步骤以琥珀色勾勒,底部的栏会列出添加、更改和删除的内容、连接的变动数量,以及它所选定的新名称(如果有)。点击 接受 以保留更改,或点击 拒绝 以将一切恢复原状(使用 Cmd+Z 或 Ctrl+Z 也可以拒绝)。在您做出选择之前,该自动化流程无法保存或开启。从空白画布开始构建时,更改会立即应用,因为此时没有内容会丢失。
  • AI 的说明会保留直到您关闭它。 当 AI 对其构建的内容进行解释(例如它遗漏的步骤或需要回答的问题)时,该说明会保留在屏幕上,直到您将其关闭。它也会显示在更改旁边的审查栏中,之后提示栏上方的 显示 AI 说明 按钮可以再次打开它,直到您发出下一个请求。
  • 一次撤销即可回退整个更改。 AI 添加或重新排列的所有内容算作一次更改,因此在您接受后,点击工具栏中的 撤销 一次,即可将画布恢复到之前的状态。
  • 它只添加您要求的内容。 除非您明确要求,否则它不会擅自添加更改账户积分、封禁账户、删除内容或向用户发送消息的步骤,因此关于标记联系人的提示只会返回标记联系人的操作,不会包含其他内容。
  • 它使用您的语言编写。 它在画布上放置的步骤标签,以及自动化的名称、描述和备注,都会以您应用程序设置的语言返回,即您在 设置 → 个人资料 → 语言 下选择的语言。将应用程序设置为法语,AI 编写的内容就是法语,无需您额外要求。您现有的自动化流程将保持原样,因此更改语言不会重写它们:您可以要求提示栏重命名步骤,或者自行重命名。
  • 它会命名并描述其构建的内容。 新的自动化流程会自带已填写的名称和简短描述,因此您无需打开即可在 自动化 列表中了解每个流程的功能。当您稍后要求更改时,它不会改动您现有的名称和描述,除非您要求它重命名或重新描述该自动化,或者更改导致原名称和描述不再准确。您自己输入的内容只有在您要求时才会被替换。

让 Champ 构建或修复自动化

Champ 是每个页面角落的助手,他可以为您构建自动化流程,并修改您已有的流程。描述您希望发生的事情以及时间,他会在您的账户中查找所需的组件(您的坐席、标签、列表和事件类型),将触发器和步骤组合在一起并保存。

  • 他保存的内容始终是草稿,且处于关闭状态。 不会因为聊天而运行任何内容。在他构建或更改自动化流程后,他会用通俗易懂的语言告诉您它将执行什么操作、发送什么内容以及发送给谁,并提议在画布上打开它或将其开启。
  • 开启它需要单独确认。 他只会在您在后续消息中明确告知时才开启自动化流程,且是在您查看过其功能之后。同意构建它并不等同于同意开启它。要求他关闭自动化流程总是有效的。
  • 他只添加您要求的内容,这与提示词栏遵循的规则相同:不会添加发送、删除、暂停或更改额度的额外步骤,也不会猜测 ID。当某些内容含糊不清时(哪个坐席、哪个标签、多久之前),他会先询问。
  • 修复自动化。 粘贴运行错误或告诉他哪个步骤有误(“提醒步骤没有消息文本”),他会更改该步骤并保留其余部分。如果自动化流程已开启,修复将立即生效;他会告知您这一点。
  • 保留在画布上的内容。 删除自动化流程、手动运行流程以及任何需要在编辑器中连接应用(电子表格、您的邮件服务器)的操作都在此处完成,而不是在聊天中。

他构建的所有内容都会像其他自动化流程一样在此编辑器中打开,因此您可以阅读、微调并自行开启它。

保存您的更改

画布上的任何内容都不会自动保存。您所做的每一项更改——添加步骤、编辑字段、移动节点、更改自动化设置——都会作为草稿保留在您的浏览器中,直到您点击右上角的 保存(或按 Cmd+S / Ctrl+S)。当有未保存的内容时,按钮旁边的状态会显示为 未保存的草稿;放弃 将丢弃草稿并将自动化恢复到上次保存的状态。

正在运行的自动化在您工作时会保持其上次保存的版本,因此您可以重构它的一半,而不会导致任何未完成的操作真正触发。开启 已启用 开关会先进行保存,因为您开启的内容就是画布上的内容。如果您在有未保存更改的情况下关闭标签页或前往其他页面,系统会询问您是否要保存、不保存直接离开或留在当前页面。

自动化编辑器标题栏,包含自动化名称、齿轮图标、已暂停徽章和启用开关,旁边有一个显示“未保存草稿”的琥珀色圆点,以及“放弃”按钮和绿色的“保存”按钮;右侧打开了自动化设置面板,其中“遵守静默时间”已开启

进行更改后,标题栏会显示未保存草稿。保存将保留更改,放弃会将自动化恢复到上次保存的状态。

触发器

每个自动化流程都始于且仅始于一个触发器——即启动该流程的事件。目前触发器种类繁多,因此触发器选择器会根据其用途将它们分类。

消息传递

触发器 触发条件
收到消息 联系人发送消息时触发,适用于任何渠道或您指定的渠道 — 可选限制为包含特定词汇的消息,以及仅限某个 AI 智能体(或某个经典营销活动)的对话。请参阅 仅为单个智能体运行自动化
消息已送达 您发送的消息被渠道确认送达时触发。可限制为特定渠道以及某个 AI 智能体的联系人
消息发送失败 您发送的消息无法送达时触发。运行流程会获取渠道返回的失败原因,以便您通知相关人员、尝试其他渠道或为联系人添加标签。发送至非 WhatsApp 用户的 WhatsApp Web 消息也会触发此项:其原因为 “This number is not on WhatsApp”,错误代码为 not_on_whatsapp,可通过“条件”步骤进行检查。可限制为特定渠道以及某个 AI 智能体的联系人
未接来电 有人拨打您的 WhatsApp Web 号码或已连接的 Twilio SMS 号码,而您未接听时触发(无论是对方响铃后挂断还是无人接听)。可选限制为拨打特定号码的来电。运行流程会识别来电者、拨打的号码、所属渠道以及是否为视频通话,因此可以在几秒钟内通过 WhatsApp 或短信回复对方。请参阅 示例:将未接的 WhatsApp 来电转为聊天
已发送跟进 您的智能体向联系人发送了自动跟进消息时触发。运行流程会获取跟进类型(快速、热循环或冷循环)、消息文本和渠道,以便您将其记录在 CRM 中或通知相关人员
已跳过跟进 由于智能体的发送检查未通过,跟进消息被搁置时触发。运行流程会获取检查结果。请参阅 仅在检查通过时发送跟进
跟进已耗尽 联系人已收到序列中的所有跟进消息但未回复时触发。这是将其转交给人工处理或推进交易的时机
消息已发送 消息离开您的账户时触发。它会为每一条外发消息触发,无论发送方是谁,因此请使用 发送方 来将其限制为 AI 智能体、人工、自动化、广播、API 或自动跟进。也可以限制为特定渠道
对话已关闭 聊天会话关闭时触发。运行流程会获取对话开始时间、关闭时间以及包含的消息数量,以便您进行记录、评分或报告。可限制为特定渠道以及某个 AI 智能体的对话
广播已完成 广播发送完毕时触发。无需填写设置:运行流程会获取已发送消息数、失败消息数以及总数

联系人

触发器 触发条件…
新联系人 联系人被添加到您的账户中 — 来源包括对话、导入、表单、API 或任何其他渠道
联系人已更新 联系人的详细信息发生变化 — 涵盖任何字段,或您选择的特定字段。对于 标签,变为 选项可让您选择一个或多个您自己的标签,因此它仅在联系人获得其中一个标签时触发;对于 分配给,它可让您选择一个或多个团队成员,因此它仅在联系人被分配给其中一人时触发
联系人已添加 您亲自将联系人添加到其中 — 可以通过“联系人”批量添加、单个添加、从对话中添加,或从自动化流程本身添加。每个联系人运行一次。请参阅 将联系人添加到自动化流程
标签已应用 标签被添加到联系人身上。您可以将其限定为一个标签(从您的标签中选择,或选择 改为输入名称 以使用您的 AI 代理稍后创建的标签)、一个渠道,以及应用该标签的对象:您的 AI 代理、人员、自动化流程、API 或导入操作
标签已移除 标签从联系人身上移除。您可以将其限定为一个标签(从您的标签中选择或手动输入)以及一个渠道

交易

触发器 触发条件…
交易已更新 当交易的详细信息发生变化时触发 — 可以是任何字段,也可以是您指定的特定字段(例如阶段)。对于 分配给,变为 选项允许您选择一个或多个团队成员
交易已创建 当新交易被添加到您的某个流水线时触发。可以限定为特定流水线和特定阶段
交易阶段已更改 当交易移动到不同阶段时触发,无论移动方式如何:在看板上拖动、通过自动化移动、通过标签规则移动,或由阶段本身的空闲规则移动。运行记录会注明交易离开的阶段和进入的阶段。可以限定为特定流水线,以及交易移出阶段、移入阶段或两者兼有

预约

触发器 触发条件…
预约已预订 新预约已预订
预约已取消 已预订的预约被取消——取消原因会随之提供
预约前 在每次确认的预约前设定的时间,用于发送提醒。选择您想要的时间点——提前 24 小时、3 小时或您自定义的分钟数——每个自动化最多五个。提醒会在该精确时刻触发,无论当地时间如何。如果偏移时间可能导致某些联系人在深夜收到消息,请在自动化设置中开启 尊重免打扰时间,消息将推迟到对方时间的上午 8 点发送——请参阅 尊重免打扰时间 和 示例:预约提醒
预约已改期 已预订的预约移动到不同时间。运行实例会获取之前的开始和结束时间以及新的时间,以便消息能准确告知联系人变动内容。可限定为单个预约类型

任务

触发器 触发条件…
任务已创建 当任务被创建时触发 — 可选仅针对特定类型的任务,例如人工提醒、知识库缺口、跟进任务或您自定义的任务类型
任务已完成 当任务被移动到已完成阶段时触发

账户

触发器 触发条件
余额不足 您的账户余额低于设定的提醒阈值。每天最多触发一次,充值后重新激活
渠道已连接 其中一个渠道完成连接,例如 WhatsApp 号码配对或 Instagram 账户关联。可限制为单个渠道
渠道已断开 其中一个渠道掉线:已登出、已取消关联或被服务提供商切断。这是在消息开始发送失败前提醒自己的最佳时机。对于 WhatsApp Web 号码,登出或取消关联会立即触发;自动重连的短暂掉线不计入,仅在号码 30 分钟后仍处于断开状态时触发。trigger.reason 会说明具体原因:logged_out、blocked_by_whatsapp 或 not_reconnected。可限制为单个渠道

应用

触发器 触发条件…
应用事件 您连接的应用中发生了某些操作:HubSpot 中的交易阶段发生变化、Stripe 收到付款、Typeform 中提交了表单、或者 Google 表格中添加了新行。选择应用,然后选择事件。应用发送的关于该事件的所有信息都可供后续步骤使用。请参阅 应用事件

代理机构

触发器 触发条件
已创建子账户 在您的代理机构下创建了客户账户 — 通过您的“子账户”页面、API 或您自己的注册页面。这三种方式的来源会随运行流程一同传递,作为 created_via
子账户活动 您的某个客户账户发生了变动。选择您关注的事件:额度不足、额度用尽、渠道已连接、渠道已断开、已封禁、已解封、计划已更改、计划已取消、订阅已开始、取消后重新订阅或已删除。保留为“任何事件”,自动化流程将针对所有这些事件运行

这两者都存在于您的代理机构账户中,而不是客户账户内 — 构建一次即可覆盖您拥有的所有客户,包括您以后添加的客户。客户账户的详细信息会像任何其他触发器数据一样随运行一起提供:${trigger.sub_account.id}、${trigger.sub_account.email}、${trigger.sub_account.business_name}、${trigger.sub_account.credits}、${trigger.sub_account.created_via} 以及账户的其他字段 — 请使用 + 按钮插入它们,而不是手动输入。子账户活动还会为您提供事件本身 (${trigger.event}) 以及该事件携带的任何信息,例如触发该事件的额度余额。将它们与下方的更新子账户操作配对:自动化处理客户账户的操作 中提供了相关方案。

哪个计划事件? 总共有四个,设置细分事件是为了确保运行流程仅在有必要时启动。“订阅已开始”在客户从无计划变为有计划时触发:首次订阅、试用开始或客户取消后回归。“取消后重新订阅”仅针对后者触发,即计划已取消的客户再次订阅,它会与“订阅已开始”同时触发,因此请为自动化选择其中之一,不要同时选择。 “计划已取消”仅在客户取消计划或试用期结束且未开始订阅时触发。这三个事件都不会对续订、计划切换、试用转付费或支付失败后的恢复做出反应。“计划已更改”是涵盖范围最广的事件:它在计划或其状态发生任何变动时触发,包括每一次开始、每一次取消和每一次切换。因此,如果针对“计划已更改”设置两个用途相反的自动化(一个用于离开,一个用于回归),它们会在同一次取消操作中同时运行。请将它们分别设置在各自的细分事件上,这样它们就不会冲突,您也不必为“条件”步骤过滤掉的运行流程付费。所有四个事件都携带计划名称和订阅状态,以及变更前的信息:${trigger.previous_plan_name} 和 ${trigger.previous_subscription_status}(如果客户之前没有计划,则为空)。保留为“任何事件”的触发器会通过“计划已更改”对计划变动做出一次反应;而三个细分事件仅启动通过名称选择它们的自动化,因此不会重复运行。

余额不足:选择您自己的额度。 选择 余额不足 作为事件,会出现一个 低额度阈值 字段。将其留空,则当客户的余额降至其自动充值阈值以下,或在没有设置自动充值时降至 10 以下时,该事件即会触发。输入一个数字,则当客户的余额降至该数字或以下(从高处降下)时,此自动化流程即会触发。每个自动化流程都保持其各自的数字,因此您可以设置一个在 500 时提醒,另一个在 50 时提醒。运行结果包含余额下降前的值 (${trigger.previous_credits})、越过的额度线 (${trigger.threshold}) 以及客户是否开启了自动充值 (${trigger.auto_top_up_enabled},无论是由您支付充值费用还是客户使用自己的银行卡,该值均为 true)。余额耗尽 同样包含 ${trigger.auto_top_up_enabled}。在 条件 步骤中,余额前 和 自动充值开启 预设可针对这些值进行过滤,例如仅提醒那些账户不会自动充值的客户。

常规

触发器 触发条件
按计划 您设置的循环时间(例如,每天上午 9 点)
Webhook 外部工具或网站向自动化为您提供的网址发送数据。它可以发送 JSON 或传统的表单 POST 请求(许多支付提供商和表单工具使用的格式)——无论哪种方式,它发送的每个字段都可供后续步骤作为 ${trigger.field_name} 使用。添加到网址末尾的任何内容也会成为一个字段:…?phone=15551234567 会为您提供 ${trigger.phone}。对于无法更改发布格式但可以将答案插入地址的表单构建器(例如 Paperform 的答案管道:…?phone={{ your_phone_question_key }}),这是进入的方式
AI 智能体功能 您的 AI 智能体在对话过程中,作为其能力之一自行调用自动化——请参阅下一节
新订阅源项目 您指定的 RSS 或 Atom 订阅源中出现新项目时——每隔几分钟检查一次。开启自动化不会触发订阅源中已有的项目,仅触发此后出现的新项目
收到电子邮件 您的邮箱收到电子邮件。连接一次邮箱(您提供商的 IMAP 详细信息——服务器地址、用户名、密码;如果您使用两步验证,请使用应用专用密码)。您可以将其缩小到发件人或主题包含特定词语的电子邮件
手动运行 仅当您亲自点击“运行”时——在构建和测试时非常有用

触发器会对您的整个账户做出反应,而不仅仅是针对构建器。 无论是 AI 代理在对话中更新联系人、广播、某人在屏幕上编辑记录、导入数据,还是您自己的软件调用 API,只要发生更改,“收到消息”、“联系人已更新”和“交易已更新”都会触发。您无需在自动化中执行任何操作——这就是它们现在的工作方式。

选错了,或者后来改变主意了?打开触发器并点击 更改触发器 (Change trigger) 以切换到其他类型——自动化其余部分将保持不变。如果当前触发器已填入设置,在清除前系统会要求您确认。

应用事件

应用事件触发器通过您使用的其他应用中发生的事件来启动自动化。目前有 41 种应用可供选择,其中包括 HubSpot、Pipedrive、Salesforce、Close、Stripe、Shopify、Calendly、Typeform、Google Sheets、Google Drive、Google Calendar、Gmail、Outlook、Slack、Discord、Trello、ClickUp、Asana、Monday、Jira、Linear、Notion、Airtable、Zendesk、Zoom、Mailchimp、MailerLite、Kit、DocuSign 和 GitHub。选择器仅列出可以报告事件的应用。

设置方法

  1. 打开触发器,在应用下选择应用事件。(已有其他触发器?请先点击更改触发器。)
  2. 在应用下,选择相应的应用。在事件下,选择为了运行一次自动化而必须在应用中发生的事件。
  3. 如果尚未连接该应用,请直接在此处连接,方式与连接动作步骤的应用相同。在账户下,自动化会显示它正在监听哪个已连接的账户。
  4. 如果事件有事件设置,请填写相关内容。这些是应用需要了解的用于发送哪些事件的详细信息,必填项已标出。某些事件需要来自应用开发者设置的详细信息。如果是这种情况,事件下方的如何在应用中进行此设置会说明在哪里可以找到这些信息。
  5. 保存自动化并将其开启。

它在监听吗? 在设置下方,触发器会告诉您它所处的状态。正在监听意味着来自应用的时间会启动自动化。随自动化一起暂停意味着自动化已关闭:将其重新开启即可恢复监听。未在监听会显示应用给出的原因,例如已移除连接的账户。暂停自动化会停止事件。删除自动化,或将触发器切换到其他应用或事件,会移除旧的监听器。断开应用账户的连接会停止所有监听该账户的自动化,并且它们的触发器会显示原因。

有些应用报告事件会有几分钟的延迟。 并非每个应用都会在事件发生的瞬间推送事件。对于这些应用,系统会每隔几分钟检查一次事件(即事件设置中的间隔,以分钟为单位),因此运行可能会在事件发生后稍有延迟。当您选择的事件以这种方式工作时,触发器会显示一条注释。

使用应用发送的数据。 应用发送的关于事件的每个字段都可作为 ${trigger.field_name} 供后续步骤使用。此外,${trigger.app_event.toolkit} 是应用,${trigger.app_event.event} 是事件,${trigger.app_event.id} 是此交付的 ID,${trigger.app_event.received_at} 是它到达的时间。整个交付内容(未作修改)位于 ${trigger.raw} 下。+ 选择器中的示例最初显示的是事件通常包含的内容。一旦收到真实的事件,点击使用上一个真实事件作为示例,选择器就会显示您的应用发送的确切字段。

费用说明。 每次运行的费用与由任何其他触发器启动的运行费用相同(请参阅 自动化费用说明)。运行历史记录会将这些运行标记为应用事件。

示例:HubSpot 交易阶段发生变化。 假设您希望在 HubSpot 中的交易进入新阶段时发送一条 WhatsApp 消息。

  1. 选择应用事件,然后选择 HubSpot 作为应用,选择 Deal stage updated(交易阶段已更新)作为事件,并连接您的 HubSpot 账户。
  2. HubSpot 的两个事件(Contact created 和 Deal stage updated)需要在事件设置下提供 HubSpot 应用 ID 和开发者 API 密钥。两者均来自您在 developers.hubspot.com 上的 HubSpot 开发者账户。
  3. 在新阶段添加一个条件步骤,以便只有您关心的阶段(例如“已成交”)才会继续,并在其后添加一个发送消息步骤给联系人。
  4. 保存,开启自动化,并在 HubSpot 中移动一个测试交易。然后点击使用上一个真实事件作为示例,这样真实 HubSpot 事件的阶段和联系人字段就会出现在 + 选择器中。

自动化设置

有些选择属于整个自动化流程,而不是某个特定步骤。它们位于编辑器右上角的齿轮图标后的“自动化设置”中,并且像其他内容一样是草稿的一部分 — 点击“保存”即可生效。共有五个选项:

  • 描述:关于此自动化功能的备注,显示在列表中的名称下方。
  • 允许重新进入 — 联系人是否可以多次通过此自动化流程。
  • 响应时停止 — 在联系人给您发送消息时立即结束其运行流程。
  • 尊重免打扰时间 — 暂缓在联系人当地时间的夜间发送的消息。
  • 仅在这些时间段内运行 — 在您设置的时间窗口之外忽略触发器。
点击齿轮图标后的自动化编辑器,右侧打开了自动化设置面板,工具提示显示“整个自动化的设置”;面板显示一个描述框,随后是已开启的“允许重新进入”和“响应时停止”,以及已关闭的“遵守静默时间”和“仅在这些时间内运行”,每项都有相应的解释说明

点击齿轮图标(整个自动化的设置)以打开自动化设置:包含描述以及允许重新进入、响应时停止、遵守静默时间和仅在这些时间内运行选项。

说明自动化的功能

像“未接来电自动回复”这样的名称足以说明问题;但一个月后的“跟进 3”则不然。“自动化设置”顶部的“描述”框是自由文本区域,正是为此而设:写一两行关于该自动化功能、适用对象或构建目的的内容。

您填写的内容会显示在“自动化”列表的名称下方,这样您无需打开即可在页面上查看每个流程的用途。该页面的搜索框会同时搜索描述和名称,因此在描述中输入“餐厅”或“提醒”即可轻松找到该自动化。这是可选的,不会改变自动化的运行方式,留空则列表保持原样。

允许联系人多次通过自动化

允许重新进入 决定了当触发器再次为已经通过该自动化的联系人触发时会发生什么。

  • 关闭: 每个联系人只能通过该自动化一次。当触发器再次为他们触发时——他们发送了另一条消息、预订了另一个预约、再次获得了相同的标签——自动化不会启动。对于他们来说,运行历史记录保持静默,就像不符合触发器过滤器的消息一样。任何曾经运行过此自动化的人都被视为已经通过了它,无论该运行是完成、失败还是被停止。
  • 开启: 联系人每次触发触发器时都可以再次进入。这是适用于任何重复性任务的设置——预约提醒、预订确认、每次都应获得相同回复的关键字。

默认值取决于触发器。 对于 已添加联系人(您从“联系人”页面添加的人员),该选项为关闭,因此两次添加同一个列表永远不会向任何人发送重复消息。对于所有其他触发器,该选项为开启,这也是自动化一直以来的行为方式——在此设置存在之前您构建的任何内容都不会自动更改。

有两点需要注意。重新进入是针对联系人的,因此不携带联系人的触发器——按计划、收到 Webhook、RSS、收到电子邮件——不受此设置影响。此外,三个预约触发器(预约已预订、预约已取消、预约前)无论开关状态如何,始终允许重新进入:它们每次预订触发一次,提醒触发器在每个提醒时间触发一次,因此针对每个联系人的“一次”限制会跳过回头客的下一次预订,甚至跳过同一预订的第二次提醒。对于这些触发器,该开关处于灰色禁用状态。

在联系人回复时停止

响应时停止适用于后续序列:当联系人在任何渠道向您发送消息时,正在等待延迟或执行步骤的运行将立即结束。他们的运行在运行历史记录中显示为已取消;其他人的运行不受影响,自动化对所有人保持开启状态。当“响应时停止”结束运行后,其详情页面会显示联系人已回复,而您手动取消的运行则会显示为手动取消。

默认情况下它是关闭的。当它开启且自动化本身的触发器为收到消息时,如果触发器匹配且允许重新进入,那么停止一次运行的回复可以启动一个新的运行——这与大多数 CRM 中后续序列重新启动的方式相同。如果您希望每个联系人只接收一次该序列,请同时关闭重新进入功能。

遵守免打扰时段

自动化流程会在触发器触发的那一刻运行,但那个时刻并不总是合适的 — 如果将预约提醒设置为提前 12 小时发送,对于有清晨预约的联系人来说,消息会在凌晨 2 点送达;而当您不在工作时,身处世界另一端的联系人可能正在休息。

尊重静默时间是一个针对每个自动化设置的开关,其作用正如其名。查找位置: 点击编辑器右上角的齿轮图标打开自动化设置——无论自动化使用何种触发器,该选项都在那里。

默认情况下它是关闭的, 无论是新建还是现有的自动化流程均如此,因此您已经构建的流程不会自动改变行为。

当您开启该功能后,仅针对该自动化流程:

  • 在联系人当地时间晚上 8 点到早上 8 点之间发送的消息步骤会进入等待状态,并会在他们当地时间早上 8 点左右发送——系统会加入一个简短的随机延迟,将发送时间分散在 8:00 到 8:15 之间,而不是同时触发。这适用于“发送消息”、“WhatsApp 模板”和“WhatsApp Web 发送”步骤。
  • 其他所有步骤仍会立即运行。 标签、条件、延迟、Webhook、更新联系人、创建任务——这些都不会被延迟。只有消息本身会等待。
  • 循环(Loop)内的消息步骤是一个例外——即使开启了该功能,它们也会立即发送:如果将每个联系人的消息单独搁置,会导致一个循环被拉长到整个静默时段。如果消息需要等到早上发送,请将其放在循环之后,或者在触发器上使用仅在这些时间段内运行,以便整个循环在合适的时间运行。
  • 触发器本身的时间安排不会改变。 “预约前 3 小时”的提醒仍然会在三小时前运行;如果触发时间是在凌晨 3 点,运行会照常进行,而消息会等待到早上。
  • 当地时间是指联系人的时间,而不是你的时间。 它是根据联系人电话号码的国家代码或联系人保存的时区计算出来的——这与账户范围内的“静默时间”设置方式相同。

这与“设置”→“个人资料”中全账户范围的静默时间设置不同,后者涵盖了后续跟进和 AI 定时发送。该设置不会影响您的自动化流程,这就是为什么每个自动化流程都带有自己的开关。有关账户级设置,请参阅 静默时间与合规性。

正在构建固定时间的提醒吗? 如果消息本身只会在工作时间内发送,请保持开关关闭 — 虽然开启它不会产生额外成本,但没有理由添加一个永远不会被用到的等待机制。

仅在特定时间段运行

静默时间会暂缓 消息 的发送;但自动化流程中的其他步骤仍会照常运行。有时这并非您想要的结果——有时您希望整个自动化流程在特定时间窗口外完全停止。假设自动化流程负责将聊天转接给您的团队,而您的团队仅在 9 点到 18 点工作:在凌晨 2 点,您不希望转接被延迟到早上,而是希望它根本不要发生。

仅在这些时间段内运行是第二个针对每个自动化设置的开关,其作用正如其名。查找位置: 打开自动化设置(编辑器右上角的齿轮图标)——无论自动化使用何种触发器,它都位于尊重静默时间的正下方。开启它并设置开始时间、结束时间和时区。

  • 在时间窗口内,自动化流程的行为与之前完全一致。
  • 在时间窗口外,触发器将被直接忽略。 自动化流程不会运行,没有任何内容会被排队等待稍后处理,运行历史记录中也不会显示任何内容——该事件的处理方式与不匹配触发器文本过滤器的消息相同。如果过夜事件仍需 最终 被处理,则此开关不是合适的工具;请保持关闭并改用 遵守静默时间。
  • 结束时间早于开始时间表示跨夜窗口。 例如 21:00 到 08:00 表示在夜间运行,并在白天保持关闭。
  • 该窗口使用您在自动化流程中设置的唯一时区,而不是每个联系人的本地时间。静默时间是针对每个联系人的;而此设置是整个自动化流程的统一时钟。请按照 按计划 触发器要求的格式输入时区,例如 Europe/London 或 America/Lima。
  • 按计划触发器会在触发时刻进行检查。 如果计划运行的时刻落在窗口之外,该次运行将被跳过,而不是移动。

一句话概括区别:遵守静默时间 会运行自动化流程并仅将消息暂缓至早上;仅在这些时间段内运行 则完全不会运行该自动化流程。

如果您真正想要的是一个根据时间表现不同的自动化流程——白天执行一种操作,晚上执行另一种——请不要跳过运行:使用设置为一天中的时间 (Time of day) 的 条件 (Condition) 步骤来分支处理(请参阅 步骤)。

仅为单个代理运行自动化

大多数账户运行不止一个 AI 代理,如果某个自动化仅适用于其中一个(例如支持代理,而非销售代理),则需要一种方式来指定。四个触发器为此提供了专门的字段:

触发器 字段
收到消息 代理(可选)
对话已关闭 代理(可选)
消息已送达 代理(可选)
消息发送失败 代理(可选)

打开触发器,点击该字段,您将看到一个分组列表:按名称排列的 AI 代理,以及(如果您的账户仍有)下方的经典 营销活动。选择一个,自动化流程将仅针对该代理负责的联系人运行;账户中的其他所有对话都将被忽略。保留为默认的“任何代理”,自动化流程将针对账户中的每一位联系人运行,包括未分配给任何代理的联系人。

它会读取联系人当前分配的代理,因此今天将联系人移动到另一个代理名下,会改变从那时起适用于他们的自动化流程。

该字段为单选,而非多选——一个自动化流程只能限定于单个代理或单个营销活动,因此如果您希望在另一个代理上执行相同的步骤,请创建第二个自动化流程。

其他所有触发器均针对整个账户运行。 联系人、交易、预约、任务、账户或常规触发器上没有代理字段:它们会针对账户中的所有内容触发。若要将其中一个触发器缩小到单个代理,请在触发器后的第一步添加一个条件步骤,检查联系人的分配代理,然后将剩余步骤放在真路径上。请参阅 步骤。

并非所有代理目前都支持此限定功能。 任何该字段无法提供的代理都会列在下方,因此您可以一眼看出列表不全,而不必疑惑为何某个代理缺失。这些对话仍然可以正常工作;只是目前无法在此处被单独选中。

关于使用 AI 代理的账户,还有一点值得注意:以这种方式缩窄范围的消息触发自动化,不仅会在联系人发送的每一条后续消息上触发,也会在全新联系人的第一条消息上触发。过去,它从联系人的第二条消息开始生效,因此每段新对话的开场白都会被漏掉。(这指的是以收到消息为触发条件的自动化——它与上述“联系人已添加”触发器不同,后者对您输入的每个联系人仅运行一次。)

让您的 AI 代理调用自动化

AI 智能体函数 (AI Agent Function) 触发器可以将自动化流程转化为您的 AI 智能体在与客户交谈时可以使用的一项能力——就像它已经在使用自定义函数一样。当客户提出问题时,智能体判断您的自动化流程是合适的工具,便会使用从对话中收集到的详细信息来调用它,并(如果您需要)获取回复内容,以便在下一次回复中使用。

设置方法:

  1. 命名函数。 使用字母、数字和下划线组成的简短名称——例如 check_availability、register_warranty。AI 会看到此名称,因此请确保其含义清晰。
  2. 描述使用时机。 描述是代理决定是否调用该函数的方式——请像给新团队成员下达指令那样编写:“当客户询问我们在某一天是否有空闲预约时,请使用此功能。”
  3. 添加要收集的详细信息。 每个参数都是 AI 在调用前需要从对话中收集的一条信息——例如城市、订单号、首选日期。为每个参数提供名称、类型和简短描述;标记必填项。类型可以是文本、数字、是/否或 JSON——当 AI 需要提交结构化的字段包(例如完整的送货地址)而不是单个值时,请选择 JSON。
  4. 选择可以使用它的代理。 选择应具备此能力的 AI 代理——可以在此触发器上选择,也可以稍后在任何代理的 AI 能力选项卡中选择,该函数会与代理的其他能力一起显示,并带有常规的开/关切换开关。这两个地方编辑的是同一个设置,因此您可以在当前所在的页面进行操作。
  5. 开启自动化。 从那一刻起,这些代理就拥有了该功能——无需在任何地方进行复制,也无需到处粘贴 Webhook 地址或密钥。

不想自己编写名称、描述和详细信息?请先构建自动化流程的步骤,然后点击触发器设置顶部的 AI 自动填充 (Fill in with AI)——它会读取您的自动化流程内容并为您自动填写。您已经输入的内容将保持不变;它只会填充您留空的部分。检查结果,根据需要进行调整,然后保存。

在自动化流程内部,AI 发送的所有内容都可以通过常规的数据按钮获取:每个参数都在 trigger.args 下,此外还有对话所属的联系人和渠道信息。

回复代理。 添加一个 Return response(返回响应)步骤,它返回的任何内容都将成为 AI 读取的答案——这样它就可以在同一个对话轮次中引用真实数据:在您自己的数据库中查找库存、查看日历或计算报价。如果没有 Return response 步骤,代理会等待自动化完成(最长 25 秒),并被告知结果:成功完成或失败。这适用于“在我的系统中登记此投诉”这类不需要返回数据的任务。如果自动化在 25 秒后仍在运行,或者正在等待较长的 Delay(延迟)步骤,代理会被告知它正在后台运行并继续执行。需要记住的一点是:代理最多等待 25 秒以获取回复,因此请勿在触发器和 Return response 步骤之间的路径中放置 Delay 步骤。如果运行在到达 Return response 步骤之前失败(步骤出错,或余额不足以支付运行费用),代理会被告知调用失败,提醒人工处理并告知客户出现了技术问题。它绝不会承诺无法实现的答案。当 Return response 步骤本身发送错误状态(400 或更高)时也会发生同样的情况,因此当您希望代理传达“未找到”这一答案时,请发送状态码 200 并附带清晰的消息正文。

当自动化流程处于关闭状态时,智能体无法调用它——该函数会从它们的可用能力中消失,直到您重新将其开启。

您还会注意到该函数列在您的 自定义函数 (Custom Functions) 页面上,并带有“由自动化管理 (Managed by automation)”的标签。该条目由系统为您维护——其名称和字段遵循您在触发器上设置的内容——因此无法在该页面进行编辑或删除;请改为打开对应的自动化流程进行操作。

将联系人添加到自动化

大多数触发器都在等待某事发生。联系人已添加 (Contact added) 触发器则由您主动驱动:您选择联系人,自动化流程会为每个联系人运行一次。这是您构建跟进序列、欢迎系列或重新互动推送的方式——发送消息、等待、再次发送消息——并随时将人员加入其中。

像构建任何其他自动化一样构建它:为其提供 联系人已添加 触发器,然后添加您的步骤。通过常用的数据按钮,联系人的所有信息都可供这些步骤使用——他们的姓名、电话、电子邮件和渠道——因此 发送消息 步骤可以用姓名问候他们,并且它已经知道要发送给哪个联系人。

有四个地方可以添加人员,因此您可以从您当前所在的位置随时操作:

从联系人列表批量添加。 前往 联系人 (Contacts),勾选您想要的联系人——可以是一个、几个,或者筛选列表中的所有人——然后点击底部栏中的 自动化 (Automation)。选择自动化流程并点击 添加联系人 (Add contacts)。只有带有 联系人已添加 触发器的自动化流程才会显示,尚未开启的自动化流程将呈灰色,直到您将其开启。

从单个联系人添加。 打开一个联系人以调出其详细信息面板,然后点击 添加到自动化 (Add to automation)。

来自对话。 在聊天中,打开对话顶部的三点菜单,选择添加到自动化 — 当您在回复过程中意识到此人应该进入您的跟进序列时,这非常方便。

来自自动化本身。 当您查看自动化并思考“谁会进入这里?”时,请使用此方法。在自动化列表中,已开启的联系人添加自动化在其行中有一个添加人员图标;点击它并按姓名、电话或电子邮件搜索您的联系人,勾选您想要的人员,然后添加他们。同样的按钮位于自动化日志页面上已添加联系人面板的顶部。

无论您采取哪种方式,自动化都会为这些联系人开始运行,您可以继续工作。

逐步添加(滴灌)。 一次添加几百人意味着在短时间内发出几百条消息,这通常不是您想要的——尤其是在 WhatsApp 上。在同一个对话框中勾选逐步添加,并设置每次添加多少联系人以及批次之间等待多少分钟:每 30 分钟添加 20 个联系人,可以将 500 人的列表分散在大约半天的时间内完成。无论您选择什么,联系人总是被稳定地输入,而不是一次性全部输入,因此大批量添加不会使您的帐户不堪重负。

查看进度。 打开自动化并点击日志。在运行历史记录上方,已添加联系人面板显示了您添加的每个批次、到目前为止已处理的联系人数量,以及暂停、恢复或取消它的按钮。暂停会停止添加新联系人;已经开始的运行会正常完成。取消会永久停止剩余的运行——它无法恢复。

添加同一个人两次。 默认情况下,每个联系人只能通过给定的自动化流程一次:如果稍后再次添加他们,他们会被静默跳过,并在进度行中计为“已跳过”。如果您希望联系人能够再次通过该流程(例如每月签到),请打开自动化设置(右上角的齿轮图标)并开启允许重新进入。请参阅 允许联系人多次通过流程。

有两点值得注意:联系人详细信息是在您添加某人时获取的,因此事后编辑电话号码不会更改已经排队的运行;如果您在联系人仍在添加时关闭自动化,批次会暂停而不是失败——重新打开它并点击恢复。

步骤

在触发器之后,根据需要添加任意数量的步骤:

  • 操作 — 在 DM Champ 中执行某些操作:向联系人发送消息、编辑其详细信息、添加标签、在列表之间移动、将其移交给另一个 AI 代理、创建和更新任务与交易、预订/移动/取消预约、查找稍后在工作流中使用的信息,或提醒人工。完整列表请见下方的 操作。

  • 集成 — 连接外部应用(如 Google Sheets、Slack 等)并在自动化中使用其操作。从构建器中连接一次,然后像其他步骤一样将其拖入即可。如果某个步骤使用了您尚未连接的应用,画布上的该步骤会显示一个小黄点,其设置面板会在您需要的位置显示一个 连接 按钮——点击它,在打开的选项卡中批准应用,该步骤即可自动解锁。这也适用于 AI 为您构建的自动化:任何仍需要应用连接的步骤都会在您开启自动化之前提示您。

    您在应用程序的热门标题下找到的每个操作都附带一个引导式表单,而不是技术字段。例如,向 Google Sheets 添加一行会引导您完成此操作:从列表中选择您的电子表格之一,选择工作表,然后您工作表的每个列标题都会显示为需要填写的字段——并带有用于插入先前步骤值的常用数据按钮。查找行的工作方式相同:选择电子表格和工作表,输入要搜索的内容,完成。同样的待遇涵盖了 Gmail(发送、草稿、回复、查找电子邮件)、Slack(频道来自实时列表)、Notion(选择一个数据库,其每个属性都会显示为一个字段)、HubSpot(联系人、交易、公司、工单)、Google Calendar(创建或查找事件时从您自己的列表中选择日历)、Google Docs(从列表中选择文档)和 Telegram。任何不寻常的内容都隐藏在显示高级选项后面,并已设置了合理的值。在此之前设置的步骤将保持原样继续工作;您可以随时打开一个步骤并选择切换到简单模式以获取引导版本。

    其他每个操作都会为应用请求的每个设置显示一个字段,并用简单的文字进行标注,标签旁边的 i 会对其进行解释。包含多个值的设置是一个小表单,而不是代码框:列表(例如,新 HubSpot 笔记所关联的记录)是一组可以通过 Add 添加并用 x 移除的行,固定选项是下拉菜单,而一组命名值则是名称和值行。每个框都可以通过 + 按钮获取来自先前步骤的值。如果您更喜欢输入原始值,字段旁边的 Edit as JSON 会以文本形式显示相同内容,您在此处所做的更改会反映在表单中。

    在任何集成步骤中使用 测试步骤 来真实地运行该步骤 — 以表格示例为例,该行数据实际上会出现在您的电子表格中,因此您可以在开启自动化之前确认其是否有效。

    要更改应用所使用的账户,请打开该应用的任何步骤。连接后,设置面板顶部会显示已连接的账户(如果应用共享了名称或电子邮件,则会显示名称或电子邮件),并提供 断开连接 和 使用其他账户 选项。使用其他账户 会断开当前账户的连接;然后点击 连接 并使用其他账户登录。该连接属于您的整个工作区,因此使用该应用的所有自动化流程都会切换到新账户,并且在没有连接任何账户时,使用该应用的步骤将停止运行。

  • 电子邮件(您的邮件服务器) — 通过您自己的邮件服务器发送电子邮件,而不是通过 Gmail。选择此步骤类型,并填写一次您提供商的发送详情:服务器地址、端口、用户名、密码以及您希望邮件发出的地址。您可以在电子邮件提供商的设置中找到这些信息,通常位于“SMTP”或“发送”下。我们在保存前会根据您的邮件服务器核对这些详情,因此如果信息有误,您会立即发现,而不是等到自动化首次运行时才发现。

    有两点值得注意。使用 端口 587 — 它是加密的,几乎每个提供商都支持它,并且它是从我们的发送网络中工作的端口。如果您的电子邮件帐户使用两步验证,请在提供商的帐户设置中创建应用专用密码,而不是输入您的常规密码。

    连接后,该步骤仅包含收件人、主题和消息,并带有用于插入先前步骤数据的常用按钮。如果您需要,还可以使用抄送 (Cc) 和密送 (Bcc)。您的密码已加密存储,绝不会向您显示——重新连接时需要再次输入。

  • 内置应用 — 一些工具拥有自己的一流步骤,与集成目录分开:

    • Mollie — 创建支付链接或检查付款是否已支付。使用您的 Mollie API 密钥连接一次(Mollie 仪表板 → 开发者 → API 密钥)。
    • WooCommerce — 在您的商店中查找客户或订单、将订单移动到新状态或创建优惠券代码。使用您的商店地址加上 REST API 密钥进行连接(WooCommerce → 设置 → 高级 → REST API → 添加密钥)。
    • WordPress:创建、更新或获取文章,创建用户,或通过电子邮件查找用户。使用您的网站地址、WordPress 用户名和应用程序密码进行连接(用户 → 个人资料 → 应用程序密码)。请参阅 WordPress。
    • FluentCRM:创建或更新联系人、通过电子邮件查找联系人、添加或删除标签,以及将某人添加到列表。连接详细信息与 WordPress 相同,因为 FluentCRM 在您的 WordPress 网站上运行。标签和列表以 ID 而非名称提供。请参阅 FluentCRM。
    • MemberPress:获取会员、通过电子邮件查找会员、创建会员、列出其订阅或交易,以及创建交易(这是授予会员资格的方式)。使用您的网站地址加上来自 MemberPress → 开发者工具的 API 密钥进行连接。请参阅 MemberPress。

    连接的工作方式与电子邮件步骤相同:在保存任何内容之前,详细信息会实时针对服务进行检查,密钥会加密存储且绝不会向您显示,并且每个步骤都会获得带有常用插入数据按钮的纯文本字段。

  • 数据库查询 — 针对技术用户:对您自己的外部 MySQL 或 Postgres 数据库运行 SQL 查询(例如,在商店数据库中查找客户)。添加一次连接——它会在保存前进行实时测试——然后编写查询。使用 $1、$2(Postgres)或 ?(MySQL)占位符来表示来自先前步骤的值,并将这些值放入“值”字段中,这样联系人输入的文本就不会被直接粘贴到您的 SQL 中。数据库必须能够从互联网访问。

  • HTTP 请求 — 直接调用任何外部 Web 地址,适用于尚无内置集成的工具。

  • 条件 — 根据您设置的规则将自动化流程分支为两条路径之一。使用 + 按钮插入您想要检查的内容,而不是手动输入;选择比较方式(等于、包含、大于、匹配正则表达式……),并输入要比较的目标值。包含会查找您输入的精确文本;当您需要模式匹配时——例如关键字的多种拼写、仅出现在消息开头的单词、订单号格式——请选择 匹配正则表达式 并输入正则表达式,例如 ^(ja|yes)\b。通过将模式写为 /ja|yes/i 来添加 /i 风格的标志。无效的模式会导致步骤失败并在运行历史记录中报错,而不是静默地走 false(假)路径。true(真)路径上的步骤在规则匹配时运行,false(假)路径上的步骤在规则不匹配时运行;如果您留空的路径则会直接结束运行。检查某人的标签是最有用的功能之一——插入联系人的 tag_names 并使用 包含 配合标签名称,如下面的 示例:忽略任何您标记为垃圾邮件的人 所示。

    检查多个条件。 一个条件(Condition)可以同时包含多条规则。将 匹配(Match) 设置为 以下所有(All of the following)(每条规则都必须为真)或 以下任意(Any of the following)(只要有一条规则为真即可),并为每条额外规则使用 添加条件(Add condition) — 例如 国家等于 NL 且 消息包含定价。如果您需要混合使用两者,或使用括号对规则进行分组,请将规则作为表达式输入:(${trigger.contact.country} == 'NL' or ${trigger.contact.country} == 'BE') and ${trigger.message.body} contains 'pricing' — and 的优先级高于 or,括号可以覆盖此优先级。以这种方式编写的条件将作为表达式框打开,而不是以行形式显示。

    条件步骤的设置面板,匹配项设置为“以下所有”,包含两条规则:联系人所在国家/地区等于 NL,且消息正文包含 pricing,下方有一个“添加条件”按钮

    一个条件中的两条规则。当匹配项设置为“以下所有”时,两条规则都必须为真,“是”路径才会运行。

    阶段是通过其 ID 而非名称进行比较的。 任务或交易的阶段以其内部 ID (todo, in_progress, done…) 的形式传入,这可能与看板上的列标题不同。因此,当字段为任务或交易的阶段,且比较方式为等于或不等于时,值输入框将变为您自有阶段的列表:请按名称选择列,步骤会自动存储其 ID。如果之前保存的条件中手动输入了阶段名称,列表下方会显示警告;当该文本与您的某个列匹配时,会出现一个按钮,可将其替换为该列的 ID。

    指向您账户的其他值也是列表。 对于联系人的标签(包含、等于)、“已添加标签”触发器携带的标签、交易或任务的负责人、AI 智能体,或“下拉菜单”类型的自定义字段,值输入框会显示为您自己的标签、团队成员、智能体或字段选项的列表。点击 改为使用之前步骤的值,以将其与触发器或其他步骤中的值进行比较。

    每一个后续步骤都需要一个分支。 连接到条件(Condition)的步骤必须挂载在其 是(Yes) 或 否(No) 的分支上。如果连接时没有分支,它将根据条件的判断结果运行 — 编辑器会标记此错误,并且在将其移动到分支上之前,您无法开启自动化。

    条件也可以根据时钟而不是值进行分支。将其条件类型设置为一天中的时间,并提供开始时间、结束时间和时区:当当前时间在该窗口内时,运行真路径;在窗口外时,运行假路径。结束时间早于开始时间则表示跨夜窗口(21:00 到 08:00),日期切换开关可将其限制在一周中的特定几天——全部关闭则表示每天都运行。它会在步骤运行时检查时钟,因此放置在延迟之后的“时间”条件会查看实际到达该步骤的时间,而不是运行开始的时间。这就是构建“一个自动化,根据时间表现不同行为”的方法——白天做一件事,晚上做另一件事;如果自动化在窗口外根本不应该运行,请使用自动化设置中的 仅在这些时间段内运行。

    在普通的 比较值 (Compare a value) 条件中,您也可以直接与时钟进行比较:插入数据选择器中的 当前时间 (Current time) 组提供了 now.hour (0–23)、now.minute、now.weekday (1 = 周一 … 7 = 周日)、now.day、now.month 和 now.year。除非您填写了条件的可选时区字段,否则它们将以 UTC 时间读取。

  • AI 步骤 (AI step) — 让内置 AI 读取到目前为止的数据,并作为工作流的一部分生成响应或决策。编写提示词,插入来自先前步骤的值,该步骤的输出可供其后的每个步骤使用。除了提示词之外无需配置任何内容——AI 本身由系统为您管理。步骤设置会预先说明价格:每次 AI 步骤运行时都会消耗 0.25 个积分(因此循环内的 AI 步骤每次重复消耗 0.25 个积分),并且 测试步骤 (Test step) 运行的是真实的 AI,因此也会消耗相同的 0.25 个积分。

    有两个值得了解的限制,它们足够宽松,大多数自动化任务都不会触及。回复有最大长度限制;如果 AI 需要的空间超过此限制,答案会被截断——您在测试该步骤时会看到相关提示,因此请要求更简短的内容或将任务拆分到两个 AI 步骤中。提示词本身在填充了之前步骤的数据后也有最大大小限制:如果您插入了非常大量的数据(长聊天记录、整个抓取的页面),运行会停止并提示您减少数据量。当“设置”→“个人资料”中的 Pause all AI messages(暂停所有 AI 消息)开启时,AI 步骤根本不会运行:运行会停止并显示该账户已暂停 AI 的提示,且不会产生任何费用。关闭暂停功能后,新的运行即可再次通过。

  • Delay(延迟)——在继续之前暂停。Wait type(等待类型)提供了两种实现方式。For a fixed amount of time(固定时长)是经典方式:等待 10 分钟、2 小时、3 天,并可选择添加随机抖动,以免连续运行在同一秒触发。Until a specific moment(直到特定时刻)则等待特定的日期和时间——通常是您使用 + 按钮从之前步骤插入的时间,例如预约开始时间——并使用分钟为单位的 Offset(偏移量)进行调整:-180 表示在该时刻之前三小时,-1440 表示之前一天,0 表示该时刻本身。如果运行到达该步骤时时刻已过,它将不会等待并直接继续;超过 30 天的等待请求会被拒绝。超过半分钟的等待会适当地暂停运行,而不是保持其开启状态——运行状态会显示为 waiting(等待中),直到预定时间,因此分钟、小时和天数都是可以的。

  • Loop(循环)——为列表中的每个项目重复一组步骤(例如,为 Find contacts 返回的每个联系人重复一次,或为联系人上的每个标签重复一次)。将 Max iterations(最大迭代次数)留空可遍历所有项目(最多 1,000 个);设置一个数字可提前停止。长列表不必一次性处理完:当运行接近时间预算时,循环会在当前位置暂停,并在几秒钟后从同一个项目继续,因此对数百个联系人的每日扫描可以自动完成。循环内的 Delay(延迟)以同样的方式工作——循环会等待延迟结束,然后继续执行该项目的下一步。将要重复的步骤连接到循环的 body(主体)句柄并在此停止:分支直接结束是循环判断该项目已完成的方式,它会自动移动到下一个项目。循环内的 Condition(条件)按项目进行判断:只有该项目的 true(或 false)分支会运行,因此 Loop → Condition → Send message 只会发送给通过条件的项目。您不需要画线回到 Loop,画布也不再允许这样做:从后面的步骤拉出连接回到 Loop(或其上方的任何步骤)会被拒绝,并附带原因说明。如果您之前构建的自动化任务中仍有此类连接,则每次运行都会在第一步之前停止,运行记录会告知您需要移除哪个连接。

  • Return response(返回响应)——适用于以 Webhook 或 AI Agent Function(AI 代理函数)触发器开头的自动化:将数据发送回调用自动化的任何对象——访问您 Webhook 的外部工具,或对话中的 AI 代理。默认情况下,调用只会收到确认;添加此步骤后,调用者将收到您自己的回复——选择状态码,编写正文(JSON 或纯文本)并插入之前步骤的值,这样调用您的工具就能获得您查找的行或创建的联系人等信息。调用者最多等待 30 秒;如果自动化耗时超过此时间(例如上游有 Delay 步骤),它将回退到正常的确认,而自动化会继续运行。如果运行在到达此步骤之前失败,调用者会立即收到答案而不是等待:状态码 200,正文包含 "status": "failed"(当余额不足以支付运行时,错误代码为 insufficient_credits)。这特意不设置为错误状态:请求已收到,之前的步骤可能已经运行,而 Stripe 或 Shopify 等工具会重新发送收到错误响应的 Webhook,这会导致那些步骤再次运行。详细信息会保留在运行历史记录中。Test step(测试步骤)会使用您的示例数据预览回复。

还有一个 转换 (Transform) 步骤,用于通过少量代码重塑数据——这是为擅长编写简单脚本的技术用户准备的;其他人可以安全地忽略它。

使用先前步骤返回的内容

当某个字段要求输入单个值(例如 Contact ID)时,请使用 + 按钮插入该单个值,而不是整个步骤。在名为 find_contact 的 Find contact 步骤之后,该值为 ${nodes.find_contact.contactId}。如果单独插入 ${nodes.find_contact},则会一次性传递该步骤返回的所有内容,此时需要联系人的步骤就会因“找不到联系人”而失败。

表达式

在 ${ } 中,你可以编写一小段 JavaScript 代码,以便在值被使用前对其进行修改。你可以在任何接受变量的字段中编写代码,并使用 + 按钮插入的相同变量名称:

你的需求 编写方式
将名称转换为大写 ${ trigger.contact.first_name.toUpperCase() }
去掉电话号码前的 + 号 ${ trigger.contact.phone.replace("+", "") }
增加 21% 的金额 ${ trigger.amount * 1.21 }
两个选项中选其一 ${ trigger.amount > 100 ? "priority" : "normal" }
今日日期(UTC 时间) ${ new Date().toISOString().slice(0, 10) }

其周围的文本保持不变,因此 Hi ${ trigger.contact.first_name.toUpperCase() }! 会发送 “Hi ADA!”。当你输入时,字段下方的 Result(结果)框会显示代码根据你的示例数据计算出的结果。

如果代码执行失败(例如拼写错误,或该联系人的某个字段为空),该部分将输出为空,而步骤的其余部分将继续执行。运行历史记录会说明哪段代码失败及其原因。

代码会立即独立运行:它无法访问互联网,不能执行等待操作,且最多只能运行半秒钟。若要获取数据,请使用 HTTP request(HTTP 请求)步骤并插入其结果。当逻辑需要多行代码,或多个步骤共享同一结果时,Transform(转换)步骤仍然是更好的工具。

测试查找联系人的步骤

Run 和 Test step 使用触发器的示例数据,该示例是一个虚构的联系人(contact_abc123,[email protected],没有电话号码)。它在您的账户中并不存在,因此查找或向联系人发送消息的步骤在测试时会因“找不到联系人”或“未存储号码”而失败。这是预期之中的:当真实的触发器触发时,该步骤会获取真实的联系人并正常工作。若要使用真实数据进行测试,请让自动化流程实际运行一次,然后点击工具栏中的 Replay,使用上次运行实际接收到的数据再次运行它。

操作

操作是自动化在 DM Champ 内部执行的任务——无需连接应用,无需预先设置。它们在选择器中的分组方式与此处的分组方式相同。

指向您账户中现有内容的字段通常为下拉菜单:例如销售漏斗及其阶段、联系人列表、标签、团队成员、任务阶段、事件类型、草稿广播或 WhatsApp 模板。请直接从列表中选择。当数值需要来自之前的步骤(例如由 Webhook 发送的阶段名称)时,请点击字段下方的改用之前步骤中的值,并使用 + 按钮进行插入。

联系人

操作 功能描述
创建联系人 添加一个新联系人。渠道决定了联系人的触达方式,从而决定了后续发送消息步骤的投递位置:保持默认设置即可使用 WhatsApp;选择 SMS 可通过已连接的短信号码发送短信(例如,针对要求接收短信的表单潜在客户);选择 Email 则通过电子邮件联系——此时电子邮件地址作为联系人的唯一标识,电话号码可选,且账户需已连接 Email 渠道。对于基于电话的渠道,电话号码是必填项。如果该渠道下已存在具有相同号码(或 Email 渠道下的相同地址)的联系人,该步骤将返回现有联系人,而不会报错或创建重复项,并保留该联系人的渠道信息,运行日志中会记录此操作。后续步骤无论如何都能获取到联系人 ID。自定义字段会显示账户中每个自定义字段对应的输入框(您可在“联系人”页面的管理字段中创建这些字段);您可以从之前的步骤中填充这些字段,例如从 Webhook 获取订单号。留空的输入框将被跳过。当联系人已存在时,您填入的值将保存到该联系人信息中。这就是如何通过电子邮件跟进在其他渠道联系您的客户的方法——请参阅 示例:为网站聊天潜在客户提供电子邮件跟进
更新联系人 更改联系人的姓名、电子邮件、电话号码或自定义字段。仅更改您填写的自定义字段;联系人的其他自定义字段保持不变
查找联系人 通过电话号码或电子邮件查找联系人,以便后续步骤使用其详细信息。同一个人可能在不同渠道下拥有多个记录(例如,网站聊天联系人和电子邮件联系人共用一个地址),因此可以将电子邮件查找范围缩小到特定渠道
查找联系人列表 列出联系人——包括所有人、自由文本搜索、特定列表或筛选结果。快捷方式:带有标签仅返回带有特定标签的联系人,不带标签则排除所有带有该标签的联系人(标签按名称匹配;如果名称不存在,步骤将报错并显示明确提示,因此不会因拼写错误而静默返回空结果)。高级方式:高级筛选器会打开智能列表所使用的规则构建器,因此您可以筛选智能列表支持的任何内容——标签、列表、渠道、状态、活动日期、AI 开关、免打扰、姓名/电子邮件/电话、交易阶段、自定义字段——并实时显示匹配的联系人数量。设置高级筛选器后,它们将生效,而上方简单的字段将被忽略。数量设置该步骤返回的联系人数量,每次运行最多 1,000 个(默认为 50 个);超过 100 个的请求会在后台分批获取,因此每天对几百个联系人进行扫描可以在一次运行中完成
开启或关闭联系人的 AI 为该特定联系人开启或关闭 AI 代理,不会影响其他人
设置免打扰 停止(或恢复)向该联系人发送任何出站消息,并可选择添加备注说明原因
设置自定义字段 写入联系人的一个自定义字段,而不影响其他字段。从您的自定义字段列表中选择字段,或选择改为输入字段键名以使用新字段或来自之前步骤的键名——如果字段尚不存在,则会在联系人信息中创建该字段
将联系人添加到列表 / 从列表中移除联系人 将联系人移入或移出您的某个联系人列表
分配 AI 代理 将联系人移交给不同的 AI 代理,以便从下一条消息开始由该代理的个性和设置接管——这与聊天菜单中的分配 AI 代理功能相同,但由工作流执行。从列表中选择代理;该字段也支持旧版设置中的实时经典营销活动。您可以选择让新代理立即回复。这就是如何在对话中途切换代理的方法:关键字入口点仅决定谁来回答全新的对话,因此将收到消息触发器缩小到“支持”等词汇,并配合此操作,即可将现有聊天转接给您的支持代理。分步指南:对话中途切换 AI 代理
设置联系人标签 / 移除联系人标签 按名称应用或移除标签。如果标签尚不存在,则会创建该标签
向 Meta 发送转化数据 向您的 Meta 数据集报告一次转化(如交易成功、预约咨询),以便您的 Meta 广告基于实际结果而非仅基于消息进行优化。需要在设置 → 广告点击追踪下连接 Meta;否则该步骤将报错“Meta 未连接”。选择事件名称(购买、预约、潜在客户或您自定义的名称),可选填价值和货币,以及相关对象:联系人,或仅电子邮件或电话,这样来自其他应用的买家数据也适用。该步骤每次运行都会发送数据,因此请使用事件 ID 以防止 Meta 重复计算同一转化。请参阅 从自动化流程发送转化数据
将联系人分配给团队成员 将联系人分配给您的团队成员,使其在收件箱中显示为该成员的联系人。将团队成员留空即可取消分配

消息传递

操作 功能描述
发送消息 在联系人当前所在的渠道(WhatsApp、短信、Instagram 或 Messenger,取决于他们通过哪个渠道进入)上发送消息。对于由您的自动化流程自行创建的联系人(例如表单潜在客户),这是在 创建联系人 步骤中选择的 渠道,因此如果消息应以短信形式发送,请在此处选择短信。您可以通过链接附加图片或文件,如果提供了媒体链接,文本内容可以留空。对于非图片文件,请在 媒体类型 中填写文件的 MIME 类型(application/pdf、audio/ogg、video/mp4),以便渠道以正确的方式附加它;您还可以选择填写 文件名,作为收件人看到的文档名称。若要将音频作为 WhatsApp 语音消息(即播放气泡,而非文件)发送,请开启 作为语音消息发送,并将音频格式设为 OGG/Opus,媒体类型设为 audio/ogg。以语音消息发送的 MP3 文件在某些手机上可以播放,但在其他手机上会显示为文件,因此请先进行转换。此操作取代了旧版独立的“发送 WhatsApp”和“发送短信”步骤,因为它们的功能完全相同;仍在使用旧步骤的自动化流程将继续正常工作
发送 WhatsApp 模板 发送您已获批的 WhatsApp 模板之一,这是联系 WhatsApp 24 小时窗口之外用户的方式。提供联系人或纯电话号码即可——如果提供号码,系统会查找对应的联系人,若不存在则会创建一个。选择 模板 后,模板变量 会为模板中的每个变量显示一个输入框({{1}}、{{2}} 或类似 {{first_name}} 的命名变量);请使用 + 按钮插入之前步骤中的值,例如来自 Webhook 的客户姓名或订单号。留空的变量将自动填充联系人的详细信息。对于存储在您自己的 WhatsApp Business 账户中的模板(在“模板”页面上带有 Meta 标签),您还会看到一行用于模板文本标题变量(标题变量)的输入框,以及每个动态网站按钮的输入框(网站按钮 1 (URL 后缀),即添加到按钮链接末尾的部分)。请在步骤中映射每一项。如果模板变量在 Meta 中发生了更改,请在下次同步后重新打开该步骤并重新映射它们。该步骤最多等待 20 秒以获取 WhatsApp 的响应。如果 WhatsApp 拒绝该模板(例如变量留空或模板未获批),则该步骤会失败,且运行记录中会显示 WhatsApp 给出的原因。如果未能在规定时间内收到响应,该步骤将通过,并附注说明发送状态尚未确认;最终状态可在联系人的聊天记录中查看。请参阅 示例:来自 Shopify 的 WhatsApp 订单确认。需要连接 WhatsApp Business API 渠道。请参阅 WhatsApp 模板
启动广播 启动您已经构建并保存为草稿的广播——这与点击广播上的 启动 按钮效果相同。广播需要受众、开场白和已连接的发送方;如果缺少任何一项,该步骤将失败并提示缺失的内容
发送 WhatsApp Web 消息 通过已进行二维码连接的 WhatsApp Web 手机发送消息,按完整的国际格式号码寻址(+31612345678)。适用于 WhatsApp Web 渠道的账户。您寻址的号码仅作为收件人——它不需要作为渠道本身进行连接(典型案例是经理的手机接收预订报告)。如果您确实将收件人的手机作为同一账户中的第二个渠道连接,则两部手机之间的每条消息都会被记录两次(每个渠道一次),并且新号码可能会被选为发送方,而该号码在预热的第一天新联系人上限为 0——此时运行会失败并显示 Daily limit of 0 new contacts reached。请将收件人保持为纯号码。当收件人联系人处于“请勿打扰”状态时,发送也会被拒绝(运行记录会显示 Contact is on Do Not Disturb list);请先在该聊天中关闭“请勿打扰”功能

任务

操作 功能
创建任务 创建任务,可选择包含描述、截止日期、负责人和联系人
更新任务 更改任务的标题、描述、阶段、优先级、截止日期或联系人
查找任务 / 查找任务列表 加载一个任务,或按阶段、优先级、联系人、交易、负责人或截止日期筛选的列表——以便自动化可以根据查找结果进行分支

交易

操作 功能描述
创建交易 在您选择的看板上创建交易。请先选择销售漏斗,随后阶段列表将仅显示该漏斗下的阶段(更改漏斗会清除已选阶段,因此需重新选择)。阶段为必填项。选择漏斗后,来自之前步骤的阶段既可以是阶段名称,也可以是 ID;如果该阶段不属于所选漏斗,步骤将停止并报错,而不是将交易放入错误的看板
更新交易 更改交易的标题、价值、阶段、状态或联系人
移动交易阶段 将交易移动到另一个阶段,并将卡片置于该列顶部
查找交易 / 查找交易列表 通过 ID 加载单个交易,或按最新顺序加载交易列表 — 可选择仅限特定漏斗、特定阶段或属于特定联系人的交易 — 以便自动化流程根据阶段或价值进行分支判断

预约

操作 功能说明
创建预约 为联系人预订您的一种可预订事件类型。它也可以记录在其他地方进行的预订——例如您自己的 CRM、课程表或其他预订工具:将事件类型留空并提供一个 标题,预订将显示在“预约”页面上,且不进行可用性检查或日历同步。请参阅 在平台外进行的预订
取消预约 取消预约,并可选择填写原因。它将作为“已取消”状态保留在记录中,而不是直接消失
重新安排预约 将预约移动到新时间。请同时设置结束时间和开始时间——系统不会根据事件类型的时长重新计算
查找预约 / 查找预约列表 加载单个预约,或针对某个联系人、某一天或某种状态的预约列表
查找可用时段 列出您的一种事件类型在两个时间点之间的空闲时段,以便后续步骤可以提供或预订其中一个

其他

操作 功能
Log event 在您账户的自动化事件日志中记录一个自定义事件——便于统计某事发生的频率
Check credit balance 读取账户当前时刻的信用余额,以便其后的“条件”步骤可以据此进行分支——例如 ${nodes.<step>.balance} < 100,以便在信用额度耗尽前提醒自己。它仅执行读取操作,不会进行消费或充值
Alert human 通过电子邮件和通知提醒您有人需要介入,可设置低、中或高优先级,如果您指定了联系人,还会标明该联系人的姓名
Send email to my team 向您或您的团队发送您编写的消息,例如带有联系人姓名、电话号码和链接的“新交易”。仅发送至您自己的地址:您的登录邮箱、团队成员邮箱,或您在 Settings → Notifications 下验证过的通知邮箱(将 To 留空则使用您的登录邮箱)。拒绝发送给其他人;若要向联系人或潜在客户发送邮件,请使用 Email (your mail server) 步骤。以纯文本编写 Subject 和 Message body:保留换行符,链接会自动变为可点击。填写 Contact ID 以添加一个打开该联系人聊天的按钮。它仅发送电子邮件,不提供应用或电话提醒,每个账户 24 小时内最多可发送 200 封此类邮件。当需要人工介入时,请改用 Alert human

代理机构

操作 功能
更新子账户 在运行过程中更改您的某个客户账户:其消费限额、月度配额、未使用的配额是否结转到下个月,以及其封禁级别(活跃、软封禁或硬封禁)。它已经指向了来自触发器的账户,因此在创建子账户或子账户活动自动化中,除了您想要更改的值之外,无需填写任何内容 — 您留空的任何内容都将保持原样。请参阅 自动化处理客户账户的操作

账户 API 操作

在上述操作下方,步骤选择器中有一个名为 账户 API 的部分,在您打开之前它是折叠的。它为 DM Champ API 的每个端点(约 390 个)提供一个操作,按其所属的账户部分进行分组:联系人、交易、流水线、标签、任务、预约、广播、知识库、常见问题解答、摘要、消息、子账户等。API 能做的任何事情,自动化现在都可以作为常规步骤来执行,无需 HTTP 请求步骤,无需 API 密钥,也无需代码。

自动化编辑器的节点面板,其中 Account API 部分已展开,显示“账户 API 的每个端点,作为一个步骤”这一行,下方是折叠的区域标题:Account Config、Agents、Analytics、Appointments、Billing、Broadcasts、Campaigns、Channels、Chat Exports、Chat Sessions、Chat Widget、Contacts、Custom Functions 和 Deals,其中 Deals 已展开,显示 Delete Deal、Create Deal 和 Move Deal 卡片,每张卡片都带有其方法和地址

在面板中打开 Account API,端点会按区域分类。每张卡片都标明了操作及其背后的调用,例如 Deals · POST /v1/deals。

Update Pipeline 步骤的设置面板,显示标签和提供商 Native,操作选择器显示 Update Pipeline,下方一行显示“在您的账户上运行 PUT /v1/pipelines/:pipelineId”,一个必填的 Pipeline ID 字段已填入 default,一个 Name 字段显示 Sales pipeline,以及一个包含两个阶段的 JSON 列表的 Stages 框

一个已生成操作的设置。端点接收的每个参数都有其对应的字段,而那些需要列表或对象的参数则是供您输入 JSON 的文本框。

关于这些操作,有几点需要了解:

  • 每个操作的设置都会为端点接收的每个参数显示一个字段。需要对象或项目列表的字段是一个供您输入 JSON 的文本框。每个字段都接受来自先前步骤的常规 ${…} 格式的值,可通过 + 按钮插入。
  • 画布上的步骤显示了它调用的方法和地址,例如 PUT /v1/pipelines/:pipelineId,因此当您需要了解其返回内容的详细信息时,可以在 API 参考中查找该端点。地址中以冒号开头的部分是您在步骤中填入的值,因此一旦 Pipeline ID 设置为 default,它实际上调用的就是 /v1/pipelines/default。
  • 删除内容的操作在其设置中带有红色警告。它们会直接执行 API 调用所执行的操作,且事后无法撤销。
  • 选择器顶部的操作(即上表中列出的那些)保持不变。它们仍然是执行常见任务的最快方式,大多数自动化流程根本不需要打开此部分。

在代理账户上,可以作用于客户账户的操作具有 子账户 字段。不能作用于客户账户的操作则特意留空:如果在忽略子账户的端点上填写子账户,会导致该步骤在您自己的代理账户上运行而不会通知您,因此该字段仅在真正有效的地方出现。

示例:设置新客户账户的流水线和标签。 这是过去需要脚本才能完成的任务的零代码版本。

  1. 触发器:子账户已创建。
  2. 账户 API → 标签 → 创建或分配标签 (POST /v1/tags),将标签的 名称 和 子账户 设置为 ${trigger.sub_account.id}。
  3. 账户 API → 流水线 → 更新流水线 (PUT /v1/pipelines/default),在 JSON 字段中填入您的阶段。阶段的 trigger_tag 写为 users/<the sub-account id>/tags/<the tag id the previous step returned>,均通过 + 按钮插入。

从此以后,您创建的每个客户账户都会获得相同的看板和相同的标签规则,而无需您亲自打开它。

示例:当有人预订时给自己发送电子邮件摘要。

  1. 触发器:预约已预订。
  2. 账户 API → 摘要 → 总结对话 (POST /v1/summaries),指向触发器中的联系人。
  3. 电子邮件,正文中包含来自步骤 2 的摘要。

变量的编写方式。 您使用 + 按钮插入的任何内容都会以 ${…} 的形式呈现——例如 ${trigger.contact.first_name} 或 ${trigger.appointment.start_time}——这是自动化流程唯一能解析的格式。您可能在广播模板中熟悉的 {{first_name}} 样式在此处不被识别:它会按输入的原文发送,因此消息到达时会显示 {{first_name}} 而不是姓名。如果收到的消息中仍然包含占位符文本,通常就是这个原因——请删除该占位符并使用 + 按钮重新插入。自定义字段与关于个人的其他所有信息一样,位于 contact 下方 (${trigger.contact.your_field_key})。带有空格、问号或其他符号的字段名称(例如 Facebook 潜在客户表单会将每个问题作为单独的字段发送)需要放在方括号和引号中,例如 ${trigger["what_service_are_you_interested_in?"]};+ 按钮会自动为您以该格式插入。 ${…} 还可以包含一小段用于更改值的代码,例如 ${ trigger.contact.phone.replace("+", "") }:请参阅 表达式。在每个包含变量的字段下方,结果框会显示使用您的样本数据解析后的文本:绿色的变量表示已解析(显示其值),琥珀色的变量表示因步骤尚未测试或触发器没有捕获到事件而无法检查,红色的变量则指向样本中不存在的字段,这通常是拼写错误或路径错误。对于 ${ } 内的代码,该框会显示其在样本数据下的计算结果,或者以红色显示失败原因。变量也适用于包含列表或一组值的字段(例如要链接的记录列表或一组属性):其中的每个 ${…} 都会被填充,而作为整体值的变量会保留其类型,因此数字仍为数字,列表仍为列表。

没有测试运行的示例数据。 如果您在构建过程中不想运行某个步骤(例如创建联系人或发送消息),可以手动获取其示例:打开该步骤,点击 Output sample 下方的 Pin sample,粘贴或输入该步骤返回的内容,然后再次点击 Pin sample。变量选择器、结果框以及后续步骤的测试都将使用此示例,并且在被真实的 Test step 替换之前,它会被标记为 Pinned(已固定)。实时运行永远不会使用固定的示例,只会使用步骤实际返回的内容。对于 Webhook 触发器,Save as sample 会将您输入的有效负载保存为触发器的示例,而无需运行任何操作,而 Send test event 则会同时启动一次测试运行。Sample payload (for testing) 框中必须包含有效的 JSON,其格式应与外部工具发送的格式相同:键和文本值需使用直角双引号,文本值内的双引号需写为 \"(例如 { "note": "she said \"hi\"" })。如果文本不是有效的 JSON,该框会显示 Invalid JSON,且两个按钮都不会保存或发送任何内容。

关于填写这些字段,有一点值得注意:任何以 ID 结尾的内容(如联系人 ID、任务 ID、预约 ID)都应通过 + 按钮从之前的步骤中插入,而不是手动输入;每个字段下方的提示均有说明。

大多数操作的设置底部还有一个 子账户 ID 字段:将其留空,该步骤将在您自己的账户上运行;或者将其指向您的某个子账户,该步骤将改为在该账户内执行。

示例:提前 24 小时和 3 小时的预约提醒

这是大多数人首先构建的自动化流程,因此这里提供完整的端到端指南。

1. 启动自动化。 进入 AI Studio → 自动化 → 新建自动化,然后点击画布上的触发器。

2. 选择触发器。 点击 更改触发器,打开 预约,然后选择 预约前。

3. 选择提醒时间。 在 提醒 下,点击 24 小时前 和 3 小时前 的标签。需要其他时间(例如 45 分钟)?在 其他 中输入分钟数并点击 添加。一个自动化流程中最多可以设置五个提醒,且至少需要一个:如果不设置,自动化将永远不会运行。

如果您的任何预约开始时间较早,导致提醒可能会在夜间发出,请在自动化设置(右上角的齿轮图标)中开启尊重静默时间——提醒仍会按时运行,消息只是会等到联系人当地时间的上午 8 点才发送。请参阅 尊重静默时间。

每个提醒针对每次预约运行一次,因此两个提醒意味着同一预订会运行两次。它涵盖了 DM Champ 知道的所有预约:内置日历上的预订,以及您的 AI 通过 Zenchef、Formitable、OpenTable 或 Trafft 预订的表格。直接在餐厅自身系统(其小部件、电话、到店)中进行的预订永远不会到达 DM Champ,因此不会收到提醒。它适用于您日历中已有的预约,而不仅仅是您开启该功能后预订的预约——并且它会跟进更改:移动预约,其提醒也会随之移动;取消预约,提醒也会被取消。如果在预订时提醒时刻已经过去(例如在今天下午预订的预约中设置 24 小时提醒),该提醒会被直接跳过,而不是延迟发送。

4. 可选:为每个提醒设置不同的措辞。 在触发器后添加一个 条件 步骤,选择 提醒:提前分钟数 作为字段,== 作为运算符,1440 作为值。真路径对应前一天的消息(“明天见,时间是……”),假路径对应三小时前的消息(“稍后见,时间是……”)。如果两者措辞相同,可跳过此步骤。

5. 发送消息。 添加一个 发送消息 操作。对于 联系人 ID,点击 + 并插入预约的联系人。在消息内容中,写下您的提醒,并使用 + 插入联系人的名字和预约开始时间——例如:

Hi ${trigger.contact.first_name}, a reminder about your appointment on ${trigger.appointment.start_time}. Reply CONFIRM to keep it or CANCEL if you can't make it.

触发器提供的其他详细信息包括:预约的房间、摘要、联系人的电话和电子邮件,以及这是第几次运行该提醒。开始时间以完整的日期和时间格式提供(2026-09-01T10:00:00Z),因此如果您希望消息显示为“明天 10:00”,请在消息步骤前添加一个 AI 步骤,并要求它以联系人习惯的语言表达时间。

6. 测试并启用。 点击 运行 使用示例数据测试一次,在 日志 中检查运行情况,然后拨动 已启用 开关。

关于 WhatsApp 的 24 小时窗口。 如果联系人上次给您发送消息是在 24 小时之前,WhatsApp 将不允许发送普通消息——这正是提前一天提醒所面临的情况。请改用 发送 WhatsApp 模板 操作进行该提醒,并使用已获批的模板;模板允许开启对话,并且会重新打开 24 小时窗口,以便联系人的回复可以被正常处理。三小时前的提醒通常可以使用普通的 发送消息,因为到那时联系人可能已经回复了第一条消息。请参阅 WhatsApp 模板 以了解如何创建并获取模板批准。

关于“确认”/“取消”按钮。 目前自动化流程尚不支持可点击的快速回复按钮。目前的实现方式是要求用户回复一个词——“回复 CONFIRM 以保留,或回复 CANCEL 以取消”——并通过您的 AI 智能体(它会像处理其他消息一样读取回复,并执行取消或重新预约操作)或通过收到消息触发器上的第二个自动化流程来处理该回复。第二个自动化流程需限定为包含 CANCEL 的消息,通过该联系人的查找预约功能查找预约,执行取消预约,并使用提醒人工功能通知您。

示例:将未接的 WhatsApp 来电转为聊天

餐厅正忙于服务、车库里有人正在修车、诊所医生在接诊病人:电话响了,没人能接听,来电者便尝试拨打列表中的下一个号码。此自动化程序可在几秒钟内向每一位未接来电者发送 WhatsApp 消息,并让您的 AI 代理接手后续事宜。

只想自动回复文本? 您无需手动构建:在 设置 → 渠道 中,每个 WhatsApp Web 号码都有一个 未接来电自动回复文本 开关,可为您创建此自动化流程,并使用您设置的消息;通过 Twilio 发送短信 卡片也为自行连接的 Twilio 号码提供了相同的开关。请参阅 WhatsApp Web → 未接来电自动回复文本 和 短信 → 未接来电自动回复文本。当您需要设置条件、为未接来电者指定不同代理或添加后续步骤时,请按照下方说明自行构建。

此功能适用于拨打通过 WhatsApp Web 连接的号码以及拨打 您为短信连接的 Twilio 号码 的来电。未接来电是指您未接听的任何通话:来电者在响铃几声后挂断,或一直响铃无人接听。您接听或拒绝的通话不计入在内,群组通话也会被忽略。

1. 创建自动化。 进入 AI Studio → 自动化 → 新建自动化,点击 更改触发器,打开 消息传递 并选择 未接来电。将 号码 保留为 任何号码,它将为账户中所有号码(包括 WhatsApp Web 和短信)的每个未接来电触发;该字段会列出您的 WhatsApp Web 号码和短信号码,因此您可以选择其中一个,使此自动化仅针对拨打该号码的来电运行(第二个自动化可以覆盖另一个号码并使用其专属文本)。

2. 发送消息。 添加 发送消息 操作。对于 联系人 ID,点击 + 并插入触发器中的来电者。然后编写文本,例如:

很抱歉错过了您的来电,我们现在正忙于服务。您是想预订餐位吗?我可以为您提供帮助。

来电者在漏接电话的瞬间即成为联系人(如果其 WhatsApp 个人资料显示姓名,则会使用该姓名),因此消息会像其他消息一样出现在他们的聊天记录中,而已与您有聊天记录的来电者将在原有对话中收到消息。回复将从他们拨打的号码发出。WhatsApp Web 没有 24 小时窗口限制,因此即使他们从未给您发过消息,也可以发送普通消息。

如果您更愿意从特定线路发送,发送消息和发送 WhatsApp Web 消息都有一个发送自字段,列出了您的 WhatsApp Web 号码。设置为自动时,消息将从该人上次交谈的号码发出,对于未接来电,即他们拨打的号码。

如果来电者拨打了您的短信号码,同一个使用来电者联系人 ID 的 发送消息 步骤会回复他们 — 文本将作为来自您已连接的唯一短信号码的短信发出,因此在 发送方 下无需选择任何内容。通话结束后,来电者会被保存为短信联系人,他们的聊天记录中会显示一条 未接语音通话 记录,且他们的回复将由该短信号码的 AI 代理处理。文本通过您自己的 Twilio 账户发送,因此适用您的 Twilio 短信费率。如果一个自动化覆盖了两种类型的号码,${trigger.channel} 会告知您当前处理的是哪种类型 — whatsapp_web 或 sms — 因此对其设置 条件 可以让 WhatsApp 来电者收到与短信来电者不同的措辞。

3. 让您的代理接管。 当呼叫者接听时,对话的处理方式与该号码上的任何新聊天一样:在谁来回答新对话下设置为该号码默认值的代理会进行回复。只有当需要不同的代理处理未接来电时,才在消息前添加分配 AI 代理操作。

适用于 Condition 或消息文本中的有用值:${trigger.contact.first_name}、${trigger.contact.phone_number}、${trigger.channel}(whatsapp_web 或 sms)、${trigger.call.to_number}(他们拨打的号码;若要为每个号码设置一个自动化,请使用触发器的 Number 字段代替条件)、${trigger.call.is_video}、${trigger.call.missed_at} 以及 ${trigger.is_new_contact},对于从未与您聊天过的人,该值为 true,因此您可以以不同于常客的方式问候陌生人。

拨打 WhatsApp Business API 号码的来电不会触发此触发器,拨打通过平台购买的号码或用作 Android 短信网关 的手机的来电也不会触发。来电者仅在开启了“未接来电自动化”的账户中才会被保存为联系人;如果没有开启,未接来电在应用中不会留下任何痕迹。对于短信号码,还有一个额外条件:通过 Twilio 发送短信 卡片上的 未接来电自动回复文本 开关必须处于开启状态,因为该开关负责将号码的来电指向您 Twilio 账户中的 DM Champ。手动为短信号码构建的自动化在该开关关闭时不会生效;请先开启开关,然后再自定义它所创建的自动化。

示例:忽略任何被您标记为垃圾邮件的人

标记一次浪费时间的人,就再也不会收到他们的消息 — 同样的模式也适用于“仅回复标记为 VIP 的人”、“跳过任何标记为客户的人”等等。

1. 启动自动化。 进入 AI Studio → 自动化 → 新建自动化,然后点击画布上的触发器。

2. 选择触发器。 点击 更改触发器,打开 消息传递,然后选择 收到消息。将频道保留为 任何频道,以便涵盖所有对话。

3. 添加检查。 在触发器后添加一个 条件 步骤。在第一个字段中,点击 + 按钮,在搜索框中输入 tag,然后选择 tag_names(位于 联系人 下方,在 收到消息触发器 组中)— 这就是联系人的标签名称。该字段会自动填充为 ${trigger.contact.tag_names}。将比较方式设置为 包含,并在值框中准确输入您命名的标签,例如 spam。

4. 决定后续操作。 在 真 路径上(即联系人确实拥有该标签时运行的路径),添加一个 设置免打扰 操作,这会阻止任何发往他们的出站消息。填写三项内容:使用 + 按钮填写 联系人 ID(插入触发器中的联系人,不要手动输入),将 免打扰 设置为 true,并可选择填写 原因 以供您自己记录。更希望保持对话开启但让 AI 静音?请改用 为联系人开启或关闭 AI,并将 AI 已启用 设置为 false。将 假 路径留空:其他人照常进行。

5. 测试,然后启用。 点击 运行 以使用示例数据触发一次,在 日志 中检查运行情况,然后拨动 已启用 开关。

三件值得了解的事:

  • 区分大小写。 名为 Spam 的标签将无法匹配 spam。如果不确定,请从 设置 → 标签 中复制名称 — 请参阅 创建标签。
  • 选择 tag_names,而不是 tags。 在同一列表中紧挨着它的是 tags,它保存的是内部 ID 代码而不是名称。针对该字段的检查永远无法匹配您输入的单词,因此自动化流程将始终静默地走 假 路径。如果您宁愿输入字段而不是选择它,您需要的是 ${trigger.contact.tag_names}。
  • 它适用于他们的下一条消息。 检查会读取联系人在消息到达那一刻所拥有的标签,因此标记某人不会撤销已发送的消息。如果您希望标签本身作为起点,请使用 联系人已更新 触发器,它会在添加或删除标签的那一刻触发。

示例:使用关键字加入列表(并使用另一个关键字退出)

让用户通过发送一个词(如 JOIN、VIP、OFFERS)来订阅列表,并同样轻松地取消订阅。只需两个小型自动化流程和一个联系人列表,您的广播就能拥有一个自动增长的受众群体。

1. 启动自动化。 进入 AI Studio → 自动化 → 新建自动化,然后点击画布上的触发器。

2. 选择触发器。 点击 Change trigger,打开 Messaging,然后选择 Incoming message。选择关键字适用的渠道(例如 WhatsApp),或者保留为 Any channel。在 Contains text 中输入关键字,例如 JOIN。此处不区分大小写:join、Join 和 JOIN 均可匹配。

3. 将他们添加到列表中。 添加一个 Add contact to list 操作。使用 + 按钮插入 Contact ID(联系人 ID 会随触发器一同提供),并选择用户应加入的列表。如果您还没有列表,请先创建一个(请参阅 列表与联系人管理)。

4. 可选:确认操作。 在此之后添加一个 Send message 操作,以同样的方式插入 Contact ID,并发送类似“您已加入列表!随时回复 STOP 即可退出。”的内容。

5. 测试,然后启用。 点击 运行 以使用示例数据触发一次,在 日志 中检查运行情况,然后拨动 已启用 开关。

6. 构建退出路径。 以同样的方式创建第二个自动化流程:使用相同的触发器,在 Contains text 中填入 STOP,并将操作改为 Remove contact from list。在发送的消息中提及停止词——知道有礼貌的退出方式的用户,通常不会为了退订而屏蔽您的号码。

此后,任何 广播 都可以使用该列表作为受众——包括所有发送过关键字的用户,减去所有后来发送过停止词的用户。正在进行的广播会自动向新加入列表的成员发送消息。

有一点值得注意:Contains text 会匹配消息中的任何位置,因此“joining you tomorrow”也包含 join。请选择一个用户在句子中间不会使用的词,或者在需要精确匹配时使用触发器的 Regex 字段。

示例:当对话窗口关闭时,将 Instagram 或 Facebook 线索转移到 WhatsApp

一种常见的广告漏斗:用户看到您的 Instagram 或 Facebook 广告后私信您的主页,您的 AI 代理会对他们进行资格预审并询问其电话号码。当线索在聊天中输入电话或电子邮件时,AI 会实时自动将其保存到联系人的电话和电子邮件字段中——这部分无需进行任何映射或配置。

无法自动完成的是跳转到 WhatsApp。Instagram 和 Messenger 仅允许在联系人最后一条消息后的 24 小时内发送消息,不支持使用模板重新开启对话,并且 DM Champ 的内置跟进功能始终停留在对话所在的渠道上——因此一旦窗口关闭,这些渠道上的跟进就会被直接跳过(请参阅跟进系统)。此自动化流程利用 AI 捕获的号码为您完成跳转:

1. 启动自动化。 进入 AI Studio → 自动化 → 新建自动化,然后点击画布上的触发器。

2. 选择触发器。 点击 更改触发器,打开 联系人,选择 联系人已更新,并将范围缩小到 电话号码 字段。无论对话在哪个渠道进行,只要 AI 保存了捕获的号码,它就会立即触发。

3. 添加延迟。 设置一个固定的等待时间(例如 24 小时),让对话以及窗口内的任何快速跟进先发挥作用。如果线索在此期间转化,您可以在下一步之前使用 条件 停止运行(检查联系人的 tag_names 是否包含类似 Customer 的标签,模式与示例:忽略任何您标记为垃圾信息的联系人相同)。

4. 发送模板。 添加一个发送 WhatsApp 模板操作,使用 + 按钮插入 联系人 ID,并选择您已批准的模板之一。模板允许开启对话,因此无论潜在客户沉默了多久,此步骤都有效——这正是该步骤的核心目的。您在模板变量中留空的变量将从联系人自己的字段中填充,并且需要连接您的 WhatsApp Business API 渠道。请参阅 WhatsApp 模板 以了解如何创建和批准模板。

5. 测试,然后启用。 点击 运行 以使用示例数据触发一次,在 日志 中检查运行情况,然后拨动 已启用 开关。

当线索回复时,对话将转移到 WhatsApp 上——处于其 24 小时窗口内——您的代理将从那里继续进行。

示例:来自 Shopify 的 WhatsApp 订单确认

当有人在您的 Shopify 商店下单时,立即发送 WhatsApp 模板,并填入他们的姓名和订单号。这需要一个已批准的模板(例如“嗨 {{1}},感谢您的订单 {{2}}!”)以及连接您的 WhatsApp Business API 渠道。

1. 从 Webhook 触发器开始。 创建一个新的自动化流程,选择 Webhook 触发器并复制其网址。在地址末尾添加 ?secret= 和触发器步骤中的密钥,因为 Shopify 无法发送自定义标头。

2. 将 Shopify 指向该地址。 在 Shopify 中转到 设置 > 通知 > Webhooks,创建一个 JSON 格式的订单创建 Webhook,并粘贴该地址。在触发器步骤中,点击监听传入的 Webhook 下的开始监听,下达一个测试订单(或从 Shopify 发送测试通知),并选择捕获的订单作为样本,以便其字段显示在 + 选择器中。

3. 可选:将订单号保存到联系人上。 添加一个创建联系人步骤。将电话号码设置为 ${trigger.phone},名字设置为 ${trigger.customer.first_name},并在自定义字段下,用 ${trigger.name} 填充您的订单号字段(例如 order_id)。如果客户已经是联系人,订单号将保存到现有联系人信息中。

4. 发送模板。 添加一个发送 WhatsApp 模板步骤。准确输入 WhatsApp 模板下显示的模板名称,然后填写发送对象:插入来自“创建联系人”步骤的 联系人 ID,或在电话号码中填入 ${trigger.phone}。在模板变量下,填写输入框:

  • {{1}}(客户姓名):${trigger.customer.first_name}
  • {{2}}(订单号):${trigger.name},即 Shopify 的订单名称,例如 #1001

使用订单本身的电话号码 ${trigger.phone},并采用国际格式。客户的电话字段 ${trigger.customer.phone} 在 Shopify 订单上通常为空,而没有号码的发送会失败。

5. 测试它。 使用捕获的样本点击运行,在日志中打开运行记录,并检查消息是否已发送,且其中包含姓名和订单号。

然后开启自动化流程。在关闭状态下,Shopify 的 Webhook 仍然会被接收并显示在监听传入的 Webhook 下,但不会发送任何消息。

废弃结账提醒: Shopify 没有废弃购物车 Webhook。请使用 Shopify 的 结账更新 Webhook 进行相同的设置,添加一个延迟,然后对第二个自动化流程(在订单创建时触发)赋予的标签设置条件,这样提醒只会发送给未下单的用户。

示例:针对网站聊天潜在客户的电子邮件跟进

某人在网站上与您的代理聊天,留下了姓名和电子邮件,但在预订前离开了。您希望在接下来的几天内通过电子邮件跟进——并在他们说已预订时立即停止。可以通过两个自动化流程实现;两者都使用您已连接的 Email 渠道,因此回复会进入 聊天,并由您的电子邮件代理处理。

开始之前。 在 聊天小部件 上开启 收集访客信息,以便每位访客都能留下姓名和电子邮件。连接 Email 渠道,并在 标签 选项卡上为其代理设置标签规则,例如 已预订 — 当对方表示已预订或安排好会话时应用 (AI 代理 → 标签)。该标签即为关闭开关。

自动化 1 — 将潜在客户移至电子邮件。

  1. 触发 收到消息,限定为 网站聊天 渠道,并在 自动化设置 中关闭 允许重新进入,这样每位访客在首次发送消息时只会经历一次该流程。(不要使用 新联系人:触发“联系人已创建”后紧跟 创建联系人 步骤是编辑器禁止的自触发模式——请参阅 会触发自身的自动化。)
  2. 对联系人的 电子邮件 设置 条件 — 不包含 unknown@ — 这样未留下地址的访客会在此处结束,而不会导致下一步失败。
  3. 设置一个 延迟(例如一小时),以便网站对话先结束。
  4. 创建联系人,并将 渠道 设置为 Email。使用 + 按钮 (${trigger.contact.email}) 插入访客的 电子邮件,并以同样方式插入其名和姓。电话号码留空。如果该地址已是电子邮件联系人,该步骤将直接返回该联系人。
  5. 发送消息,并插入来自“创建联系人”步骤的 联系人 ID。此消息将作为来自您已连接收件箱的电子邮件发送——例如第一次跟进:“您是否已成功预订您的会话?”。主动发送的电子邮件没有之前的消息可回复,因此其主题为 来自…的消息 后跟您收件箱的发件人名称;回复将保持该主题。

自动化 2 — 针对电子邮件联系人的跟进序列。

  1. 触发 新联系人,限定为 Email 渠道。它会在自动化 1 创建电子邮件联系人时立即触发(对于直接给您发邮件的人也会触发——如果您只想针对网站潜在客户,请在标签或联系人详细信息上添加 条件)。
  2. 延迟两天。
  3. 通过联系人的 电子邮件(从触发器中插入)查找联系人,限定为 Email 渠道,以便检查时读取的是联系人当前的标签,而不是运行开始时的标签。
  4. 条件:找到的联系人的 tag_names 包含 Booked。将 真 路径留空——这会为已预订的任何人结束运行。
  5. 在 假 路径上,发送消息 给联系人进行第二次跟进,然后再次设置 延迟、查找联系人、条件 和 发送消息,重复您想要的次数。最后使用 设置联系人标签,例如 Sequence complete,以便您查看谁完成了整个流程。

当潜在客户回复任何电子邮件时,对话已存在于电子邮件联系人的 聊天 中,电子邮件代理会进行回复。如果回复中提到已预订,代理的标签规则会添加“已预订”,下一轮的条件判断将结束该序列。在自动化 2 中保持 在回复时停止 为关闭状态:否则它会在任何回复时结束序列,包括“还没预订”。

有两点值得注意。网站聊天和电子邮件对话是共享一个地址的两个联系人,而不是一个合并的线程——小部件聊天保留在网站联系人上,电子邮件存在于电子邮件联系人上。此外,每个渠道对应一个联系人,因此如果同一个人先给您发邮件,自动化 1 的“创建联系人”步骤将返回现有的电子邮件联系人,而不是创建第二个。

示例:夜间使用 AI,白天由团队处理

有些团队采用倒班制:AI 代理负责处理傍晚和夜间,而真人团队在早上接手。将代理的 活跃时间 设置为夜班,这只是工作的一半——白天收到的消息会在 AI 的工作时间开始时由其回复,在此期间,这些消息会显示在“聊天”界面的 非工作时间 过滤器下。

另一半工作是实现早晨自动交接,这样 AI 在晚上 9 点开启的聊天,就不会在客户早上 10 点回复时一直等到第二天晚上 9 点。通过两个小型自动化流程即可实现——第一个在收到白天消息时暂停任何聊天中的 AI,第二个在傍晚将所有权限交还给 AI:

自动化流程 1 — 将白天的聊天转交给您的团队。

  1. AI Studio → 自动化 → 新建自动化。 触发器已默认为收到消息;保留为全账户范围或将其缩小到一个坐席。
  2. 在自动化设置(右上角的齿轮图标)中,开启仅在这些时间段内运行并设置您团队的工作日——例如 08:00 到 20:45——以及您的时区(请参阅 仅在特定时间段内运行)。
  3. 添加一个为联系人开启或关闭 AI 操作:使用 + 按钮插入联系人 ID,将 AI 已启用设置为 false。
  4. 添加一个设置联系人标签操作,使用类似 day-shift 的标签,以便晚间自动化可以再次找到这些聊天。

现在,任何在白天收到的消息都会立即暂停该对话中的 AI:聊天会出现在您的 AI 已暂停 过滤器下,您的团队可以从那里进行回复。手动回复也会取消该聊天中 AI 排队的回复,因此当 AI 的工作时间开始时,它不会再次介入。

自动化流程 2 — 在傍晚将聊天交还给 AI。

  1. 新建一个使用 按计划 触发器的自动化流程,设置为 AI 工作时间开始前几分钟——例如对于晚上 9 点开始,使用 cron 表达式 50 20 * * * 并设置相同的时区。
  2. 添加 查找联系人 操作,过滤条件为 带有标签 day-shift。
  3. 对结果添加 循环,其中包含两个步骤:开启或关闭联系人的 AI,将 AI 已启用 设为 true,然后 移除联系人标签 day-shift。

您的团队在白天处理完的聊天会在夜间交回给 AI,而无人处理的白天聊天也会在代理工作时间开始的瞬间获得排队的 AI 回复——确保没有任何消息被遗漏。

在画布的工具栏中,运行 (Run) 使用样本数据触发一次自动化,而不会针对真实联系人启用——这是检查其是否有效的一种安全方式。重放 (Replay) 使用你上次运行的真实数据重新运行它。日志 (Log) 打开运行历史记录,以便你可以查看过去的所有运行情况,以及它们是成功、失败还是仍在进行中。

取消运行。 仍在进行中的运行(包括正在等待 延迟 (Delay) 或处于静默时间的运行)可以手动停止:在运行历史记录中点击该行上的 取消 (Cancel),或者打开该运行并点击 取消运行 (Cancel run),然后确认。运行将立即停止并显示为 已取消 (Cancelled)。尚未执行的步骤将不会运行,因此不会再发送任何内容;已执行的步骤不会被撤销。仅该次运行受到影响:自动化对其他人保持开启状态。

以下三点有助于您在联系人发现之前捕捉到错误:

  • 缺少必要信息的步骤将无法启动。 标记为必填的字段会在运行前以及 启用 开关切换前进行检查:如果一个 发送消息 步骤缺少联系人 ID,您将收到一条指明该步骤和字段的消息,而不是让运行静默失败。填写完整后,开关即可正常工作。暂停操作不受此限制。
  • 无法解析的变量会进行报告。 如果您步骤中的某个 ${…} 值未找到对应内容(例如字段名称拼写错误,或触发器实际上并未携带该数据),步骤仍会运行,但该部分会留空,且运行详情中会显示一行 警告,明确指出哪些内容为空。这通常就是“为什么我的消息里有缺失内容”的答案。
  • 选择了另一分支的运行会有相应提示。 运行结束后,画布上的运行面板会列出其通过的每个条件及其所走的分支(是或否),并统计未运行的步骤。条件回答为否的运行仍会以成功结束,因此您可以在此处看到是路径上的步骤已被跳过。
  • 被拒绝的步骤会显示为失败,并附带原因。 被应用拒绝的步骤(例如重复的联系人、不存在的阶段、未获批准的模板)会被标记为失败并显示拒绝原因,而不是显示一个空洞的绿色勾选标记。

对于以 Webhook 触发器开头的自动化,运行历史记录还会提醒你那些未转化为运行的调用:如果某些内容一直在调用你的 Webhook 但缺少密钥或密钥错误,顶部的横幅会统计这些被拒绝的请求,并提醒你需要修复的内容——调用者需要从触发器步骤发送密钥,要么作为 X-Webhook-Secret 标头,要么作为 URL 末尾的 ?secret=。以前,这些调用只是被直接拒绝且没有任何显示,这使得配置错误的调用者看起来就像自动化从未触发过一样。

示例:每天早晨发送生日祝福

在联系人生日当天向其发送消息。您需要一个包含生日的 日期 自定义字段(年份可以是任意值,仅使用月份和日期)。

  1. AI Studio → 自动化 → 新建自动化,使用 按计划 触发器,设置为 0 9 * * *(每天上午 9 点),并选择您的时区。
  2. 添加 查找联系人 操作。在 高级筛选器 下,添加规则 生日,周年纪念日在未来 N 天内,0(仅限今天)。将 数量 设置为 1000:默认值为 50,只有它查看的联系人才能匹配。
  3. 添加一个 循环,并使用 + 按钮,选择来自 查找联系人 步骤的联系人列表作为要遍历的列表。
  4. 在循环的 主体 句柄上,添加一个 发送消息 步骤。对于 联系人 ID,使用 + 按钮插入循环项的 ID(当循环被调用时,它显示为 ${nodes.loop_1.item.id},即 loop_1)。消息也可以用同样的方式通过项的 first_name 来称呼他们的名字。

这就是整个自动化流程:不需要“条件”或“转换”步骤,因为 查找联系人 已经只返回今天的生日联系人。在没有生日的日子里,循环运行零次,运行状态仍显示为成功。

生日规则以 UTC 时间计算天数。对于早晨的运行,这在几乎所有地方都没问题;如果您所在的时区比 UTC 快 9 小时以上,请在当天晚些时候运行(悉尼上午 11 点之后,新西兰下午 1 点之后),这样您的日期和 UTC 日期就是同一天。

开启自动化

使用 已启用 (Enabled) 开关使其生效(它会先保存您的草稿)——从那时起,每当触发条件满足时,它就会真正触发。您可以随时将其切回 已暂停 (Paused) 以停止它,而不会丢失您的工作。暂停会阻止新的运行开始;已经在等待 延迟 (Delay) 或静默时间的运行仍会完成。要停止这些运行,请点击 日志 (Log) 并在运行历史记录中对该行使用 取消 (Cancel)。自动化必须先暂停才能删除。

会自动触发的自动化流程

有些流程可能会触发其自身的触发器。最典型的情况是:一个以 Task created(任务已创建)开始并包含 Create task(创建任务)步骤的自动化。新任务会再次触发该触发器,从而创建另一个任务,如此循环往复,大约每秒运行一次,每次都会消耗积分。同样的情况也可能发生在 Contact created(联系人已创建)加上 Create contact(创建联系人)、Appointment booked(预约已预订)加上 Create appointment(创建预约),或者 Deal created(交易已创建)加上 Create deal(创建交易)的情况下。

有三道防线可以捕获此问题:

  • 编辑器会直接提示您。 一旦流程出现这种结构,画布上方会出现一个红色横幅,标明该步骤及修复方法,该步骤会被标记为红色,并且 Enabled(已启用)开关以及 Run(运行)和 Replay(重放)按钮将保持关闭状态,直到问题得到修复。您可以继续编辑和保存已暂停的自动化;如果自动化已处于开启状态,则在您暂停或修复该步骤之前,更改将无法保存。可能会导致自身重新触发的流程(例如,一个 Contact updated(联系人已更新)触发器配合一个会更改联系人的步骤——如编辑详细信息、标签、列表或自定义字段,将其分配给团队成员,开启或关闭其 AI,设置“请勿打扰”或将其移交给另一个 AI 代理)会收到一个黄色警告,但这不会阻止任何操作:请为触发器选择一个要监视的字段,以便它仅在您关心的更改发生时启动。Deal stage changed(交易阶段已更改)触发器配合 Move deal stage(移动交易阶段)步骤,以及 Tag applied(标签已应用)或 Tag removed(标签已移除)触发器配合 Set contact tag(设置联系人标签)或 Remove contact tag(移除联系人标签)步骤,也会收到同样的黄色警告:这些都是正常的流程(“当达到‘赢单’阶段时,为他们打上标签”),直到该步骤回写了触发器正在监视的内容,因此我们会发出提示并将选择权留给您。
  • AI 构建器会拒绝明显的循环结构。 如果您描述的流程中,“某物已创建”触发器后面紧跟着一个创建同类事物的步骤,构建器将不会生成该流程,并会告知您需要更改哪个步骤。当您想要更改触发运行的那个对象(例如为刚创建的任务设置截止日期,或为刚录入的联系人打标签)时,请使用触发器 ID 对应的 Update(更新)步骤:使用 ${trigger.task.id} 进行 Update task(更新任务),使用 ${trigger.contact.id} 进行 Update contact(更新联系人)。更新操作不会重新触发“已创建”类型的触发器。
  • 失控的自动化会自动关闭。 如果一个自动化连续几分钟内每分钟运行超过 30 次,它会被自动暂停,并在历史记录中显示一次失败的运行,说明原因。具有上述自循环结构的自动化会被更快地停止,即在一分钟内运行 10 次后停止。正常的突发流量是没问题的:将 300 个联系人导入到 Contact created(联系人已创建)自动化中,会在一分钟内触发 300 次运行,然后就会安静下来,这不属于循环。您从工具栏自行启动的测试运行永远不会被计入。

自动化的费用

每次自动化运行都会消耗 0.25 个积分,无论是什么启动了它——是触发器实际触发,还是您自己按下运行或重播。0.25 个积分在运行开始时扣除,因此即使是条件步骤在第一个分支就停止的运行,也算作一次运行并同样消耗 0.25 个积分。您可以构建任意数量步骤的自动化,无需额外费用;唯一增加价格的步骤是 AI 步骤,每次运行时会额外消耗 0.25 个积分。AI 步骤始终在 Max 模型上运行,无论您的代理使用什么模型,因此将代理切换到 Mini 不会改变自动化的成本。如果您的余额用尽,运行会在运行历史记录中以明确的“积分不足”消息失败,一旦您充值,新的运行将再次正常进行。

在 Champions Circle 内部费率下,两项费用均降低了 20%:运行开始时为 0.20 积分,每个 AI 步骤为 0.20 积分。

来自 Account API(账户 API)部分的步骤,其计费方式与直接调用该 API 的费用完全相同。大多数端点完全免费,而那些为您运行 AI 的端点(例如对话摘要)则按 API 收取的费用计费。除此之外,不会有额外的每步骤费用。

运行费用始终从保存该自动化的账户中扣除。通过子账户 ID 字段将步骤指向您的某个子账户并不会转移账单——运行费用仍由您的工作区承担,而该步骤在子账户内触发的任何操作(例如对未暂停的聊天进行 AI 回复)则照常计入该子账户。如果您希望由客户自己的余额来支付运行费用,请直接在他们的账户中构建自动化。

使用您自己的 Anthropic 密钥 (BYOK)? 自动化任务无论如何都会按积分计费。AI 步骤运行在我们内置的自动化 AI 上,而不是使用您的密钥,因此它始终像每次自动化运行固定消耗 0.25 积分一样,每次运行消耗 0.25 积分。您的密钥将继续像往常一样涵盖您智能体的回复;两者互不影响。

自动化与入口点 (Entry Points) 的区别

它们听起来相似,但解决的是不同的问题:

  • 入口点 仅执行一件事——匹配事件并将对话移交给代理。没有延迟、条件或分支。
  • 自动化 是完整的工作流工具——包含跨联系人、交易、任务和外部集成的多个步骤、条件、延迟和操作,而不仅仅是对话移交。

如果你只需要“将此对话路由给该代理”,请使用入口点。如果你需要一系列步骤或超出此范围的逻辑,请构建自动化。


将自动化复制到客户账户

如果您管理客户账户,您可以将在自己的账户上完善的自动化流程复制到任何客户账户中。在自动化列表页面,点击自动化流程所在行的 复制到客户账户 按钮(两个箭头的图标),勾选要复制到的客户账户,然后点击 复制到。该按钮位于 复制 按钮旁边,仅在代理商账户中显示。

“复制自动化流程到客户账户”窗口,显示正在复制的自动化流程、关于副本将以暂停状态到达的提示、搜索框以及已勾选的一个客户账户,并带有“取消”和“复制到 1 个账户”按钮

勾选客户账户并点击 复制到。该窗口会提醒您,复制后的流程将以暂停状态到达,且列表、日历、已连接的应用和已保存的密钥需要由客户自行填写。

复制后的自动化流程将保留原有的名称、触发器和每一个步骤。在客户账户中,有两点会有意地进行调整:

  • 它会以暂停状态到达。 在有人于客户账户中打开它、检查无误并将其切换为 已启用 之前,不会运行任何内容。
  • 任何指向您账户的内容都会被清除,因为这些 ID 在他人的账户中没有意义:包括步骤所指向的客户账户、选择的智能列表、选择的日历事件以及选择的数据库连接。复制完成后,请使用客户自己的信息填充这些内容——步骤本身保持不变。

如果某个步骤或触发器指向了您的某个 AI 智能体,复制后的流程会自动尝试指向客户对应的智能体。当客户的智能体来自同一个快照,或者从您的同一个智能体复制而来时,此功能有效——我们知道两者是相同的设置,因此链接会自动重新建立。如果没有匹配项,复制后的流程会告知您无法定位的智能体;请在客户账户中打开该自动化流程,选择相应的智能体,然后将其开启。


同时处理多个自动化

自动化列表中的每一行都有一个复选框,标题复选框会选中当前显示的所有内容。选中自动化后,屏幕底部的栏会提供 启用 (Enable)、暂停 (Pause) 和 删除 (Delete) 选项——每个选项都会先要求你确认,删除操作还会移除自动化的运行历史记录。按 Escape 键可清除选择。


后续步骤

  • 入口点 — 用于将对话转交给坐席的更简单的路由工具。
  • AI 坐席 — 自动化或入口点可以路由到的角色。
  • 广播 — 向联系人列表发送一次性或持续的消息。
  • 预约系统 — 设置自动化可以提醒、预订、移动或取消的预约。
  • WhatsApp 模板 — 在 WhatsApp 的 24 小时窗口之外向某人发送消息时需要用到。