Automate Review Requests from HighLevel Appointments
When an appointment on a HighLevel (GoHighLevel) calendar ends, EmbedMyReviews adds the contact to a review campaign and sends the request by SMS or email at the time you choose. Cancelled and no-show appointments are never asked.
No marketplace app and no OAuth. The connection uses a Private Integration token you create in HighLevel and can revoke at any time.
Consultation
Sarah Kim · Main Calendar · 45 min
Sends 1 hour after the appointment ends. "Hi Sarah, thanks for coming in today. Would you share a quick review?"
How It Works
Four steps in the setup wizard. Nothing is installed in the HighLevel sub-account.
Connect your HighLevel location
Paste a Private Integration token and the Location ID. The token is validated on the spot and stored encrypted.
Choose which calendars take part
All calendars, or a specific set. If you choose all, calendars added later are included automatically.
Campaign, attendance and timing
Pick the review campaign, choose lenient or strict attendance, add an optional tag filter, and set when the request goes out.
Review and activate
Appointments on the selected calendars are checked every 15 minutes from then on. No webhook to configure.
What triggers a request, and what never does
EmbedMyReviews sends the review request after the HighLevel appointment ends, not when it is booked. Someone who never turned up is never asked to review a visit that did not happen.
Built for Agencies That Run on HighLevel
Many agencies run their CRM, calendars and funnels on HighLevel and want a deeper, white-label reputation platform alongside it. This integration lets you keep HighLevel for scheduling and use EmbedMyReviews for review requests, widgets, AI responses and reporting.
Weighing the two for reputation management? You can compare EmbedMyReviews with HighLevel's built-in reputation tools.
Agencies with client sub-accounts
Each client location connects with its own Private Integration token under its own account. Nothing is shared between clients.
Clinics, dental and aesthetics
The request lands after the visit ends. Patients who cancelled or did not show are never asked.
Home services with estimate calendars
Use the tag filter so only contacts tagged as customers are asked, not leads who booked a quote.
Salons and barbers
Front desks rarely mark every appointment Showed. Lenient mode sends unless a booking is cancelled or marked no-show.
Coaches and consultants
Evening sessions can send the next morning at a set time, so the request arrives when the client is at their desk.
Multi-calendar locations
Choose all calendars once and every calendar the client adds later joins the automation without a settings change.
Integration Features
Built around how HighLevel calendars are actually used, including the ones where nobody updates the status.
Calendar selection
Include every calendar in the location or pick specific ones. With all calendars selected, new calendars are picked up automatically.
Two attendance modes
Lenient sends unless the appointment is cancelled or marked no-show. Strict waits for an explicit Showed. Both re-check the status right before sending.
Contact-tag filter
List the HighLevel tags that qualify, comma separated. Only contacts with at least one of them receive a request. Leave it empty to ask everyone.
Timing you control
Immediately, 15 minutes to 7 days after the appointment ends, or the next morning at a chosen time in the location's timezone.
15-minute checks, no webhook
Appointments are read every 15 minutes across a 48-hour look-back and a 30-day look-ahead. There is no webhook to set up and nothing to keep alive.
Activity log with reasons
Every appointment received, skipped, cancelled or sent is listed with its reason, alongside totals for appointments received and requests sent.
What you need before connecting
EmbedMyReviews connects to HighLevel through a Private Integration you create in the sub-account. The setup wizard checks the token before anything is saved.
- A Private Integration created under Settings, Private Integrations in the HighLevel sub-account. If the menu item is missing, enable it under Settings, Labs first.
- The scopes View Contacts and View Calendars & Calendar Events. Nothing else is requested.
- The token, which starts with pit- and is shown once. Copy it before closing the dialog.
- The Location ID, found under Settings, Business Profile.
- A review campaign with SMS or email configured through your own provider.
The old API key will not work
The API Key shown under Settings, Business Profile belongs to HighLevel's legacy system and is rejected by the wizard. Use a Private Integration token instead. It starts with pit- and carries only the scopes you grant.
No marketplace app, no OAuth
Nothing is installed in your sub-account and no app review is involved. Revoke the token in HighLevel at any time and the integration stops on the next check.
Your providers. Wholesale rates.
Review requests triggered by HighLevel appointments are sent through your own Twilio (SMS) or SMTP (email) accounts. You pay wholesale rates directly, with no EmbedMyReviews markup on messaging.
Common questions
Is this a HighLevel marketplace app?
No. EmbedMyReviews connects through a Private Integration token that you create in the HighLevel sub-account under Settings, Private Integrations, with the View Contacts and View Calendars & Calendar Events scopes. There is no OAuth flow, nothing is installed, and you can revoke the token from HighLevel at any time. The legacy API Key under Business Profile is not accepted.
Which appointments trigger a request?
Appointments on the calendars you selected, once they have ended. The request is timed from the end of the appointment, never from the booking. Appointments that are cancelled, marked no-show, or invalid never send, and if one of those statuses appears before a scheduled request goes out, the request is cancelled. Appointments whose contact has no email and no phone are skipped and logged.
What is the difference between lenient and strict attendance?
Lenient is the default and the recommended mode. It sends unless the appointment is cancelled or marked no-show, and it re-checks the status right before sending, so it works for teams that never update appointment statuses at all. Strict sends only when the appointment has been explicitly marked Showed. If your front desk does not mark attendance reliably, strict mode will send very little.
Can I limit it to certain contacts?
Yes. Add a comma-separated list of HighLevel contact tags during setup. Only contacts carrying at least one of those tags receive a request, which is useful for separating paying customers from leads who booked an estimate. Leave the filter empty to ask every contact on the selected calendars.
How quickly after the appointment is the request sent?
You choose during setup: immediately after the appointment ends, a fixed delay from 15 minutes up to 7 days, or the next morning at a set time in the location timezone. HighLevel is checked every 15 minutes, so a request set to send immediately goes out within roughly a quarter of an hour of the appointment ending.
Do I need to replace HighLevel?
No. Keep HighLevel for your CRM, calendars, pipelines and funnels. EmbedMyReviews runs alongside it and handles the review side: requests after appointments, review widgets, AI responses, and reporting under your own white-label domain. Each client location connects with its own token under its own account.
Related integrations
HubSpot
Trigger on deals reaching the stages you choose, connected with a private app token.
Calendly
The same after-the-meeting flow for teams that book through Calendly.
Google Calendar
Request reviews after events on a Google Calendar finish.
All Integrations
CRMs, calendars, payments, and automation platforms.
Connect HighLevel and let finished appointments ask for the review.
Included in the flat $99/month plan for unlimited clients and locations. No per-connection fees.
No credit card required. Explore the platform for 14 days.