The booking calendar, next to everything else you know

Service businesses taking bookings through FlexBooker — one chair or forty, appointments or classes — whose questions have outgrown a calendar: no-shows by staff member, revenue by service, who hasn't been back since spring.

  • Appointments, customers, staff, services and locations — linked the way FlexBooker joins them
  • Cancellations and no-shows come across and stay current, so a table can't look busier than the day was
  • Class bookings and one-to-one appointments in one table, each marked for what it is
  • Your booking questions become columns, the same ones FlexBooker's own export shows
  • Times as FlexBooker shows them, plus the local time where a clinic is in another zone
  • Keep in sync hourly or daily; nothing in RowFold is ever deleted by an import
  • Columns you add are yours — the import writes only the ones it made
Start free 30 days free · no credit card
WHAT IT DOES

Exactly what connecting FlexBooker gives you

Brings data in

Pull FlexBooker into RowFold tables you own — filter them, report on them, link them to everything else in the workspace.

And it stays current: importing again updates the same tables, adding new records and updating changed ones, so links from your other tables hold. Keep in sync does that for you hourly or daily.

What it doesn't do: There are no automation steps that write back to FlexBooker. It has no say in what a booking page offers. An import only reads: nothing is written back to FlexBooker, a record deleted there stays here, and a sync runs hourly at most rather than the moment something changes. Anything else you have read about FlexBooker and RowFold, this page is the authority: it is generated from the connector's own code.

HOW TO DO IT

The jobs people connect FlexBooker for

I want to know which staff member has the most no-shows

FlexBooker records a no-show on the booking, which makes it a fact about one appointment and not about the person it was with. Once the appointments are rows and each one links to a staff member, that becomes an ordinary count.

  1. Connect FlexBooker under Manage workspace, then Integrations Paste the client ID and secret FlexBooker support issued you. RowFold exchanges them for a short-lived token on every call and stores neither the token nor anything re-mintable.
  2. Press Import and pick Appointments The first run makes five tables: appointments, customers, staff, services, and locations if you have more than one. It reads the last twelve months and the next twelve.
  3. Open FlexBooker appointments and filter No-show to Yes The header count changes with the filter, so you can see straight away how many no-shows the window holds before you slice them up.
  4. Group the view by Staff Each staff member becomes a heading with its own count, which is the number you came for. Grouping works because Staff is a single link rather than a name typed on the row.
  5. Turn on Keep in sync, daily The view keeps answering as new bookings land, and a no-show marked tomorrow on last week's appointment updates that row in place.

You'll know it worked: Add up the group counts and compare them to the header's filtered count. They should match exactly — and clearing the filter should return you to every appointment in the window.

I want revenue by service, not a list of prices

The price sits on each appointment, which is the right place for it and the wrong shape for the question. What you want is one number per service, and that is a rollup along the link the import already made.

  1. Open FlexBooker services and click Fields & setup The services table is small — one row per bookable service, plus one per class the window contains — which makes it the right place to hang a total.
  2. Add a field, choose Rollup, and pick the Appointments route It appears as a route because appointments link to services; you are following that link backwards to every booking of this service.
  3. Set the summary to Sum and the field to Price, then set the format to Currency Price is imported as a number, so it totals cleanly. The currency format is how it gets a symbol, since FlexBooker's own price text carries its server's symbol rather than yours.
  4. Under "Only include records where…", add Cancelled is false Cancelled bookings are imported on purpose, so leaving them out of the total is a decision you make here rather than one the import makes for you.

You'll know it worked: Filter the appointments table to one service and read the Price column's own total at the foot of the grid. It should equal that service's rollup.

I want the customers who haven't been back

FlexBooker counts every booking a customer has ever made and remembers the last one, which is more history than any import window holds. Both come across on the customer, so a win-back list is a sort and a filter.

  1. Open FlexBooker customers and sort by Last booking, oldest first This is FlexBooker's own figure for their most recent booking, so it reaches back further than the twelve months of appointments the import brings.
  2. Filter Last booking to "is before" a date you choose Eight or twelve weeks back is the usual line for a salon or clinic; pick the gap that means something for your trade.
  3. Add a column of your own — a status, a note, whoever is calling them The import never touches columns it didn't make, so your working notes survive every later sync intact.

You'll know it worked: Open one of those customers and check the appointments linked to them. The newest should be on or before the date you filtered by.

WHAT IT FIXES

The four things that actually go wrong

A booking calendar is built to answer "who is next", and every question worth asking is a different shape: how many people didn't turn up last month, which service actually pays, whether Tuesdays are worth opening.

Each appointment becomes a row with its time, length, price, status, no-show flag and who it was with. Filter it, group it, total it — the grid does the counting, and the answer moves as the bookings do.

Appointments and class bookings are two different things inside FlexBooker, so counting a week means adding two lists up by hand and hoping nobody double-counted.

The import brings both into one table and marks each row Appointment or Class, so a week is one filter and one count. Each is keyed by its own confirmation reference, so the two can never collide.

The customer list lives where the bookings are. Anything you know that FlexBooker doesn't — a membership, a deposit, notes from the practice management system — sits in another tool, so nobody can ask a question that spans the two.

Customers arrive as their own table, linked to their appointments, with the columns you add left alone on every later sync. Your own fields sit beside FlexBooker's, on one record.

Exports go stale the moment they land. A spreadsheet pulled on Monday is a museum piece by Friday, and re-exporting means redoing every formula, filter and chart built on it.

Turn on Keep in sync and the same tables update hourly or daily: new bookings appear, changed ones change, and everything built on top of them keeps working.

QUESTIONS

Before you start

Can RowFold create or change a booking in FlexBooker?

No. This integration reads: it brings appointments, customers, staff, services and locations into RowFold, and sends nothing back. Cancelling, rescheduling and booking all stay in FlexBooker, where the availability rules and the customer emails live. If you want RowFold to act on a booking — a follow-up email, a task, a message to a colleague — it can do that from its own automations, without touching the calendar.

How current is the table after the first import?

Turn on Keep in sync and it re-imports hourly or daily, your choice. A scheduled run reads the last sixty days and the next twelve months, which is where bookings actually change: new ones appear, times move, statuses and no-shows get set. A booking older than sixty days is left as it was until somebody presses Import again, which reads the full twelve months back.

Do cancelled bookings and no-shows come across?

Yes, both, and that is deliberate. A cancellation is a change to a booking your table already holds, so leaving it out would leave the row looking busy for ever. Cancelled bookings arrive with their reason where FlexBooker recorded one, and a no-show is a column you can filter and count. What no import does is delete: a booking removed at FlexBooker stays in RowFold, where you can see it.

Where do the API credentials come from?

FlexBooker support issues them — a client ID and a secret — and there is no button for them in the merchant dashboard, so email support@flexbooker.com to ask. RowFold exchanges the pair for a short-lived token on every call rather than storing one, and the secret is encrypted at rest like every other connection credential. Disconnecting the integration in RowFold stops all of it at once.

Which clock are the times on?

The one FlexBooker shows you: your account's time zone, the same one its own booking export uses. If a location sits in a different zone, each appointment there also carries the local time at that location, exactly as that export adds a column for it. If your RowFold workspace is set to another zone, the import says so and tells you which one to set, because filters like "in the next 7 days" and automation timings read the workspace's clock.

Do class bookings come in as well as appointments?

Yes. FlexBooker keeps classes and one-to-one appointments separately, and the import brings both into one table, marking each row Appointment or Class. A class booking carries its class as its service and its instructor as staff where one is assigned. The two can share a numeric id inside FlexBooker, so each row is matched on its confirmation reference instead — which is what stops one overwriting the other on a later sync.

What happens to my own columns and links?

They are left alone. The import owns the columns it made and writes only those; anything you add — a status of your own, a note, a link to another table — is never touched, on the first run or the hundredth. Records are updated in place rather than replaced, so comments, history and links from other tables survive. The one thing to know is that the source wins on its own columns: edit an imported cell and the next sync puts FlexBooker's value back.

How much of my customer list does it bring?

All of it when you press Import, up to ten thousand customers, with each one's total bookings, last booking date, notes and custom field answers. A scheduled sync deliberately skips the list and only adds customers it meets on new bookings, because FlexBooker serves that list ten at a time and reading it hourly would be a heavy, pointless load on your account. Press Import when you want everyone's totals refreshed.

Describe yours and watch it build

There is no template to wait for. Type a sentence about what you run and RowFold assembles the tables, links, views and dashboard around it — then you change whatever does not fit.

Start free Free for 30 days. Then $29/month per editor, with unlimited free read-only viewers.