> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Acuity Scheduling

使用以下 [webhook 工具](/docs/zh/reception-ai/integrations/webhooks)，接待员可以查看某种预约类型的可用时间，并将来电者预约到空闲时段。Acuity 会照常向客户发送确认邮件。

## 开始前准备

### 检查套餐

Acuity 仅在其最高级套餐（Premium，以前称为 Powerhouse）中提供 API 访问权限。其他套餐使用以下工具时会出现 403 错误。

### 获取 API 凭据

在 Acuity 中打开 **Integrations**，找到 **API**，然后复制 **User ID** 和 **API Key**。

### 创建授权标头

Acuity 使用 User ID 作为用户名，使用 API 密钥作为密码。在终端中对它们进行编码，并替换这两个占位符：

```bash
printf 'USER_ID:API_KEY' | base64
```

标头值为 `Basic ` 加上输出结果。

> **Warning**
>
> 请勿将 API 密钥粘贴到在线编码工具中。任何获得该密钥的人都可以读取和更改
> 预约及客户详细信息。

### 查找预约类型 ID

复制希望接待员预约的预约类型的直接预约链接。链接中 `appointmentType=` 后面的数字即为其 ID。以下工具会使用该 ID 替换 `APPOINTMENT_TYPE_ID`。

## 创建工具

对于每个工具，前往 **Integrations**，选择 **Add integration**，选择 **Webhook Tool**，并将 **Assign to agents** 设置为 **Receptionist**。

### 查看可用时间

| 字段                   | 值                                                                                                    |
| -------------------- | ---------------------------------------------------------------------------------------------------- |
| **Name**             | `check_acuity_availability`                                                                          |
| **Description**      | "列出某个日期的可用预约时间。在向来电者提供时间前使用此工具。"                                                                     |
| **Method**           | GET                                                                                                  |
| **URL**              | `https://acuityscheduling.com/api/v1/availability/times`                                             |
| **Request Headers**  | `Authorization`：`Basic ` 加编码后的凭据                                                                     |
| **Query Parameters** | `appointmentTypeID`（数字，必填）：「始终使用精确值 `APPOINTMENT_TYPE_ID`。」  `date`（字符串，必填）：「要查询的日期，格式为 YYYY-MM-DD。」 |

### 预约

| 字段                  | 值                                                                                                                                                                                                                                                                       |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**            | `book_acuity_appointment`                                                                                                                                                                                                                                               |
| **Description**     | "来电者选定时间后，将其预约到可用时段。请先与其确认日期和时间。"                                                                                                                                                                                                                                       |
| **Method**          | POST                                                                                                                                                                                                                                                                    |
| **URL**             | `https://acuityscheduling.com/api/v1/appointments`                                                                                                                                                                                                                      |
| **Request Headers** | `Authorization`：`Basic ` 加编码后的凭据                                                                                                                                                                                                                                        |
| **Body Parameters** | `datetime`（字符串，必填）：「所选时间，必须与 `check_acuity_availability` 返回的 `time` 值完全一致。」  `appointmentTypeID`（数字，必填）：「始终使用精确值 `APPOINTMENT_TYPE_ID`。」  `firstName`（字符串，必填）：「来电者的名字。」  `lastName`（字符串，必填）：「来电者的姓氏。」  `email`（字符串，必填）：「来电者的电子邮箱。请让对方逐个字母拼读。」  `phone`（字符串）：「来电者的电话号码。」 |

在每个工具上选择 **Enable**，然后通过请求预约来[测试接待员](/docs/zh/reception-ai/receptionist/testing)。预约会显示在 Acuity 日历中。

> **Tip**
>
> 如需预约多种预约类型，请将两个工具中的「始终使用精确值」替换为列表，
> 例如：「30 分钟咨询使用 `111`，60 分钟服务使用 `222`。」

## 限制

* Acuity 要求每个预约都提供电子邮箱地址，因此接待员会要求来电者逐个字母拼读邮箱地址。
* 登记表答案会以列表形式发送，webhook 工具无法发送。预约备注只能由管理员预约设置，但这会跳过 Acuity 的可用时间检查，因此以上工具不会设置这两项内容。
* 工具无法取消或重新安排预约。这些操作需要在 URL 中提供预约 ID。

## 故障排除

| 问题                     | 检查项                                                    |
| ---------------------- | ------------------------------------------------------ |
| Acuity 返回 401          | 使用冒号对 `USER_ID:API_KEY` 进行编码，并确保标头值以 `Basic ` 和一个空格开头。 |
| Acuity 返回 403          | 套餐不包含 API 访问权限。                                        |
| 未返回任何时间                | 检查预约类型 ID，以及该类型在该日期是否有可用时段。                            |
| 预约因 `not_available` 失败 | 该时间已被预约或不可用。请让接待员在预约前再次查看可用时间。                         |
| 预约因缺少字段而失败             | 账户可能要求提供电话号码。请在预约工具中将 `phone` 设为必填。                    |