参考活动
节点类型
画布调色板中可以添加到活动的节点类型共有十三种:两种触发器、四种逻辑节点、一种消息节点、四种评论操作,以及两种联系人操作。每种类型都有自己的配置键和固定数量的输出,这两点共同决定了执行记录到达该节点时会做什么,以及接下来去往哪里。运行时存在但没有调色板图块的节点类型,列在 活动图模式 中。
| 节点类型 | 类别 | 输出 | 所需配置 | 作用 |
|---|---|---|---|---|
trigger_comment | 触发 | 1 | post_scope 为 specific 时需要 post_id | 当有人评论主页时启动活动 |
trigger_dm | 触发 | 1 | 无 | 当有人向主页发送私信时启动活动 |
condition | 逻辑 | 2(Match / No Match) | match_type,以及读取它们的匹配类型所需的 text 或 keyword_list_id | 匹配消息文本并选择分支,或将执行记录停留直到回复到达 |
send_dm | 消息 | 1,外加每个 postback 按钮各一个 | message_type 及该类型读取的键 | 发送一条私信:文本、图片、卡片,或带按钮的文本 |
reply_comment | 评论 | 1 | text | 在启动执行记录的评论下方公开回复 |
send_comment | 评论 | 1 | text、post_id | 在指定的帖子上发布一条新评论 |
hide_comment | 评论 | 1 | 无 | 隐藏启动执行记录的评论 |
delete_comment | 评论 | 1 | 无 | 删除启动执行记录的评论 |
delay | 逻辑 | 1 | 无 | 暂停执行记录并稍后继续 |
random_split | 逻辑 | 每个分支一个 | paths | 随机选择一个分支发送每次执行记录 |
add_tag | 联系人 | 1 | tag_ids | 为联系人添加标签 |
remove_tag | 联系人 | 1 | tag_ids | 从联系人移除标签 |
stop | 逻辑 | 0 | 无 | 结束执行记录 |
trigger_comment
Section titled “trigger_comment”- 类别: 触发
- 输出: 1,且只能连接到一个
condition - 所需配置:
post_scope为specific时需要post_id
| 键 | 类型 | 设置内容 |
|---|---|---|
post_scope | string | all 或 specific。缺少该键则按 all 处理。 |
post_id | string | specific 范围监听的帖子。设置面板会提供已连接主页的帖子供选择。 |
unique_per_user | boolean | 开启下文描述的每人一次限制。 |
当已连接主页上出现一条评论时启动一次执行记录。当 post_scope 设置为 specific 时,只有 post_id 指定帖子上的评论会启动活动;主页上的其他所有评论都会被忽略。
unique_per_user 将活动限制为每人只能有一次执行记录。
{ "post_scope": "specific", "post_id": "104857392017465_998234511", "unique_per_user": true}trigger_dm
Section titled “trigger_dm”- 类别: 触发
- 输出: 1,且只能连接到一个
condition - 所需配置: 无
| 键 | 类型 | 设置内容 |
|---|---|---|
unique_per_user | boolean | 开启下文描述的每人一次限制。 |
当有人向已连接主页发送私信时启动一次执行记录。这里没有 post_scope 键,因为私信不附属于任何帖子。触发器为 trigger_dm 的活动中,评论操作不可用。
unique_per_user 与 trigger_comment 上的设置相同,将活动限制为每人只能有一次执行记录。
{ "unique_per_user": false}condition
Section titled “condition”- 类别: 逻辑
- 输出: 2——output 0 是 Match,output 1 是 No Match
- 所需配置:
match_type,以及读取它们的匹配类型所需的text或keyword_list_id
| 键 | 类型 | 设置内容 |
|---|---|---|
match_type | string | any、contains、exact 或 keyword_list。决定比较方式以及下方哪些键会被读取。 |
text | string | contains 和 exact 所比较的文本。 |
keyword_list_id | number | keyword_list 所比较的已保存关键词列表。 |
reverse_keywords | boolean | 反转 keyword_list 比较的结果。 |
wait_for_reply | boolean | 将执行记录停留在此节点,而不是评估到达它的消息。 |
filter_images | boolean | 对传入消息的媒体过滤器。 |
filter_gifs | boolean | 对传入消息的媒体过滤器。 |
filter_links | boolean | 对传入消息的媒体过滤器。 |
评估消息并将执行记录沿 Match 或 No Match 输出发送。关键词匹配规则 介绍了每种匹配类型比较什么,以及产生哪个输出。
wait_for_reply 会将执行记录停留在此节点,而不是立即评估,并一直停留到那个人回复为止。执行状态 介绍了一次停留的执行记录能存活多久,以及是什么唤醒它。
媒体过滤器是同一节点上的独立设置,不参与关键词比较。用关键词列表匹配评论 介绍了如何构建 keyword_list_id 指向的列表。
{ "match_type": "keyword_list", "keyword_list_id": 41, "reverse_keywords": false, "wait_for_reply": true}send_dm
Section titled “send_dm”- 类别: 消息
- 输出: 1,外加每个
postback按钮各一个额外输出 - 所需配置:
message_type及该类型读取的键
| 键 | 类型 | 设置内容 |
|---|---|---|
message_type | string | text、image、card 或 text_with_buttons。决定下方哪些键会被读取。 |
text | string | 消息文本。 |
image_url | string | image 消息的图片,以及 card 上的图片。 |
title | string | card 上的标题。 |
subtitle | string | card 上的第二行文字。 |
buttons | array | 卡片或按钮消息上的按钮。每个条目携带一个 id、一个 web_url 或 postback 类型的 type、一个 title,以及 web_url 按钮的 url。 |
buttons_text | string | 用于 text_with_buttons 消息,每行一个按钮标签。每一行都会成为一个 postback 按钮,其负载即为该标签。 |
向执行记录所针对的人发送一条私信。message_type 决定读取哪些键:纯文本消息读取 text,图片读取 image_url,卡片读取 title、subtitle 和 image_url,带按钮的文本读取 buttons_text。
text、title 和 subtitle 中的发件人姓名变量会在发送消息之前被替换。
一个 postback 按钮会为该节点增加一个自己的输出,所以执行记录可以根据那个人按下的按钮走向不同的分支。
没有任何配置的节点不会发送任何内容,执行记录会继续前往下一个节点。
{ "message_type": "text_with_buttons", "text": "Thanks for commenting. Which size do you want?", "buttons_text": "Small\nMedium\nLarge"}reply_comment
Section titled “reply_comment”- 类别: 评论
- 输出: 1
- 所需配置:
text
| 键 | 类型 | 设置内容 |
|---|---|---|
text | string | 发布在触发评论下方的回复。 |
在启动执行记录的评论下方发布一条公开回复。text 中的发件人姓名变量会在回复发布之前被替换。
该节点在由 trigger_dm 触发的活动中不可用,且画布拒绝将其放在 delete_comment 的下游。
{ "text": "Sent you the price list in a DM."}send_comment
Section titled “send_comment”- 类别: 评论
- 输出: 1
- 所需配置:
text、post_id
| 键 | 类型 | 设置内容 |
|---|---|---|
text | string | 发布在指定帖子上的评论。 |
post_id | string | 发布该评论的帖子。 |
在 post_id 指定的帖子上发布一条新的顶级评论。它不会回退到执行记录来源的帖子:没有 post_id 时,该节点什么都不做,执行记录继续前往下一个节点。
该节点在由 trigger_dm 触发的活动中不可用。
{ "text": "Restocked today — sizes S to XL are back.", "post_id": "104857392017465_998234511"}hide_comment
Section titled “hide_comment”- 类别: 评论
- 输出: 1
- 所需配置: 无
| 键 | 类型 | 设置内容 |
|---|---|---|
also_block_user | boolean | 在同一步骤中屏蔽评论作者。仅限 Facebook。 |
隐藏启动执行记录的评论。
also_block_user 会在同一步骤中屏蔽评论作者,且仅在 Facebook 上有效——该选项在 Instagram 活动上被禁用。
delete_comment
Section titled “delete_comment”- 类别: 评论
- 输出: 1
- 所需配置: 无
| 键 | 类型 | 设置内容 |
|---|---|---|
also_block_user | boolean | 在同一步骤中屏蔽评论作者。仅限 Facebook。 |
删除启动执行记录的评论。also_block_user 仅在 Facebook 上有效,与 hide_comment 上相同。
在该节点的下游,画布会拒绝 reply_comment 和 hide_comment,因为这些节点本应操作的评论已经不存在。
- 类别: 逻辑
- 输出: 1
- 所需配置: 无
| 键 | 类型 | 设置内容 |
|---|---|---|
delay_seconds | number | 执行记录等待的时长,范围为 1 到 31536000 秒。 |
only_if_no_reply | boolean | 如果那个人在等待期间已经回复,则取消执行记录的其余部分。 |
暂停执行记录并调度它稍后继续。delay_seconds 被限制在 1 到 31536000 秒(365 天)之间,超出该范围的值会被裁剪而不报错。未配置数值的节点默认等待 60 秒。
only_if_no_reply 会在等待结束时被检查:如果那个人在此期间的任何时候回复过,执行记录就会在该延迟节点结束,而不是继续沿分支走下去。
{ "delay_seconds": 3600, "only_if_no_reply": true}random_split
Section titled “random_split”- 类别: 逻辑
- 输出:
paths中每个条目对应一个 - 所需配置:
paths
| 键 | 类型 | 设置内容 |
|---|---|---|
paths | array | 每个输出对应一个 { "percent": number } 条目。每个百分比为 0 到 100,总和不能超过 100。 |
在分支之间分流:每次执行记录都会随机选择一个分支。在画布中为每个分支设置一个百分比;每个百分比为 0 到 100,总和不能超过 100。
请将这些百分比理解为你要求的分配比例,而不是有保证的比率,在依赖它处理任何重要事务之前,先在过往的执行记录中确认实际分布情况。
未配置任何百分比时,该节点会回退为两个相等的分支。
被选中的分支决定执行记录沿哪个输出走。如果该输出没有连接,执行记录就会在此节点结束。
{ "paths": [{ "percent": 70 }, { "percent": 30 }]}add_tag
Section titled “add_tag”- 类别: 联系人
- 输出: 1
- 所需配置:
tag_ids
| 键 | 类型 | 设置内容 |
|---|---|---|
tag_ids | array | 要添加的标签的数字标识符。 |
将指定的 标签 添加到执行记录所针对的联系人身上,与该联系人已有的标签共存。
当执行记录背后没有联系人时,该节点不会做任何改变,执行记录会继续前往下一个节点。
{ "tag_ids": [12, 19]}remove_tag
Section titled “remove_tag”- 类别: 联系人
- 输出: 1
- 所需配置:
tag_ids
| 键 | 类型 | 设置内容 |
|---|---|---|
tag_ids | array | 要移除的标签的数字标识符。 |
从执行记录所针对的联系人身上移除指定的标签,并保留该联系人的其他标签不变。联系人字段 列出了联系人记录的其余部分。
当执行记录背后没有联系人时,该节点不会做任何改变,执行记录会继续前往下一个节点。
{ "tag_ids": [19]}- 类别: 逻辑
- 输出: 0
- 所需配置: 无
一旦到达该节点就立即结束执行记录,并记录该流程已被停止。该节点没有输出,所以之后不能连接任何内容。
调色板之外的节点类型
Section titled “调色板之外的节点类型”运行时中还存在另外八种节点类型,它们没有调色板图块和设置面板,永远不会出现在画布构建的活动中。活动图模式 列出了它们的名称,并说明执行记录在每一种上会做什么。请将它们视为仅存在于运行时,而不是产品功能。
- 输出从 0 开始编号。
condition用 0 表示 Match、1 表示 No Match,random_split按配置顺序为每个分支使用一个编号,其他所有节点都从 0 继续。 - 执行记录会沿该节点选中的输出所连接的连接前进。当该输出没有连接时,执行记录会在该节点结束。
- 一个操作引发错误的节点,会将该错误记录到执行记录上且不会前进,所以执行记录不会超过该节点。
- 到达一个已经访问过的节点的执行记录,会以指出该节点的循环错误结束。每个节点在每次执行记录中最多运行一次。
- 运行时无法识别的节点类型会被跳过并发出警告,执行记录从 output 0 继续。
- 没有评论可以操作的评论操作什么都不做,执行记录继续。
- 调色板图块按活动的平台过滤,所以 Instagram 活动的调色板提供的节点类型可能比 Facebook 活动的更少。
- 哪些节点类型可以跟随哪些节点,是在拖拽连接时强制执行的,而不是在保存活动时。活动图模式 列出了这些约束。
- 在测试执行中,
add_tag和remove_tag会记录它们本应做的操作,但不改变联系人,而delay会结束测试执行,而不是调度一次恢复。