Skip to content
Back to Blog
Case StudyHealthcare

Healthcare Portals and AI Agents: Booking Appointments Without Friction

Agent Checker3 min read

Patients increasingly ask AI assistants to book GP and outpatient appointments on their behalf. For many patient portals this creates a quiet problem: a large share of agent-initiated booking attempts fail silently, leaving patients who think they have an appointment with nothing in the calendar.

Why Agents Fail

Patient portals tend to work well enough for humans, but they often have three specific characteristics that break AI agent workflows.

First, the appointment selection process frequently uses a multi-step wizard with dynamically loaded content. Each step replaces the page content via AJAX without changing the URL. Agents that rely on page navigation cannot track their progress through the flow or recover from errors.

Second, available time slots are often rendered as a visual calendar grid using CSS Grid layout with no semantic HTML underneath. Each slot is a styled div with a click handler. There are no button elements, no ARIA roles, and no text content describing what each slot represents. A human can see "Tuesday 10:30am" from the visual layout. An agent sees a grid of identical, unlabelled div elements.

Third, the confirmation step commonly requires the user to check a consent checkbox and then click a button labelled "Confirm." But the checkbox is often custom-styled using a hidden native checkbox with a visual overlay. Many agents cannot interact with it, and those that try often click the overlay without actually toggling the underlying form element.

The Fix

The work falls into three areas.

Semantic appointment slots. Convert each time slot from a plain div to a button element containing structured text: the date, time, clinician name, and clinic location. Wrap these in an ARIA listbox pattern so agents can enumerate available options and select one programmatically. The visual appearance can stay identical for human users.

URL-based wizard state. Give each step in the booking flow its own URL path (for example /book/service, /book/clinician, /book/time, /book/confirm). You can preserve dynamic content loading for speed, but update the URL with each transition using the History API. This lets agents track their position, and if something goes wrong they can retry from a known step rather than starting over.

Standard form controls. Following agent-friendly form design principles, replace the custom checkbox with a native HTML checkbox styled with CSS. Give the confirmation button a clear, descriptive label: "Confirm appointment for [date] at [time] with [clinician]." This gives agents unambiguous confirmation of what they are submitting.

The Results You Can Expect

With these changes, far fewer booking attempts fail silently, and many more agent-initiated bookings complete successfully. No-show rates for agent-booked appointments tend to be at least as good as self-booked ones, possibly because agents typically book closer to when the patient asks, reducing the window for plans to change.

There is an accessibility dividend too. Semantic slots, native form controls, and URL-based state also help screen reader users and patients with motor impairments who rely on assistive technology, so satisfaction with the booking process tends to improve across the board.

The Broader Lesson

Healthcare portals face a particular tension. They handle sensitive workflows where errors have real consequences: a missed appointment means a patient does not get care, and a double booking wastes clinical time. This makes agent compatibility more important, not less.

None of these changes are healthcare-specific. Semantic HTML, URL-based state management, and native form controls are web development fundamentals. But in a sector where procurement cycles are long and codebases age quickly, these fundamentals often get lost behind layers of custom UI components. Reducing the volume of failed agent bookings also reduces downstream phone rebooking, easing pressure on call centres.

NHS trusts and private healthcare providers face identical issues. If your appointment booking system uses custom UI components without semantic markup, AI agents are probably failing on your site right now. You can check with an audit to see exactly where they struggle. The fix is usually simpler than expected.