> This is a page from the ElevenLabs documentation. For an index of the documentation, fetch https://elevenlabs.io/docs/llms.txt.

# Odoo

接待员可以检查来电者是否已是 Odoo 联系人，并将新来电者作为潜在客户添加到 Odoo CRM，记录其需求，方便销售团队跟进。有两种连接方式：

* **[Webhook 工具](#option-1-webhook-tools-recommended)** 直接调用 Odoo 的 JSON-2 API，无需 Zapier 账户，也不消耗 Zapier 任务。需要使用 Odoo 19 或更高版本的 Community 或 Enterprise，数据库可托管在 odoo.com、Odoo.sh 或自己的服务器上。
* **[Zapier](#option-2-zapier)** 也支持较旧的 Odoo 版本，但每项操作都会消耗 Zapier 套餐中的任务额度，且无法搜索自托管数据库。

如果数据库运行 Odoo 19 或更高版本，请使用 webhook 工具。Odoo 的旧版 API JSON-RPC 会将每个方法的参数作为一个混合值列表传递，webhook 工具无法构建这种格式，因此旧版请使用 Zapier。

> **Note**
>
> Odoo 仅在 **Custom** 套餐中允许外部应用访问数据。如果数据库由 Odoo 托管，且使用 One App Free 或 Standard 套餐，请先确认套餐。

## 方案 1：Webhook 工具（推荐）

### 检查 Odoo 版本

Odoo 版本显示在 **设置** 页面的底部。Webhook 工具需要 19 或更高版本。对于自托管数据库，服务器必须能通过 HTTPS 从互联网访问。

### 为 Reception.ai 创建用户

在 **设置** → **用户和公司** → **用户** 中，为 Reception.ai 创建内部用户。授予 **销售**：**用户：所有文档** 权限，不授予其他应用权限，确保 API 密钥只能执行工具所需操作。**用户：所有文档** 权限允许其将新潜在客户分配给你选择的销售人员。

### 创建 API 密钥

非管理员用户的 API 密钥最长有效期为 3 个月。如需获取有效期为 1 年的密钥：

1. 以管理员身份开启开发者模式，然后前往 **设置** → **用户和公司** → **群组**。
2. 创建一个群组，例如命名为 `Reception.ai API key`，将 **API Keys maximum duration days** 设为 `365`，并将 Reception.ai 用户添加至该群组。

然后以 Reception.ai 用户身份登录，打开 **偏好设置** → **账户安全**，并选择 **新建 API 密钥**。为其命名，例如 `Reception.ai`，选择可用的最长有效期，并立即复制密钥：Odoo 只会显示一次。记下到期日期，并在此之前更换密钥。

> **Warning**
>
> API 密钥可以执行 Reception.ai 用户拥有的所有操作。不要将其放在共享文档中，如有泄露，请在 Odoo 中删除。

### 查找销售人员和销售团队 ID

在 **设置** → **用户和公司** → **用户** 中打开销售人员的用户资料。页面地址末尾的数字即为用户 ID。对于销售团队，在 **CRM** → **配置** → **销售团队** 中执行相同操作。

### 创建 webhook 工具

对于每个[下方工具](#find-the-caller)，前往 **集成**，选择 **添加集成**，然后选择 **Webhook Tool**。将 `YOUR_ODOO_ADDRESS` 替换为数据库地址，例如 `mycompany.odoo.com`。

所有工具都发送相同的请求标头：

* `Authorization`（密钥）：`Bearer ` 后接 API 密钥
* `X-Odoo-Database`（值）：数据库名称。仅当自己的服务器托管多个数据库时需要。

### 查找来电者

| 字段         | 值                                                                                     |
| ---------- | ------------------------------------------------------------------------------------- |
| **名称**     | `find_odoo_contact`                                                                   |
| **描述**     | "按来电者的邮箱地址在联系人中查找；如果没有邮箱，则按其全名查找。在添加潜在客户前使用。"                                         |
| **方法**     | POST                                                                                  |
| **URL**    | `https://YOUR_ODOO_ADDRESS/json/2/res.partner/name_search`                            |
| **请求标头**   | `Authorization`（密钥）：`Bearer ` 后接 API 密钥  `X-Odoo-Database`（值）：数据库名称，仅在需要时填写           |
| **请求正文参数** | `name`（字符串，必填）：“来电者的邮箱地址，或其拼写的全名。”  `operator`（字符串，固定值）：`=ilike`  `limit`（整数，固定值）：`5` |
| **分配给智能体** | **Receptionist**                                                                      |

`=ilike` 运算符会忽略大小写，匹配完整姓名或邮箱地址，因此搜索“Jane”不会列出所有名为 Jane 的人。Odoo 仅返回每个匹配项的 ID 和名称。Odoo 的联系人搜索不支持电话号码，因此接待员必须询问邮箱地址或姓名。

### 将来电者添加为潜在客户

| 字段         | 值                                                                           |
| ---------- | --------------------------------------------------------------------------- |
| **名称**     | `create_odoo_lead`                                                          |
| **描述**     | “当来电者想要报价或要求回电时，将其作为潜在客户添加到 CRM。”                                           |
| **方法**     | POST                                                                        |
| **URL**    | `https://YOUR_ODOO_ADDRESS/json/2/crm.lead/create`                          |
| **请求标头**   | `Authorization`（密钥）：`Bearer ` 后接 API 密钥  `X-Odoo-Database`（值）：数据库名称，仅在需要时填写 |
| **请求正文参数** | `vals_list`（对象，必填），包含以下字段                                                   |
| **分配给智能体** | **Receptionist**                                                            |

Odoo 要求将新潜在客户的字段放在 `vals_list` 对象内。针对以下每个字段，在 `vals_list` 上选择 **添加字段**：

* `name`（字符串，必填，来自对话）：“潜在客户标题，例如：Kitchen quote - Jane Doe。”
* `contact_name`（字符串，必填，来自对话）：“来电者的全名。”
* `email_from`（字符串，来自对话）：“来电者的邮箱地址，如已提供。”
* `phone`（字符串，必填，来自对话）：“国际格式的来电者电话号码，例如 +14155550123。”
* `description`（字符串，必填，来自对话）：“来电者的需求，用几句话说明。”
* `user_id`（整数，固定值）：销售人员的用户 ID
* `team_id`（整数，固定值）：销售团队的 ID

销售人员和团队为固定值，因此即使 AI 发送了其他 ID，每条潜在客户也会分配给他们。不要添加预期收入等字段，避免接待员猜测金额。

在每个工具上选择 **启用**，然后以提供邮箱地址的现有联系人身份[测试接待员](/docs/zh/reception-ai/receptionist/testing)，再以要求报价的新来电者身份进行测试。新的潜在客户会显示在 Odoo CRM 销售管道中。

## 方案 2：Zapier

### 连接 Zapier

如果尚未连接，请在 Reception.ai 中连接 [Zapier](/docs/zh/reception-ai/integrations/zapier)。

### 添加 Odoo 操作

在 [mcp.zapier.com](https://mcp.zapier.com) 的 Zapier MCP 服务器中，从 **Odoo CRM** 应用添加[下方操作](#zapier-actions)，并在 Zapier 提示时登录 Odoo。对于每个字段，请按列表设置固定值或让 AI 填写。

**Odoo CRM** 应用适用于托管在 odoo.com 的数据库。对于自托管数据库，请参阅[限制](#limitations)。

这些操作可以执行所登录 Odoo 用户拥有的所有操作。建议使用仅有 CRM 和联系人访问权限的专用用户。

### 分配工具

在 Reception.ai 中，打开 Zapier 集成的 **工具** 标签，选择 **刷新工具**，并将每项操作分配给 **Client**（接待员）。

### 测试

以提供邮箱地址的现有联系人身份[测试接待员](/docs/zh/reception-ai/receptionist/testing)，再以要求报价的新来电者身份进行测试。新的潜在客户会显示在 Odoo CRM 销售管道中。

### Zapier 操作

#### 查找来电者

| 字段               | 值                       |
| ---------------- | ----------------------- |
| **Zapier 操作**    | **Find Contact**        |
| **在 Zapier 中设置** | 无。                      |
| **让 AI 填写**      | 来电者的邮箱地址；如果没有邮箱，则填写其全名。 |
| **分配给**          | **Client**              |

Odoo 的 Zapier 应用可按姓名或邮箱地址查找联系人，不能按电话号码查找，因此接待员必须询问其中一项。

#### 将来电者添加为潜在客户

| 字段               | 值                                                               |
| ---------------- | --------------------------------------------------------------- |
| **Zapier 操作**    | **Create Lead**                                                 |
| **在 Zapier 中设置** | 新潜在客户分配的销售人员和销售团队（如果账户显示这些字段）。                                  |
| **让 AI 填写**      | 潜在客户标题（例如“Kitchen quote - Jane Doe”）、联系人的姓名、邮箱和电话号码，以及来电者需求的描述。 |
| **分配给**          | **Client**                                                      |

将预期收入等字段留空，避免接待员猜测金额。

> **Tip**
>
> 无论使用哪种方案，都应添加一个[流程](/docs/zh/reception-ai/receptionist/rules-and-procedures)，让接待员在创建潜在客户前询问来电者的邮箱地址并进行搜索。

> **Warning**
>
> 搜索可能会返回并非来电者的联系人，且 Zapier 中的 **Find Contact** 会返回联系人中保存的所有内容。添加一条[规则](/docs/zh/reception-ai/receptionist/rules-and-procedures)，要求接待员绝不向来电者复述联系人的详细信息，仅可将其用于识别来电者。

## 限制

* 接待员无法按电话号码查找来电者，需要其邮箱地址或准确姓名。
* 潜在客户的描述会记录来电者的需求。Zapier 的 **Odoo CRM** 应用没有用于添加备注或记录通话的操作。
* 使用 webhook 工具时，API 密钥会过期。请在到期前更换，否则工具将停止工作。
* 使用 Zapier 时，自托管 Odoo 数据库需要改用 Zapier 的 **Odoo ERP Self Hosted** 应用。其 **Create Lead/Opportunity** 操作可添加潜在客户，但没有搜索操作，因此回访来电者可能会被重复添加。Webhook 工具可搜索运行 Odoo 19 或更高版本的自托管数据库。
* 接待员无法在 Odoo 中查看可用时间或预约会议。请改用 Reception 自带的 [Google Calendar](/docs/zh/reception-ai/integrations/google-calendar) 预约功能。
* 使用 Zapier 时，接待员运行的每项操作都会消耗 Zapier 套餐中的任务额度。Zapier 目前每次成功调用计为 2 个任务；失败调用不计入。套餐额度用完后，操作会停止，直到额度重置。

## 故障排除

| 问题                        | 检查内容                                                                                                             |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Odoo 返回 401               | 标头必须为 `Authorization`，后接 `Bearer `、一个空格和密钥。检查密钥是否已过期或被删除。                                                        |
| Odoo 返回 404               | 检查地址，以及 URL 是否以 `/json/2/res.partner/name_search` 或 `/json/2/crm.lead/create` 结尾。数据库必须运行 Odoo 19 或更高版本，并已安装 CRM。 |
| Odoo 返回访问错误               | Reception.ai 用户需要 **销售**：**用户：所有文档** 权限。                                                                         |
| Odoo 找不到数据库               | 添加 `X-Odoo-Database` 标头并填写数据库名称。                                                                                 |
| Reception.ai 中未显示 Odoo 操作 | 在 Zapier 中添加操作后，在 Zapier 集成上选择 **刷新工具**。                                                                         |
| 操作显示 **已更改** 且未被使用        | 你在 Zapier 中编辑了该操作。在 **工具** 标签中选择 **更新**。                                                                         |
| Zapier 无法连接到 Odoo         | 检查 Odoo 套餐是否允许外部应用，并确认针对数据库托管位置使用了正确的应用。                                                                         |
| 找不到已知来电者                  | 与来电者核对邮箱地址拼写。按姓名搜索时，必须使用 Odoo 中保存的姓名；属于公司的联系人会保存为公司名称、逗号和人员姓名。                                                   |
| 潜在客户被分配给错误的销售人员或团队        | 在 webhook 工具或 Zapier 中将销售人员和销售团队设为固定值。                                                                           |