> 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

Con gli [strumenti webhook](/docs/it/reception-ai/integrations/webhooks) qui sotto, la receptionist può controllare quando un tipo di appuntamento è disponibile e prenotare il chiamante in uno slot libero. Acuity invia al cliente la consueta email di conferma.

## Prima di iniziare

### Verifica il tuo piano

Acuity include l'accesso API solo nel piano più completo (Premium, in precedenza chiamato Powerhouse). Negli altri piani, gli strumenti qui sotto non funzionano e restituiscono un errore 403.

### Ottieni le credenziali API

In Acuity, apri **Integrations**, trova **API** e copia **User ID** e **API Key**.

### Crea l'header di autorizzazione

Acuity usa il tuo ID utente come nome utente e la chiave API come password. Codificali in un terminale, sostituendo entrambi i segnaposto:

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

Il valore dell'header è `Basic ` seguito dall'output.

> **Warning**
>
> Non incollare la chiave API in un codificatore online. Chiunque ne disponga può leggere e modificare i tuoi
> appuntamenti e i dati dei clienti.

### Trova l'ID del tipo di appuntamento

Copia il link diretto di pianificazione per il tipo di appuntamento che vuoi far prenotare alla receptionist. Il numero dopo `appointmentType=` nel link è il suo ID. Gli strumenti qui sotto lo usano al posto di `APPOINTMENT_TYPE_ID`.

## Crea gli strumenti

Per ogni strumento, vai a **Integrations**, seleziona **Add integration**, scegli **Webhook Tool** e imposta **Assign to agents** su **Receptionist**.

### Controlla gli orari disponibili

| Campo                | Valore                                                                                                                                                                             |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**             | `check_acuity_availability`                                                                                                                                                        |
| **Description**      | "Elenca gli orari di appuntamento disponibili in una data. Usalo prima di proporre un orario al chiamante."                                                                        |
| **Method**           | GET                                                                                                                                                                                |
| **URL**              | `https://acuityscheduling.com/api/v1/availability/times`                                                                                                                           |
| **Request Headers**  | `Authorization`: `Basic ` seguito dalle credenziali codificate                                                                                                                     |
| **Query Parameters** | `appointmentTypeID` (numero, obbligatorio): "Usa sempre il valore esatto `APPOINTMENT_TYPE_ID`."  `date` (stringa, obbligatorio): "La data da controllare, in formato AAAA-MM-GG." |

### Prenota un appuntamento

| Campo               | Valore                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**            | `book_acuity_appointment`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **Description**     | "Prenota il chiamante in un orario disponibile dopo che ne ha scelto uno. Conferma prima data e ora con lui."                                                                                                                                                                                                                                                                                                                                                                                                                    |
| **Method**          | POST                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **URL**             | `https://acuityscheduling.com/api/v1/appointments`                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Request Headers** | `Authorization`: `Basic ` seguito dalle credenziali codificate                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Body Parameters** | `datetime` (stringa, obbligatorio): "L'orario scelto, esattamente come restituito in un valore `time` da `check_acuity_availability`."  `appointmentTypeID` (numero, obbligatorio): "Usa sempre il valore esatto `APPOINTMENT_TYPE_ID`."  `firstName` (stringa, obbligatorio): "Il nome del chiamante."  `lastName` (stringa, obbligatorio): "Il cognome del chiamante."  `email` (stringa, obbligatorio): "L'indirizzo email del chiamante. Chiedigli di scandirlo."  `phone` (stringa): "Il numero di telefono del chiamante." |

Seleziona **Enable** per ogni strumento, poi [testa la receptionist](/docs/it/reception-ai/receptionist/testing) chiedendo un appuntamento. La prenotazione appare nel calendario Acuity.

> **Tip**
>
> Per prenotare diversi tipi di appuntamento, sostituisci "Usa sempre il valore esatto" in entrambi gli strumenti con un elenco, ad
> esempio: "Usa `111` per una consulenza di 30 minuti e `222` per una sessione di 60 minuti."

## Limitazioni

* Acuity richiede un indirizzo email per ogni prenotazione, quindi la receptionist chiede ai chiamanti di scandirlo.
* Le risposte al modulo di raccolta dati vengono inviate come elenco, che gli strumenti webhook non possono inviare. Le note di prenotazione possono essere impostate solo da una prenotazione effettuata da un amministratore, che salta i controlli di disponibilità di Acuity, quindi gli strumenti qui sopra non impostano nessuno dei due elementi.
* Gli strumenti non possono annullare o riprogrammare gli appuntamenti. Per farlo è necessario l'ID dell'appuntamento nell'URL.

## Risoluzione dei problemi

| Problema                                         | Cosa controllare                                                                                                                           |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| 401 da Acuity                                    | Codifica `USER_ID:API_KEY` con i due punti e inizia il valore dell'header con `Basic ` e uno spazio.                                       |
| 403 da Acuity                                    | Il tuo piano non include l'accesso API.                                                                                                    |
| Non viene restituito alcun orario                | Verifica l'ID del tipo di appuntamento e che il tipo abbia orari disponibili in quella data.                                               |
| La prenotazione non riesce con `not_available`   | L'orario è stato prenotato o non è disponibile. Chiedi alla receptionist di controllare di nuovo gli orari disponibili prima di prenotare. |
| La prenotazione non riesce perché manca un campo | Il tuo account potrebbe richiedere un numero di telefono. Rendi obbligatorio `phone` nello strumento di prenotazione.                      |