Collect and check coverage days before the visit so the front desk is never verifying benefits live while a patient waits at the window.
Bring your stack to a call and we will scope it against how your business actually runs.
Book a callIn most practices, insurance verification happens at the worst possible moment: the patient is at the window, the schedule is already behind, and one front desk person is holding a card in one hand and a payer portal in the other. Verification done that way is rushed verification. Plan type gets guessed, the deductible is never actually read, nobody asks about secondary coverage, and prior authorization requirements are discovered after the visit has already happened. The patient gets checked in anyway, because the alternative is an argument in a full waiting room.
The money leaks in three predictable places. Eligibility and authorization denials are the most avoidable denials in the book and the most expensive to rework, because they come back weeks later when nobody remembers the encounter. Write-offs follow on balances the patient never agreed to in advance, because a cost conversation held after the service is a collections problem rather than a consent conversation. And the quiet leak is schedule attrition: patients who hear an unexpected number at check-in cancel the follow-up, the series, or the procedure, and that cancellation never gets attributed to the verification gap that caused it.
There is a compliance cost too. When verification is a scramble, protected health information moves through whatever channel is fastest. Card photos land in a personal text thread, benefit details get emailed in plain subject lines, and a sticky note with a member ID sits on a monitor until someone throws it away. The fix is not a better front desk person. It is moving the whole collection-and-verification sequence off the counter and into a tracked workflow that runs on its own days before the patient arrives, with every message scoped to the minimum necessary and every action timestamped.
One pipeline, Insurance Verification, holding an opportunity per upcoming appointment rather than per patient, so a patient with three scheduled visits has three verification records.
Build these on the contact record unless marked as belonging to the opportunity. Keep identifiers in the record and out of message bodies.
BO handles the logistics layer of this build and nothing more. BO chases missing form fields and card images, answers questions about what the form is for and how to use it, confirms receipt, reschedules the financial counseling call, and routes anything else to a human.
Eight workflows carry this build. Every one of them opens with the same consent and suppression check, and every one of them exits the moment a human takes over. Wait durations assume an appointment booked at least seven days out; the scheduling logic below compresses the ladder for short-notice bookings.
Trigger: appointment booked on any clinical calendar, or an opportunity created in Insurance Verification at Appointment Booked.
Conditions and branches:
Actions in order:
Stop and exit: form submitted, stage advanced past Coverage Request Sent, appointment canceled, opt-out received, or any inbound reply (which hands off to BO).
Trigger: opportunity has sat at Coverage Request Sent for 48 hours.
Conditions and branches: exit if days-until-appointment is 1 or fewer (the day-before sweep owns those). Branch on preferred_contact_channel where set; otherwise text first, email second, call third.
Actions in order:
Stop and exit: form submitted, opt-out, cancellation, or stage change. Hard cap at four attempts regardless of time remaining. The ladder never loops.
Trigger: pre-check form submitted with card_front_received false, card_back_received false, or member_id_on_file false.
Conditions and branches: branch on what is missing. Images only, identifier only, or both. Each branch sends a different single-purpose ask so the patient is never told to redo the whole form.
Actions in order:
Stop and exit: the missing fields are filled, or a staff member marks the gap as resolved on the record. Never send an image request by SMS reply thread; always a form link.
Trigger: stage changes to Coverage Details Received.
Conditions and branches: branch on plan_type to route to the verifier who owns that payer group where the team is specialized; round-robin otherwise. Branch on days-until-appointment to set priority: under 72 hours is flagged urgent.
Actions in order:
Stop and exit: verification_checked_at is populated and the stage moves to a Verified stage, or the appointment is canceled.
Trigger: prior_auth_required set to yes, or stage moved to Verified - Prior Auth Required.
Conditions and branches: branch on days-until-appointment. Fourteen or more days runs the standard cadence; under fourteen days runs an accelerated cadence and notifies the lead at the start; under five days also creates a scheduling review task, because the honest answer may be to move the appointment.
Actions in order:
Stop and exit: a decision is recorded, the appointment is canceled, or the lead closes the track manually.
Trigger: stage moves to Verified - Covered, or auth-approved is applied with verification already complete.
Conditions and branches:
Actions in order:
Stop and exit: acknowledgment received, appointment canceled, or a human sets financial_discussion_completed to yes. Maximum two automated reminders.
Trigger: verification_status set to no active coverage, coverage terminated, or patient elected self-pay; or stage moved to Self-Pay Path.
Conditions and branches: branch on whether coverage was expected. A patient who believed they were covered gets a phone call first, not a text. That is a human conversation. A patient who booked as self-pay from the outset gets the direct path.
Actions in order:
Stop and exit: acknowledgment received, appointment canceled, or coverage subsequently verified (which returns the record to workflow 4).
Trigger: any of. Inbound SMS matching an opt-out keyword or opt-out intent; email unsubscribe; submission of the Communication Preferences and Consent form; or a staff member setting consent_revoked_at.
Conditions and branches: branch by channel. An SMS opt-out suppresses SMS only; an email unsubscribe suppresses email only; a full withdrawal on the consent form suppresses both and applies all-outreach-paused.
Actions in order:
Stop and exit: runs once per revocation event and ends. Re-consent requires a fresh affirmative submission of the Communication Preferences and Consent form. No workflow may re-enable a consent field on its own, and no sequence may treat silence as renewed permission.
Before launch, test workflows 1, 2, 6 and 8 end to end with a test contact, including an opt-out triggered mid-sequence, a partial form submission, and a booking made inside the two-day window. Those four paths are where this build most often leaks.
Verification stops being a check-in activity. By the time a patient reaches the window, coverage has been confirmed, authorization is either secured or known to be missing, and the patient has already seen and acknowledged what they owe. The front desk conversation becomes a greeting rather than a negotiation, and the schedule stops absorbing the five to ten minutes per patient that live verification costs.
Authorization stops being a surprise. Because the requirement is discovered when the record is verified rather than when the claim is denied, there is runway to file, follow up, and escalate. Services that genuinely cannot be authorized in time get rescheduled deliberately instead of performed and written off.
Cost conversations move to the right side of the service. A patient who acknowledged a figure in writing a week before the visit is a patient who either shows up prepared or cancels early enough for the slot to be refilled. Both outcomes are better than a balance nobody expected.
The record also becomes defensible. Every verification carries who checked it, when, against which source, and with what reference number. Every patient message carries the consent state at the time it was sent. That is the difference between believing the process is sound and being able to show it.
Treat every outbound message in this build as if it will be read by someone other than the patient, because it may be.
This section describes operational practice, not legal advice. Requirements vary by state, by payer contract, and by the practice's own risk posture. Confirm the specifics. Message content limits, consent language, retention periods, and which agreements you need with whom: with the practice's own compliance counsel before going live. To scope this build for your practice, book a call at bookings.appbo.io.
Every build on this page is something we configure, test and hand over with the SOPs your team needs to run it.
Book a call