Admin Lesson 8: Setting Up Booking Link Types

Admin Lesson 8: Setting Up Booking Link Types

Booking links let customers self-schedule into agent calendars. The agent sends a link, the customer picks an open slot, a scheduled todo lands on the agent's calendar — no email ping-pong, no missed bookings, no manual calendar entries. This lesson walks through configuring the booking link types your team will offer.

Why booking links

Problem: "What time works for you?" → four emails back and forth → a slot is finally agreed → customer reschedules → four more emails. Half a day lost coordinating, the agent's calendar still doesn't reflect the agreed time until they enter it manually, and nothing connects the booking back to the ticket.

Horizon's answer: A booking link. The agent sends one URL. The customer sees the agent's real availability, picks a slot, gets a confirmation. A scheduled todo lands on the agent's calendar automatically, linked to the ticket.

For this to work, you (the admin) need to define the types of bookings that exist — "30-min discovery call", "2-hour onsite", "15-min check-in" — with their durations, buffers, and constraints. Agents pick from those types when they send a link; they don't define new ones each time.

Where booking link types live

Open the admin panel and navigate to Components → Bookings. You'll find:

PageWhat it does
Booking Link Typesthe catalog of bookable templates agents can send to customers
Booking Link Email Templatesemail templates used in invitations, confirmations, reminders
Booking Link Invitesaudit trail of sent invites — who got what, when, whether they booked
Bookingsthe actual booked appointments

Most setup work is on Booking Link Types and Email Templates. The other two are read-only audit pages.

Creating a booking link type

Navigate to Booking Link Types → Create. The form covers four areas:

Identity

  • Name — internal name for admins (e.g. "discovery-30").
  • Title — what the customer sees (e.g. "30-Minute Discovery Call").
  • Description — customer-facing text shown above the booking widget. Use this to set expectations: what the call covers, what the customer should bring, what comes next.

Duration and delivery

  • Duration (minutes) — how long the booking takes.
  • Delivery method — Onsite, Remote, or Internal. This carries through to the scheduled todo and downstream features (assignment policies can filter by delivery method).

Booking window — one of these is required:

  • Booking window daysrolling window. "Customers can book within the next 14 days from today."
  • Booking window start/end datesfixed window. "Customers can book between Jan 15 and Feb 28." Use this for promo periods, finite engagements, etc.

You must set one or the other. Trying to save without either fails — "BookingLinkType requires a booking window: set booking_window_days for a rolling window, or both booking_window_start_date and booking_window_end_date for a fixed window."

Slot constraints

  • Minimum notice (hours) — earliest a customer can book from the moment they open the link. "Don't let them book within 4 hours of now" prevents same-day surprises.
  • Buffer before / after (minutes) — protected time around each booking, so an agent isn't booked back-to-back with no recovery / prep time.
  • Start time increment (minutes) — granularity of bookable slots. 15 means slots appear at :00, :15, :30, :45. 30 means :00 and :30 only. Increase this to make the customer-facing calendar look less crowded.

Activation

  • Active — toggle. Inactive types don't appear in the agent's send-link picker. Use this to retire old templates without deleting them (deletion is blocked anyway if invites or bookings reference the type).

Email templates

When an agent sends a booking link, the customer gets an email. When they book, they get a confirmation. They may get a reminder before the appointment. Each of those emails needs a template.

Navigate to Booking Link Email Templates to manage them. At minimum, you want:

  • Invitation email — what the customer receives when an agent sends them a link.
  • Confirmation email — what they receive after they book.
  • Reminder email (optional) — sent before the appointment.

Templates support the usual placeholders for invitee name, agent name, ticket reference, booking time, etc.

You can use a single set of templates for all booking types, or create per-type variants if (for example) onboarding bookings need different wording than support bookings.

Calendar sync interaction

Booking links rely on knowing when the agent is free. That comes from two sources:

  1. The agent's business hours plan — defines the hours of the day they're potentially available.
  2. External calendar sync (Outlook, Google) — defines when they're already busy with non-Horizon events.

Without calendar sync configured (covered in helpdesk integration / calendars cluster), booking links will show slots that conflict with external meetings. Make sure calendar sync is set up before going live with customer-facing booking links.

Booking → scheduled todo handoff

When a customer books a slot:

  1. A Booking record is created.
  2. A scheduled todo is created on the agent's calendar at the booked time, linked to the ticket the booking link was sent against.
  3. The acceptance behavior for "booking link" (configured in the previous lesson) decides whether the todo is auto-accepted or pending agent acceptance.
  4. Post-commit actions on the create event fire any configured helpdesk side effects.

The agent doesn't have to do anything for the calendar entry to appear — it's automatic.

Booking link invites — the audit trail

The Booking Link Invites page lists every invite an agent has sent: who it went to, which type, when it was sent, whether the recipient viewed it, whether they booked, and the resulting Booking ID if they did.

This is the page to check when an agent says "I sent a booking link three days ago and the customer never booked". You can see whether the invite was even opened.

When booking links are set up correctly

  • The agent's send-link picker shows the booking types you expect.
  • A test invite renders correctly, shows real availability, and books cleanly.
  • The booked time appears on the agent's calendar within seconds.
  • The confirmation email reaches the customer with sensible content.
  • External calendar conflicts (synced events) block booking, no double-bookings.

Tip: Start with two or three booking types covering the bookings you actually do today — "Standard Remote Session (30 min)", "Onsite Visit (2 hours)", "Quick Check-In (15 min)". Resist the urge to model every possible variant on day one. Watch what agents send, and add (or split) types based on what they're actually using. A catalog of fifteen booking types nobody picks correctly is worse than three that everyone uses right.

    • Related Articles

    • Admin Lesson 7: Setting Up Scheduled Todos

      With triage running, every new ticket arrives classified. The next layer is the calendar layer — turning classified tickets into committed time on someone's day. That's what scheduled todos do. This lesson covers the admin-side configuration that ...
    • Admin Lesson 3: Tour of the Admin Panel

      You don't need to know every page in detail — that's what the rest of the series is for. You do need to know where things live so you can find them when you need them. This lesson walks the admin panel left-side navigation top to bottom, group by ...
    • Admin Lesson 4: Helpdesk Integration

      Helpdesk integration is the first thing you set up. Until Horizon can read tickets from your PSA and write back to it, nothing else matters — triage has nothing to triage, assignment has nothing to assign, scheduled todos have no tickets to attach ...
    • Admin Lesson 13: Custom Forms

      Custom forms turn repeatable agent actions into structured, queryable, automatable events. Instead of agents free-texting "escalating to vendor" into ticket notes, they fill out a Vendor Escalation form. The data is structured, the action is logged, ...
    • Admin Lesson 15: Panel Customization

      The Agent and Dispatch panels work out of the box, but they don't know which scope tabs your team actually uses, which actions your team needs as one-click buttons, or which forms should be wired up as named buttons on ticket cards. Panel ...