---
title: "将评论路由到私信"
description: "用画布上的四个节点——触发、条件、回复和私信——给所有在帖子上评论关键词的人发送私信，并首先公开回复。"
canonical: https://docs.afp.monster/zh-cn/guides/route-comments-to-dm
updated: 2026-08-19
pageType: guide
---

四个节点即可完成。一个 `trigger_comment` 节点监听已连接主页，一个 `condition` 节点将评论文本与关键词列表匹配，一个 `reply_comment` 节点在评论下方公开回复，一个 `send_dm` 节点发送私信。按顺序连接它们，保存活动图，然后打开活动——下一个匹配的评论会收到两条回复。

![一个四节点活动：评论触发器、关键词列表上的条件、匹配输出上的公开评论回复，以及之后的私信节点](../../../../assets/screenshots/guides/route-comments-to-dm/four-node-graph.webp)

## 你需要什么

- 一个已连接主页上的活动，在画布中打开。参见 [在画布上构建活动](/zh-cn/guides/build-a-campaign)。
- 一个包含你想捕获的词的关键词列表。参见 [用关键词列表匹配评论](/zh-cn/guides/keyword-lists)。

## 如何私信所有在帖子上评论关键词的人？

```d2 title="The four-node comment-to-DM campaign: trigger, keyword condition, public reply, private message"
direction: down
trigger: "trigger_comment\n所有帖子或一篇特定帖子"
cond: "condition\n关键词列表" {shape: diamond}
reply: "reply_comment\n公开回复"
dm: "send_dm\n私信"
halt: stop
trigger -> cond
cond -> reply: Match
reply -> dm
cond -> halt: "No Match"
```

1. 添加一个 `trigger_comment` 节点。选择它监视主页上的所有帖子还是一篇特定帖子；一篇特定帖子需要在设置面板中选择该帖子本身。
2. 将触发器连接到一个 `condition` 节点。触发器只能连接到条件，所以这一步不是可选的。
3. 在条件中，将匹配类型设置为 **Keyword list** 并选择你的列表。包含其一个词的评论离开 **Match** 输出；其他所有内容离开 **No Match**。
4. 从 **Match** 输出添加一个 `reply_comment` 节点并编写公开回复。
5. 将 `reply_comment` 连接到 `send_dm` 并编写私信。私信可以是文本、图片、卡片或带按钮的文本。
6. 从 **No Match** 输出添加一个 `stop` 节点——或者让它不连接，同样会结束执行记录，但在画布上更难阅读。
7. 点击 **Save campaign**，然后打开活动并确认。

公开回复和私信都可以通过模板变量以评论者的名字称呼评论者。

:::note
节点按你连接它们的顺序运行，所以公开回复在私信发送之前发布。先放 `send_dm` 也可以——它只会改变评论者先看到哪一个。
:::

## 为什么既要公开回复又要发送私信？

两条回复到达不同的受众。一个 `reply_comment` 节点在评论下方发布，每个阅读帖子的人都能看到。一个 `send_dm` 节点到达一个人：评论者。

公开回复还给了私信一个来源。AFP 将执行记录的第一条私信作为对触发评论的私有回复发送，并为之后的每条消息直接称呼那个人。

一个活动不会用自己的输出触发自己。主页发布的评论——包括 `reply_comment` 节点刚刚发布的回复——不会启动新的执行记录。

一对回复是否比单独的私信转化效果更好是一个关于结果的主张，而不是行为。

## 24 小时消息窗口是什么？

Facebook 和 Instagram 限制主页何时可以给一个人发消息，这个限制被描述为一个 24 小时窗口。AFP 通过将执行记录的第一条私信通过触发评论（而不是通过那个人）发送，以及为之后的消息切换到那个人，来在窗口内工作。



平台拒绝的私信会记录为该执行记录上的错误，且执行记录不会越过 `send_dm` 节点前进。它之后的节点永远不会运行，这就是一个活动经常看起来像"公开回复生效了，其他什么都没做"的原因。

## 回复后我应该隐藏评论吗？

当评论是你不想留在帖子上的内容时——一个你私下回答的价格问题，或一个重复的垃圾信息短语——在 `reply_comment` 之后添加一个 `hide_comment` 节点。在 Facebook 上，同一个节点可以阻止评论的作者；该选项在 Instagram 上不可用。

有三种情况下隐藏是一个糟糕的选择：

- **公开回复是重点。** 隐藏会将评论从公开评论串中移除，所以你为其他读者发布的交流不再是他们看到的会话的一部分。
- **活动由私信触发。** 当触发器是 `trigger_dm` 时，评论操作不可用，所以画布会拒绝连接：一条由私信触发的执行记录没有评论可以操作。
- **你想让评论永远消失。** 那是 `delete_comment`，它会关闭其余的模式：画布在它之后的任何地方拒绝 `reply_comment` 或 `hide_comment`，因为评论已不存在。

:::caution
一个没有评论可以操作的评论操作会被跳过，执行记录会移动到下一个节点而不会标记为失败。平台拒绝的评论操作会记录为错误，执行记录会停在该节点——所以一次没有发生的隐藏值得在执行记录中阅读，而不是假设。
:::

## 如果我想匹配不同的评论集怎么办？

四个设置改变模式捕获的内容，且都不需要另一个节点。

| 目标 | 设置 | 效果 |
|---|---|---|
| 每人只回答一次 | 触发器的每人一次设置 | 再次评论的人不会启动新的执行记录 |
| 监视一篇帖子而不是整个主页 | 触发器的帖子范围，设置为特定帖子 | 忽略每篇其他帖子上的评论 |
| 捕获每条评论，无论它说什么 | 条件的匹配类型，设置为任何消息 | 条件停止分支：它的 **No Match** 输出消失，已离开该输出的连接会被丢弃 |
| 匹配除了你的关键词之外的所有内容 | 条件的反转关键词设置 | 不包含列表任何词的评论离开 **Match** |
| 跳过携带图片、GIF 或链接的评论 | 条件的图片、GIF 和链接过滤器 | 这些评论被路由到 **No Match** 而不是回答 |

## 为什么我的活动没有发送私信？

| 症状 | 原因 | 修复方法 |
|---|---|---|
| 没有评论产生任何内容 | 活动已关闭，或带有触发器的活动图从未保存 | 保存活动图，然后打开活动——只有当前保存版本中的触发器启动执行记录 |
| 公开回复出现，但私信从未到达 | 私信被拒绝，错误记录在执行记录上，执行记录停在该节点 | 打开执行记录并阅读它停止的节点。参见 [测试和调试活动](/zh-cn/guides/test-and-debug-campaigns) |
| 每条评论都匹配，包括没有你关键词的评论 | 条件指向一个已被删除的关键词列表，或一个空的——两者都会落入匹配 | 将条件指向一个存在且有词的列表 |
| 一个人评论两次，只有第一次评论被回答 | 一个人不能同时运行同一个活动的两条执行记录；在一条进行中到达的匹配评论会被跳过 | 无需修复——或者缩短活动图让执行记录更快完成 |
| 你其他帖子上的评论被忽略 | 触发器限定在一篇特定帖子 | 将触发器改回所有帖子，或指向你正在测试的帖子 |
| 你自己的测试评论没有任何反应 | 主页以自身身份发布的评论永远不会触发活动 | 从个人社交账号评论，而不是以主页身份 |
| 一条评论产生两条私信 | 同一主页上的两个活跃活动都匹配它，每个启动自己的执行记录 | 关闭你不使用的活动，或缩小一个关键词列表 |
| 一个 `send_comment` 节点没有发布任何内容 | `send_comment` 需要它应该评论的帖子，没有它就不会做任何事情 | 在该节点的设置面板中选择帖子，或使用 `reply_comment` 在触发评论下方回复 |

## 相关

- [在画布上构建活动](/zh-cn/guides/build-a-campaign) — 创建、保存和启用此模式所在的活动。
- [用关键词列表匹配评论](/zh-cn/guides/keyword-lists) — 构建和重用条件匹配的列表。
- [节点类型](/zh-cn/reference/node-types) — `trigger_comment`、`condition`、`reply_comment` 和 `send_dm` 上的每个字段。
- [测试和调试活动](/zh-cn/guides/test-and-debug-campaigns) — 在不发布任何内容的情况下运行此模式，并阅读每条执行记录做了什么。
- [评论审核](/zh-cn/guides/comment-moderation) — 隐藏、删除和阻止，超越单个活动。
