Build an appointment-booking agent
In this tutorial you build the phone front desk of Sunrise Clinic, a made-up family clinic in Pune. At the end you’ll have an agent that:
- asks for the patient’s name, the day and the time, and works out dates like next Friday;
- reads the booking back, and saves it only after the caller says yes;
- sends each confirmed booking to your own booking system;
- is tested on the tricky cases and published, ready for a phone number.
You need:
- A workspace role of Builder or higher.
- For step 5, an
httpsaddress in your booking system that accepts a new booking. No address yet? Do step 5 with a mocked answer, and add the real address later.
If you haven’t built an agent before, do the quick start first. It takes 10 minutes and uses the same template.
1. Create the agent
Section titled “1. Create the agent”-
In the sidebar, open Agents, then click New agent.
-
Choose Start from a template, and pick Appointment booking.
-
Enter the name Sunrise Clinic front desk and click Create and open.

1On the Agents page, click New agent.

2Choose Start from a template.

3Pick Appointment booking.
The template already knows how to book. It asks for:
- the caller’s name;
- the date and time they want;
- an email, only if the caller offers one. It’s saved with the booking, but no email is sent.
It doesn’t ask for the caller’s phone number: that’s known from the call. Each booking gets an id
such as APT-3F9A1C, which the agent reads out at the end.
2. Check the basics
Section titled “2. Check the basics”Open Basic info.
-
Check that What it does is Appointment booking.
-
Under Persona, describe the receptionist, for example A calm, friendly receptionist at Sunrise Clinic who keeps calls short.
-
Under Language and tone, keep English (India). Turn on Follow the caller’s language if some patients speak Hindi.
-
Under Call settings, check the Timezone is Asia/Kolkata. It’s the agent’s clock: it works out tomorrow and next Friday from it, and books times in it.
3. Tell it about the clinic
Section titled “3. Tell it about the clinic”The agent only knows what you tell it. Open Prompt.
-
Read the Instructions. The template’s lines tell the agent how to use its built-in booking steps. Keep them.
-
At the end of the Instructions, add the clinic’s facts and rules. For example:
About Sunrise Clinic:- A family clinic in Kothrud, Pune: check-ups, children's vaccinations and blood tests.- Open Monday to Saturday, 9am to 1pm and 5pm to 8pm. Closed on Sundays.- Only book times when the clinic is open. If the caller asks for another time,offer the nearest open time.- After you have the name, ask briefly what the visit is for.- Never give medical advice. For an emergency, tell the caller to call 112. -
Change the Greeting to: Hello, Sunrise Clinic. I can book an appointment for you. May I have your name?
-
Set a Closing line: Thank you for calling Sunrise Clinic. See you soon!
To keep the reason for each visit, add an analysis field. Open Post-call analysis under More settings, click Add field, and enter:
- Name: Reason for visit
- Type: Text
- What to look for: What the caller wants the appointment for, for example a check-up or a vaccination.
Every call then shows the reason next to the summary. See Set up post-call analysis.
4. Try a booking
Section titled “4. Try a booking”-
In the Test panel on the right, open Chat and click Start chat.
-
Type as the caller: Hi, I’d like to book a check-up for Friday evening.
-
Answer the agent’s questions: your name, then a time, for example half past five.
-
When the agent reads the booking back, check the date is the right Friday. Reply Yes.
The agent gives you a booking id. In a chat test it starts with TEST-: chat is a quick preview
and never saves anything. To save a real test booking, use Talk in the same panel and say the
same things out loud.
5. Send bookings to your system
Section titled “5. Send bookings to your system”When the caller says yes, the agent saves the booking in 360. It can also send it to your own booking system. You need two things: a tool that knows your system’s address, and the Send bookings to card that says what to send.
Add the tool
Section titled “Add the tool”-
Open Tools under More settings and click Add tool.
-
Under What it does, enter:
- Name:
create_booking - When to use it: Sends a confirmed booking to the clinic’s booking system.
- Runs: During the call
- Name:
-
Under Request, choose POST and enter your system’s address, for example
https://bookings.sunriseclinic.example/api/appointments. Keep the Body as JSON. -
If your system needs a key, add an
Authorizationheader with the type Credential. -
Under Parameters, add four, all of type
string:start,patient_name,caller_phoneandemail. Turn on Required forstartandpatient_name.
The agent never calls this tool itself. 360 calls it once, after the caller confirms.
Say what to send
Section titled “Say what to send”-
Open Data to collect. Under Send bookings to, choose
create_bookingas the Tool. -
Set the Appointment length (minutes), for example 20.
-
Keep the Request body as Plain JSON (webhook).
-
Under Arguments, fill in each parameter with a placeholder:
Argument Value start{{booking.start_local}}patient_name{{booking.name}}caller_phone{{caller.number}}email{{booking.email}}
When a caller books Friday at 5:30pm, your system gets:
{ "start": "2026-10-30T17:30:00", "patient_name": "Ananya Rao", "caller_phone": "+919876543210"}360 works out the date and time itself, so the model can’t get the maths wrong. The card lists
every placeholder: use {{booking.start_utc}} if your system wants UTC. An empty placeholder,
such as an email nobody gave, is left out.
Your system should answer with a 2xx status. If the answer has an id, 360 keeps it with the
booking. An answer with an error, or with "success": false, counts as a refusal.
Test it without your system
Section titled “Test it without your system”-
In the Test panel, click Manage test inputs next to Test inputs.
-
Create a set called Booking works. Under Mocked tools, switch
create_bookingto Mocked and enter{"id": "SC-1042"}. Click Save. -
Open Talk, click Start test call and book an appointment out loud.
-
When it ends, click See it in Calls under Last test call.
The call shows Booking saved under Saved record. In Technical details, Tools used shows the request 360 built, marked Mocked. When your system is ready, switch the tool back to Calls the real tool. See Give the agent tools.
6. Test the tricky cases
Section titled “6. Test the tricky cases”Real callers change their minds and say dates in odd ways. Try each of these with Talk, or with a simulated caller. Both run the real agent, with its date checks. Chat is a quick preview: it doesn’t run those checks, and it never saves or sends a booking.
| Say | The agent should |
|---|---|
| A time that has already passed, such as yesterday at five | Say the time has passed and ask for a future time. |
| Today’s weekday, such as Tuesday at six on a Tuesday afternoon | Ask whether you mean today or next week. |
| A new time after the read-back | Update it and read the booking back again before saving. |
| No at the read-back | Not book. Ask what to change. |
| Sunday at eleven | Offer an open time instead, because your instructions say Sundays are closed. |
| A different spelling of your name | Take the correction and read the name back. |
Two more show what reaches Calls:
- Hang up before you say yes. Nothing is saved. The call shows Incomplete, with the details under Collected before the caller left, so your team can call back.
- Your system says no. Change the mocked answer to
$error: Slot already takenand book again. The agent apologises and says the team will follow up. The booking isn’t saved: the call shows Incomplete, and Tools used shows the failed request.
Optional: check free slots first
Section titled “Optional: check free slots first”To offer only free slots, your booking system needs an address that answers which times are free.
Add a second tool that Runs During the call, for example check_availability with a date
parameter. Under When to use it, write Call this before you agree a time, to see which slots
are free on the date the caller wants. Then add a line to the Instructions: Only offer times
that check_availability says are free.
The agent then looks up the day before it agrees a time. See Give the agent tools.
7. Publish
Section titled “7. Publish”When the tests pass, click Publish, add a release note such as Clinic hours and booking webhook, and click Publish again. Then point a phone number at the agent. Steps 3 and 4 of the quick start show how.
What you built
Section titled “What you built”- An agent that books appointments, works out relative dates and reads every booking back.
- A booking webhook that gets each confirmed booking, with the date and time worked out by 360.
- A set of tricky cases to re-run after every change.
Next, give it a knowledge base so it can answer questions about prices and services, or build the same front desk in Hindi.