Help Center Membership Management: Settings EMR connection
EMR connection
What it controls: which EMR feeds patients and memberships into the portal, whether the morning pull runs, and lets you start a sync right now. It also shows the result of the last sync.
Click path: Admin → Settings → EMR connection. The pill in the title bar shows your EMR's name, or none.
Who:
- The connection itself (which EMR, its details, the morning pull on/off, Save EMR connection, Test connection, New inbox URL) is set up by Prescripta. Clinic logins see these greyed out or hidden, with the blue box: Set up by Prescripta. Your EMR connection is configured and changed by Prescripta support, because it is set up with the EMR vendor and affects every patient record. You can see it here; contact support (Account → Support) for any change. Sync now and the membership-type mapping stay yours.
- Sync now is the clinic's: owner and admin (Run the EMR sync / sweep).
- Show inbox URL (OptiMantra) is the clinic's: owner and admin (Change settings).
If EMR sync is not part of your clinic's features, the card says EMR sync is turned off for this clinic (Owner → Features). Patients are entered by hand or imported.
EMR / practice management system
A drop-down (greyed out for clinic logins). The choices:
| Choice | Status | What it means |
|---|---|---|
| Zenoti | live | Memberships, autopay dates, failed payments, contact details and addresses, read-only, daily and on demand. |
| Jane App (coming soon) | planned | Not connected yet. Use manual entry or CSV import. |
| OptiMantra | live | OptiMantra sends booking and check-out events to the portal; nothing is pulled. Memberships come from your patient tags. The portal keeps the billing schedule itself. |
| Cerbo (coming soon) | planned | Not connected yet. |
| No EMR connection | manual | Patients and memberships are entered by hand or imported from CSV. The daily run still checks reorders and follow-ups and sends the summary. |
Under the drop-down is a one-paragraph summary of the chosen EMR. For a "coming soon" EMR it adds: Until this connection is available, use + Add patient manually or Import CSV on the Members page. The daily sweep, reorder alerts, follow-ups and summary all work without an EMR.
Pull patients and memberships every morning (8:50 AM ET)
A tick box (greyed out for clinic logins). Shown for live EMRs. On = the morning run pulls fresh data at 8:50 AM Eastern. Off = the pull is skipped; the daily re-check and summary still run.
Connection details
Boxes for the chosen EMR, all greyed out for clinic logins. For example, for Zenoti: Center ID and Membership statuses to pull. For OptiMantra: an optional field-mapping box that is normally blank.
A note says: The connection credentials are held securely and set up for you, they never appear in this screen. Contact support to change them.
Inbox (OptiMantra and other "push" EMRs)
Shown for an EMR that sends events to the portal instead of being pulled (OptiMantra). It is a cream-colored box titled Inbox (push EMR).
- It explains that the EMR sends events to the portal, and that in the EMR you add an outbound webhook (an automatic message) pointing at the inbox URL.
- A status line shows Inbox: N events waiting, and when some could not be placed yet, · N could not be mapped yet (reason), plus · oldest {date and time}. Events wait until a membership-type rule matches them; the next hourly check brings them in.
- Show inbox URL (owner/admin): shows the web address to paste into OptiMantra, in a box labeled Inbox URL (secret, treat like a password). Click the box to select it all. The message says Inbox URL shown below, paste it into the EMR as the outbound webhook URL. After that the button reads Refresh. If there is no address yet you see No inbox token yet, click "New inbox URL" to create one. (Showing the address needs a recent sign-in.)
- New inbox URL (Prescripta only): makes a new address. The old one stops working at once and must be replaced in the EMR.
Connect OptiMantra: three steps
For OptiMantra clinics, a guide titled Connect OptiMantra, three steps appears inside the Inbox box. Its first line explains: OptiMantra only tells the portal who holds which membership (through patient tags); the portal keeps each membership's billing schedule itself from the type's amount and interval, and staff can edit it per patient. Nothing is renamed or changed in OptiMantra.
Each step has a pill on the right: pending, or a green ✓ done when the step is really finished.
Step 1. Two outbound hooks
The screen tells you where to add them in OptiMantra (Settings → Marketing → CRM Integration → Add New Out-Bound Webhook), to set Webhook Source to Prescripta (or pick Other), and to send both as POST to the inbox URL shown above.
A table lists the two hooks:
| Column | What it shows |
|---|---|
| Trigger | Booking (in office or online) and Checkout SuperBill. |
| Why | Booking carries the patient and their tags; Checkout SuperBill fires on a check-out and is kept as the last-visit date. |
| Fields to tick | The fields to tick in OptiMantra for that hook. |
| Received | A green ✓ event seen once the portal has received one, or nothing yet, book / check out a test patient. |
Step 1 shows ✓ done when both hooks have sent at least one event.
Step 2. Map your tags to membership types
- In OptiMantra, export Analytics → List of Reports → Patient Tags → Export → CSV.
- Choose that file in the file box. (Needs Change settings.) If the file has no Tags column you see No Tags column found (columns: …). Export the patient list from OptiMantra with Tags included.
- A table lists every tag in the file:
| Column | What it is |
|---|---|
| Tag in OptiMantra | The tag exactly as spelled. |
| Patients | How many patients carry it. |
| Means this membership type | Drop-down: - choose, , each of your types, any new type named in another row (marked "(new)"), + New type… (opens a box to type a new type name), or Not a membership (ignore). |
| Amount / cycle ($) | What the portal bills each cycle for that type. Saved on the type. |
| First cycle ($) | Optional different first-cycle amount. Saved on the type. |
Tags that already match a rule, or were marked "Not a membership" before, come back pre-filled.
- Mark the N undecided as "not a membership" sets every row you have not decided to "Not a membership".
- Save mapping (shows (N to decide) and stays greyed until every tag is decided). It saves exact-match rules under Membership types & rules (you will see them in the rules table with Regex ticked, leave them), adds any new types, and saves the amounts on the types. The note says a tag's spelling is matched as a whole, so "men" never catches "women".
- A green message confirms, for example 12 tags mapped, 1 new type added. Amounts were saved on the types. The file is being checked in step 3 below.
If you have no tags in OptiMantra yet, the screen suggests tag names, one per type.
Step 3. Import the current members once
Hooks only fire on bookings and check-outs, so existing members come in from the same file. Until you save the mapping, this step says Click "Save mapping" above first: the file is checked here automatically; no second upload.
After saving, the file is checked automatically and you see {file}, N rows, recognised as the OptiMantra tags report. and a summary of what would be imported (see Import from CSV in the Data section). Click Import N memberships to bring them in, or Check again. The step shows ✓ done after the import.
Provides / Last sync
A small table at the bottom of the card:
Provides: what this EMR gives the portal, for example "memberships, autopay dates, failed payments, contact details, addresses", or nothing, manual entry.
Last sync: the date and time of the last sync, or never. Under it:
- While a sync is running, a yellow pill: Sync running, started 9:02 AM (a full run takes ~10 min).
- A line like Ran 10/25/2026 8:50 AM-8:58 AM (8 min) · 412 memberships tracked, 6 updated, 2 added, 1 no longer in the EMR · no errors.
- A line of status counts, for example Active 380 · Suspended 12 · Payment failed 9 · Frozen 3 · Cancelled 8.
- A red line only when something needs attention. It can say:
- N errors
- stopped early (time limit), the next run continues where it left off
- N memberships parked for review (Dashboard → Review {EMR} matches)
- {EMR} slowed the pull (N throttled calls): the EMR was busy and answered slowly.
- did not complete
Buttons at the bottom
- Save EMR connection (Prescripta only). Greyed out until required boxes are filled; a note says Fill in: ….
- Test connection (Prescripta only). Shows ✓ or ✗ and a message.
- Sync now (owner/admin, Run the EMR sync / sweep; only for a live EMR and when EMR sync is part of your plan). Starts a full sync in the background.
- You see Sync started. Results appear on this page in a minute or two. The card refreshes itself about 20 seconds later; reload the page to see the final result.
- If a sync is already running: A sync is already running (started N min ago; a full run takes about 10 minutes). Wait for it to finish, this page updates when it does.
- Needs a recent sign-in.
- After a sync, the full re-check of reorders and follow-ups runs too.
Questions people ask
Q: Can I change our EMR or its login details myself?
A: No. The EMR connection is set up by Prescripta with the EMR company. Contact support through Account → Support.
Q: When does the portal get new data from the EMR?
A: Zenoti: every morning at 8:50 AM Eastern, and whenever someone clicks Sync now. OptiMantra: events arrive as they happen in OptiMantra and are brought in on the next hourly check.
Q: I clicked Sync now and nothing changed.
A: The sync runs in the background and takes up to about 10 minutes. Wait, then reload the page. The Last sync line shows when it finished.
Q: Sync now says "A sync is already running".
A: Only one sync can run at a time. Wait for it to finish (about 10 minutes).
Q: I don't see the Sync now button.
A: Either your role lacks Run the EMR sync / sweep, your EMR is "coming soon" or "No EMR connection", or EMR sync is not part of your plan.
Q: The last sync says "stopped early (time limit)". Is data missing?
A: The next run continues where it stopped. You can click Sync now to finish sooner.
Q: What does "memberships parked for review" mean?
A: The sync found EMR memberships that look like patients already added by hand. Open the Review {EMR} matches card on the dashboard and decide whether they are the same person.
Q: A patient moved from Semaglutide to Tirzepatide in the EMR. Will the sync create a duplicate?
A: No. If the EMR cancels the old membership and sells a new one, the old row goes Cancelled and a new row of the new type is made for the same patient. If the EMR shows a different type than a staff member set by hand, the row is flagged EMR disagrees, review instead.
Q: OptiMantra step 1 still says "nothing yet".
A: Book or check out a test patient in OptiMantra so it sends an event. Make sure both hooks use POST and the inbox URL from Show inbox URL.
Q: OptiMantra events are "waiting" in the inbox.
A: They wait until a membership-type rule matches their tag. Finish step 2 (Save mapping). They come in on the next hourly check.
Q: Is the inbox URL secret?
A: Yes. Anyone with it could send events to your clinic. Treat it like a password. If it leaks, ask Prescripta support for a new one.
