HIPAA-Compliant · Twilio · PostgreSQL · Node.js

Prescription Refills
via SMS.
No Phone Tag.

Patient texts REFILL → OTP verified in 90 seconds → nurse approves in one click → pharmacy gets a one-time secure link. The entire workflow, automated.

OTP Verified
Expiring Pharmacy Links
PostgreSQL Backed
Twilio Powered

Your Staff Spends
Hours on Refills.

Phone tag, voicemails, manual faxing, no-shows — the average clinic spends 3–4 hours daily on medication refill administration. Refill Relay eliminates all of it.

Before: Patient calls, leaves voicemail Staff calls back, plays phone tag, manually enters refill into EHR, faxes pharmacy. Average: 12 minutes per refill.
After: Patient texts REFILL OTP verification, digital form, nurse approval, auto-sent pharmacy link. Average: 90 seconds per refill, zero staff phone calls.

Five Steps.
Zero Phone Calls.

Every step of the refill workflow is automated, verified, and HIPAA-compliant — from the patient's first text to the pharmacy's secure link.

1

Patient Texts REFILL

Patient sends "REFILL" to your clinic's Twilio number or taps a link in an appointment reminder SMS.

Twilio Webhook
2

OTP Verification

System sends a one-time password via Twilio. Patient enters it to verify identity before any PHI is accessed.

HIPAA · bcrypt
3

Digital Refill Form

Patient selects medication, confirms dosage, reports any side effects, flags controlled-substance status, and selects pharmacy.

CSRF Protected
4

Nurse Approves

Request lands in the nurse dashboard with full patient context. One click to approve, deny, flag, or request a visit.

PostgreSQL · EJS
5

Pharmacy Gets Secure Link

Pharmacy receives a one-time, expiring link with prescription details. Expires on open. No persistent PHI exposure.

UUID · Rate Limited

Built on a Real Production Stack

Refill Relay isn't a mockup. It's a production Node.js application with queued job processing, monitoring, and every security layer healthcare demands.

SMS-Driven Workflows

Inbound webhook from Twilio triggers the entire refill pipeline. Outbound OTPs, approval notifications, and appointment reminders all delivered via Twilio SMS. BullMQ + Redis queues handle retry logic at scale.

Twilio BullMQ Redis

HIPAA-Grade Security

OTP authentication, bcrypt password hashing, CSRF tokens on every form, Helmet.js security headers, express-rate-limit, XSS sanitization, and one-time expiring links for pharmacy access.

CSRF Helmet bcrypt

Nurse & Doctor Dashboard

A full-featured approval interface showing all refill requests by status (Pending, Approved, Denied, Needs Visit, Flagged). Each card surfaces patient name, phone, medication, dosage, current med list, medical history, side-effect flags, and pharmacy preference — everything needed to approve in one view.

Express + EJS Session Auth PostgreSQL

Controlled Substance Flagging

The system automatically detects controlled substance requests and applies a distinct warning badge. These requests require additional review and cannot be auto-approved — keeping you compliant with DEA prescribing rules and your state's controlled substance regulations.

Auto-Flagged Audit Trail

Email Notifications via Paubox

Clinic staff receive email confirmations for every approval, denial, and flagged request. Transactional emails powered by Paubox for reliable delivery.

Paubox

Cron-Scheduled Reminders

node-cron schedules appointment and refill reminders automatically. Configure intervals, messages, and targeting rules — all running server-side on your Node.js ≥18 instance.

node-cron Twilio

Sentry Monitoring

Full error tracking and performance monitoring with Sentry + @sentry/tracing. Every exception in the refill pipeline is captured, contextualized, and alerted in real time.

Sentry Winston Logs

Everything Your
Nurse Needs, At a Glance

The dashboard is the command center. Built with Express and server-rendered EJS templates backed by PostgreSQL, it loads fast and gives your clinical team full context on every request.

1
Tabbed Request QueuePending, Approved, Denied, Needs Visit, Flagged — each with a live count badge.
2
Full Patient ContextCurrent meds, medical history, pharmacy preference, and reported side effects — on one card.
3
One-Click ActionsApprove, Deny, Flag, or Request Visit — each action triggers the appropriate SMS and email notifications.
4
Session-Secured Accessconnect-pg-simple session store, timeout warnings, and secure logout keep PHI protected.

Questions Clinics
Actually Ask

Every answer here reflects how the system actually works — built on Node.js, Twilio, PostgreSQL, and Redis.

Patients send "REFILL" to your clinic's Twilio number. The system catches the inbound webhook, sends an OTP back via Twilio, and presents a CSRF-protected web form where patients select their medication, confirm dosage, report side effects, and choose their pharmacy. The completed request is stored in PostgreSQL and surfaces on the nurse dashboard (Node.js + Express + EJS). On approval, a one-time UUID-based pharmacy link is generated and sent — it expires after a single open.
Yes. The codebase implements OTP authentication, bcrypt password hashing, CSRF token protection on every form (csurf middleware), Helmet.js security headers, express-rate-limit on all endpoints, XSS sanitization (xss library), and one-time expiring pharmacy links using UUID v4. Sessions are stored in PostgreSQL via connect-pg-simple with configurable TTLs. Sentry monitors for runtime errors. Winston captures structured logs. Patient records are never exposed in URLs or public endpoints.
The system automatically detects controlled substances during the medication selection step and applies a "Controlled Substance — Review Required" flag. On the nurse dashboard, these requests display a distinct red warning badge and cannot be fast-tracked. The nurse must explicitly review all patient context before any approval action becomes available.
Primary data store: PostgreSQL (via the pg driver). Session management: connect-pg-simple. Job queuing and caching: Redis with ioredis + BullMQ for reliable background job processing. Lightweight local storage: better-sqlite3. The server runs on Node.js ≥18 with Express. Deployable with PM2 (pm2-start.js included). Production-check and preflight scripts are built in.
node-cron runs scheduled jobs server-side. Reminder SMS messages are dispatched through Twilio at configurable intervals. For high-volume delivery, BullMQ queues outbound messages in Redis so retries and failures are handled gracefully. Transactional email confirmations use Paubox.
When a nurse approves a refill, the system generates a UUID v4 token and creates a time-limited record in PostgreSQL linking that token to the prescription. The pharmacy receives this token as a URL. When the pharmacy opens the link, the token is immediately invalidated. Any subsequent attempt to load the same link returns an expired/invalid response. This ensures prescription details are never persistently accessible via a URL.
Each request card displays: patient full name and phone number, requested medication and dosage, current medication list, medical history summary, self-reported side effects, pharmacy name and location, and any controlled substance or urgency flags. Tabs organize requests by status: Pending, Approved, Denied, Needs Visit, and Flagged — each with a live count badge. Actions available are: Approve, Deny, Flag, and Request Visit.
The Starter plan at $199/month includes up to 500 active patients, SMS and email reminders, the nurse dashboard with full approval workflow, basic analytics, email support, and one user account. It's designed for small practices wanting to eliminate phone tag without a large upfront commitment.

Transparent Pricing.
No Surprises.

Includes the full refill automation stack — SMS, OTP, nurse dashboard, secure pharmacy links, and monitoring.

Starter

Perfect for small practices

$199 /month
  • Up to 500 patients
  • SMS + Email reminders
  • Full nurse dashboard
  • OTP verification
  • Pharmacy link generation
  • Email support
  • 1 user account

Enterprise

For large organizations

Custom
  • Unlimited patients
  • All communication channels
  • Custom reporting
  • Dedicated success manager
  • Unlimited users
  • Custom integrations
  • SLA guarantee

Ready to Kill Phone Tag
at Your Clinic?

Join clinics already running HIPAA-compliant refill automation on Refill Relay.