
# FluentCRM

> **这是为谁准备的？** 那些将电子邮件列表保存在自己的 WordPress 站点 FluentCRM 中，并希望通过对话来填充该列表的企业。如果您不使用 FluentCRM，可以跳过此页面。
>
> 使用其他 CRM 或电子邮件工具？任何带有 API 的工具仍然可以连接：请参阅 [连接我们未列出的工具](connecting-other-tools.md)。

FluentCRM 是一个内置于 WordPress 中的 CRM 和电子邮件营销插件：包含联系人、标签、列表以及您发送给他们的营销活动。将其连接到 <span data-t="appName">Your AI Connector</span> 可以让您的 [自动化](../automations/automations.md) 步骤能够向其中写入数据，这样新的 WhatsApp 线索就会成为带有正确标签的 FluentCRM 联系人，而您已经构建好的电子邮件序列将从那里接管后续工作。无需导出，无需复制粘贴，无需等到周五。

您的 WordPress 站点上无需安装任何东西。您只需使用自己的登录详细信息连接您的站点，我们就会调用 FluentCRM 已经公开的 API。

**可用性：** 每个账户均可使用自动化功能。它已经在您的侧边栏中，无需启用或申请。

---

## 您需要准备什么

FluentCRM 基于 WordPress REST API 运行，因此它需要的详细信息与 [WordPress](wordpress.md) 连接完全相同：

- **运行 FluentCRM 的 WordPress 站点**，可通过 **https** 访问，且 WordPress 版本为 **5.6 或更高**。
- 已开启 **固定链接 (Pretty permalinks)**（**设置 → 固定链接**，选择“朴素”以外的任何选项），这是使 `/wp-json/` 地址生效的前提。
- 自动化操作所使用的 WordPress 用户的 **应用程序密码 (application password)**：**用户 → 个人资料 → 应用程序密码 → 添加新密码**。WordPress 会显示一次，以空格分隔的块形式呈现。请连同空格一起复制。

该用户需要在 WordPress 中拥有管理 FluentCRM 的权限。我们从不使用您的真实登录密码，且稍后删除该应用程序密码将精确撤销此连接。

---

## 连接 FluentCRM

您可以在自动化流程内部，首次使用 FluentCRM 步骤时进行连接。

1. 在侧边栏中打开 **自动化 (Automations)**（在 **AI Studio** 组下），然后打开或创建一个自动化流程。
2. 添加一个步骤，并在步骤选择器中搜索 **FluentCRM**。
3. 选择您想要的操作。该步骤会要求您先进行连接。
4. 填写三个字段：
   - **站点 URL** 是运行 FluentCRM 的 WordPress 站点的地址，以 `https://` 开头。
   - **WordPress 用户名** 是该用户登录时使用的用户名，而非其电子邮件地址。
   - **应用程序密码** 是您在上面创建的密码，粘贴时请保留其中的空格。
5. 点击连接。

在保存任何内容之前，我们会通过从 FluentCRM 中读取一个联系人来核对您站点的详细信息。如果详细信息错误，或者 `/wp-json/` 无法解析该站点，系统会在屏幕上拒绝连接并给出原因。您的应用程序密码将以加密方式存储，且永远不会再次向您显示。

---

## 标签和列表以 ID 形式提供

在构建任何内容之前，这是你需要了解的一件事。每个接受标签或列表的字段都需要其 **ID 数字**，并用逗号分隔，而不是名称。`1, 2` 可以正常工作；`Newsletter, VIP` 则不行，编辑器会在该字段下进行标记。如果 ID 仅在自动化运行时才出错（例如来自上一步的 ID），则会停止该步骤并报错，而不是在没有该标签的情况下静默运行。

您可以在 FluentCRM 中找到这些数字：打开 FluentCRM 菜单中的 **标签 (Tags)** 或 **列表 (Lists)**，当您打开每一行时，其 ID 就会显示在地址栏中。将您计划使用的那几个 ID 记下来，就完成了。

---

## 操作

每个操作都是自动化画布上的一个步骤，每个字段都接受来自先前步骤的数据，并提供常规的插入数据按钮。

### 创建或更新联系人

添加一个联系人，或者更新已拥有此电子邮件的联系人。发送两次相同的电子邮件会更新该联系人而不是报错，因此您可以在每次有新潜在客户时运行此操作，而无需先进行检查。

- **Email** 是联系人的电子邮件地址。必填。通常是触发器中联系人的电子邮件。
- **First name**、**Last name** 和 **Phone** 为选填。
- **Status** 从列表中选择：Subscribed（已订阅）、Pending（待处理）、Unsubscribed（已退订）或 Transactional（事务性）。必填，因为 FluentCRM 需要一个状态，且该状态也适用于现有联系人：**Subscribed 会重新订阅已退订的人**，因此仅在对方要求加入时选择此项。**Pending** 会发送 FluentCRM 的双重确认（double opt-in）邮件。
- **Tag IDs** 是要添加的标签，用逗号分隔。选填。
- **List IDs** 是要添加到的列表，用逗号分隔。选填。

### 通过电子邮件查找联系人

通过电子邮件地址查找联系人，并返回其 ID、标签和列表。

- **Email** 是要查找的地址。必填。

其输出是后续步骤所需的内容，因为它们基于联系人 ID 进行操作。

### 为联系人添加标签

为已存在的联系人附加一个或多个标签。

- **Contact ID** 是指哪个联系人。必填。通常取自自动化流程中较早的 **Find contact by email** 步骤。
- **Email** 是联系人的电子邮件。必填，因为 FluentCRM 在每次更新时都需要电子邮件。
- **Tag IDs** 是要附加的标签，用逗号分隔。必填。
- **Change status** 为选填。保留为 **Keep current status** 时，联系人的状态不会被更改，因此为已退订的人添加标签不会导致他们再次被订阅。

### 从联系人移除标签

字段相同，但作用是移除标签而不是添加标签。

### 将联系人添加到列表

- **Contact ID**、**Email** 和 **List IDs**（用逗号分隔），以及相同的可选 **Change status**。

---

## 一个自动化示例

**每一个新的 WhatsApp 线索都会进入 FluentCRM，并根据其来源进行标记。**

1. **触发器：** 来自新联系人的传入消息。
2. **创建或更新联系人**，使用触发器中的联系人电子邮件、名字和电话，以及您主列表的**列表 ID**。
3. 此处不需要**向联系人添加标签**，因为第 2 步已经可以携带**标签 ID**。当标签在对话后期出现时，才使用此步骤。

以及标签在后期出现的版本，这更为实用：

1. **触发器：** 您的 AI 代理向联系人添加了一个标签，例如 `asked about pricing`。
2. **通过电子邮件查找联系人**，使用该联系人的电子邮件。
3. **向联系人添加标签**，使用第 2 步的 ID、相同的电子邮件以及您定价序列的 FluentCRM 标签 ID。

FluentCRM 自身的自动化随后会发送该标签启动的电子邮件序列。对话在 WhatsApp 上进行，培育在电子邮件中完成，无需人工在两者之间手动操作。

---

## 值得了解的信息

- **接受 Contact ID 的步骤必须放在 Find 步骤之后。** 这是常规流程：先找到联系人，然后对查找步骤返回的 ID 进行操作。
- **输出会向后传递。** 操作返回的所有内容都可作为变量供后续步骤使用。
- **使用 ID 而非名称，** 适用于所有标签和列表字段。字段中的名称会在编辑器中被标记，并在运行时导致步骤停止。
- **某些主机在 WordPress 接收前会剥离 Authorization 标头，** 这会导致正确的应用密码看起来是错误的。如果你的详细信息确实正确但连接仍被拒绝，请咨询你的主机服务商。
- **没有监视 FluentCRM 的触发器。** 没有轮询机制来检测其更改。要让 FluentCRM 启动自动化，请在自动化中添加一个 **Webhook** 触发器，并将 FluentCRM 的传出 Webhook 指向它提供的地址。
- **上述列表之外的任何操作** 仍然可以通过 **HTTP request** 步骤完成。

---

## 后续步骤

- [自动化](../automations/automations.md)：触发器、步骤、条件以及工作流的构建方式。
- [WordPress](wordpress.md)：同一站点上的文章和用户，使用相同的连接详细信息。
- [MemberPress](memberpress.md)：您 WordPress 站点上的会员资格和付款。
- [连接未列出的工具](connecting-other-tools.md)：自定义函数、API 和 Webhook。
