Add-ons

Bookings

Let people book time with you straight from the DM — free or paid, with availability, qualifying questions, and refunds that run themselves.

Updated Jul 10, 2026

Booked inside the conversation

Bookings turns "DM me to book" into an automation: a flow sends your booking link in the conversation, the visitor picks a time that actually works for you, and the confirmation, calendar invite, and follow-up all happen on their own. Calls, in-person sessions, anything with a time slot — no third-party scheduler taped onto the side, and the whole motion lives where your audience already is.

This guide runs the setup in order: turn the add-on on, build a booking page, add qualifying questions, charge for the time if you want to, send it from a flow, and keep track of everything after.

Turn on bookings

Bookings is included from the Growth plan. A workspace owner or admin activates it once, and everything lives under one section afterward.

  1. 1Open Add-ons in the dashboard sidebar.
  2. 2Find Bookings and choose Activate. If your plan doesn’t include it yet, you’ll be pointed to upgrade instead.
  3. 3Open Add-ons → Bookings. Four tabs run everything: Booking pages, Bookings, Analytics, and Settings.

Create a booking page

A booking page is one offer — "Discovery call, 30 minutes" — with its own link, its own availability, and its own rules. How many pages you can run scales with your plan. The editor walks four tabs: Details, Availability, Payment, and Confirmation & sharing.

  1. 1Go to Bookings → Booking pages and choose New page.
  2. 2Details: name it, set the length, and add the meeting location — a video link, an address, a phone number, or your own instructions. Visitors see what kind of meeting it is up front; the actual link or address is revealed only after they book.
  3. 3Availability: set weekly hours in your timezone, or switch to specific dates for things like office hours and limited runs. Buffers, minimum notice, a daily cap, and per-date overrides keep your calendar humane.
  4. 4Confirmation & sharing: optionally let visitors add a note when they book, and write your confirmation message — shown on the confirmed screen and in their email.
  5. 5Publish. The page gets a public link your flows can send — and one person can never be double-booked: a confirmed time on any of your pages blocks that time on all of them.

Ask questions before they book

Add up to eight questions to the booking form — short answers, long answers, dropdowns, or phone numbers, each required or optional. Name, email, and timezone are collected automatically, so save your questions for what you actually need to know.

Dropdown options can qualify: mark the answers that aren’t a fit, write the message those visitors should see, and the booking never happens — no hold on your calendar, no payment taken, nothing stored. They get your words, not an error.

Answers land everywhere you work: in the booking’s details, in your new-booking email, and in your flows as variables — so a follow-up email can reference exactly what they told you.

Charge for the time

Flip on Require payment to book and the slot confirms only after payment clears — the visitor’s time is held while they pay, and everything (confirmation, invite, your flow continuing) waits for the money. Payments run on Stripe: buyers pay you directly, and a per-booking platform fee applies to paid bookings — the pricing page has the specifics.

You set the refund policy per page, and it enforces itself: with a cutoff policy, a visitor who cancels early enough gets an automatic full refund; past the cutoff they can still cancel — the time frees up — but the payment stays with you, and the page says so plainly before they confirm. If you cancel, they’re always refunded in full. No refund tickets, no judgment calls.

Optional meeting terms — reschedule expectations, what to prepare — are shown next to the refund policy before anyone pays.

  1. 1Connect Stripe once in Settings → Payments — it’s the home for every Stripe account your workspace collects with, and both storefronts and booking pages pick from the same pool.
  2. 2On the booking page’s Payment tab, turn on Require payment to book, set the price, and pick the Stripe account that collects.
  3. 3Choose the refund policy — full refund until a cutoff you set, or no refunds — and add meeting terms if you want them.
  4. 4Publish. A paid page can’t go live without a connected Stripe account, so there’s no way to sell a slot you can’t collect on.

Send it from a flow

The Booking step drops your page’s link into the DM through the same rate-limited, opt-out-respecting send path as everything else. It runs in two modes:

  • Send and continue — the flow shares the link and moves on. Right for "here’s my calendar" moments.
  • Wait for booking — the flow pauses until they book (or a timeout you set passes), then branches: the booked path knows the time, the visitor’s details, and their answers as variables; the timeout path lets you nudge or move on.

After they book

Both sides get a confirmation email, and the visitor’s carries a calendar invite that lands complete — title, time, the join link for video calls, and a cancel link — plus a reminder email before the meeting.

Cancellations carry a voice: visitors can tell you why they cancelled, and when you cancel, you can send an apology or reason along with the notice — it lands in their email next to the refund outcome, and their time gets a one-tap "pick a new time" path back to your calendar.

Stay on top of it

The Bookings tab shows everything as a list or a calendar — month, week, and day views, with paid bookings carrying their amount. The Analytics tab tracks bookings made, upcoming, cancellations, and revenue (collected, refunded, and net) across a window you pick, plus how each page performs.

In Bookings → Settings you can show your Instagram identity on the public page, so visitors see who they’re booking with.