> 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

아래 [웹훅 도구](/docs/ko/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입니다. 아래 도구에서는 `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/ko/reception-ai/receptionist/testing)합니다. 예약은 Acuity 캘린더에 표시됩니다.

> **Tip**
>
> 여러 예약 유형을 예약하려면 두 도구 모두에서 "항상 정확한 값"을 목록으로 바꾸세요. 예:
> "30분 상담에는 `111`, 60분 세션에는 `222`를 사용합니다."

## 제한 사항

* Acuity는 모든 예약에 이메일 주소를 요구하므로 리셉셔니스트가 발신자에게 이메일 주소의 철자를 물어봅니다.
* 인테이크 양식 답변은 목록으로 전송되며, 웹훅 도구는 이를 전송할 수 없습니다. 예약 메모는 관리자가 직접 예약할 때만 설정할 수 있지만, 이 경우 Acuity의 가능 시간 확인을 건너뜁니다. 따라서 위 도구에서는 둘 다 설정하지 않습니다.
* 도구로는 예약을 취소하거나 변경할 수 없습니다. 이러한 작업에는 URL에 예약 ID가 필요합니다.

## 문제 해결

| 문제                     | 확인할 사항                                                              |
| ---------------------- | ------------------------------------------------------------------- |
| Acuity에서 401 반환        | 콜론을 포함해 `USER_ID:API_KEY`를 인코딩하고, 헤더 값이 `Basic `와 공백으로 시작하는지 확인합니다. |
| Acuity에서 403 반환        | 요금제에 API 액세스가 포함되어 있지 않습니다.                                         |
| 시간이 반환되지 않음            | 예약 유형 ID와 해당 유형이 그 날짜에 가능한 시간을 가지고 있는지 확인합니다.                       |
| `not_available`로 예약 실패 | 시간이 이미 예약되었거나 이용할 수 없습니다. 예약 전에 리셉셔니스트가 가능한 시간을 다시 확인하도록 안내하세요.     |
| 필드 누락으로 예약 실패          | 계정에서 전화번호를 요구할 수 있습니다. 예약 도구에서 `phone`을 필수로 설정하세요.                  |