Skip to main content

Zenoti integration: review requests when a guest checks out

Connect Zenoti and guests are asked for a review when they check out, with the credit going to their therapist when the checkout has an appointment.

A
Written by Axel Lavergne

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

  1. A guest checks out in Zenoti and the invoice closes.

  2. Zenoti sends the checkout to Reviewflowz through a webhook you create, and the guest becomes a contact.

  3. The request goes out after your delay.

  4. 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.

Zenoti checkout trigger in Reviewflowz

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.

Zenoti Create application form with Login User Type Employee and Source App ClientApp

In Zenoti, Configuration > Integrations > Apps > Add: name the app Reviewflowz, set Login User Type to Employee and Source App to ClientApp, then click Next.

Zenoti app Credentials tab with the Generate API Key button

On the Credentials step, click Generate API Key.

Zenoti app Credentials tab showing the new API key to copy

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.

Zenoti card in the Reviewflowz integrations directory

Connect Zenoti window in Reviewflowz with the API key field and Connect button

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:

  1. Set Request Type to POST and paste the Webhook URL.

  2. Add the header: Header Key X-Reviewflowz-Token, and as Header Value the text after the colon.

  3. Under Invoice, select Closed. Under Guest, select OptedIn and OptedOut.

  4. Save. The next checkout shows up in the Syncing panel.

Zenoti Syncing panel with the webhook URL and header in Reviewflowz

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.

Zenoti centers linked to Reviewflowz locations

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.

Email editor for the review request after a Zenoti checkout

Review routing for the Zenoti review request

Review request email sent after a Zenoti checkout

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.

Requests page listing Zenoti guests after checkout

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.

Guest review credited to the therapist from the Zenoti appointment

Leaderboard of reviews credited to each therapist

CRM Integration widget showing Zenoti requests and matched reviews

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.

Zenoti connection details, API key expiry and Replace API key

Related

Did this answer your question?