---
title: "Bookafy Integration"
description: "Connect AI agents to Bookafy, an online appointment scheduling platform. Agents create and update appointments, look up available time slots, and manage customers and staff so booking changes happen without back-and-forth email."
url: https://flowrunner.ai/integrations/bookafy
date_modified: 2026-08-12T15:40:33-07:00
---

# Bookafy

[Scheduling](https://flowrunner.ai/integrations/category/project-management-productivity)

Connect AI agents to Bookafy, an online appointment scheduling platform. Agents create and update appointments, look up available time slots, and manage customers and staff so booking changes happen without back-and-forth email.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 17 actions · API key · available

[Bookafy website](https://bookafy.com/) · [Platform Documentation](https://bookafy.com/custom-api-public/) · Capability data verified 2026-08-10

1.  A new practitioner is marked ready to take appointments in the HR record
2.  Agent reads the person's role, location, and the services they are cleared for
3.  List Staff Members confirms there is no existing profile for that person
4.  List Services resolves the exact service IDs the new hire will be bookable for
5.  The practitioner and their manager receive the draft profile and its public booking URL
6.  Manager approves before Create Staff Member opens that calendar to public booking

## What This Integration Enables

Bookafy is built around a public booking URL, and every object in the API points back at one. List Staff Members returns each staff user with their own public booking URL. List Services returns the booking slug for each service. List Appointment Types returns the public booking page links grouped by category. The private API exists so that automation can do what the public page does, on the customer's behalf, with better information than a web form has. Agents look up services and staff, call Get Available Time Slots for a real set of openings in the requested time zone, and then place the appointment with Create Appointment, attaching or creating the customer in the same request.

The details that matter in practice are the ones that catch people out. Times are interpreted in UTC, so an agent resolving a customer's local time is doing real work rather than passing a string through. Custom Fields are keyed by the exact intake labels configured in Bookafy, which lets answers captured upstream land on the record instead of in a separate inbox. Update Appointment replaces the scheduling definition rather than patching it, so every core field has to be supplied together. Agents handle all of that reliably. What they hand back to a person is described below. Every action is built and verified against the Bookafy API.

### Without FlowRunner

**Booking links assembled by hand**: Someone copies staff and service URLs out of the admin panel into an email

**Intake answers lost in transit**: Custom field answers live in a form tool and are retyped into the appointment

**New staff go live unannounced**: A profile is created and the public page starts taking bookings before the person is ready

### With FlowRunner

**Open times fetched on demand**: Get Available Time Slots returns real openings for the chosen staff member, service, and date

**Intake answers carried through**: Custom Fields pass organization specific questions straight onto the customer and appointment

**Public exposure is a decision**: Create Staff Member runs only after the manager confirms the calendar should be bookable

## Use Case Scenarios

### Lead to Booked Intake Call

A lead fills out a landing page form and the row lands in [Google Sheets](https://flowrunner.ai/integrations/google-sheets). The agent runs List Customers to see whether this person already exists, creates them with Create Customer if not, and passes the qualifying answers through Custom Fields using the exact labels configured in Bookafy. It then runs List Services to pick the right intake type, calls Get Available Time Slots for the assigned staff member in the lead's own time zone, and books the first slot that fits with Create Appointment. The lead is contacted once, with a time that is real, instead of being sent a link and forgotten.

### Offering the Next Open Times

A customer replies to a reminder asking to move their appointment. The agent runs List Appointments for that customer's email, identifies the booking, and calls Get Available Time Slots for the same staff member and service across the next several days. It sends the three nearest options through [Gmail](https://flowrunner.ai/integrations/gmail-service) in the customer's time zone. When the customer picks one, the agent runs Update Appointment with the full scheduling definition, because the operation replaces rather than patches, and confirms the new time. Nobody in the office negotiates a reschedule over four emails.

### A Reporting Mirror That Stays Current

The operations lead wants bookings visible where the rest of the business reporting lives. The agent runs Create Webhook Subscription for appointment created, updated, and deleted events, pointing at a FlowRunner entry point, then keeps a mirror in [Airtable](https://flowrunner.ai/integrations/airtable) so utilization by staff member and service is queryable alongside everything else. List Webhook Subscriptions is used to audit what is registered, and Delete Webhook Subscription retires a callback cleanly when a flow is decommissioned. Webhook subscriptions require a paid Bookafy premium plan or above, so the agent verifies the account first with Get Account Email.

## Human-in-Loop Highlight

Create Staff Member is the operation in this connector with a consequence outside the database. It requires administrator privileges on the authenticated account, and what it produces is not just a row: it is a person with their own public booking URL, which the outside world can immediately put time on. A new hire who has not finished onboarding, a contractor whose service list is wrong, or a duplicate profile for someone who already exists all become bookable the moment the call succeeds, and the appointments that arrive in the meantime are real commitments to real customers. So the agent prepares everything and stops. It posts the draft to the hiring manager in [Slack](https://flowrunner.ai/integrations/slack): "Ready to make \[name\] publicly bookable as \[role\], for services \[list\], starting \[date\]. Their booking URL will be live immediately. Approve, change the service list, or hold?" The manager decides. On approval the agent runs Create Staff Member with the confirmed role type, then verifies with List Staff Members and passes the live URL back into the onboarding thread. Booking, rescheduling, and customer lookups run without asking. Putting a colleague's calendar in front of the public does not.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via Slack

Human decides

Agent resumes with decision

## Agent Capabilities

17 actions

### Appointments

4

-   **Create Appointment** Books an appointment for a staff member and service at a specific date and time, creating or attaching the customer in the same request. Dates and times are interpreted in UTC. Organization specific intake answers pass through Custom Fields.
-   **List Appointments** Retrieves scheduled appointments for a given customer email, optionally narrowed to a date range and paged. Used to find the booking behind a reschedule request or a support question.
-   **Update Appointment** Updates an appointment and its customer details by ID. This replaces the appointment definition, so staff member, service, date, and times must all be supplied together rather than patched individually.
-   **Delete Appointment** Deletes or cancels an existing appointment by ID. The staff member ID that owns the appointment is required to authorize the removal.

### Availability and Services

3

-   **Get Available Time Slots** Retrieves the bookable slots for a service, staff member, and date, returned in the requested time zone. Run this before Create Appointment so the booking lands on a slot the staff member is genuinely free for.
-   **List Services** Retrieves every service configured for the organization with full detail, including duration, price, buffers, scheduling mode, meeting integrations, and booking slug.
-   **List Appointment Types** Retrieves the appointment types offered by the organization, grouped by category, together with their public booking page links. Useful when a flow needs to hand a customer a self service URL instead of booking for them.

### Customers

3

-   **Create Customer** Creates a customer record. Name is required, and intake fields pass through Custom Fields keyed by their exact Bookafy labels.
-   **List Customers** Retrieves the customer records on the account, including contact details and stored custom field values. The duplicate check before a new record is written.
-   **Update Customer** Updates a customer by ID. Supply the fields to change, plus any intake fields through Custom Fields using their exact Bookafy labels as keys.

### Staff

2

-   **List Staff Members** Retrieves the staff users in the organization with their name, email, public booking URL, and profile image. Used to resolve a staff ID before checking availability or booking.
-   **Create Staff Member** Creates a new staff user, which gives that person a live public booking URL. Requires administrator privileges, and the role type controls the new user's permissions. Routed for human approval before it runs.

### Webhook Subscriptions

3

-   **Create Webhook Subscription** Registers a webhook so Bookafy posts to a callback URL when appointments or customers are created, updated, or deleted. Requires a paid premium subscription or above.
-   **List Webhook Subscriptions** Retrieves the webhook subscriptions registered for the organization, including callback URLs and subscribed event types. The audit read before changing anything.
-   **Delete Webhook Subscription** Removes a webhook subscription by ID so Bookafy stops sending events to its callback URL.

### Account

2

-   **Get Account Email** Returns the administrator email tied to the configured API key. Used as a connection check to confirm which account a flow is acting as before it writes anything.
-   **Generate API Key** Exchanges a Bookafy account email and password for the API key used by every other operation. Run once to obtain the key, then store it in the service configuration. This is the only call that does not require an existing key.

## Frequently Asked Questions

### What can FlowRunner do with Bookafy?

FlowRunner agents can run Create Appointment, List Appointments, and Update Appointment in Bookafy, plus 14 more actions.

### Does connecting Bookafy to FlowRunner require OAuth?

No. Bookafy connects to FlowRunner with an API key, no OAuth flow required.

### Can Bookafy trigger a FlowRunner workflow automatically?

Bookafy doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at Bookafy?** This integration exposes Bookafy to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/bookafy. Site index: https://flowrunner.ai/llms.txt
