When a guest checks out in Zenoti, Reviewflowz asks them for a review on the channels they agreed to, and credits the review to their therapist. Your Team Attribution Leaderboard then shows which therapists earn your reviews.
How it works
A guest's appointment is checked out in Zenoti and the invoice closes.
Zenoti sends us the checkout, and the guest becomes a contact in Reviewflowz.
The request goes out after your delay.
Their review is matched to the visit and credited to the therapist.
What triggers a request
Zenoti event | When it fires | Credit goes to |
Invoice → Closed, with at least one appointment | As soon as Zenoti sends the checkout | The therapist on each appointment |
From each checkout we take the guest's name, email and phone, the center and the therapist. Invoices with no appointment, such as gift cards, memberships, packages and retail, aren't asked.
Guests are emailed only when Zenoti shows they agreed to marketing emails, texted only when they agreed to marketing texts, and sent WhatsApp messages only when they opt in to marketing WhatsApp messages in Zenoti after an earlier visit made them a contact in Reviewflowz. When a guest opts out in Zenoti, the messages still waiting on that channel are withdrawn. Visits paid with a custom payment type, such as Groupon, 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 select the Organization Master Read, Center Master Read and Guests Read API groups. Save, click Generate API Key and copy the key.
In Reviewflowz, open Integrations, go to Automate review requests > Connect another integration and click the Zenoti card. Paste the key into Zenoti API key and click Connect.
Send checkouts to Reviewflowz
Send checkouts to Reviewflowz shows a Webhook URL, a Header Key and a Header Value, each with Click to copy. In Zenoti, open Configuration, then Integrations, then Webhooks, and click Create a webhook:
Set Request Type to POST and paste the Webhook URL.
Add a header with the Header Key and the Header Value.
Under Invoice, select Closed. Under Guest, select OptedIn and OptedOut.
Save. The badge turns from Waiting for the first checkout to Receiving.
Only visits from then on ask for a review. Earlier visits are never messaged.
Link your centers to locations
Link each Zenoti center to the Reviewflowz location whose review page its guests should see. Lumen Day Spa links Lumen Day Spa - LoHi to Lumen Day Spa Denver, Pearl District to Portland and South Congress to Austin. With one location, there's nothing to link: every checkout asks for it. With several, a checkout at a center with no location has no review page to send its guest to. Added a center in Zenoti? Click Refresh centers.
Set up the request
Timing. Lumen emails 120 minutes after checkout. Delays go up to 7 days, with up to 3 messages, and follow-ups stop once a guest clicks, reviews or unsubscribes.
Channel. Email, SMS or WhatsApp, one per request, each sent only to guests who agreed to it in Zenoti.
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 shows one button and picks the site per guest for your objectives. Show all options on the email gives each site its own button, on email only.
Turn it on
Zenoti checkouts go to your review request. With several requests, the Review request section asks you to pick one. If Sending reads Off, turn the request on in Requests when you're ready. Checkouts until then are recorded, not asked. A visit that reaches us more than 7 days after it ended is recorded and never asked about.
Refunds
A refund withdraws the visit's unsent request, even when Zenoti sends the refund before the checkout. A message already sent can't be pulled back.
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. The Team Attribution Leaderboard ranks your therapists.
Good to know
Zenoti API keys last 12 months. The API key section shows when yours expires and warns you before it does. Paste a new key under Replace API key and click Replace key: the webhook, center links and request stay as they are.
If Zenoti stops accepting the key, the Zenoti panel shows Key refused. Checkouts are recorded and nobody is asked until you replace the key.
Only the person who connected Zenoti can replace its key, reconnect it and change its center links.
Disconnect Zenoti withdraws the requests that haven't gone out. Your center links and past visits stay. Delete the Reviewflowz webhook in Zenoti too. Reconnect gives you a new Header Value: create the Reviewflowz webhook in Zenoti again with it.
Nothing is written back to Zenoti.











