Connect FlowBookings to QuickBooks through Zapier and each booking on your Webflow site can generate a QuickBooks invoice automatically: the right customer, the right service, the right amount, the moment it's made.
Who this is for
Worth clearing up before anything else, because it decides whether this integration is for you.
FlowBookings already collects payment at booking through Stripe. If your customers pay in full when they book, you may not need to invoice them at all; the money's already in. This integration is for businesses that don't charge the full amount upfront:
- You take a deposit at booking and invoice the balance later
- You provide the service first and bill afterward
- You work B2B on payment terms: net 15, net 30
- Your bookings are really quotes or estimates that become invoices once confirmed
If that's you, auto-invoicing from bookings saves real admin and makes sure nothing goes unbilled. If you already take full payment via Stripe at checkout, you probably want the Stripe-based Zaps (approve on payment) rather than invoicing.
Why connect FlowBookings to QuickBooks
For an invoice-based business, the gap between "someone booked" and "someone got invoiced" is where revenue leaks. A booking comes in, and then someone has to remember to raise the invoice, get the customer and amount right, and send it. Miss one and you've done the work without billing for it.
Wire your bookings to QuickBooks, and that gap closes on its own. Every booking becomes an invoice with the customer, service, and amount already filled in and created the instant the booking lands, ready to send or set to auto-send.
And because QuickBooks can tell FlowBookings when an invoice is paid, the loop closes both ways: the booking is marked complete once the money's in, with no manual reconciling. Your bookings and your books stay in step automatically.
The two-way flow: invoice out, payment status back
Like a couple of the more capable integrations, QuickBooks works in both directions, and here the loop is about money.
Bookings flow out as invoices. A new booking creates a QuickBooks invoice for the customer and amount.
Payment status flows back. When that invoice is marked paid in QuickBooks, FlowBookings can update the booking's status, typically to Completed so your booking record reflects that you've been paid, without you checking two systems.
That symmetry is the point. QuickBooks handles the billing and the getting-paid; FlowBookings stays accurate about which bookings are settled. You raise nothing by hand and reconcile nothing by hand.
Customers, invoices and items
QuickBooks organizes billing around customers (who you invoice), invoices (the bill itself), and items/products & services (the line entries on an invoice, each tied to an income account). To raise an invoice cleanly, QuickBooks wants the customer to exist and the service to map to an item.
So a booking maps in like this: the customer's details create or match a QuickBooks customer, the service maps to a QuickBooks item, and the booking becomes an invoice for that customer with that item and the booking price. The one bit of prep is making sure your services exist as items in QuickBooks (or letting the Zap create them) so the line item lands on the right income account. Get that mapping right once and every booking invoices correctly.
What you'll need
- A FlowBookings account on any plan
- A free Zapier account
- A QuickBooks Online account
- Your services set up as items in QuickBooks (or ready to be created)
- At least one service set up in FlowBookings, and one booking to use as a test
The triggers and action you're working with
FlowBookings gives QuickBooks two things to react to, plus one action it can receive:
Each invoice can draw on the customer's first and last name, email, the service name, and the booking price.
Zaps you can build
Create a QuickBooks Invoice for Every Booking
New Booking → Create Invoice
A booking comes in, and a QuickBooks invoice is raised, and the customer is matched or created, service as the line item, booking price as the amount. Your invoicing keeps pace with your bookings, with nothing raised by hand.
Mark a Booking Complete When Its Invoice Is Paid
QuickBooks invoice paid → Update Booking Status → Completed
When QuickBooks records the invoice as paid, FlowBookings marks the booking Completed. The loop closes so you don't reconcile which bookings have paid; the status just reflects it.
One rule: once a booking is cancelled, rejected, or already completed, its status is locked, so this acts only on bookings still open.
Handle Billing on Cancellation
Booking Cancelled → (void invoice / create refund task)
When a booking with an invoice is cancelled, you'll want to stop that invoice going out or handle a refund. This can void or flag the invoice in QuickBooks, or raise a task to process a refund, so a cancelled booking doesn't leave a live bill or an unhandled refund behind.
How to set up FlowBookings and QuickBooks integration
Here are the steps to build the integration:
1. Set up your services as QuickBooks items
Before Zapier, make sure the services you sell exist as products/services (items) in QuickBooks, each mapped to the right income account. This is what lets the invoice line land in the right place in your books. You can also let the Zap create items on the fly, but setting them up deliberately keeps your accounting clean.
2. Grab your FlowBookings API key
In FlowBookings, go to Dashboard → Integrations → API Key and copy the key. Treat it like a password and don't paste it anywhere public.
3. Start a new Zap
In Zapier, hit Create → Zaps, search FlowBookings, and pick it as your trigger app.
4. Choose the New Booking trigger
Select New Booking. When Zapier asks you to sign in, paste your API key. It'll pull in a recent booking as sample data so you've got real fields to map. No bookings yet? Submit a test one through your Webflow site first.
5. Add QuickBooks and find or create the customer
Add an action, choose QuickBooks Online → Find or Create Customer, and connect your account. Match on customer.email so returning customers don't duplicate. This gives you a customer to attach the invoice to.
6. Add the invoice
Add a second QuickBooks action: Create Invoice:
7. Test it and switch it on
Run the test and check QuickBooks and the customer should exist, and a correct invoice should appear against them. Confirm the amount and the line item's income account are right before you rely on it. This is your accounting, so accuracy matters more here than anywhere. Because it's multi-step, it runs on a paid Zapier plan. Looks right? Publish.
8. Close the loop on payment (optional, the powerful one)
Build a second Zap: trigger on QuickBooks → Invoice Paid (or Payment Received), action FlowBookings → Update Booking Status → Completed. Map the booking ID, store it on the invoice (a custom field or the memo) in step 6 so this Zap can find the right booking. Now paid invoices close out bookings automatically.
9. Handle cancellations (optional)
Build a Zap on Booking Cancelled that voids or flags the matching QuickBooks invoice, or raises a refund task, so a cancelled booking never leaves a live invoice or an unhandled refund.
Here is detailed documentation on how to set up Zapier in FlowBookings.
What you need to know
A few honest edges before you build:
- This is for invoice-based businesses. If you take full payment via Stripe at booking, you likely don't need to invoice and use the payment-based Zaps instead. This integration earns its keep when you bill separately from booking
- Set your services up as items. QuickBooks invoices need line items tied to income accounts. Map your services to items so your books stay clean, rather than letting stray items pile up
- Store the booking ID to close the loop. The paid-invoice Zap needs a way to find the booking; put the booking ID on the invoice (custom field or memo), or the write-back has nothing to match on
- Check the numbers before you trust it. This is accounting. Confirm amounts, tax handling, and income accounts on a test invoice before going live. A wrong mapping here is a wrong book, not just a cosmetic glitch
- Status write-back is one-directional and locked once final. QuickBooks can push a booking to Completed, but one already cancelled, rejected, or completed can't be moved again
- It's fast, not instant. Zapier checks for new bookings every 1–5 minutes on paid plans, up to 15 on the free one
- Reschedules don't update the invoice. The trigger fires when a booking is made, not when it changes and a rescheduled booking won't alter an already-raised invoice
Frequently asked questions
Doesn't FlowBookings already let users collect payments?
Yes, through Stripe, at booking. This integration is for businesses that invoice separately: deposits, pay-after-service, or B2B terms. If you charge in full at booking, you probably don't need it.
Does this cost anything extra?
Zapier integration is available on all FlowBookings plans with no extra charges. You'll need a Zapier account (a paid plan for the multi-step invoice Zap) and a QuickBooks Online subscription.
Will it create duplicate customers in QuickBooks?
Not if you use Find or Create Customer, matched on email.
Can it mark a booking paid automatically?
Yes, the second Zap listens for the invoice being paid in QuickBooks and updates the booking to Completed, as long as it isn't already in a locked status.
Does it handle tax?
Invoicing respects your QuickBooks tax settings, but you should confirm tax lands correctly on a test invoice; tax setup is specific to your account and region.
What happens if a customer reschedules?
The invoice isn't updated automatically and the trigger only fires on a fresh booking.
Do I need to know how to code?
No code, but a little QuickBooks setup (mapping services to items) makes the invoices land cleanly. The Zaps themselves are point-and-click.