Overview
Bookings work through ready-made connectors for the system you book people in — Cliniko, Cal.com, Acuity, Microsoft Bookings, Mindbody, ResDiary, Jobber and many more. When a connector that holds bookings is used to verify customers, the platform adds a My Bookings tool to your bot automatically. That tool is verified-only: it runs only after the customer has passed the one-time-code check.
- Read-only. The bot reads appointment times, the service and the status. It does not book, move or cancel appointments in your system.
- Minimal. Clinical notes, treatment records and case notes are never mapped. The bot sees when, what and whether it is confirmed — nothing more.
- Honest. If the system cannot be reached, the bot says it cannot check right now; it never tells someone they have no appointment because a lookup failed.
How a booking lookup works
- 1The customer asks about an appointment. The bot asks for their full name and an email address or mobile number.
- 2The platform finds the customer in your booking system by email or mobile, checks the name (the surname must match and the first name must match or start with the same letter) and one more detail, and sends a one-time code to the contact details your system holds — by text when your plan includes SMS, otherwise by email.
- 3The customer types the code. A session is created for 30 minutes, bound to the customer record your system returned.
- 4The bot calls
POST https://www.siluxchat.com/api/connect/{connection_id}/bookingswith the session token. The platform reads the customer’s bookings from your system with your stored, encrypted credentials and maps them to the standard shape. - 5The bot answers: “Your next appointment is a physiotherapy follow-up on Thursday 2 October at 10:30, and it is confirmed.”
The identity checks are explained in full in Customer identity verification & OTP.
The booking shape
Every booking system is mapped to the same core fields. id and start must be present for a row to count. Many connectors add useful extras — an end time, a location, a party size for restaurants, or a cancelled / did-not-arrive flag for clinics. Each connector’s page lists exactly which fields it maps.
| Field | Meaning | Example |
|---|---|---|
| id | The booking or appointment reference in your system | 84213 |
| start | Start date and time as your system reports it | 2026-10-02T10:30:00+01:00 |
| service | Appointment type, class or service name | Physiotherapy follow-up |
| status | Booked, confirmed, cancelled, arrived … | confirmed |
| end | End time, where available | 2026-10-02T11:00:00+01:00 |
| cancelled / did_not_arrive | Flags some practice systems use instead of a status | false |
| party_size | Restaurants and reservations | 4 |
The bookings endpoint the bot calls
https://www.siluxchat.com/api/connect/{connection_id}/bookingsPer-connection key (platform-held)Called by your bot after verification. The per-connection access key is generated and held by the platform and is replaced each time you choose Use to verify customers. You never call this endpoint yourself — it is documented so you know exactly what the bot receives.
Request body: {"session_token": "…"}
{
"success": true,
"bookings": [
{
"id": "84213",
"start": "2026-10-02T10:30:00+01:00",
"end": "2026-10-02T11:00:00+01:00",
"service": "Physiotherapy follow-up",
"status": "confirmed"
}
]
}| Case | Response |
|---|---|
| No bookings found | {"success": true, "bookings": []} |
| The connected system does not hold bookings | {"success": true, "bookings": [], "message": "<Name> does not hold bookings"} |
| System unreachable or key revoked | {"success": false, "system_error": true, "message": "We can't read bookings right now — our team has been told."} |
| Session expired or unknown | HTTP 401 {"detail": {"success": false, "message": "Session expired — please verify again."}} |
| Platform connection test (test customer) | {"success": true, "bookings": [], "test": true, "message": "Connection test — no customer data read"} |
A safety net removes any row that names a different customer’s email address, whatever the booking system’s search returned.
Bookings from your own system
Account Connect — the five endpoints you can build on your own platform — covers identity, the account summary, orders and invoices. It has no separate bookings endpoint. If appointments live in your own system, include them in your /account-summary response: the bot reads whatever fields you return.
{
"success": true,
"account": {
"account_number": "C1001",
"name": "Test Customer",
"status": "active",
"upcoming_bookings": [
{ "id": "B-3310", "start": "2026-10-02 10:30", "service": "Annual service", "status": "confirmed" },
{ "id": "B-3348", "start": "2026-10-16 14:00", "service": "Follow-up visit", "status": "provisional" }
]
}
}- Include future bookings only, soonest first, and no more than the next five or so. The bot reads roughly the first 2,000 characters of a response.
- Give times in the customer’s local time with a clear format, and say whether a booking is confirmed or provisional.
- Leave out practitioner notes, reasons for visit and anything clinical.
You can see a real account-summary call against the demo — the same request your own endpoint must answer:
# export SESSION=<the session_token returned by POST /verify-otp>
: "${SESSION:?export SESSION first}"
curl -s -X POST "https://www.siluxchat.com/api/account-connect-demo/v1/account-summary" \
-H "X-API-Key: demo-account-connect-key" \
-H "Content-Type: application/json" \
-d "{\"session_token\":\"$SESSION\"}"{
"success": true,
"account": {
"account_number": "C1001",
"status": "active",
"plan": "Business Phone Line — 12 months",
"monthly_price": "£19.95",
"contract_end": "2027-03-31",
"balance_due": "£0.00",
"name": "Test Customer"
}
}Need a dedicated bookings endpoint?
If your booking data is large or changes independently of the account, email support@siluxcall.co.uk and our integration team will discuss the best set-up for your system.Booking connectors by sector
Each of these connectors reads a verified customer’s bookings. The connector pages explain where to create the key and which read-only permissions or OAuth scopes to grant. Where the vendor has no customer search (Cal.com, Google Calendar, Workiz), the customer is verified by their name and the email on their own bookings, and the code is emailed to that address.
Booking & scheduling
Dental
Veterinary
Field service
Connected, but not answered by the bot
Calendly, YouCanBookMe, OpenTable hold bookings but can’t prove who is asking: they have no customer search and their booking records don’t name the customer. They connect and are tested, but the bot does not read their bookings. Use a booking system from the list above, or your own Account Connect endpoints.Health, dental and veterinary practices
Appointment data only — never clinical records
Health, dental and veterinary connectors map appointment times, the appointment type and status (plus flags such as cancelled or did-not-arrive where the system provides them). They never read clinical notes, treatment plans, prescriptions or case histories, and they request the narrowest read access each vendor offers.Practical advice for practices
- Patients are found by the email or mobile number on their patient record, so keep those details current — they are also where the one-time code is sent.
- Describe cancellation and rescheduling rules in your knowledge base. The bot reads bookings but cannot move them, so it should direct patients to your booking link or reception.
- Some practice systems (for example EMIS, SystmOne, Vision and several dental systems) do not offer third-party access to appointment records at all. The connectors page lists them honestly, with the alternative routes.
- Review Security & data protection for UK GDPR guidance on special-category data.
Errors and edge cases
| Situation | What happens |
|---|---|
| Customer not verified | The My Bookings tool is not called; the bot asks them to verify first. |
| Several people share one email (family accounts) | Verification needs the name to match as well, so each person verifies as themselves. |
| Booking system is down or the key was revoked | The bot says it cannot check right now. The connection is marked failing and the daily health check emails the account owner once. |
| Past appointments returned | Some systems return recent history as well as future bookings. Every row carries its start time, so the bot can tell the customer which booking is next. |
| Times in UTC | Times are passed on as your system reports them. If your system reports UTC, say so in your knowledge base so the bot converts to UK time when it answers. |
More detail: Troubleshooting & error reference.
Get help
Not sure whether your booking or practice system can connect, or which scopes to grant? Email support@siluxcall.co.uk with the system name — our integration team will guide you through it.
Need help with your integration?
Our integration team can review your endpoints, help you choose the right connector and check a test run with you. Tell us which system you use and what you would like the bot to answer.