Your agency runs HighLevel for med spas and clinics. HL Patient Portal gives each of them a branded patient app that syncs into the sub-account you already manage: shop, orders, dose tracking, progress, messaging and rewards under the clinic's name, with our triggers and actions in the workflows you build. You keep the client relationship. Each clinic is its own account on its own plan.
From $199 a month per clinic · 14 days free · No card to start · Ask us about several clinics

Logo and colors are captured when the clinic is created and carry through the portal and every patient email. Clinic name, support email and phone are editable in Settings. Every automated email, from welcome to shipped, is a template you can rewrite with merge variables.
Every clinic gets theclinic.hlpatientportal.com. On Growth and Signature you can serve the portal at app.theclinic.com: two DNS records, SSL issued automatically, DNS re-checked every ten minutes until it is live.
On Signature, an iOS and Android app published under the clinic's own developer accounts. We handle the builds, store review and updates. The one-time launch fee covers it.
Missed dose, broken streak, order status change, milestone, reward earned and new patient as workflow triggers; Invite to patient portal as an action with a status to branch on; five custom fields for smart lists. Full list on the integration page.
Beside each contact, the clinic's team sees the patient's orders, tracking and treatments and works the order from there. The panel loads inside any HighLevel domain, including your white-label domain.
Patients pay in the portal and the money settles to the clinic's own Stripe account; the clinic is the merchant of record. We take a 2% platform fee on each patient payment, and Stripe's own processing fees are Stripe's. You never hold funds.
The same order as the help center's getting-started guide, spread over a working week. Every step has an article at the help center.
Sign the clinic up at the signup page with the owner's email: name, portal address, logo and colors. The 14-day trial starts with the Growth features (API access excepted) at Starter limits, and no card. The Terms and the Business Associate Agreement are accepted at signup. Getting started.
In Products, click Load starter catalog. The usual goal paths come in as drafts with placeholder prices, matching categories and a results page each. Set the clinic's real prices and switch each product live. Starter catalog.
Integrations, Connect Stripe, with the clinic's business and bank details at hand. Payments enabled means patient payments settle to the clinic's bank on Stripe's normal schedule. Connecting Stripe.
Integrations, Connect HighLevel, choose the clinic's sub-account, approve. Start from the dashboard, not the marketplace. Three toggles come on: sync contacts, sync orders, trigger workflows. Connecting HighLevel.
Rewrite the welcome and order emails in the clinic's voice, publish the intake form and results page, and, on Growth and up, add the custom domain. Branding and email, custom domain.
Import a CSV of existing patients from the dashboard and send the invites, or drop the Invite to patient portal action into a workflow so a tag or a pipeline stage sends the claim link by email or by text from the clinic's HighLevel number. Then add a card in Billing before the trial ends.
HighLevel already has the tools; what it lacks is the events. The portal supplies them: what each patient logged, bought and missed, as triggers and as fields on the contact. Here is the order we would build in for a new clinic.
After a dose or a weigh-in is logged, the contact carries portal_total_shots, portal_streak_weeks, portal_last_injection_date, portal_last_weight and portal_shots_30d, refreshed at most every 30 minutes per patient. A smart list of active patients with fewer than two doses this month is a filter, and a campaign on that list is the first retention automation. The keys are identical in every sub-account, so the list definition copies between clients.
Add our triggers as the first block of a workflow: injection_missed waits two hours and texts a check-in link; streak_broken adds the contact to a re-engagement campaign and notifies the care team; order_status_changed with status shipped texts the tracking number; achievement_unlocked at a milestone sends congratulations and asks for a review. Each payload carries the contact and the patient's name and email.
Put the Invite to patient portal action at the stage where a consult is done. It creates the account and sends the claim link, and replies with a status: invited, resent, already claimed, invalid, locked or blocked. Branch on it: a reminder text two days after invited, a task when the contact has no usable email. HighLevel bills marketplace actions per execution to the sub-account, so keep the action to the stage where it matters.
The rewards program is off until the clinic switches it on, then pays store credit by rules the clinic sets. Two of them listen to HighLevel: a tag added to the contact, and an opportunity reaching a stage or being won, both sent to the portal by a workflow with a webhook step. The credit is applied at checkout, and every award fires reward_earned back into the workflows.
Not today. The product has no partner tier, no agency discount built in and no commission. Each clinic pays the listed plan, $199, $449 or $1,499 a month, after its free trial. If you run several clinics, email sales or book a demo and we will talk about terms for your situation. We would rather say that plainly than invent a program on this page.
The clinic, by default. Each clinic signs up as its own account with its own owner email, and the owner adds a card on the Billing page before the trial ends. The owner is the only person who sees billing; admins run everything else. If you carry the subscription inside your retainer, put your own card on file instead.
Each clinic has its own dashboard at clinic.hlpatientportal.com and its own team. Ask the owner to invite your account manager from Settings, Team, as an admin: full access to patients, orders, products, forms, marketing, integrations and settings, nothing on billing. Remove the login when the engagement ends.
Yes. The contact panel is built to load inside any HighLevel domain, including an agency's own, because the data behind it is only released to a session HighLevel itself starts. A patient appears in the panel once their portal account is linked to the contact, which the contact sync does.
No. Shop, order queue, dose and weight tracking, messaging, reminders, rewards and forms work without it. Connecting the sub-account adds the contact and payment sync, the panel, the triggers, the action and the custom fields. If the clinic leaves HighLevel, disconnect, and the portal keeps running with its data intact.
The portal is built for HIPAA compliance: it runs on HIPAA-eligible AWS services under a Business Associate Agreement, with records in a dedicated MongoDB Atlas cluster on the tier that supports one, data is encrypted in transit and at rest, opening a patient record is written to an access log, and the clinic team can turn on two-factor sign-in. A BAA with each clinic is signed at signup on every plan; read it at the BAA page before the client signs.
From $199 a month per clinic · 14 days free · No card to start