> ## Documentation Index
> Fetch the complete documentation index at: https://help.verbu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# EasyPractice (TerapeutBooking)

> Recognise existing clients, check the practitioner's availability, and book, reschedule or cancel appointments in EasyPractice during the conversation.

<Note>The integration shows as **Beta** in the list. It is running with our first clinics. Write to us at **[hello@verbu.com](mailto:hello@verbu.com)** if you hit anything.</Note>

When EasyPractice is connected, your agent can help your existing clients the way a secretary would: recognise the client by phone number, find their upcoming appointments, find an available slot with their regular practitioner, and book, reschedule or cancel the appointment, live while the client is on the phone or in chat.

The agent doesn't create new clients. New clients are referred to your normal intake process, so your front desk still decides who sees whom.

## What you'll need

* An EasyPractice account (known in Denmark as TerapeutBooking)
* The API app enabled on the account
* A personal access token with the right permissions

## How to create an access token

1. Log in to EasyPractice with the account that owns the clinic.
2. Go to **Apps** and enable **API**.
3. Go to **API-indstillinger** (API settings).
4. Under **Personal Access Tokens**, click **Create New Token**.
5. Select these permissions (scopes):
   * **clients-read**, so the agent can find the client by phone number
   * **calendars-read**, so the agent can see calendars and available times
   * **bookings-readwrite**, so the agent can see, create, reschedule and delete appointments
6. Copy the token into Verbu.

<Warning>
  The token is only shown once, and its permissions can't be changed afterwards. If a permission is missing, you'll need to create a new token. Never share it with anyone other than Verbu.
</Warning>

## How to connect EasyPractice to Verbu

1. Open the agent, click **Integrations** at the bottom of the menu, and go to the **Settings** tab.
2. Click **Connect** next to **EasyPractice**.
3. Paste your access token and click **Connect**.
4. The **Appointment management** setup bundle (book, reschedule and cancel) installs automatically. If it doesn't, click **Install** next to it under **Setup bundles**.
5. Done!

🎉 Your agent is now ready to manage appointments for your existing clients on the phone and in chat.

## Which services the agent can book

The agent only books services and calendars that are **open for online booking** in EasyPractice. That's the same switch you use to control what your clients can book on your website, so you decide the agent's menu inside EasyPractice, with no setting in Verbu.

* Open a service for online booking, and the agent can offer it.
* Close it, and the agent will neither suggest nor book it. Keep internal products, packages and payer-specific services closed.
* The same goes for calendars: the agent can't book with a practitioner whose calendar is closed for online booking. If a client who usually sees that practitioner calls in, the agent will say so and offer the other practitioners, or a message to your team.
* If you use "RESERVATION" products for online booking, the agent books them exactly the way your website does, and your front desk converts them as they do today.
* If a practitioner has both a regular service and a "first-time" service open, the agent asks new clients whether they've been to you before, and picks accordingly.

If a client reschedules an existing appointment, the appointment keeps its service, even if that service is now closed for online booking.

## Locations: where the practitioner is working that day

EasyPractice has one calendar per practitioner and no fixed record of which town or address the practitioner is at on a given day. The agent reads the location from four sources, in this order:

1. **The day's note**, added early in the morning in the calendar, for example "Havnegade 8-16" or "not bookable, Ida is in Kolding". An exception for that one day.
2. **The calendar's name**, if you have one calendar per practitioner per location, for example "Anders - Odense". In that case, the practitioner is there every day.
3. **The day's appointments**: the name of the booked service ("... Havnegade 23 ...") tells the agent where the practitioner is.
4. **The practitioner's regular weekly schedule**, which you write yourself in the description of the practitioner's online product (usually "RESERVATION"), for example "ODENSE: TUESDAY, WEDNESDAY, THURSDAY SVENDBORG: MONDAY, FRIDAY". This is the same text your clients see in online booking, so it also applies on days when nothing has been booked yet.

If the practitioner works from several locations, the agent says so and asks the client whether they have a preference, or whether it should just find the first available slot. If the agent can't determine the location for a day, it tells the client before booking.

Under **Locations** in the **Configuration** section, write the locations the clinic works from, exactly as they appear in the service names and in the notes, separated by commas. Add alternate spellings with `=`, separated by `|`:

> Havnegade, Victoriagade=VIC, Svendborg, Middelfart, Nyborg, Online=Onlinesamtale|Video

Write addresses, not towns: if both "Odense" and "Havnegade" are on the list, the agent can't tell whether an Odense day matches a Havnegade slot. Leave the field empty if the clinic has only one address.

The agent always keeps the client at the location they usually visit, unless the client asks for a different one.

## Instructions for the agent

Under the **Appointment management** setup bundle, you'll find a section called **Instructions**. This is where the text lives that the agent follows at points in the conversation where your practice does things differently:

* **New clients**: what the agent says to someone who isn't registered as a client.

Each field has a default text. Leave it empty to use that default, or write your own. The text doesn't change what the agent can do, only how it talks about it.

## New clients

Under the **Appointment management** setup bundle, you'll find the setting **Agent can create new clients**:

* **On**: If someone who isn't registered calls in, the agent asks for their full name, creates them as a client with the number they're already confirmed on, and books the appointment right away.
* **Off** (default): The agent doesn't create anyone. Instead, the **New clients** field is shown, where you write what the agent should say to someone who isn't registered. Leave the field empty for the default text explaining that your front desk sets up new clients.

Cancelling and rescheduling don't change: a brand-new client has no appointment to cancel or reschedule.

## Confirmations

Under **Configuration**, choose whether EasyPractice should send its confirmation and reminder by email and/or SMS when the agent books or reschedules an appointment. SMS may be billed by EasyPractice.

## How it sounds on a call

> **Client:** Hi, I'd like a new appointment with Emmely.
>
> **Agent:** I can help with that. I can see you usually see Emmely at Havnegade. Which day works best for you?
>
> **Client:** Thursday afternoon would be great.
>
> **Agent:** Thursday 3 September, Emmely has an opening at 13:00 or 14:00. Which works better?
>
> **Client:** 13:00, please.
>
> **Agent:** Perfect. That's Emmely at Havnegade, Thursday 3 September at 13:00. You'll get a confirmation from the clinic.

All of this happens live in EasyPractice, while the client is on the line.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The agent can't find the client">
    The agent looks up the mobile number the client is registered with in EasyPractice. If the client is calling from a different number, the agent asks for their registered number and sends a code by SMS. If the number isn't in EasyPractice, the agent refers them to your front desk.
  </Accordion>

  <Accordion title="The agent suggests a slot at the wrong location">
    Check that the practitioner's weekly schedule is in the description of their online product ("ODENSE: MONDAY, TUESDAY ... NYBORG: THURSDAY"), and that the location is listed under **Locations** on the integration, spelled the way it appears in the service names. A single day that differs from the weekly schedule should be written as a note in the calendar early that morning.
  </Accordion>

  <Accordion title="The agent suggests a slot that isn't actually available">
    The agent always uses EasyPractice's own online booking to find available slots, including when rescheduling an appointment, so your time slots, booking deadline and closed periods all apply. This means the agent can't offer slots that your own online booking doesn't show. If you use something else to block off time, email us at **[hello@verbu.com](mailto:hello@verbu.com)**.
  </Accordion>

  <Accordion title="I get an error when I click Connect">
    Check that the token was pasted without spaces, and that it has the clients-read, calendars-read and bookings-readwrite permissions. Permissions on a token can't be changed; create a new one if any are missing.
  </Accordion>
</AccordionGroup>

## Removing the integration

Click **Disconnect** in the right-hand column and confirm. Verbu forgets the token and stops calling EasyPractice. Your appointments in EasyPractice are untouched.

## Next steps

* Test the agent a few times with a test client in EasyPractice, using **Test** → **Live test**
* Add [Pronunciation](/en/agent-behaviour/pronunciation) for practitioners' names
* Open the calendars and services the agent should be able to book for online booking in EasyPractice
* Fill in **Locations**, and write each practitioner's weekly schedule in the description of their online product
