Booking, consent, link delivery, join reminders and follow-up for remote visits, so nobody is troubleshooting a video link at appointment time.
Bring your stack to a call and we will scope it against how your business actually runs.
Book a callA telehealth visit has more moving parts than an in-person one, and almost all of them sit outside the clinical encounter. The patient has to be booked into a slot that is actually licensed and staffed for remote care. They have to sign a telehealth-specific consent that an in-person patient never needs. They have to receive a join link that works on the device they will actually use. They have to be in a private place at the right minute. And when the visit ends there is usually a prescription, a referral, or a follow-up booking that has to reach them without a hallway handoff to make it happen.
When any one of those steps is manual, the visit degrades into a support call. The provider sits in an empty virtual room while a coordinator calls the patient to walk them through a link they never opened. Ten minutes evaporate, the session runs late, and the rest of the remote block slides with it. Multiply that across a day of virtual visits and the practice is paying clinical time to do technical support. The money leak is visible in the schedule: remote no-show rates in practices that deliver links by hand run noticeably worse than their in-person rates, and every no-show is a slot that could not be backfilled because nobody knew it was going to be empty until the start time passed.
The second leak is on the back end. Remote visits generate follow-up actions that nobody is physically present to catch. An in-person patient walks past the front desk and gets booked for the next visit; a remote patient hangs up and disappears. Continuity depends on someone remembering, and in a busy week that memory is the weakest link in the practice. What this build does is make the entire non-clinical wrapper around a remote visit automatic: consent captured before the link is issued, the link delivered on a schedule tuned to how people actually behave, a technical readiness check that surfaces problems the day before rather than at the start time, and a post-visit sequence that closes the loop whether or not anyone remembers to.
One pipeline, Telehealth Visits, with one opportunity per scheduled remote visit.
BO runs the logistics and the technology hand-holding. That is a genuinely useful job here, because most pre-visit friction is technical rather than clinical.
Seven workflows. Every one checks consent and suppression state before its first send, and every one exits on cancellation or human takeover. Time references are relative to the scheduled visit start, in the patient's time zone.
Trigger: Telehealth Eligibility Screener submitted.
Conditions and branches:
Actions in order:
Stop and exit: appointment booked, patient opts out, or the record is closed. Maximum two abandonment nudges. This is not a sales sequence.
Trigger: telehealth appointment booked on any telehealth calendar.
Conditions and branches: branch on telehealth_consent_signed. Already signed and the consent version is current: skip to workflow 3. Signed against an older telehealth_consent_version: re-send the current version, because a signature against superseded text is not a signature against the text you are now relying on.
Actions in order:
Stop and exit: consent signed with the current version, appointment canceled, or the visit is converted to in-person. The gate is hard: no signed consent, no link.
Trigger: stage moves to Consent Signed, or a scheduled check at 48 hours before the visit, whichever comes later.
Conditions and branches: branch on whether the patient has a passed tech check on a previous visit within the practice's reuse window. If so, send the short confirmation variant instead of the full check. Branch on telehealth_modality: audio-only visits get a phone readiness confirmation rather than a camera test.
Actions in order:
Stop and exit: check passed, coordinator resolves it manually, or visit canceled.
Trigger: 24 hours before the scheduled start, for records at Ready to Join or Consent Signed.
Conditions and branches:
Actions in order:
Stop and exit: visit_started_at stamped, cancellation, or opt-out mid-cascade (which switches to the email-only branch rather than going silent).
Trigger: scheduled start time reached with visit_started_at empty.
Conditions and branches: branch on join_link_opened_at. Opened but not connected suggests a technical failure and routes to Failed to Connect. Never opened suggests the patient is absent and routes toward No-Show. The distinction drives everything downstream.
Actions in order:
Stop and exit: visit starts, or the record reaches a closed stage. Never send more than one patient message within the grace window. A patient dealing with a broken connection does not need a second text.
Trigger: stage moves to Completed, or visit_ended_at is stamped.
Conditions and branches:
Actions in order:
Stop and exit: follow-up booked, patient opts out, or the continuity window closes. Maximum three continuity touches.
Trigger: opt-out keyword or opt-out intent on SMS; email unsubscribe; withdrawal submitted on the consent form; or a staff member setting consent_revoked_at.
Conditions and branches: this build has two distinct revocations and they must not be collapsed into one.
Actions in order:
Stop and exit: runs once per revocation. Re-consent requires a fresh affirmative submission against the current consent version. No workflow re-enables a consent field on its own.
Before launch, test the consent gate by trying to issue a link without a signature, test the no-join alert with a deliberately missed test appointment, test an opt-out fired between the 12-hour and 2-hour reminders, and test an out-of-state answer on the location form. Those four are where this build fails in practice.
The non-clinical wrapper around a remote visit stops consuming clinical time. Consent is signed before a link exists, device problems surface two days out rather than at the start minute, and the provider opens a session where the patient is already waiting. The remote block runs on time, which means the practice can schedule it as densely as an in-person block instead of padding it for chaos.
Consent becomes a record rather than an assumption. Every remote visit carries a signed telehealth consent with a timestamp, the signer's relationship to the patient, and the version of the consent text they actually read. When the practice updates that text, the history stays intact rather than being retroactively overwritten.
No-shows become visible before they happen. join_link_opened_at turns a silent empty room into an early signal: a patient who has not opened the link two hours out is a patient to call, and a slot you can still do something about. Equally important, the build distinguishes a no-show from a failed connection, because one needs a different conversation than the other and lumping them together hides a technology problem inside an attendance statistic.
Continuity stops depending on the hallway. A remote patient who needs to be seen again gets a booking link on a schedule, and the pipeline shows who has not taken it.
This is operational guidance, not legal advice. Telehealth rules vary substantially by state and change often. Licensure, consent requirements, modality restrictions, documentation, and what may be said in a text message are all state-dependent. Confirm the specifics for every state you serve with the practice's own compliance counsel before going live, and re-confirm when you add a state or a provider. 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