When a guest checks out in Zenoti and the invoice closes, Reviewflowz asks them for a review. When the checkout has an appointment, the review is credited to the therapist on it, and your Team Attribution Leaderboard shows which therapists earn your reviews.
How it works
A guest checks out in Zenoti and the invoice closes.
Zenoti sends the checkout to Reviewflowz through a webhook you create, and the guest becomes a contact.
The request goes out after your delay.
The guest's review is matched to the visit and credited to the therapist.
What triggers a request
Trigger | When it fires | Who is asked | Credit goes to |
A guest checks out (an invoice is closed) | An invoice closes in Zenoti, for services or retail purchases | The guest on the invoice | The therapist on the appointment, or nobody for a purchase without one |
The trigger is on from the moment you connect and feeds one request, Zenoti checkout. Gift card, membership, package and class invoices are asked too, and so are visits paid through Groupon, ClassPass or any other payment type.
A guest who opted out of emails or texts in Zenoti isn't asked on that channel. Guests of a center, or with a phone number, in Europe, the UK or Switzerland are asked only on channels they opted in to.
When you connect, Reviewflowz imports your last 90 days of visits, only to match reviews to guests and therapists. Nobody is messaged for those, and checkouts from before you connected are never asked.
Connect Zenoti
API keys and webhooks come with Zenoti's API package: ask your Zenoti account manager to enable it.
In Zenoti, open Configuration, then Integrations, then Apps, and click Add. Name it Reviewflowz, set Login User Type to Employee and Source App to Client App, and give it read access to centers, guests and appointments. Click Generate API Key and copy the key. Include appointments: without them, the 90-day history isn't imported.
In Zenoti, Configuration > Integrations > Apps > Add: name the app Reviewflowz, set Login User Type to Employee and Source App to ClientApp, then click Next.
On the Credentials step, click Generate API Key.
Copy the API key, then click Finish.
Zenoti's guide to creating the backend app and generating an API key shows the same steps.
In Reviewflowz, open Integrations, go to the Automate Review Requests tab and click the Zenoti card. If you already have an integration connected there, click Connect another integration first. Paste the key into Zenoti API key and click Connect Zenoti.
Create the webhook in Zenoti
Once connected, the Syncing panel shows a Webhook URL and a header to paste into Zenoti. In Zenoti, open Configuration, then Integrations, then Webhooks, and create a webhook:
Set Request Type to POST and paste the Webhook URL.
Add the header: Header Key X-Reviewflowz-Token, and as Header Value the text after the colon.
Under Invoice, select Closed. Under Guest, select OptedIn and OptedOut.
Save. The next checkout shows up in the Syncing panel.
Link your centers to locations
Under Centers, link each Center in Zenoti to the Reviewflowz location whose review profiles its guests should see. Lumen Day Spa links Lumen Day Spa - South Congress to Lumen Day Spa Austin, LoHi to Denver and Pearl District to Portland. Checkouts at a center you leave unlinked go to the location chosen under Fall back to. If your Reviewflowz account has one location, your centers are linked to it when you connect. Opened a center? Click Refresh list.
Set up the request
Timing. Lumen emails 120 minutes after checkout, then sends Message 2 3 days later with the subject "A quick favour from Lumen".
Channel. Set per message.
Message. The From name is "Lumen Day Spa", the Subject "How was your visit to Lumen?" and the Button text "Leave a review". Daphne reads "Hi Daphne, thank you for spending time with us today." Try yours with Send myself a test.
Direct reviews to. Smart routing gives one button, and your goal for reviews decides which site it opens. Show all options on the email lists all your review sites instead.
Turn it on
The Zenoti checkout request starts as a draft. Finish it, then open it in Requests, click Turn requests on, then Turn on. Checkouts until then are recorded, not asked. The Syncing panel's Asking for checkouts since shows the day you connected. A checkout from before that day is never asked.
Refunds
A refund withdraws the visit's unsent request.
See what it brings back
The Requests page counts Contacts, Requests, Clicked CTA, Matched and Stopped. Zara Ramsey's Google review of Lumen Day Spa Portland is credited to Rosa Lindqvist, the therapist on the visit. Reports > Dashboard > Team Attribution Leaderboard ranks your therapists, and the CRM Integration widget tracks requests, links clicked and reviews matched from Zenoti.
Good to know
Zenoti API keys last one year. Before yours runs out, Reviewflowz reminds you: generate a new key in Zenoti under Configuration, then Integrations, then Apps, and replace it with Replace API key, so requests don't stop.
If Zenoti stops accepting the key, the card turns red and reads Reconnect Zenoti. Generate a new key and enter it with Enter new credentials. If the Apps screen is gone, ask your Zenoti account manager to turn the API package back on.
If no checkouts arrive, check in Zenoti, under Configuration, then Integrations, then Webhooks, that the Reviewflowz webhook is active and subscribed to Closed under Invoice.
Disconnect cancels the requests that haven't gone out. Your center links, triggers and past visits stay. Then delete the Reviewflowz webhook in Zenoti. Reconnecting gives you a new Header Value to paste into that webhook.
















