Skip to content
Fifi CRMHelp

Online booking

Let people book time with your team from a public page. They pick a time that suits them, answer a few questions, and get a confirmation email with a calendar file. Each booking adds (or matches) the contact and puts a meeting on their timeline and your calendar.

Your team can also book an appointment for a client from inside Fifi: from the calendar, a seat on the Floor view, or the client's page. It's the same kind of booking, with the same rules.

Online booking is a module, on the Pro plan (5 booking types) and the Business plan (20). During the beta every workspace gets Business. If Settings → Booking is missing, an owner or admin can turn it on in Settings → Modules.

Note: booking emails (confirmations, reminders, changes) are sent by Resend. They need Resend set up on this Fifi.

Who can do it:

TaskOwnerAdminMember
Set your own hours and days offYesYesYes
Create and edit booking typesYesYesNo
Change the booking page addressYesYesNo
Move or cancel a bookingYesYesTheir own bookings
Hand a booking to someone elseYesYesNo
Add, edit and delete seatsYesYesNo (they see the list)
Change a booking's seatYesYesTheir own bookings
Book an appointment for a client (Anyone free, or yourself)YesYesYes
Book an appointment for someone else on the teamYesYesNo
Book outside working hoursYesYesNo

1. Set your hours

Everyone who takes bookings sets their own hours. Until you do, nobody can book you.

  1. Go to Settings → Booking → Your hours.
  2. Choose Your time zone.
  3. Under Weekly hours, set the times you're available each day (up to 6 ranges a day). Days with none show "Unavailable". The starting suggestion is weekdays, 9 to 5.
  4. Under Days off, click Add days off for holidays and time away.
  5. Click Save hours.

2. Create a booking type

A booking type is something people can book, like "30-minute consultation".

  1. In Settings → Booking → Booking types, click New booking type.
  2. Fill in:
    • Name and an optional Description;
    • Page address (filled in from the name if left blank);
    • Length: 15 minutes to 4 hours (default 30 minutes);
    • How far ahead people can book: 7 days to a year (default 60 days);
    • Free time before and Free time after: a buffer around each booking;
    • Minimum notice: how soon a booking can start (default 2 hours);
    • Where: an address, "Phone call" or a video link. It's sent with the confirmation, not shown before booking;
    • Who takes it: the teammates who take these bookings;
    • Needs a seat: tick it when each booking takes a place, such as a grooming table or a tub, and choose the seats it can use (see Seats);
    • Questions: name and email are always asked. Choose whether to ask for a Phone number, and Add a question (up to 5);
    • Taking bookings: tick to make it live.
  3. Click Create.

A workspace can have up to 20 booking types. If someone who takes a type hasn't set hours, you'll see "Not bookable until they set their hours: ‹names›."

Seats

A seat is a place an appointment happens: a grooming table, a tub, a chair, a station. When a booking type needs a seat, a time is only open while one of its seats is free too, and each booking gets the first free one. Visitors never see or pick a seat: it's for your team.

Add your seats in Settings → Booking → Seats:

  1. Click Add a seat. Give it a Name (up to 60 characters, unique among your seats) and a Kind: Table, Tub, Chair, Dryer, Station, or your own word.
  2. Use the arrows to put them in order. A booking takes the first free seat in this order.
  3. Switch a seat off when it can't be used (the table's broken, the tub's being fixed). It takes no new bookings; the bookings it already has keep it, and the list says "2 upcoming bookings keep this seat".
  4. Delete a seat you no longer have. While upcoming appointments use it, Fifi refuses: "3 upcoming appointments use Table 2. Change their seat first", with a link to them on the calendar's Floor view, on the day of the first one (for a seat that isn't on a floor plan, to Upcoming bookings in Settings → Booking).

Up to 100 seats a workspace. Members see the list; owners and admins change it.

Give a booking type its seats. Edit the type, tick Needs a seat, and tick the seats it can use (or Select all). It needs at least one. For example, grooming uses the tables, a bath the tubs, and a nail trim any table. If none of its seats is on, the type says "No seats on: this type can't be booked."

  • Turning Needs a seat on doesn't give existing bookings a seat. They show under No seat on the calendar's Floor view, where you can give them one.
  • Turning it off leaves existing bookings' seats as they are.

A seat's clean-up time is the buffer. The time a seat is held is the booking's time plus the type's Free time before and Free time after, the same as for the teammate.

What happens to a booking's seat:

  • A visitor's reschedule, or your team's Move, keeps the seat when it's free at the new time. Otherwise the booking takes the first free seat its type can use, or the move is refused when there's none ("That time isn't free: it overlaps another booking or meeting, or none of its type's seats is free then").
  • Handing a booking to someone else keeps its seat. Cancelling frees it.

Change a booking's seat from its details: the calendar (click the booking: Seat: Table 2 · Change), Settings → Booking → Upcoming bookings (Seat: Table 2, Change), or the calendar's Floor view (a seat's day, Change seat). It offers every seat that's on and free for that booking's time, including seats outside its type's list (you can override), and No seat when the type doesn't need one. If someone takes the seat while you're choosing, you'll see "Table 2 was just taken. Pick another seat." Members change their own bookings' seats; owners and admins any booking's. A booking that's over keeps its seat: there's no Change. The visitor isn't told.

The calendar shows each booking's seat on its chip ("Table 2"), and the contact's timeline shows it beside "Booked online". The calendar's Floor view shows your seats on your floor plans, with who's in which seat at any time.

3. Share your booking page

At the top of Settings → Booking you'll see Your booking page: https://‹fifi›/b/‹your-address›. It lists your booking types. Each type also has its own page at /b/‹your-address›/‹type-address›.

Owners and admins can change the address under Page address and Change address. Links to the old address stop working.

What visitors see

  1. They open your page and pick a booking type.
  2. They pick a day, then an open time. Times show in their own time zone (they can change it).
  3. Under Your details they enter their first name, last name, email, phone (if asked) and your questions.
  4. They pass a quick security check and click Confirm booking.
  5. They see You're booked, and get a confirmation email with a calendar file and a Reschedule or cancel button.

If two people try the same time, the second sees "That time was just taken. Here are the times still open."

How bookings are assigned

A time is open when at least one teammate who takes that type is free: within their hours, not on a day off, outside the minimum notice, and clear of their other bookings and meetings (with buffers). For a type that needs a seat, one of its seats must be free too. Fifi gives the booking to whoever has the fewest bookings that week, and the first free seat in your seats' order. Two visitors can never book the same person, or the same seat, at the same time.

Book an appointment for a client

When a client phones or walks in, book them from inside Fifi (Online booking must be on). Open Book an appointment from:

  • Calendar → Add → Book an appointment, next to Schedule meeting. Or click an empty slot and choose Book an appointment: the day and time are filled in.
  • Calendar → Floor: open a seat and click Book here, or click Book here on a seat that's free at the time you've picked (on the plan, or beside it in the list). The seat, the day and the time are filled in, and only the booking types that can use that seat are offered.
  • A contact's page → Book appointment: the client is filled in.

Then fill in:

  1. Booking type: types that are taking bookings and have someone to take them.
  2. Client: Existing (search your contacts) or New client (first name, last name, and optionally email and phone). Without an email no confirmation can be sent. A new client whose email matches a contact is booked as that contact, which isn't changed, as for an online booking.
  3. Who: Anyone free (Fifi picks, as for online bookings: whoever has the fewest bookings that week) or a teammate who takes the type. Members can pick only themselves.
  4. Seat (types that need one): Auto (the first free seat, as for online bookings) or a seat. With a seat chosen, only the times it's free are offered.
  5. Date and an open time. The times are worked out as on your booking page, but without the type's minimum notice: you can book a time starting now. How far ahead people can book still applies. If a day has none, Next open jumps to the next one.
    • Owners and admins can tick Book outside working hours: any time on that date in 5-minute steps, still never over that teammate's other bookings or meetings, or a seat in use.
  6. Note (optional): the meeting's notes.
  7. Email the client about this booking (confirmation, reminder, changes): on when the client has an email. They get the usual confirmation with its calendar file and Reschedule or cancel link, the 24-hour reminder, and an email when your team moves or cancels it. Untick it and the client gets none of these for this booking.

Click Book appointment. The teammate gets "New booking: …" when someone else booked them (not when you book yourself). If someone takes the time while you're filling in the form, you'll see "That time was just taken. Pick another.": the times are read again and the rest of the form stays as it was.

A booking made in Fifi is an ordinary booking: it shows "Booked by ‹your name›" on the contact's timeline and the calendar, gets the usual 24-hour reminder email (unless you unticked Email the client), and is moved, handed on or cancelled like any other. In a sample workspace you can book, but nothing is emailed or texted.

Repeating appointments

A client who comes back on a schedule (a quarterly pest service, a groom every 6 weeks, a weekly dock pickup) gets a repeating appointment: book the first visit and Fifi books the rest.

In Book an appointment, after picking the time, choose Repeat:

  • Every week, Every 2 weeks, Every 4 weeks, Every 6 weeks, Every month, Every 3 months or Every 6 months, or Custom… (a number, then Weeks or Months).
  • For months, On day 14 (the same date each month; the 31st becomes the month's last day) or On the 2nd Tuesday (the same weekday; a 5th becomes "the last").
  • Ends: Never, After a number of visits (2 to 200), or On a date (within 5 years).

Every visit is at the same time of day, in the zone of that teammate's hours (a label names the zone when it isn't yours). Before you book, the preview lists the first 8 visits, each Free or Can't book with the reason ("Luis is off that day", "outside Luis's hours", "Luis is booked then", "no seat free"), and how many more there are in the next 4 months.

The first visit is booked like any appointment (if its time was just taken, nothing is booked), and the dialog says "Booked the first visit; Fifi is booking the rest now." Fifi then books every visit in the next 4 months within moments (reload the client's page to see them, and any that couldn't be booked), and adds later ones each morning as they come up (always at least the next one, so a 6-monthly plan shows its next visit). "Anyone free" picks a teammate for the first visit and keeps them for every visit; Auto picks a free seat for each visit.

A visit that can't be booked is skipped: nothing is booked then, and its teammate gets a task, such as "Couldn't book General pest service for Megan Ross on Jan 12, 2027, 9:00 AM: Luis is off that day". On the client's page, Repeating appointments lists it with Book, which opens Book an appointment at that visit: pick another time.

Emails. With Email the client ticked, the client gets one email listing the visits booked (sent once they're all booked), each with its own Reschedule or cancel link, and one calendar file with every visit. Visits Fifi books later aren't emailed when they're booked: the client gets the usual reminder a day before, which says to contact you to change it. Untick Email the client and the client gets nothing about the repeating appointment. The teammate is told once when someone else booked it for them.

Changing it. Each visit is an ordinary booking:

  • Only this visit: move it, change its seat, hand it on or cancel it in Settings → Booking, as any booking (on the calendar, a visit's Cancel… offers Only this visit). The client's own link changes only that visit.
  • This and all later visits: on the calendar, open a visit and click Change repeating… (or on the client's page, the menu next to the repeating appointment → Change this and later visits…). Pick the visit to change from, then the new first visit's date and time, the teammate, seat, how it repeats and ends, the notes and Email the client. The visits from there are replaced (the old ones disappear from the calendar; the timeline says "Repeating appointment changed …" once) and the client gets one email with the dates no longer booked and the new ones. If someone else changed it meanwhile, you'll see "This repeating appointment changed since you opened it." The new first visit can be up to a year ahead.
  • End repeats: a visit's Cancel… → This and all later visits, or on the client's page → End repeats… (every upcoming visit). Past visits stay, and the tasks for visits that couldn't be booked are marked done.
  • A repeating appointment that ended by itself (its booking type was switched off, or its teammate can no longer take it) keeps the visits already booked; its task says how many. On the client's page, its menu → Cancel visits still booked… cancels them.

When it ends by itself. After its last visit; or, with a task for its teammate, when the booking type is switched off or deleted or the teammate can no longer take it. While the client is in the trash or Online booking is off, it waits (visits whose time passed meanwhile aren't booked).

Each workspace can have up to 1,000 repeating appointments going at once.

What a booking creates

  • A contact, matched by email. An existing contact is never changed. A new one has source Inbound (Other when your team booked it) and is owned by the teammate who got the booking.
  • A meeting on the contact's timeline and the calendar, at the booked time and length, with the visitor's answers in its notes (your note, for a booking made in Fifi). It's marked "Booked online", or "Booked by ‹name›" when your team booked it.
  • Emails: the visitor gets a confirmation (from Fifi, when your team ticks it); the teammate gets "New booking: ‹type› with ‹visitor›" (from Fifi, when someone else booked them).
  • A reminder email to the visitor about 24 hours before (not for bookings made less than a day ahead). Text reminders go only to visitors who asked for one on your booking page.
  • If the workspace has automations, "A booking is confirmed" runs (once for a repeating appointment, for its first visit).

Changing a booking

The visitor uses the link in their confirmation email to Reschedule (with the same teammate, up to 3 times a day) or Cancel booking. The link stops working once the meeting starts.

Your team, in Settings → Booking → Upcoming bookings (members see Your upcoming bookings):

  • Move: pick a new date and time.
  • Cancel: "The visitor is emailed; the meeting stays on the timeline, marked cancelled."
  • Hand it to another teammate (owners and admins), then Hand on.

Both sides are emailed about every change. If a teammate leaves, their upcoming bookings say "‹name› has left, so nobody will be there. Hand it to someone else or cancel it." Owners and admins also see a count of these in their daily digest.

Booked meetings can't be dragged on the calendar; use Settings → Booking.

Troubleshooting

ProblemWhat to do
Visitors see "This page isn't taking bookings right now"Tick Taking bookings on the type, check the address, and make sure Online booking is on.
No times are openCheck the teammates have saved hours, the minimum notice and how far ahead people can book. For a type that needs a seat, check it has seats that are on (Settings → Booking → Seats).
A seat can't be deletedUpcoming appointments use it: change their seat first (the message links to them), or switch the seat off instead.
"Not bookable until they set their hours"Those teammates set Settings → Booking → Your hours.
Visitor didn't get a confirmationAsk them to check spam. Booking emails need Resend set up on this Fifi.
"Too many requests"The visitor tried too often; they can try again later.
"That time was just taken. Pick another."Someone booked that time (or seat) while you were filling in the form. Pick another of the times shown.
"They don't take this booking type any more. Pick someone else."The teammate was taken off the type meanwhile: pick Anyone free or someone else.
"That seat can't be used for this booking type."Pick Auto or one of the type's seats, or add the seat to the type.
"No booking type can be booked yet."Add a booking type with someone to take it (Settings → Booking). A type that needs a seat needs a seat that's on.
"You can book for anyone free or for yourself…"Members book for Anyone free or themselves; owners and admins book for others and outside working hours.
A repeating visit says "Can't book"That visit is on the teammate's day off, outside their hours, over another booking or with no seat free. Book anyway and Fifi makes a task for it; book it at another time with Book on the client's page.
"This workspace has 1,000 repeating appointments."End some that are no longer needed (client's page → End repeats).

Pages and booking attempts are rate-limited, and each email address can book a workspace up to 5 times a day.