W Wiretalk Docs
Developer documentation

Appointment Booking

Let visitors book appointments inside the Wiretalk chat widget. Configure slots, bot follow-up buttons, availability API, and agent inbox management.

Dashboard: Widget Settings → Appointments

Let visitors book time slots directly inside the chat widget — no external Calendly link required. Appointments respect your business hours, show green available slots and red booked slots, and work from bot quick replies or AI follow-up buttons.

Enable & configure

1

Open Appointments settings

Dashboard → Widget Settings → Appointments. Toggle booking on for your site.

2

Set slot rules

Configure duration, interval between slots, buffer time, how far ahead visitors can book (advance_days), and minimum notice (min_notice_hours).

3

Confirm business hours

Slots are generated only during your weekly schedule. Set timezone and hours under Widget Settings → Online schedule.

Visitor experience

In-chat picker

Visitors pick a date, see all slots for that day, and confirm a time. Available slots are selectable (green); already booked slots appear disabled (red).

Identity capture

Booking requires a visitor name or email. If your pre-chat form collects these, they are reused automatically. Otherwise inline fields appear in the picker.

Bot & AI buttons

Add an Appointment picker follow-up button on bot templates, or let AI suggest booking when configured. See Bot follow-up buttons.

Agent inbox

View upcoming bookings under Widget Settings → Appointments in the agent dashboard. Update status (pending, confirmed, cancelled, completed) and add notes.

Bot follow-up buttons

When editing a bot reply template, add a follow-up button with type appointment:

{
  "type": "appointment",
  "label": "Book a demo"
}

When the visitor taps the button, the widget opens the appointment picker inline. Standard quick-reply buttons use "type": "button" and send a text message instead.

Widget config

The embed bootstrap exposes appointment settings under config.appointments (enabled flag, duration, advance window, timezone). The widget calls the availability and book endpoints automatically — custom embeds rarely need to call these directly.

API

Full request/response examples are in the API reference → Widget appointments and Agent appointments sections.

EndpointPurpose
POST /api/widget/appointments/availabilityList slots for a date (available, status per slot)
POST /api/widget/appointments/bookBook a slot (requires visitor name or email)
GET /api/agent/appointmentsList organization appointments
PATCH /api/agent/appointments/{id}Update status or notes
GET/PATCH /api/agent/appointment-settingsRead or update slot rules