Provider Manual · Part IV

Practice setup — integrations

Wire Hero EMR to the outside world: referral/external providers, Stripe, SRFax, SMS, and EPCS for controlled prescribing.

7 sections~31 min read8 screenshots
IV
Part IV · continued

Practice setup — integrations

Wire Hero EMR to the outside world: referral/external providers, Stripe, SRFax, SMS, and EPCS for controlled prescribing.

4.6External providers

Connect every third-party integration from one hub

External Providers is Hero EMR's integration center. Every third-party connection — patient communication, clinical, billing, and fax — lives behind a single modal with a sidebar of tabs. Org admins manage the org-wide tabs; individual physicians can connect an SRFax account, which the whole practice sends from unless they keep it personal.

Patient communication

  • Email — the outbound sender (Active sender shows your Sender address, or Hero’s shared sender while the field is blank — “Leave blank to send from Hero’s shared sender.”) and inbound routing for patient replies.
  • SMS — provider-routed SMS for reminders and inbound replies. See §4.9.
  • Video conferencing — pick Zoom or Google Workspace as the active telehealth provider, then map each physician to a host. See Part III.
  • Phone agent — inbound phone routing via the Hero Phone Agent.

Clinical integrations

  • SureScripts — platform e-prescribing status and physician directory.
  • RadNet Connect — credentials for the RadNet ordering portal.
  • Labs — Quest and Labcorp connections, enabled lab compendiums, and the paper requisition form. See Labs: Quest & Labcorp.
  • Imaging visibility — which imaging providers show up at encounter completion.
  • Fullscript — supplement recommendations and Fullscript Labs through each clinician’s Fullscript account.
  • Calendar Sync — the clinician's own Google or Outlook calendar link. See §4.11.
  • Headway — for practices whose clinicians see clients through Headway; appears once the Headway feature is turned on. See §4.26.

Billing & payments

  • Stripe — Stripe Connect onboarding for patient payments. See §4.7.
  • Square — Square seller connection for portal payments.
  • Office Ally SFTP — SFTP credentials for EDI claim transport (claim batches, acknowledgements, and ERAs). Office Ally no longer checks eligibility, so there is no separate Office Ally login tab; eligibility runs through Stedi. A practice that hasn’t saved its own login reads Connected with “Uses Hero’s shared Office Ally login until your practice saves its own.”
  • Availity SFTP — SFTP credentials and EDI identifiers for Availity transport.
  • Stedi — clearinghouse provider records, payer enrollments, and readiness. Its Settings choose how claims use Stedi in one Claims select — Off — Stedi doesn’t send claims, A biller sends claims through Stedi (nothing automatic), Stedi sends ready claims; the rest go to your other clearinghouse, or Stedi sends ready claims; nothing else sends them — and a Right now: line states the practice’s actual claims route. With the Eligibility switch on, the Eligibility select is Stedi checks eligibility (the default) or Manual (no automated eligibility). Claim files and the daily batch for everything else are set in Billing → Claim Submission. Billing NPI by payer applies only to claims sent through Stedi.
  • Optum — Optum clearinghouse eligibility, claim status, and readiness.

Fax

  • Hero Fax — your Hero-managed practice fax number. See Get a dedicated Hero Fax number.
  • SRFax — an SRFax account for inbound and outbound fax, shared with the practice unless the person who connected it keeps it personal. See §4.8.
  1. Open Admin > External Providers. The modal opens on the tab you used last (a deep link or a button that names a tab opens that tab instead). Tabs are grouped in the left sidebar by category.
  2. Pick a tab. Each tab is self-contained — credentials, configuration, and a Verify/Test button. Status badges (Active, Disabled, Needs number, Not configured) tell you what's still missing. The claim channels (Office Ally SFTP, Availity SFTP) use the same words everywhere in Hero — Connected, Not connected, Needs attention, Turned off, or Manual billing only — so External Providers and Billing → Claim Submission never disagree.
  3. Refresh after external changes. If you change settings at the provider (e.g. add a new Office Ally payer), click Refresh in Hero to re-pull status.
Admin · External Providers modal grouped into Patient Communication, Clinical Integrations, Billing & Payments, and Personal sections with the Email tab open
The sidebar is grouped by category. Every integration lives here — there is no separate per-feature settings page. (This picture predates the Fax group, which now holds Hero Fax and SRFax.)
Screen updated since this picture: the help under Sender address now reads “Must use @{domain} or a subdomain. Leave blank to send from Hero’s shared sender.” (was “Blank = server default.”), and a blank sender shows as Active sender: Hero’s shared sender.
Bookmarkable tabs: Each tab supports a deep link via the ?externalProvider=<tab> query string (e.g. ?externalProvider=stripe). Useful when sending a teammate to a specific integration. The older ?externalProvider=zoom link still works — it now lands on Video conferencing.
Looking for PDMP? It is not an External Providers tab. Signup guidance and per-state controlled-substance settings are on the PDMP tab inside Admin > EPCS Enrollment & Access — see §4.10. Hero support configures approved connection credentials after enrollment; this tab has no credential-entry field.

Stedi account setup and enrollment follow-up

When Hero enables self-setup, Admin → External Providers → Stedi offers Set up Stedi account under Your Stedi account. Sign in or create the practice’s account on Stedi, approve access, and return to Hero. This connection does not itself change claims routing or approve payer enrollments. Ask Hero support if the setup card is absent.

Use Practice Setup → Open enrollment tracker to follow payer tasks and statuses. Its Received ERAs tab provides remittance PDFs during transition. The Stedi integration also includes Default Medicare payer for choosing the Part B payer preselected on scanned Original Medicare cards. See Stedi setup & ERAs for the workflow and required access.

4.7Stripe & billing

Connect Stripe and set up billing for card payments, subscriptions, and balances

Stripe is the default payment processor for patient-facing card payments — copays collected at the front desk, cash-pay services, recurring memberships, balances posted from Billing, and card-on-file charges from the portal. Hero uses Stripe Connect, so each practice connects its own Stripe account. Payouts go directly to your bank; Hero never holds funds.

  1. Open Admin > External Providers and pick the Stripe tab (under Billing & payments). Setup runs as a three-step card wizard.
  2. Step 1 — Register your practice. Type your Legal entity name (e.g. Westside Family Medicine LLC) and click Create Stripe Account. The name is required; leaving it blank is refused with “Legal entity name is required before creating a Stripe account.” Nothing has left Hero yet at this point.
  3. Step 2 — Complete identity verification. Click Start Verification. This is the redirect into Stripe's hosted onboarding, which asks for business type, EIN, bank account, and a representative's SSN — the same onboarding any Stripe merchant does. Budget 5–10 minutes and have those details in hand. If Stripe has placed a hold, the reason prints on the card before the button.
  4. Step 3 — Go live. After you submit, the card reads “Verification submitted, awaiting Stripe approval.” Approval is usually minutes but can take days if Stripe pulls the account for manual review; click Refresh to re-check rather than restarting the wizard.
  5. Confirm Stripe Connect Active. The Stripe tab shows a green status badge with the connected account name (e.g. Dr. Romero's Practice) once Stripe has verified you.
  6. Open the Stripe Dashboard from Hero. Use the Open Stripe Dashboard button to review payouts, disputes, and refunds. Hero shows posted/refunded amounts in Billing, but Stripe is the source of truth for transaction-level detail.
  7. Disconnect to rotate. Use Disconnect if you need to attach a different Stripe account (e.g. merger, EIN change). Existing posted payments stay attributed to the original account; new charges land on the new one.
Stripe tab in External Providers showing the Stripe Connect Active green status banner with the connected account name and an Open Stripe Dashboard button
The Stripe Connect Active banner is the green light for taking card payments. Until you see it, the front-desk card reader and portal payments stay disabled.
Know the fees before go-live: click How it works on the Stripe tab. The Fee Breakdown there lists a Hero EMR application fee alongside Stripe's 2.90% processing fee, both applying to connected-account card payments. The Hero fee percentage is set for your practice, so read it off that panel rather than assuming — and share it with whoever prices your cash-pay services. The same panel draws the Payment Flow as four numbered steps — Patient → Hero EMR → Stripe → Your Bank, joined by secure payment, funds transfer, and auto payout. While the tab is still checking your account, its status badge reads Checking….
Stripe vs. Square: Most practices use Stripe. Hero also supports Square under the Square tab for practices that already have a Square seller account and want to keep their existing in-person card readers. Pick one — they don't run in parallel.
Card readers: register offices for card payments in the Stripe settings, then use Billing → Card readers to register and manage front-desk smart readers. The Stripe panel also links to Manage card readers. The Bluetooth M2 reader remains paired in the kiosk iPad app, and kiosk payment settings remain under Admin → Kiosk → Payments. See Payments & card readers.

Set up the billing workflow after Stripe is active

Once the Stripe tab shows Stripe Connect Active, finish the billing configuration in Admin > Billing. Membership (DPC) and hybrid practices should publish their membership plans before inviting patients to enroll through the portal.

  1. Open Admin > Billing. The Billing Command Center opens on the Dashboard. Confirm the practice name and payment model at the top, then use the left sidebar for configuration.
  2. Set the Payment Model. Choose Insurance, Pure Cash, DPC (membership), or Hybrid Insurance + Cash. The switch dialog previews what changes before you confirm (see §5.1). Decide in Collections & Fees whether patients must keep a card on file.
  3. Price your services in the Service Menu. The Service Menu lists your visit types per provider — not products or plans. Give each its cash price, collection rule, and, in a DPC practice, its Membership coverage: Covered by membership or Cash only (members pay too) (see §5.3). There are no membership, enrollment-fee, or bundle items to add here.
  4. Create membership plans in Subscriptions. Each plan has a name, amount, billing interval (monthly or annual), an optional trial, and an optional plan group that pairs the monthly and annual versions; publish it to open enrollment. Plans aren’t attached to Service Menu items, and a membership starts when the patient completes enrollment. Enroll patients by texting, emailing, or copying the enrollment link (see §5.12).
  5. Set missed-appointment fees in Collections & Fees. No-show and late-cancellation fees come from the Missed Appointment Policy there (or a service’s own override) and land on the patient’s account when a visit is marked a no-show or cancelled late; CPT List Prices holds your price per billing code, not one-time fees.
  6. Use Payments for verification. Post a small test charge or refund, then confirm it appears in Hero and in the Stripe Dashboard. Stripe remains the transaction-level source of truth for payouts, disputes, and refunds.
  7. Leave claims setup for insurance work. Only configure Claim Submission, Office Ally, Availity, Stedi, and payer enrollment when the practice is ready to submit insurance claims. A membership launch can start with Stripe, Service Menu, Subscriptions, and Payments first.
Billing Command Center dashboard with operations tabs and configuration tabs for Payment Model, Claim Submission, Collections and Fees, Service Menu, Subscriptions, and Charge Fees
The Billing Command Center keeps payment operations and configuration together. Membership practices start in Payment Model, Service Menu, and Subscriptions.
Screen updated since this picture: the sidebar now reads CPT List Prices (was Charge Fees), and Subscriptions sits under Programs.
Billing Command Center Payments tab showing manual entry, ERA upload, recent payment activity, posted card payments, and refund actions
Use the Payments tab to verify card payments and refunds after Stripe is connected. Posted payments should also be visible in the Stripe Dashboard.
Screen updated since this picture: the empty queue now reads Unposted Remittances — “Nothing is waiting — every remittance Hero received has posted.” — and a Post EOB button sits beside Manual Entry.
4.8SRFax

Connect an SRFax account for your practice

Hero supports SRFax accounts and a practice-wide Hero Fax number. Only one fax service can be active for a practice at a time. An administrator must pause Hero Fax before anyone connects SRFax; all connected SRFax accounts must be disconnected before setting up Hero Fax.

A connected SRFax account serves the whole practice. Anyone without an SRFax account of their own sends faxes, and sees their delivery status, through the practice’s shared account. Someone who connects their own account always sends from it. Accounts that were already connected became shared automatically; the person who connected one can make it personal (step 3).

  1. Open your SRFax settings. Go to Admin → External Providers → SRFax. Administrators find it in the Fax group. A physician with access to personal integrations sees their own SRFax settings. If you have no account of your own, the tab tells you which one you already send from: “You send faxes from the practice’s fax account (<number>), connected by <name>. Connect your own account only if your faxes should come from a different line.”
  2. Enter the required connection details. In Credentials, supply Access ID, API key, Fax number, and Sender email. The fax number accepts ordinary phone-number formatting. Sender email is required for delivery confirmations.
  3. Choose who can send from it. Let everyone in the practice send faxes from this account is ticked by default. Untick it to keep the account personal (“Only you can send from this account.”); a personal account is never used for anyone else. Once connected, the box saves as soon as you change it, without re-entering the password. Incoming faxes are not affected: they arrive in the practice’s Faxes inbox either way.
  4. Use Verify & save. Hero checks the credentials. Saving also updates the fax number on file; review any prompt to replace an existing number before confirming.
  5. Test sending and receiving. Send a non-patient test document to a known fax destination and confirm its delivery and receipt. See Send fax and the fax inbox.
  6. Disconnect before changing credentials. Saved fields are locked. Use Disconnect (Hero warns you if the practice also sends from this account), enter the replacement details, then verify and save again. An older connection without a sender email may show a fallback address or blocked sends; reconnect with a sender email to correct it.

If Hero Fax is active appears, a saved SRFax account is marked Inactive and its fields are disabled. Keeping old credentials does not make SRFax the active service.

If more than one account is shared, Hero always uses the same one: the oldest that verified without an error. An account stops serving the practice when the person who connected it is no longer an active member of the practice.

4.9SMS messaging

Turn on SMS for reminders and patient replies

SMS powers appointment reminders, waitlist notifications, and two-way patient threads in the Inbox. The SMS tab in External Providers picks the carrier and the number SMS comes from, and holds the optional auto-replies and FAQ responder that fire on inbound texts. Configure SMS once at the org level; Scheduling > Patient notifications controls who receives what.

  1. Open Admin > External Providers > SMS. If SMS hasn't been set up, the tab header shows Not configured.
  2. Choose the carrier. The Provider card offers Telnyx (“Preferred for new HIPAA-oriented SMS and SIP numbers”) and Twilio (“Fallback for existing Twilio-routed numbers”). Pick Telnyx unless you are keeping a number that already routes through Twilio. Your choice renames the option below and, on Telnyx, adds a required Telnyx Messaging Profile ID field.
  3. Pick a phone-number source. Three options on the card:
    • Custom Telnyx number / Custom Twilio number — the label follows the carrier you picked. Type an E.164 number (e.g. +15551234567) provisioned on that carrier.
    • Organization phone — reuse the org phone from Practice Info.
    • Phone agent number — share the same number as the Hero Phone Agent (only if the agent is enabled and configured).
  4. Set Inbound auto-replies (optional). Three fields — No patient match, Multiple patient matches, and Matched and routed — cover the three ways an inbound text can land. All three start empty: the greyed-out sentence in each box is placeholder text showing the shape of a good reply. A blank Matched and routed field means Hero sends nothing once a text reaches your Inbox. A blank No patient match field means Hero texts back asking the sender to use your patient portal (with its link), unless those texts go to your Inbox (next step). A blank Multiple patient matches field sends your No patient match reply instead, or, if that is blank too, Hero’s reply explaining that the number is on more than one patient’s chart and pointing them to the patient portal. A patient whose chart matches but who has no portal account gets the same portal reply. Hero sends one of these replies to a number at most once a day, and never to a number that texted STOP or to a short code. Write your own wording if you want different replies, then click Save auto-replies at the bottom of the card. That button saves only these three replies, and the FAQ’s own Save button never changes them. When a number is on more than one chart (a family phone, a test chart), Hero still files the text on one chart when it can tell which: the chart your practice texted at that number in the 72 hours before, otherwise the one chart whose patient-portal account signs in with that number. Website booking holds are ignored when a real chart has the number. A reply counts as an appointment confirmation or check-in only when the whole text is short, such as Yes, Yes please, Confirm, or Here; a longer text that happens to start with “Yes” goes to your Inbox like any other message.
  5. Decide where texts that can't be filed on a chart go. In the Texts that can’t be filed on a chart card, tick Show texts that can’t be filed on a chart in the Inbox and click Save Inbox setting. Texts from numbers that aren’t on a chart, are on more than one chart, or belong to a patient without a portal account then go to Inbox > Inquiries, marked as a text. Your reply there is sent as a text from the number they texted. The setting is off by default; while it is off, Hero texts back asking them to use the patient portal. A number on more than one chart always gets a reply, so the sender knows why.
  6. Consider the FAQ auto-responder. Further down, Enable FAQ auto-responder lets Hero text back answers to common, non-clinical questions — hours, address, appointment logistics — before they reach the Inbox. Add each pair with Add FAQ (Question / topic plus the Answer that gets texted), tick Active per entry, and click Save FAQ settings. Only a confident, non-clinical match is answered; anything uncertain or clinical falls through to the Inbox untouched.
  7. Click Verify number & configure webhook. Hero confirms the number is reachable, registers an inbound SMS webhook with the carrier, and flips the status to Active. Once verified, the number fields lock and the button becomes Save settings; use Disconnect to change numbers.
  8. Toggle Enable organization SMS. The master switch. Patients won't receive SMS at all until this is on, regardless of per-physician reminder policies.
  9. Test from a patient chart. Open any patient with a verified mobile, send a test message from the Inbox, and confirm both delivery and inbound reply routing.
  10. Run the STOP drill before go-live. Expand Test unsubscribe webhook, enter a phone you control, click Send test, reply STOP from that phone, then click Verify unsubscribe. The summary should flip from “Waiting for verification” to “STOP received.” If it doesn't, inbound webhooks are not reaching Hero and opt-outs will be silently ignored — a carrier-compliance problem, not a cosmetic one. The panel only appears once the number is verified.
Organization SMS tab with a Provider card offering Telnyx and Twilio, Custom number, Organization phone, and Phone agent number options, an Inbound auto-replies card, and a Verify number & configure webhook button
Pick the carrier, then the number source, then verify. Auto-replies are optional and blank by default; reminder cadence still comes from Scheduling.
10DLC and A2P registration: US carriers require business SMS senders to register their brand and campaign (10DLC). Hero handles the technical wiring, but you'll need to provide your EIN and a sample message during onboarding. Expect 1–2 business days for approval before SMS goes live.
4.10EPCS enrollment

Enroll physicians for controlled-substance e-prescribing

EPCS (Electronic Prescriptions for Controlled Substances) is the DEA-regulated workflow for prescribing Schedule II–V drugs electronically. Each prescribing physician enrolls separately: an admin creates the request and records identity proofing, a second admin countersigns it, and the physician then binds a signing device by registering a passkey. Once the enrollment reaches Active, that bound device is the physician's second factor when they sign controlled prescriptions inside Hero. The EPCS modal also configures PDMP (state-mandated controlled-substance database) checks per state.

  1. Open Admin > EPCS Enrollment & Access. The modal opens to the Enrollments tab with a list of in-flight and completed enrollments.
  2. Click + New Enrollment. Pick a physician (must already exist in Physician Management with a valid DEA) and confirm the DEA Number — Hero prefills it from the physician's identifiers and refuses a value that disagrees with the record on file.
  3. Record the Identity Proofing result. The dropdown offers Pending, Verified, or Failed. Identity proofing itself happens outside Hero; this field is where the admin records the outcome for the audit trail, so don't set it to Verified until you have the evidence in hand.
  4. Set the Privilege Template. Full Prescriber enables all five EPCS privilege flags; Enter Only allows draft entry with no signing or transmitting rights; Custom lets you tick the Privilege Matrix by hand. The five flags are Enter (create controlled draft orders), Alter (modify existing drafts), Ready (mark ready for sign), Sign (apply the EPCS signature), and Transmit (send to the pharmacy) — so this choice decides whether the clinician can only draft controlled orders or can actually sign and send them. At least one flag is required.
  5. Get a second admin to countersign. The new request lands as Requested. One admin clicks Approve to record the first approval, which moves it to Pending 2nd Approval; a different admin then gives the second approval with Second Sign. Only after that does the enrollment become Waiting Device. Revocation follows the same two-person path — Revoke records the first approval, and a different admin must complete Second Sign Revoke before access is actually removed.
  6. Approve the second sign on a phone. Second Sign opens Second Sign Approval (Second Sign Revocation for a revocation): “A second admin approves this access on their phone, in the Hero app, with the passkey on their EPCS device.” Choose the approver under Who’s approving? and click Send to phone. The approver opens the Hero notification (or Hero app → EPCS) and approves with the passkey on their EPCS device; the request expires in 10 minutes, and Send again sends a new one. When it lands: Second Approval Recorded, “Logical access is now approved. Issue a device invite next.” Admins who can’t receive it are greyed out with No EPCS device set up in the Hero app or Needs the latest Hero app; the first approver and the person who requested the enrollment can’t be chosen. Use a passkey on this computer instead keeps the old way: a different admin confirms with a passkey saved on that computer, which works only if one of the two approvers has already confirmed with their EPCS device.
  7. Issue the device invite. On a Waiting Device row, click Issue Invite. Hero generates a one-time invite token with an expiry plus an app deep link, and offers Copy Token and Copy Link. Send the link to the physician through a channel you trust — it is what binds their signing device.
  8. Have the physician bind their device. Opening the link on their phone launches Hero EMR, where they sign in and register a passkey (Face ID / Touch ID / device unlock) against the invite. The bound device then shows in the Devices column as iPhone/iPad, Android Device, Web Browser, or Passkey Device, and the enrollment flips to Active. One bound device is enough — the status is Waiting Device, singular. If a phone is lost or replaced, use Lost Phone to revoke the active devices and issue a fresh invite in one step.
  9. Confirm with Test Device. On an active row, this sends a fictitious approval request to the prescriber's phone so you can confirm the approve/deny prompt works before a real controlled prescription depends on it. The result stays on the row rather than vanishing with a toast.
  10. Switch to Monitoring for active enrollments. Shows recent EPCS signing activity per physician — useful when compliance or DEA audits ask for a log.
  11. Configure PDMP per state. Each state mandates which substances trigger a PDMP check and how recently. The PDMP tab lets you flip rules (e.g. CA controlled substances, KY HB1, OH OARRS) on or off, and enforce Require PDMP check for controlled prescriptions or Require reason override when a check is skipped.
  12. Review Security Alerts. Hero surfaces unusual signing events (new device, new geo, off-hours) for follow-up. Investigate any alert flagged in red.
EPCS Enrollment modal with sidebar tabs Enrollments, Monitoring, PDMP, and Security Alerts; main pane shows the enrollments table with physician, DEA, status, devices, and requested columns
EPCS is per physician. The sidebar moves between enrollment progress, signing monitoring, per-state PDMP rules, and security alerts.
You need two admins. EPCS logical access is under two-person control, and Hero enforces it: the admin who records the first approval cannot also complete the second sign, for granting or revoking EPCS access. A single-admin practice will get an enrollment stuck at Pending 2nd Approval with no way forward. Create the second admin account before you start EPCS enrollment. The second signer completes their step with a passkey; if the first approver did not already verify with an approved EPCS hard token, the second signer must use one — meaning your second admin should themselves be EPCS-enrolled.
Plan the timing: Identity proofing, both admin approvals, and the physician binding their device typically takes 30–60 minutes of hands-on time, but it is spread across three people and the invite token expires. Line up the second admin and get the physician's phone in front of them before you issue the invite, and start EPCS enrollment a week or two before go-live rather than on day one.

PDMP signup and EHR connection

Open Admin > EPCS Enrollment & Access > PDMP for PDMP settings and signup instructions. Each prescriber needs an active state PDMP account, and the practice needs separate approval for EHR integration. Completing EPCS enrollment does not enroll you in the PDMP.

Enable PDMP does not activate a connection. The toggle saves your practice setting. Hero support handles the approved Bamboo / PMP Gateway connection credentials; there is no credential-entry field in this tab. If the status remains Not configured, contact Hero support to coordinate onboarding and configuration. Check config checks configuration status; it does not submit an enrollment application or verify a live patient query.

Illinois: register for ILPMP and request PMPnow integration

  1. Register the prescriber. Open ILPMP registration and select Prescriber. Complete the application with your name, practice address, DEA number, Illinois license information, and business phone. If you already have an account, sign in or recover it through ILPMP.
  2. Request your practice connection. Email DHS.DBHR.PMPnow@illinois.gov to request PMPnow integration. Identify Hero EMR as your EHR and ask the team to confirm the available integration route. Contact the team for changes to an existing EHR connection too.
  3. Complete Illinois onboarding. Attend the required educational session, complete the Memorandum of Understanding (MOU), and submit the facility and provider template supplied by the PMPnow team. Integration can proceed after the required materials are approved.
  4. Coordinate activation with Hero. Contact Hero support with the approval or onboarding reference so we can coordinate connection setup and validation. Share connection secrets only through a secure channel arranged with support. Use the ILPMP website for direct access while integration is pending.

State approval and integration availability must be confirmed before activation. For other states, follow your state PDMP’s enrollment and EHR integration process with Hero support.

Official Illinois instructions: PMPnow integration and ILPMP FAQs.

4.11Calendar sync

Sync your schedule with Google Calendar or Outlook

Calendar Sync links a clinician’s own Google Calendar or Outlook / Microsoft 365 account to Hero so the EMR schedule and their outside calendar stay aligned — outside commitments block time on the Hero schedule, and (optionally) Hero visits appear on the personal calendar. Unlike the other items on this page, Calendar Sync is per-clinician self-service: every clinician connects their own calendar from the toolbar Settings (gear) → Calendar Sync menu. Admins can also reach the same panel through Admin > External Providers, but there is no org-wide “connect everyone’s calendar” switch — each clinician authorizes their own account.

Two independent directions of sync are available, and they default differently:

Import (default ON)

Pulls busy events from your external calendar and blocks that time on the Hero schedule. Each blocked window is created as time off labeled with the outside event’s own title (plus its description when the two differ), so read the warning below before connecting a calendar that holds sensitive titles. Events you have marked Free are skipped entirely.

Export (default OFF)

Pushes your Hero scheduled visits into a dedicated SoaperEMR calendar in your linked account. This carries PHI, so turning it on requires acknowledging a PHI/BAA warning first.

Include full appointment details (PHI)

An optional export toggle. Off, exported events show busy time only. On, they add patient names and visit reasons to the events in your outside calendar.

  1. Open Calendar Sync. Click the toolbar Settings gear and choose Calendar Sync. (Admins can also open Admin > External Providers and pick the Calendar Sync tab.)
  2. Connect a provider. Each provider card — Google Calendar and Outlook / Microsoft 365 — has a Connect button that sends you through that provider’s OAuth consent screen. Sign in with the account you want to sync and approve the requested calendar access; you’re returned to Hero with the card now showing your connected account.
  3. Choose what syncs. On the connected card, Import busy time is on by default — and imported blocks carry the outside event’s title onto your Hero schedule, so review the warning below before you leave it on. Leave Export visits off unless you want Hero visits on your outside calendar — turning it on opens a PHI/BAA confirmation you must acknowledge. If you enable export, decide whether to also turn on Include full appointment details (PHI); otherwise exported events stay busy-time only.
  4. Keep it in sync. Sync runs automatically in the background once connected. Click Sync now to force an immediate pass, or Refresh to re-read the current connection status. A Reconnect required badge means the authorization expired or was revoked at the provider — click Connect again to re-authorize.
  5. Disconnect when needed. Click Disconnect to stop syncing and unlink the account. The confirmation warns that imported busy times will stop blocking your availability — those blocks are removed from the Hero schedule — and that exported appointments will no longer be updated. If you have ever exported, the same dialog offers a checkbox, Also delete exported appointments from <provider>, which removes the SoaperEMR calendar and every appointment Hero put in it. This is your only chance to use it: disconnecting revokes the access Hero needs to clean up later, so anything you leave behind stays in that calendar permanently.
The toolbar Settings gear dropdown open with a Calendar Sync entry listed among the menu options
Calendar Sync is reached per clinician from the toolbar Settings gear — not from an org-wide admin switch.
Calendar Sync panel showing a banner that reads Calendar Sync is not enabled for this environment, with Google Calendar and Outlook / Microsoft 365 provider cards both marked Not configured
Until an administrator enables Calendar Sync and configures the OAuth credentials, the panel shows the not-enabled banner and both provider cards read Not configured — the current state on the demo environment.

Once OAuth is configured, the connected card replaces the Not configured state with your linked account name, the Import busy time / Export visits / Include full appointment details (PHI) toggles, and the Sync now, Refresh, and Disconnect controls. Enabling export raises the PHI/BAA confirmation dialog described above before any visit data is pushed.

Import copies your event titles into Hero — it is not busy-time-only. For every busy event it finds, Hero creates a time-off block whose label is that event’s title, with the event description appended after a colon when the two differ (trimmed to 255 characters). A calendar entry reading “Oncology consult — Mrs. Alvarez” or “Marriage counseling” appears verbatim on your Hero schedule, where schedulers and admins who can see your time off can read it. Private or personal events are not filtered out. Before you connect a calendar that holds sensitive titles, mark those events Free — free/“show as available” events are skipped and never imported — or connect a calendar whose titles you are comfortable exposing to your practice.
Do not: enable Export visits to a personal Gmail or Outlook.com account. Export pushes PHI out of Hero, so it is only appropriate for a Google Workspace or Microsoft 365 account covered by a signed BAA. Personal consumer accounts are not BAA-eligible and must never be used for export. Import sends nothing out of Hero, but it does pull outside event titles in — see the warning above.
Admin prerequisite: Calendar Sync only works after an administrator enables it for the environment and configures the Google / Microsoft OAuth credentials. Until then the panel shows “Calendar Sync is not enabled for this environment” and each provider card reads Not configured, so clinicians can’t connect yet. See §4.6 External Providers for where these integrations are managed.
4.25Labs

Connect Quest and Labcorp, and choose the labs clinicians can order

Admin > External Providers > Labs holds the practice’s lab connections: “Quest and Labcorp connections, enabled lab compendiums, and the paper requisition form.” Practice administrators manage it.

Quest: add Hero’s user, never a password

  1. Copy Hero’s address. The Quest Diagnostics card shows Hero’s Quest Quanum user: an email address Hero made for your practice, with Copy.
  2. Add it in Quest Quanum. Sign in to Quest Quanum as an administrator for your practice and add a new user with that address, as an administrator with access to all of your practice’s Quest accounts and providers.
  3. Click I’ve added this user. “Thanks. Hero will finish connecting Quest.” You never share a password with Hero. The badge moves from Not set up to Waiting for Hero, then Connected, and then the Quest compendium can be enabled (below).

A practice still connected with its own Quest login reads Connected with your practice’s own login; it keeps working, and the card offers to move it to Hero’s user. If Quest refuses the sign-in, the card says Quest is rejecting the saved sign-in: “Quest orders cannot send until this is fixed.” Check that Hero’s user is still active with administrator access, then click I’ve checked this user. Add Quest results for tests ordered outside Hero is described under Lab reports.

Labcorp

The Labcorp card (“Order Labcorp tests from the chart with your practice’s Labcorp account.”) needs Hero to turn Labcorp ordering on for your practice; until then it says “Labcorp ordering is turned off on this server. Hero support turns it on.” and its fields are greyed out.

  1. Enter the account. Labcorp account number (the 8 digits from your Labcorp paperwork), an optional Account name, and the Default bill method: Patient bill (the default), Private insurance, Medicare, Medicaid, or Bill to practice (which needs a client-bill account at Labcorp). Click Save: “Labcorp account saved.” Hero doesn’t need a Labcorp login for this.
  2. Choose how orders go out. Send orders: Print a Hero requisition, or Electronic via Labcorp Link once Hero has connected Labcorp Link for your account. For Labcorp Link, the card shows Hero’s Labcorp Link user with the same steps as Quest: add it in Labcorp Link as an administrator with access to your account number, then click I’ve added this user.
  3. Turn the Labcorp tests on. Under Enabled lab compendiums, tick Labcorp and click Save lab visibility. Labcorp tests then appear in the order search (see Lab orders).

The status line under the badge says how orders and results work for your account, for example “Orders print as a Labcorp requisition the patient takes to a Labcorp Patient Service Center. Results arrive by fax as they do now.” Remove takes the account off (“Labcorp tests will no longer be offered when ordering labs. Labcorp orders already placed are not changed.”).

Enabled lab compendiums

Tick each lab whose tests clinicians may search, then Save lab visibility. Each row says whether it is ready to search and send, and why not when it isn’t (for example “Add your Labcorp account number in External providers > Labs > Labcorp.”). The same card has Only fill in a dictated lab when its name matches a test exactly, off by default: “Otherwise the lab stays in the note marked “Pick a test” and is not sent until someone chooses the test.” Turn it on if dictated labs too often land on a near-miss test.

Paper requisition templates in the same tab can add Labcorp tests by test number with Add from Labcorp, next to Add from Quest; this works without a Labcorp account.

Need help? Email support@heroemr.com.