# 触发器、条件、延迟和操作

> 自动化工作流程怎样由一个触发器和一连串条件、延迟和操作组成，以及它们各自能做什么。
>
> Source: https://docs.bcl.my/zh/automation-triggers-actions/

每个自动化都是画布上的一个工作流程。它从一个**trigger**（触发器）开始，也就是启动它的事件，接着是BCL按顺序运行的步骤：决定是否继续的**conditions**（条件）、负责等待的**delays**（延迟），以及真正做事的**actions**（操作）。

*(Screenshot: 一个简单的工作流程：Payment Success触发器连接到Send Thank You Email操作)*

## 触发器

触发器会监听一个事件。每个自动化只有一个触发器，你在新自动化上点击**Select an Event**时选择它。

*(Screenshot: Select Trigger Event面板，列出lead和付款触发器)*

触发器分成四组：

| 组别 | 触发器 |
| --- | --- |
| **Leads** | **New Lead Received** |
| **Payments** | **Payment Initiated**、**Payment Successful**、**Payment Failed**、**Payment Cancelled**、**Payment Completed**、**Status Changed**、**Order Shipped** |
| **Events** | **Participant Created**、**Participant Checked In**、**Certificate Generated** |
| **Affiliate** | **Referral Approved**、**Referral Rejected**、**New Affiliate Registered**、**Payout Requested** |

在每个触发器的设置里，你可以把它限制在部分表单。表单列表留空，就会为所有表单运行。在**Automations**列表，**Trigger type**列使用的名称稍有不同，例如**Payment Successful**显示为**Transaction Success**，**New Lead Received**显示为**Form Submitted**。

每个触发器会把什么资料传给后面的步骤，请看[自动化触发器](/zh/automation-triggers/)。

## 操作

点击画布上的节点，再点击**Add Node**，就能添加下一步。**Add Action**面板列出BCL能做的所有事：

*(Screenshot: Add Action面板，显示Messaging、Integrations和Flow Control三组)*

| 组别 | 节点 |
| --- | --- |
| **Messaging** | **Send Email**、**SMS Niaga**、**Send Wabot**、**Send WasapBot** |
| **Integrations** | **Add to Mail Niaga**、**Google Sheets**、**HTTP Request** |
| **Flow Control** | **Delay**、**Condition** |

WhatsApp、SMS、Mail Niaga和Google Sheets节点需要先在**Platform Setup** → **Integrations**连接该服务。请看[自动化操作](/zh/automation-actions/)和[Send data with HTTP Request](/zh/automation-http-request/)。

## 条件和延迟

**Condition**节点会在工作流程继续之前，检查来自触发器的数据。你选择一个**Field**、一个**Operator**（例如**Equals**、**Contains**或**Greater Than (>)**）和一个**Value**。如果有多个条件，**Match Logic**决定是全部都要符合，还是任何一个符合就行。请看[自动化条件](/zh/automation-conditions/)。

**Delay**节点会等一段时间再进行下一步。选择**For a Specific Period**，设置**Duration**和**Time Unit**（分钟、小时或天），或选择**Until a Date & Time**。

## 变量

信息和栏位可以包含来自触发器的资料，例如付款的`{name}`、`{order_number}`或`{amount}`，或lead表单栏位的`{full_name:1}`。点击栏位旁的**Variables**选择一个。完整列表请看[自动化变量](/zh/automation-variables/)。

## 小贴士

几个规则让工作流程更可预测：

- **选择有你所需资料的触发器**。刚开始的付款还没有收据，所以收据和感谢信息要从**Payment Successful**发送。
- **给每个节点一个清楚的名称**。**Action Name**会显示在画布上和运行记录里，所以“Email sales team”比“Send Email”更容易检查。
- **先测试，再为所有表单开启**。先把触发器限制在一个测试表单，然后再扩大范围。

## 常见问题

### 顾客付款后要发送东西，应该用哪个触发器？

Payment Successful。它在付款成功完成后运行。Payment Initiated运行得更早，在顾客开始付款时就运行，那时你还不知道付款是否成功。

### 一个自动化可以有两个触发器吗？

不可以。每个自动化只有一个触发器。请为另一个事件再创建一个自动化。

### 我可以等一天再发提醒吗？

可以。在操作前面放一个Delay节点。它可以等一段固定时间，例如1天，或等到某个日期和时间。
