FlowRunner
PricingContact
Theme
Start Free

Trafft

Scheduling

Connect AI agents to Trafft, appointment scheduling and booking software. Agents create bookings, manage customers and coupons, and read the service catalog, and react to new appointments so client scheduling runs end to end.

Verified 1 trigger 19 actions Custom auth available
Trafft website ↗ Platform Documentation ↗ Capability data verified 2026-08-10
On New Appointment fires when a client books a service in Trafft
Get Appointment returns the service, employee, customer, timing, price, and status
List Customers looks up whether this client has booked with the business before
Get Service confirms the duration, the price, and which staff can deliver it
The appointment and the client record are written to the CRM as one linked pair
The assigned employee receives the booking with the client's history attached
An operator approves a discount before Create Coupon makes it claimable

What This Integration Enables

Trafft is booking software for businesses where the appointment is the transaction, not a calendar entry about one. Salons, clinics, studios, and multi-location service brands run their whole front of house on it. That shows in the API. Alongside the operations you expect from a scheduler, the connector exposes services with durations and prices, employees with the services they are qualified to deliver, locations, and a coupon surface that changes what customers pay. Get Available Times is the operation worth building on, because it respects working hours, buffers, and existing appointments, so the slots it returns are genuinely open rather than merely empty on a grid.

Agents work the whole loop from here. On New Appointment fires within seconds of a booking, Get Appointment resolves the full record, and Create Booking commits a slot with either an existing Customer ID or new customer fields supplied inline. The customer surface is full read and write, including a permanent Delete Customer, and the service, employee, and location surfaces are read only, which is the right shape: an agent should be able to see the catalog it is booking against without being able to rewrite it. Two capabilities depend on account features being switched on, since List Locations needs Multiple Locations and the coupon operations need Coupons enabled. The Trafft public API is in beta, so field names follow the Trafft REST client conventions and are worth confirming against your instance. Scheduling, customer records, and reporting run unattended. Changing the price the business charges is a decision, and it goes to a person, which is the human-in-the-loop default FlowRunner builds around. Every operation here is built and verified against Trafft's official API.

Without FlowRunner

Front desk as the integration Bookings are retyped into the CRM and the accounting system after the fact
Staff learn about their day from a screen The employee sees a new client's name and nothing else until the appointment starts
Promotions run on trust A discount code goes live and its real cost is discovered when the month is reconciled

With FlowRunner

The booking is the record On New Appointment carries the service, employee, customer, and price into every downstream system
Staff get context, not just a slot Get Customer and List Appointments assemble the client's history before the appointment begins
Promotions run with a named approver Create Coupon executes only after a human has seen the discount value, the cap, and the expiry

Use Case Scenarios

The Appointment Arrives Everywhere at Once

A client books a treatment on the Trafft booking page. On New Appointment fires, and the agent runs Get Appointment for the full record, then Get Customer and List Appointments filtered to that customer. It now knows whether this is a first visit or the eleventh, what they booked last time, and who delivered it. That context goes to HubSpot as a linked activity on the contact, and to the assigned practitioner through Slack as a short brief rather than a calendar ping. Nobody retypes anything, and the person delivering the service reads the history before the client sits down.

Filling a Cancellation Without a Phone Tree

A client cancels on Tuesday afternoon. The agent runs Cancel Appointment, which frees the slot, then Get Available Times for that service to confirm what the gap actually looks like once buffers are applied. It pulls the waitlist from Airtable, matches the freed duration and location against people who asked for exactly that service, and messages the top three through Gmail with the specific time rather than an invitation to check the site. When one replies, Create Booking commits the slot against their existing Customer ID. The gap closes in minutes instead of staying open because nobody had time to work the list.

A Weekly Read on Staff, Services, and Discounts

Every Monday the agent runs List Appointments across the prior week, then joins each record to List Services and List Employees so revenue and hours resolve to real names rather than IDs. It runs List Coupons alongside, which returns each coupon's discount value and usage statistics, and writes the week to Google Sheets with bookings, no shows, and discounted revenue in adjacent columns. The owner sees which services are carrying the schedule and which promotion is quietly costing more than it brought in. A short summary posts to Slack with anything unusual named.

Human-in-Loop Highlight

Most operations in this connector affect one appointment or one person. Create Coupon does not. It creates a standing discount that customers apply at booking, priced either as a percentage or as a fixed amount, and both of the guardrails are optional: you may cap the number of uses and you may set an expiration date, or you may set neither. A coupon with neither is a price change with no end and no ceiling, claimable by anyone who has the code, on every booking, indefinitely. It also fails silently in the direction that costs the most, because a percentage meant to read 10 and entered as 100 is a valid coupon, and a fixed amount entered in the wrong currency unit is a valid coupon too. Delete Coupon is permanent but it only stops the bleeding forward. Appointments already booked at the discounted price stay booked at that price, and List Coupons usage statistics are how the business finds out, after the money is gone. So the agent does the assembly and stops before the commit. It posts to Slack: "Ready to create coupon SPRING for Deep Tissue Massage at 50 percent off, no usage cap, expiring 30 September. List Coupons shows the last promotion at 15 percent was claimed 214 times. Create it as configured, add a cap, or cancel?" Booking, rescheduling, customer records, and the weekly reporting all run unsupervised. Setting the price the business charges 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

19 actions

Appointments

3
  • List Appointments Reads the schedule with filters for date range, employee, service, customer, and status, with pagination for longer windows. This is the operation behind reporting, utilization checks, and any flow that needs to know what the week already looks like.
  • Get Appointment Retrieves one appointment in full by its Trafft ID, including the service, the assigned employee, the customer, the timing, the price, and the status. Use it after the trigger fires to turn a notification into a complete record.
  • Cancel Appointment Cancels an existing appointment by ID and sets its status to canceled. Depending on the account's settings this may notify both the customer and the assigned employee, so treat it as a message to two people rather than a database update.

Bookings

1
  • Create Booking Books a service with a specific employee at a specific start time. Supply an existing Customer ID, or pass the new customer fields and let Trafft create the customer as part of the booking. Call Get Available Times first so the slot is confirmed open rather than assumed.

Availability

1
  • Get Available Times Returns the open slots for a service on a given date, with working hours, buffers, and existing appointments already applied. Narrow the result to a single employee or a single location when the client has asked for one. The slots that come back are bookable, not merely blank.

Customers

5
  • List Customers Lists customers with an optional search term that matches on name or email, plus pagination. The right lookup before a booking creates a second record for somebody who is already a client.
  • Get Customer Retrieves one customer's full profile by their Trafft ID, including contact details and any stored notes. Used to assemble history before an appointment or before a message goes out.
  • Create Customer Creates a customer record from a first and last name, with email, phone, birthday, and an internal note all optional. Returns the created customer with its assigned ID, ready to use in Create Booking.
  • Update Customer Updates an existing customer by ID. Only the fields you provide change, and omitted fields keep their current values, so a phone number correction does not blank out the note somebody left last month.
  • Delete Customer Permanently removes a customer from Trafft by ID. This is destructive and cannot be undone, so it belongs in deliberate cleanup or data-request workflows rather than in routine syncing.

Services

2
  • List Services Lists every bookable service with its ID, duration, and price. Used to populate a booking flow, to keep a service catalog in step with another system, or to resolve a service ID into something a human can read.
  • Get Service Retrieves one service in full by its Trafft ID, including duration, price, category, and the employees assigned to deliver it. The check that confirms the person you are about to book is actually qualified for the work.

Employees

2
  • List Employees Lists the staff members in the account with their IDs and contact details. Used to map schedules to real people for reporting, routing, and notification.
  • Get Employee Retrieves one employee by their Trafft ID, including the services they deliver and their working details. Useful when a flow needs to know what a given practitioner can actually be booked for.

Locations

2
  • List Locations Lists the locations in the account. This requires the Multiple Locations feature to be enabled, so a single-site account will not have it available.
  • Get Location Retrieves one location by its Trafft ID with its name, address, and contact details. Used to put a real address into a confirmation message rather than an internal ID.

Coupons

3
  • List Coupons Lists the discount coupons in the account with their discount values and usage statistics. This requires the Coupons feature to be enabled. It is also the evidence step before anyone creates another one.
  • Create Coupon Creates a discount that customers apply at booking, as either a percentage or a fixed amount, with an optional cap on the number of uses and an optional expiration date. Both limits are optional, which is exactly why this action belongs behind a human decision.
  • Delete Coupon Permanently deletes a coupon by its ID. It cannot be undone, and it does not reach backward, so appointments already booked at the discounted price keep that price.

Triggers

1 triggers

Event Triggers

1
  • On New Appointment Fires when a new appointment is booked in the connected Trafft account, with optional filters for a specific employee or a specific service. Polling runs on a customizable interval with a minimum of 30 seconds, which is close enough to real time for a confirmation message to feel immediate. Use it to start the work that should happen the moment a client commits: writing the booking to the CRM, briefing the assigned practitioner, checking whether this is a first visit, or kicking off a pre-appointment intake form.

Frequently Asked Questions

What can FlowRunner do with Trafft?

FlowRunner agents can run List Appointments, Get Appointment, and Cancel Appointment in Trafft, plus 16 more actions.

Does connecting Trafft to FlowRunner require OAuth?

Trafft uses a custom authentication method to connect to FlowRunner.

Can Trafft trigger a FlowRunner workflow automatically?

Yes. Trafft supports 1 trigger that can start a FlowRunner workflow automatically.

Start building with Trafft

$100 in credits. No card required. Connect in minutes.