Unified Telehealth Portal: Twilio Video + Stripe Billing + Self-Scheduling
How to architect a unified white-labeled telehealth portal that consolidates self-scheduling, HIPAA-compliant video sessions via Twilio, and automated Stripe billing into one patient experience.
Why Most Telehealth Implementations Are Bad UX
Mental health and behavioral health practices typically end up with three or four separate SaaS tools:
- Calendly for scheduling
- Doxy.me or Zoom for video
- Square or a separate billing platform for payment
- A different EHR for clinical documentation
Each tool has its own login, branding, and patient friction point. Patients drop out at every handoff. The fix is a unified portal architected around the actual care delivery workflow.
The Architecture Components
1. Self-Scheduling Engine The scheduling layer must understand provider availability rules at a granularity off-the-shelf calendar tools can't handle:
- Per-provider weekly availability templates
- Buffer times between sessions
- Different durations for intake vs follow-up appointments
- Insurance acceptance rules (provider X accepts Aetna and BCBS only)
- New patient vs established patient gating
A patient enters their insurance and visit type; the engine returns only valid slots. The same scheduling logic principles apply to broader multi-location clinic management.
2. HIPAA-Compliant Video via Twilio Twilio Programmable Video signs a HIPAA BAA and supports end-to-end encrypted WebRTC sessions. The integration:
- Generates time-limited access tokens server-side at session start
- Embeds the video in the patient portal — no app download required
- Records sessions only when explicitly consented to (with patient signature)
- Stores recordings (if any) in HIPAA-eligible Twilio Recording Storage
Twilio's BAA covers the video transmission. The application layer handles consent, recording state, and the HIPAA audit log of who joined which session when. See the HIPAA BAA guide for the broader vendor chain.
3. Stripe-Powered Automated Billing Stripe Card-on-File enables automated billing at session completion:
- Patient saves payment method during intake (Stripe Elements form, no card data ever touches your servers)
- Session completes → triggers Stripe charge against saved payment method
- Successful charge → posts to patient ledger, sends receipt
- Failed charge → triggers retry per Stripe's Smart Retries, falls back to staff worklist if final retry fails
Stripe handles PCI compliance. The application stores only the Stripe customer ID and the saved payment method's last 4 digits. See the MealCircle Stripe billing build log for webhook reliability patterns.
4. Secure Patient-Provider Messaging Asynchronous messaging between sessions reduces no-show rates and improves continuity:
- End-to-end TLS for all message transport
- Server-side encryption at rest (KMS-backed)
- 60-day retention by default, configurable per practice
- Audit log of every message read/write event
The White-Label Layer
The portal must support per-practice branding without forking the codebase:
- Practice configuration stored in database (logo URL, color palette, contact details, custom messaging)
- React frontend reads configuration at runtime and themes the UI accordingly
- Subdomain routing (
practice-name.portal.example.com) with SSL via wildcard certificate
This is the same multi-tenant pattern as CCM/PCM platforms.
What's NOT in This Architecture
Honest scoping note: the patterns above describe the front-of-house patient experience. Clinical documentation typically lives in an EHR (TherapyNotes, SimplePractice for behavioral health) — the portal integrates with the EHR via middleware but doesn't replace clinical charting.
The Custom Practice Management service builds unified telehealth portals for behavioral health and mental health practices.
Related Service
Custom Practice Management
Deep-dive into our engineering approach, capabilities, and technical specifications.
Written by Sheharyar Amin
Founder & Lead Engineer, Opexia