How Valant's appointment workflows went from one-way SMS reminders to a fully defined, grooming-ready self-service system — scoped, prototyped, and handed off ready to build.
The Situation
SMS appointment reminders were going out — but they were one-way. Patients who wanted to confirm and cancel only had one option: call the office. Staff were fielding inbound calls for tasks the system could automate. No-shows were happening on appointments where patients had every intention of canceling but no easy way to do it.
At the same time, the patient portal had no self-service appointment management at all. Patients could view their appointments but couldn't act on them. The gap between what patients expected from a modern healthcare experience and what the platform offered was widening.
The assignment: Own the full product definition for two-way SMS reply handling confirm and cancel; portal cancel, request new and reschedule appointment workflows; practice-side configuration, staff-facing queue management, and TCPA compliance — across every appointment type in the system.
The Challenge
This was not a “add a reply button to a text message” problem. The complexity surfaced fast in discovery and only grew from there.
The Approach
With scope spanning SMS infrastructure, portal UX, staff workflows, billing logic, and compliance, the approach required clear sequencing — Practice Settings had to be defined first because every patient-facing capability was gated behind it.
Workflow mapping across all appointment types, SMS variable and template audit, cancellation code rule analysis, TCPA research, Appointment Communication and Reminder Rules scoping; developer-facing workflow presentation documenting end-to-end system behavior across all appointment types and channels
Full epic definition across 13+ features; sequenced development chain from configuration layer through patient-facing workflows through staff queue; identified inbound SMS handler as critical path dependency
Grooming-ready user stories and acceptance criteria across Practice Settings, SMS reply processing, template library, Appointments Queue, Queue History, patient portal cancel/reschedule/request new, group/recurring logic, and TCPA compliance
Prototype completed across all major flows; full epic packaged for development handoff with open technical dependencies flagged and scoped for resolution
The configuration layer was designed to give practices full control before any patient-facing feature went live:
Portal Appointment Actions Toggle
Enable/disable self-service at the practice level
Placeholder Categories
Configurable per request type (new request vs. reschedule), visible instantly on the scheduler
Cancellation Code Rules
Within-hours and over-hours primary code logic, synced across all cancel channels and all appointment types
SMS Eligibility Rules
Service-code-level suppression, invalid number handling, carrier block logging
The patient workflows were defined for clarity and low friction:
The staff surface was designed around a single queue, not scattered notifications:
Appointments Queue
All patient-initiated events surfaced in one place — new requests, reschedule requests, cancels, confirms, SMS opt-outs
Queue Modals
Editable, with primary code override capability and full logging
Queue History
Permanent, immutable audit trail of every staff action on every row
Remove vs. Delete
Informational rows removable without a Delete permission; actionable rows require deliberate staff action
What Was Delivered
This project was fully scoped, prototyped, and handed off before development began. What was delivered:
The foundation was built. The system was ready to be built on top of it.
Reflection
“The hardest part of a workflow this wide is holding the logic consistently across every edge case. A group recurring appointment with a cancellation inside the cutoff window, where the patient has previously opted out of SMS and back in — that scenario has to behave correctly, not just the simple one. The only way to get there is writing the acceptance criteria before you write the stories, not after.”
This project reinforced that in a product with many appointment types, many cancel channels, and many configuration options, the acceptance criteria are the product. The features are only as reliable as the conditions that define them. Every AC written in grooming is a scenario that doesn't become a bug in QA.