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

# Waiting Lists

> When a slot opens up, Robyn fills it. Auto-backfill cancellations from a smart waitlist that knows each patient's preferred practitioner, time, and location.

<Info>
  **Why this matters.** Most clinics lose 10-30% of revenue to last-
  minute cancellations because the slot stays empty. A working
  waitlist turns that recovered slot into immediate revenue — for
  zero extra acquisition cost. Run the numbers: a single recovered
  $120 slot per day at a 5-day-a-week clinic is $30k/year.
</Info>

## How it works

Two ways patients land on the waitlist:

1. **Auto-add** — patient asks Robyn for a slot that's unavailable. Robyn books them into the next available slot AND offers to add them to the waitlist for sooner times.
2. **Manual add** — your reception team adds patients directly via the dashboard.

When a slot opens (cancellation, reschedule, no-show), Robyn checks the waitlist for matches:

* Preferred practitioner ✓
* Preferred location ✓
* Preferred time window ✓
* Service / appointment type ✓

The first matching patient gets a message offering the slot. If they reply YES → booked. If NO or no reply → next match in queue.

## How Robyn handles waitlist offers

<CardGroup cols={2}>
  <Card title="Smart matching" icon="filter-circle-dollar">
    Only offers slots that match the patient's preferences. No spamming everyone with a Tuesday-2pm slot when they wanted Friday-5pm.
  </Card>

  <Card title="Time-boxed offer" icon="hourglass-half">
    Patient has 30 minutes to reply (configurable). After that, slot rolls to the next match. Prevents stale "I forgot" responses booking.
  </Card>

  <Card title="Auto-book on YES" icon="bolt">
    Reply YES → instant booking. No back-and-forth. The slot is reserved for the patient the moment they reply.
  </Card>

  <Card title="Auto-remove on book" icon="circle-check">
    Patient who got a slot from the waitlist is removed automatically. No double-bookings, no leftover entries.
  </Card>
</CardGroup>

## What your patient sees

> *(Patient was on waitlist for Dr Lin, Tuesday afternoons.)*
>
> **Robyn (SMS, when slot opens):**
>
> *Hi Sarah — a slot just opened with Dr Lin this Tuesday 13 May at 2:00pm. You said you'd like to come sooner — want me to grab it for you? Reply YES to book or NO to pass.*

> **Patient:** Yes please
>
> **Robyn:** Done. You're booked Tuesday 13 May at 2pm with Dr Lin. See you then.

## Setup

<Steps>
  <Step title="Create a waitlist instance">
    **Outbound** → **Create Automatic Instance** → **Waiting List Callbacks**.
  </Step>

  <Step title="Configure offer cadence">
    * **Channel** — SMS (default), email, voice call, or cascade
    * **Offer time-box** — how long patient has to reply before slot rolls (default: 30 min)
    * **Time-of-day window** — when waitlist offers can fire (default: 8am-7pm local)
    * **Max offers per patient per week** — frequency cap (default: 3)
  </Step>

  <Step title="Customise the message">
    Default offer text is short and clear. Customise to match your clinic voice.
  </Step>

  <Step title="Activate auto-add">
    **Settings** → **Robyn Behaviour** → **Auto-add to waitlist when no slot matches**:

    * **Always** — patient gets booked into next available + waitlisted for sooner
    * **Ask** — Robyn asks "want me to put you on the waitlist for sooner?" before adding (recommended)
    * **Never** — manual-only waitlist
  </Step>

  <Step title="Add patients manually if needed">
    **Outbound** → **Waiting List** → **Add to Waitlist**:

    * Phone number (required)
    * Location
    * Service / appointment type
    * Preferred practitioner
    * Preferred time window (e.g. "Tuesdays 2-5pm")

    Useful for walk-ins, phone enquiries, or when reception manually triages.
  </Step>

  <Step title="Activate the instance">
    Toggle to **Active**. Robyn starts matching new cancellations against the waitlist immediately.
  </Step>
</Steps>

## Viewing and managing the waitlist

**Outbound** → **Waiting List** shows all waitlisted patients sorted by:

* **Time on waitlist** — longest-waiting first
* **Preference specificity** — broader preferences (any practitioner, any time) match more slots, less specific ones priority-matched
* **Patient value** (optional) — high-LTV patients prioritised in matching

You can manually remove or edit entries any time.

## Common questions

<AccordionGroup>
  <Accordion title="What if a patient is waitlisted but already has a future booking?">
    They stay on the waitlist for the *sooner* slot. If a sooner slot opens, Robyn offers it. If they accept, the original booking is rescheduled, not duplicated.
  </Accordion>

  <Accordion title="What if I'm worried about Robyn offering slots to the wrong patients?">
    Run in "ask" mode for the first month — Robyn always asks "should I add you to the waitlist?" before doing it. Once you trust the matching, switch to "always".
  </Accordion>

  <Accordion title="Can I prioritise certain patients?">
    Yes — **Outbound** → **Waiting List** → **Prioritise** flag on individual entries. Or globally prioritise by LTV / referral source / segment in **Settings** → **Outbound** → **Waitlist Priority Rules**.
  </Accordion>

  <Accordion title="What happens if no one accepts the slot?">
    After all matching waitlisted patients are exhausted (or the offer window closes for each), the slot stays open. You'll see "unfilled cancellation" in analytics — useful signal for over-tightening preferences or under-stocking the waitlist.
  </Accordion>

  <Accordion title="Does the waitlist sync to my PMS?">
    Where the PMS supports it — Cliniko and Nookal both have native waitlist tables that Routiq writes to. PracSuite stores waitlist entries in Routiq only. All entries are visible in both places.
  </Accordion>
</AccordionGroup>

## Next

<CardGroup cols={2}>
  <Card title="Appointment confirmations" icon="check-double" href="/outbound/appointment-confirmations">
    Confirmations create the cancellations that the waitlist fills.
  </Card>

  <Card title="Patient segmentation" icon="users" href="/features/patient-segmentation">
    Build segments to prioritise high-value patients in waitlist matching.
  </Card>
</CardGroup>
