# 把已付款订单发送到你的CRM

> 这个自动化用HTTP request把每笔已付款订单发送到你的CRM或自己的系统：顾客、金额和产品，以JSON格式。
>
> Source: https://docs.bcl.my/zh/automation-crm-webhook/

把每笔订单手动输入CRM既慢又容易出错。这个自动化在每笔订单付款的那一刻，就以JSON格式把它发送到你CRM的API，栏位由你选择。任何接受HTTP request的系统都可以：CRM、ERP、电子表格工具，或你自己的服务器。

## 你需要什么

从你CRM的API文档，你需要知道三件事：

- 创建记录的URL，例如`https://api.yourcrm.com/v1/orders`。
- 它要怎样接收API key，通常是一个header，例如`Authorization`或`X-Api-Key`。
- 它需要的栏位名称。

## 创建自动化

从空白自动化开始（请看[创建自动化](/zh/create-automation/)）：

1. 前往**Automations**，点击**New Automation**，命名为“Send Orders to CRM”，然后点击**Create**。
2. 点击**Add Node**，选择**Payment Successful**。双击触发器，把**Payment Source Type**设为**Payment Form**，然后点击**Save Trigger**。

   *(Screenshot: Payment Successful的Trigger Settings，Payment Source Type设为Payment Form)*

3. 点击**Add Node**，选择**HTTP Request**。双击它，然后设置：

   | 栏位 | 输入 |
   | --- | --- |
   | **Action Name** | Send to CRM |
   | **Method** | POST |
   | **Request URL** | 你CRM的URL |
   | **Headers**标签页，**Raw JSON** | `{"X-Api-Key": "your-crm-api-key"}` |
   | **Body**标签页，**Raw JSON** | 下面的JSON |

   ```json
   {
     "order_number": "{order_number}",
     "name": "{name}",
     "email": "{email}",
     "phone": "{phone}",
     "amount": {amount_value},
     "form": "{form_title}",
     "paid_at": "{payment_date}",
     "items": {items_json}
   }
   ```

4. 点击**Send Test Request**。出现绿色的**Test Request Successful**通知，表示你的CRM接受了样本。然后点击**Save HTTP Request**。

   *(Screenshot: HTTP Request的Action Settings，显示POST、Request URL和JSON body)*

5. 点击**Update Automation**。

完成的工作流程：

*(Screenshot: 工作流程画布，Payment Successful连接到Send to CRM)*

`{amount_value}`和`{items_json}`故意不加引号：它们会变成一个数字和一个列表。在示范账号上，一笔测试购买送到时是这样的：

```json
{
  "order_number": "LINK-05851",
  "name": "Farah Idris",
  "email": "farah.idris@example.com",
  "phone": "+60133456784",
  "amount": 15,
  "form": "Kopi Kampung Home Brewing E-Guide",
  "paid_at": "2026-09-27 22:15:56",
  "items": [{ "sku": "Home Brewing Guide", "name": "Home Brewing Guide", "quantity": 1, "price": 15 }]
}
```

把左边的key改成你CRM需要的栏位名称。查询参数、key-value模式和其他method，请看[HTTP Request步骤](/zh/automation-http-request/)。

## 测试

正式使用这个范例之前，先测试运行一次：

1. 在测试模式下，在付款表单上做一次测试购买。
2. 打开这个自动化，点击**Overview**。当你的CRM以2xx状态码回复时，这次运行会显示**Completed**。

   *(Screenshot: Execution History，Send to CRM的一次完成运行已标示)*

3. 点击**View**，再点击步骤上的**View Response**，查看状态码和你CRM的回复。

   *(Screenshot: 运行详情，显示response数据和状态码200)*

请求失败时会显示**Failed**和状态码，例如API key错误时的`HTTP 401`。修正步骤后，在这次运行上点击**Retry**。

## 小贴士

几个让这个范例更好用的方法：

- **用同样方法发送lead**。在**New Lead Received**上创建同样的步骤，使用你lead表单的栏位key，例如`{email_address:2}`。
- **把测试指向sandbox**。**Send Test Request**会用样本数据发送真实请求；如果它会创建记录，请使用你CRM的测试环境。
- **不要把key放在URL里**。把API key放在**Headers**：URL会出现在运行记录里。

## 常见问题

### 我应该用这个，还是表单的webhook？

表单webhook为一个表单发送BCL固定的payload。这个自动化让你选择栏位、栏位名称和CRM需要的header，一次涵盖所有表单。看你的CRM接受哪种格式就用哪种。

### 我的CRM收到请求，但没有产品资料。为什么？

BCL填入变量后，body必须仍然是有效的JSON。{items_json}和{amount_value}不要加引号，{name}等文字变量则要放在引号里。
