> 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

Dzięki poniższym [narzędziom webhook](/docs/pl/reception-ai/integrations/webhooks) recepcjonistka może sprawdzić dostępność danego rodzaju wizyty i zarezerwować dzwoniącemu wolny termin. Acuity wyśle klientowi standardowy e-mail z potwierdzeniem.

## Zanim zaczniesz

### Sprawdź plan

Acuity udostępnia dostęp do API tylko w najwyższym planie (Premium, wcześniej nazywanym Powerhouse). W pozostałych planach poniższe narzędzia zwrócą błąd 403.

### Pobierz dane API

W Acuity otwórz **Integrations**, znajdź **API** i skopiuj swój **User ID** oraz **API Key**.

### Utwórz nagłówek autoryzacji

Acuity używa twojego User ID jako nazwy użytkownika, a klucza API jako hasła. Zakoduj je w terminalu, zastępując oba placeholdery:

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

Wartość nagłówka to `Basic `, po którym następuje wynik.

> **Warning**
>
> Nie wklejaj klucza API do internetowego kodera. Każdy, kto go ma, może odczytać i zmienić twoje
> wizyty oraz dane klientów.

### Znajdź identyfikator rodzaju wizyty

Skopiuj bezpośredni link do rezerwacji rodzaju wizyty, który ma rezerwować recepcjonistka. Liczba po `appointmentType=` w linku to jego identyfikator. Poniższe narzędzia używają go zamiast `APPOINTMENT_TYPE_ID`.

## Utwórz narzędzia

Dla każdego narzędzia przejdź do **Integrations**, wybierz **Add integration**, wybierz **Webhook Tool** i ustaw **Assign to agents** na **Receptionist**.

### Sprawdzanie wolnych terminów

| Pole                 | Wartość                                                                                                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**             | `check_acuity_availability`                                                                                                                                            |
| **Description**      | "Wyświetl wolne terminy wizyt w jednym dniu. Użyj przed zaproponowaniem dzwoniącemu terminu."                                                                          |
| **Method**           | GET                                                                                                                                                                    |
| **URL**              | `https://acuityscheduling.com/api/v1/availability/times`                                                                                                               |
| **Request Headers**  | `Authorization`: `Basic `, po którym następują zakodowane dane                                                                                                         |
| **Query Parameters** | `appointmentTypeID` (liczba, wymagane): "Zawsze dokładna wartość `APPOINTMENT_TYPE_ID`."  `date` (ciąg znaków, wymagane): "Data do sprawdzenia w formacie RRRR-MM-DD." |

### Rezerwacja wizyty

| Pole                | Wartość                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**            | `book_acuity_appointment`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Description**     | "Zarezerwuj dzwoniącemu wolny termin, gdy go wybierze. Najpierw potwierdź z nim datę i godzinę."                                                                                                                                                                                                                                                                                                                                                                                                            |
| **Method**          | POST                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **URL**             | `https://acuityscheduling.com/api/v1/appointments`                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **Request Headers** | `Authorization`: `Basic `, po którym następują zakodowane dane                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Body Parameters** | `datetime` (ciąg znaków, wymagane): "Wybrany termin, dokładnie w formie zwróconej jako wartość `time` przez `check_acuity_availability`."  `appointmentTypeID` (liczba, wymagane): "Zawsze dokładna wartość `APPOINTMENT_TYPE_ID`."  `firstName` (ciąg znaków, wymagane): "Imię dzwoniącego."  `lastName` (ciąg znaków, wymagane): "Nazwisko dzwoniącego."  `email` (ciąg znaków, wymagane): "Adres e-mail dzwoniącego. Poproś, by go przeliterował."  `phone` (ciąg znaków): "Numer telefonu dzwoniącego." |

Wybierz **Enable** dla każdego narzędzia, a następnie [przetestuj recepcjonistkę](/docs/pl/reception-ai/receptionist/testing), prosząc o umówienie wizyty. Rezerwacja pojawi się w kalendarzu Acuity.

> **Tip**
>
> Aby rezerwować kilka rodzajów wizyt, zastąp w obu narzędziach "Zawsze dokładna wartość" listą, na
> przykład: "Użyj `111` dla 30-minutowej konsultacji i `222` dla 60-minutowej sesji."

## Ograniczenia

* Acuity wymaga adresu e-mail przy każdej rezerwacji, więc recepcjonistka prosi dzwoniących o jego przeliterowanie.
* Odpowiedzi z formularza wstępnego są wysyłane jako lista, której narzędzia webhook nie mogą wysłać. Notatki do rezerwacji może ustawić tylko administrator podczas rezerwacji, co pomija sprawdzanie dostępności Acuity, więc powyższe narzędzia nie ustawiają żadnych z nich.
* Narzędzia nie mogą anulować ani przełożyć wizyt. Wymaga to identyfikatora wizyty w URL-u.

## Rozwiązywanie problemów

| Problem                                      | Co sprawdzić                                                                                                             |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| 401 z Acuity                                 | Zakoduj `USER_ID:API_KEY` razem z dwukropkiem i rozpocznij wartość nagłówka od `Basic ` oraz spacji.                     |
| 403 z Acuity                                 | Twój plan nie obejmuje dostępu do API.                                                                                   |
| Nie zwrócono żadnych terminów                | Sprawdź identyfikator rodzaju wizyty i czy ten rodzaj ma wolne godziny tego dnia.                                        |
| Rezerwacja kończy się błędem `not_available` | Termin jest już zajęty albo niedostępny. Powiedz recepcjonistce, aby przed rezerwacją ponownie sprawdziła wolne terminy. |
| Rezerwacja nie udaje się, bo brakuje pola    | Twoje konto może wymagać numeru telefonu. Ustaw `phone` jako wymagane w narzędziu rezerwacji.                            |