Promo codes and patient codes
The Promo Codes dialog on /products: shared checkout codes, account-wide global codes, and one-patient personal codes.
Promo Codes is the discount manager behind the Products page — three kinds of code: shared checkout codes, account-wide global codes, and personal codes tied to one named patient.
Questions people ask about this page
Where is the promo code manager? I cannot find a Coupons menu item.
There is no menu item. In the left menu click Products, then click Promo Codes in the row of buttons above the table. A dialog titled Promo Codes opens — Create and manage checkout discounts.
What is the difference between the three tabs?
Promo Codes — a shared code anyone can type at checkout, limited to the products you pick. Global — one code that works on any product, invoice or payment request for your client. Patient Codes — a private code minted for one named patient, tracked as redeemed or not.
There is no Promo Codes button on my Products page.
Two possible reasons. Either coupon codes are switched off for your client account, or you are Client Staff and your Client Admin has not granted staff coupon management. Ask your Client Admin; both switches live outside this dialog.
What do the three discount types mean?
Percentage Off takes a percentage off the price (must be more than 0 and at most 100). Dollar Amount Off subtracts a fixed sum. Set Final Price ignores the list price and charges exactly the number you type. Use Set Final Price for a fixed promotional price so you are not re-doing arithmetic when the list price moves.
My code exists but the patient says it does not work.
Check four things on the row: Status is Active, the Expiration has not passed, Uses / Limit has room left, and the product they are buying is in the code's Eligible products list. A promo code that applies to nothing is the most common cause.
Can I give one patient a code nobody else can use?
Yes — that is what Patient Codes is for. Click Add patient code, pick the patient, set the discount, and optionally tick Email this patient their code. The row shows Redeemed or Not redeemed, and you can Reset redemption to let them use it again.
How do I track an affiliate's codes?
Use the Attribution section of the code editor. Set Assignment type so the code is attributed rather than left as Not set, and use Shared (multiple affiliates) when several partners hand out the same code. The Applied to column then reads Assigned or Unassigned.
Where to find it
Left menu → Products. Direct link: /products. Then click Promo Codes in the header. Visible to: Client Admin always; Client Staff only when your Client Admin has enabled staff coupon management.
The dialog and its tabs are not deep-linkable. /products has no sub-routes, so you cannot bookmark or send a link straight to the Patient Codes tab. Send people to /products and tell them to click Promo Codes.
What is on this page
| What you see | What it does |
|---|---|
| Dialog title Promo Codes | Sub-line Create and manage checkout discounts. |
| Tab Promo Codes | Shared codes limited to chosen products. Button Add promo code. |
| Tab Global | Codes that apply to any product, invoice or payment request. Button Add global code. |
| Tab Patient Codes | One code, one named patient. Button Add patient code. |
| Search (Promo / Global) | Placeholder Search by code or name... |
| Search (Patient Codes) | Placeholder Search by patient, code, or name... |
| Filters (Promo Codes) | Status · Discount type · Applied to · Usage · Limit · Expiration |
| Filters (Global) | Status · Usage |
| Filters (Patient Codes) | Status · Redemption |
| Export CSV | Downloads the code list on the tab you are on. |
| Close dialog | Returns you to the Products table. |
| Row menu (Promo) | Edit promo code · Deactivate / Reactivate |
| Row menu (Global) | Edit global code · Deactivate / Reactivate |
| Row menu (Patient) | Edit code · Reset redemption · Duplicate to patients · Deactivate / Reactivate |
Columns you will see
Promo: Code · Type · Discount · Uses / Limit · Applied to · Status. Global drops Type and Applied to. Patient Codes reads Patient · Code · Discount · Redemption · Status.
The Code cell stacks the code over its internal name, and Uses / Limit reads 0 / 100, or 0 / ∞ when the code is uncapped. The Type column writes the discount type in sentence case — Percentage off, Dollar amount off — while the editor's dropdown uses title case. Same thing, different capitals.
How to create a shared promo code
Open the manager
Left menu → Products, then click Promo Codes.
Start a new code
Stay on the Promo Codes tab and click Add promo code. The Create Promo Code dialog opens — Set discount and eligible products.
Fill Basics
Promo code is what the patient types (the hint is SAVE10). Internal name is for you only (hint Spring affiliate campaign) — name it so you can tell two similar codes apart in six months.
Set the Discount
Choose Discount type from Percentage Off, Dollar Amount Off or Set Final Price, then type the value. A percentage must be greater than 0 and at most 100.
Override individual products, if you need to
Under Per-product overrides, pick a product and click Add product override to give it a different discount. Then set Products without an override to either Use the default discount or Not eligible for this code. That second option is how you build a code that only works on a short list.
Choose the eligible products
In the Eligible products panel — Choose the products this promo code applies to. — search with Search active products… and tick the products. Only active products can be attached.
Set the Limits
Max redemptions (leave it on Unlimited for an open code), Expires on, Max redemptions per patient, and the First-time patients only switch for an acquisition offer.
Set Attribution if a partner owns the code
Pick an Assignment type instead of leaving it Not set, and use Shared (multiple affiliates) when more than one partner hands out the same code.
Save and test
Save the code, then copy a public checkout link from the product row and try the code yourself before you send it to anyone.
How to create a code for one patient
Open the Patient Codes tab
In the Promo Codes dialog, click Patient Codes.
Start the code
Click Add patient code. The Create Patient Code dialog opens — Set the discount for this patient's personal code.
Pick the patient
A dialog titled Select a patient lets you search your patient list. Choosing the patient is what makes this a personal code rather than a shared one.
Set the code and discount
Fill Promo code and Internal name, then the Discount type and value, exactly as on a shared code.
Decide whether to email it
Under Notify, tick Email this patient their code to send it now. If the patient has no email on file the checkbox explains itself: This patient has no email on file, so no message will be sent.
Save
The row appears with Redemption reading Not redeemed.
Reuse it for a group
Open the row menu and choose Duplicate to patients to mint the same offer for several patients at once. That dialog has its own Notify each patient by email checkbox.
How to create a global code
Open the Global tab and click Add global code
The Create Global Code dialog opens — Set a discount that applies to any product, invoice, or manual invoice for this client. There is no eligible-products panel, because it covers everything.
Fill the same fields, then cap it
Promo code, Internal name, Discount type and value, then always set Max redemptions and Expires on. An uncapped global code discounts every future sale until someone switches it off.
Every setting on this page
| Setting | What it controls | Default |
|---|---|---|
| Promo code | The text the patient types at checkout. | Empty (hint SAVE10) |
| Internal name | Your own label for the campaign. Never shown to patients. | Empty (hint Spring affiliate campaign) |
| Discount type | Percentage Off, Dollar Amount Off, Set Final Price. | Unset (placeholder Select type) |
| Per-product overrides | A different discount for named products. | None |
| Products without an override | Use the default discount or Not eligible for this code. | Use the default discount |
| Eligible products | Which active products the code applies to. Promo tab only. | None selected |
| Max redemptions | Total uses across all patients. | Unlimited |
| Expires on | Last day the code works. | No expiration |
| Max redemptions per patient | How many times one person can reuse it. | Unset |
| First-time patients only | Blocks patients who have ordered before. | Off |
| Email this patient their code | Sends the personal code by email on save. Patient Codes only. | Off |
| Assignment type | Attribution for affiliate reporting. | Not set |
| Shared (multiple affiliates) | Marks a code that more than one partner distributes. | Off |
Statuses you will see here
| Status | What it means | What to do |
|---|---|---|
| Active | The code works, subject to its limits and expiry. | Nothing. |
| Inactive | Deactivated by hand. It will be refused at checkout. | Row menu → Reactivate. |
| Assigned / Unassigned (Applied to) | Whether the code carries affiliate attribution. | Set Assignment type in the editor to change it. |
| Used / Unused (Usage filter) | Whether anyone has redeemed it at all. | An old Unused code is usually a broken one — check its eligible products. |
| Limited / Unlimited (Limit filter) | Whether Max redemptions is capped. | Cap anything you post publicly. |
| Expires / Expired / No expiration | The state of Expires on. Expired means the date has passed. | Edit the code and move the date, or create a fresh one. |
| Redeemed / Not redeemed (Patient Codes) | Whether that one patient has used their code. | Row menu → Reset redemption to let them use it again. |
What can go wrong
| What you see | Why | Fix |
|---|---|---|
| No Promo Codes button on Products | Coupon codes are off for your client, or you are Client Staff without coupon permission. | Ask your Client Admin. Neither switch is inside this dialog. |
| Only one tab in the dialog | The Global and Patient Codes tabs render on the product catalogue only. A visit-only coupon manager shows the promo list alone. | Open the manager from Products, not from the visit options card. |
| Code is Active but rejected at checkout | The product is not in Eligible products, or Products without an override is set to Not eligible for this code. | Open the code, add the product, save, and retest on a real checkout link. |
| "Percentage must be greater than 0 and at most 100" | You typed 0, a negative number, or over 100 on a percentage discount. | Enter a number between 1 and 100, or switch to Dollar Amount Off. |
| The patient never received their personal code | Email this patient their code was left off, or the patient has no email on file. | Re-open the code, tick the box and save. If the hint says there is no email, add one on the patient profile first. |
| You cannot find a delete button | Codes are never deleted, so redemption history survives. | Use Deactivate. |
| Eligible products list is empty | No active products are available for promo code assignment. — every product is inactive or unpriced. | Activate and price the products first on Products. |
Next
Was this helpful?
