跳转到内容

画布调色板中可以添加到活动的节点类型共有十三种:两种触发器、四种逻辑节点、一种消息节点、四种评论操作,以及两种联系人操作。每种类型都有自己的配置键和固定数量的输出,这两点共同决定了执行记录到达该节点时会做什么,以及接下来去往哪里。运行时存在但没有调色板图块的节点类型,列在 活动图模式 中。

节点类型类别输出所需配置作用
trigger_comment触发1post_scopespecific 时需要 post_id当有人评论主页时启动活动
trigger_dm触发1当有人向主页发送私信时启动活动
condition逻辑2(Match / No Match)match_type,以及读取它们的匹配类型所需的 textkeyword_list_id匹配消息文本并选择分支,或将执行记录停留直到回复到达
send_dm消息1,外加每个 postback 按钮各一个message_type 及该类型读取的键发送一条私信:文本、图片、卡片,或带按钮的文本
reply_comment评论1text在启动执行记录的评论下方公开回复
send_comment评论1textpost_id在指定的帖子上发布一条新评论
hide_comment评论1隐藏启动执行记录的评论
delete_comment评论1删除启动执行记录的评论
delay逻辑1暂停执行记录并稍后继续
random_split逻辑每个分支一个paths随机选择一个分支发送每次执行记录
add_tag联系人1tag_ids为联系人添加标签
remove_tag联系人1tag_ids从联系人移除标签
stop逻辑0结束执行记录
  • 类别: 触发
  • 输出: 1,且只能连接到一个 condition
  • 所需配置: post_scopespecific 时需要 post_id
类型设置内容
post_scopestringallspecific。缺少该键则按 all 处理。
post_idstringspecific 范围监听的帖子。设置面板会提供已连接主页的帖子供选择。
unique_per_userboolean开启下文描述的每人一次限制。

当已连接主页上出现一条评论时启动一次执行记录。当 post_scope 设置为 specific 时,只有 post_id 指定帖子上的评论会启动活动;主页上的其他所有评论都会被忽略。

unique_per_user 将活动限制为每人只能有一次执行记录。

{
"post_scope": "specific",
"post_id": "104857392017465_998234511",
"unique_per_user": true
}
  • 类别: 触发
  • 输出: 1,且只能连接到一个 condition
  • 所需配置:
类型设置内容
unique_per_userboolean开启下文描述的每人一次限制。

当有人向已连接主页发送私信时启动一次执行记录。这里没有 post_scope 键,因为私信不附属于任何帖子。触发器为 trigger_dm 的活动中,评论操作不可用。

unique_per_usertrigger_comment 上的设置相同,将活动限制为每人只能有一次执行记录。

{
"unique_per_user": false
}
  • 类别: 逻辑
  • 输出: 2——output 0 是 Match,output 1 是 No Match
  • 所需配置: match_type,以及读取它们的匹配类型所需的 textkeyword_list_id
类型设置内容
match_typestringanycontainsexactkeyword_list。决定比较方式以及下方哪些键会被读取。
textstringcontainsexact 所比较的文本。
keyword_list_idnumberkeyword_list 所比较的已保存关键词列表。
reverse_keywordsboolean反转 keyword_list 比较的结果。
wait_for_replyboolean将执行记录停留在此节点,而不是评估到达它的消息。
filter_imagesboolean对传入消息的媒体过滤器。
filter_gifsboolean对传入消息的媒体过滤器。
filter_linksboolean对传入消息的媒体过滤器。

评估消息并将执行记录沿 Match 或 No Match 输出发送。关键词匹配规则 介绍了每种匹配类型比较什么,以及产生哪个输出。

wait_for_reply 会将执行记录停留在此节点,而不是立即评估,并一直停留到那个人回复为止。执行状态 介绍了一次停留的执行记录能存活多久,以及是什么唤醒它。

媒体过滤器是同一节点上的独立设置,不参与关键词比较。用关键词列表匹配评论 介绍了如何构建 keyword_list_id 指向的列表。

{
"match_type": "keyword_list",
"keyword_list_id": 41,
"reverse_keywords": false,
"wait_for_reply": true
}
  • 类别: 消息
  • 输出: 1,外加每个 postback 按钮各一个额外输出
  • 所需配置: message_type 及该类型读取的键
类型设置内容
message_typestringtextimagecardtext_with_buttons。决定下方哪些键会被读取。
textstring消息文本。
image_urlstringimage 消息的图片,以及 card 上的图片。
titlestringcard 上的标题。
subtitlestringcard 上的第二行文字。
buttonsarray卡片或按钮消息上的按钮。每个条目携带一个 id、一个 web_urlpostback 类型的 type、一个 title,以及 web_url 按钮的 url
buttons_textstring用于 text_with_buttons 消息,每行一个按钮标签。每一行都会成为一个 postback 按钮,其负载即为该标签。

向执行记录所针对的人发送一条私信。message_type 决定读取哪些键:纯文本消息读取 text,图片读取 image_url,卡片读取 titlesubtitleimage_url,带按钮的文本读取 buttons_text

texttitlesubtitle 中的发件人姓名变量会在发送消息之前被替换。

一个 postback 按钮会为该节点增加一个自己的输出,所以执行记录可以根据那个人按下的按钮走向不同的分支。

没有任何配置的节点不会发送任何内容,执行记录会继续前往下一个节点。

{
"message_type": "text_with_buttons",
"text": "Thanks for commenting. Which size do you want?",
"buttons_text": "Small\nMedium\nLarge"
}
  • 类别: 评论
  • 输出: 1
  • 所需配置: text
类型设置内容
textstring发布在触发评论下方的回复。

在启动执行记录的评论下方发布一条公开回复。text 中的发件人姓名变量会在回复发布之前被替换。

该节点在由 trigger_dm 触发的活动中不可用,且画布拒绝将其放在 delete_comment 的下游。

{
"text": "Sent you the price list in a DM."
}
  • 类别: 评论
  • 输出: 1
  • 所需配置: textpost_id
类型设置内容
textstring发布在指定帖子上的评论。
post_idstring发布该评论的帖子。

post_id 指定的帖子上发布一条新的顶级评论。它不会回退到执行记录来源的帖子:没有 post_id 时,该节点什么都不做,执行记录继续前往下一个节点。

该节点在由 trigger_dm 触发的活动中不可用。

{
"text": "Restocked today — sizes S to XL are back.",
"post_id": "104857392017465_998234511"
}
  • 类别: 评论
  • 输出: 1
  • 所需配置:
类型设置内容
also_block_userboolean在同一步骤中屏蔽评论作者。仅限 Facebook。

隐藏启动执行记录的评论。

also_block_user 会在同一步骤中屏蔽评论作者,且仅在 Facebook 上有效——该选项在 Instagram 活动上被禁用。

  • 类别: 评论
  • 输出: 1
  • 所需配置:
类型设置内容
also_block_userboolean在同一步骤中屏蔽评论作者。仅限 Facebook。

删除启动执行记录的评论。also_block_user 仅在 Facebook 上有效,与 hide_comment 上相同。

在该节点的下游,画布会拒绝 reply_commenthide_comment,因为这些节点本应操作的评论已经不存在。

  • 类别: 逻辑
  • 输出: 1
  • 所需配置:
类型设置内容
delay_secondsnumber执行记录等待的时长,范围为 1 到 31536000 秒。
only_if_no_replyboolean如果那个人在等待期间已经回复,则取消执行记录的其余部分。

暂停执行记录并调度它稍后继续。delay_seconds 被限制在 1 到 31536000 秒(365 天)之间,超出该范围的值会被裁剪而不报错。未配置数值的节点默认等待 60 秒。

only_if_no_reply 会在等待结束时被检查:如果那个人在此期间的任何时候回复过,执行记录就会在该延迟节点结束,而不是继续沿分支走下去。

{
"delay_seconds": 3600,
"only_if_no_reply": true
}
  • 类别: 逻辑
  • 输出: paths 中每个条目对应一个
  • 所需配置: paths
类型设置内容
pathsarray每个输出对应一个 { "percent": number } 条目。每个百分比为 0 到 100,总和不能超过 100。

在分支之间分流:每次执行记录都会随机选择一个分支。在画布中为每个分支设置一个百分比;每个百分比为 0 到 100,总和不能超过 100。

请将这些百分比理解为你要求的分配比例,而不是有保证的比率,在依赖它处理任何重要事务之前,先在过往的执行记录中确认实际分布情况。

未配置任何百分比时,该节点会回退为两个相等的分支。

被选中的分支决定执行记录沿哪个输出走。如果该输出没有连接,执行记录就会在此节点结束。

{
"paths": [{ "percent": 70 }, { "percent": 30 }]
}
  • 类别: 联系人
  • 输出: 1
  • 所需配置: tag_ids
类型设置内容
tag_idsarray要添加的标签的数字标识符。

将指定的 标签 添加到执行记录所针对的联系人身上,与该联系人已有的标签共存。

当执行记录背后没有联系人时,该节点不会做任何改变,执行记录会继续前往下一个节点。

{
"tag_ids": [12, 19]
}
  • 类别: 联系人
  • 输出: 1
  • 所需配置: tag_ids
类型设置内容
tag_idsarray要移除的标签的数字标识符。

从执行记录所针对的联系人身上移除指定的标签,并保留该联系人的其他标签不变。联系人字段 列出了联系人记录的其余部分。

当执行记录背后没有联系人时,该节点不会做任何改变,执行记录会继续前往下一个节点。

{
"tag_ids": [19]
}
  • 类别: 逻辑
  • 输出: 0
  • 所需配置:

一旦到达该节点就立即结束执行记录,并记录该流程已被停止。该节点没有输出,所以之后不能连接任何内容。

运行时中还存在另外八种节点类型,它们没有调色板图块和设置面板,永远不会出现在画布构建的活动中。活动图模式 列出了它们的名称,并说明执行记录在每一种上会做什么。请将它们视为仅存在于运行时,而不是产品功能。

  • 输出从 0 开始编号。condition 用 0 表示 Match、1 表示 No Match,random_split 按配置顺序为每个分支使用一个编号,其他所有节点都从 0 继续。
  • 执行记录会沿该节点选中的输出所连接的连接前进。当该输出没有连接时,执行记录会在该节点结束。
  • 一个操作引发错误的节点,会将该错误记录到执行记录上且不会前进,所以执行记录不会超过该节点。
  • 到达一个已经访问过的节点的执行记录,会以指出该节点的循环错误结束。每个节点在每次执行记录中最多运行一次。
  • 运行时无法识别的节点类型会被跳过并发出警告,执行记录从 output 0 继续。
  • 没有评论可以操作的评论操作什么都不做,执行记录继续。
  • 调色板图块按活动的平台过滤,所以 Instagram 活动的调色板提供的节点类型可能比 Facebook 活动的更少。
  • 哪些节点类型可以跟随哪些节点,是在拖拽连接时强制执行的,而不是在保存活动时。活动图模式 列出了这些约束。
  • 在测试执行中,add_tagremove_tag 会记录它们本应做的操作,但不改变联系人,而 delay 会结束测试执行,而不是调度一次恢复。