Automated Appointment Reminders
I designed a feature for
CareMessage's patient engagement software
that enables clinic staff to automatically send appointment reminders to patients via text messaging.
Project Overview
CareMessage, a B2B SaaS nonprofit which aims to leverage technology to help safety net organizations fulfill the essential needs of underserved populations.
Design an automated workflow for clinic staff to remind patients of their upcoming appointments.
My Role
Lead Product Designer
6 months
Clinic staff spend hours manually calling patients to remind them to attend their upcoming appointments. If this workflow were automated, staff would save a significant amount of time.
I designed a feature that automatically sends appointment reminder text messages to patients after users import a list of upcoming appointments. Users can customize the content and scheduling of each reminder and save these workflows as templates for easy reuse.
Design Process
To understand how to best design an automated appointment reminder workflow, I first needed to understand clinic staff's messaging needs.

Each user had their own preferred workflow for sending out appointment reminder messages. Some users wanted to send one simple message reminding patients to attend, while others wanted to send up to 3 reminders and directly ask patients a Yes or No question to determine if they were attending. Some users wanted to remind patients of their appointment the day before; others wanted to remind patients weeks in advance.

All users wanted their messages to be as specific and useful as possible, which meant including appointment-specific information such as the appointment date and time.

I learned that I needed to design a workflow that was highly customizable to ensure each user could determine the message count, content, and scheduling that resonated best with their patient population.

After the messages were sent, users wanted to identify patients who RSVP'd "Not Attending" to help those patients reschedule their appointments. Users also wanted to identify atypical responses so they could follow up with those patients. The follow-up happened outside of the app, so users also needed a way to export this data.

This user research helped me identify the user needs that guided the solution design. The main functionalities users wanted were:

Importing Appointment Data
•  Upload a file with upcoming appointments to automatically trigger reminder messages
•  Assign appointments to a pre-created messaging template (use the same template for most appointments)

Sending Appointment Reminders
•  No Response reminders (Your appointment is tomorrow)
•  RSVP reminders (Will you be attending?)
•  1-3 reminders per appointment
•  Customizable scheduling (x days before appointment)
•  Message personalization

Monitoring Response
•  Tracking RSVP responses
•  Rescheduling or cancelling appointments based on patient responses (goal is to reduce no-show rate)

Downloading Response Data
•  Export patient responses for follow-up outside of the app

Breaking down the main functionalities helped influence the feature's information architecture, which then defined the different interfaces that would make up the complete feature.

The appointment reminder process followed this structure:

1. Users create appointment reminder templates.
2. Users upload appointment data and select the template to use for each appointment's reminder messages.
3. Reminders are automatically sent based on the template's timing.
4. Users monitor patient responses and download data.

Each interface I developed was in response to a specific user need identified in user research. The following sections outline the different user needs and the corresponding interface(s) that solved that need.
Creating Custom Reminder Templates
To allow for more streamlined appointment reminder creation, users create appointment reminder templates that specify the content and scheduling of each reminder message. Then, users import their appointment data and match each appointment to a reminder template.
Flexible Workflows
User Need
Match appointment reminders to their preferred workflows.
Allow users to customize the number of reminders that will be sent for each appointment, the message content, and the message scheduling.
Users have the option of sending up to 3 different reminder messages. To simplify the user's workflow and reduce the opportunity for error, users can only create a second reminder if they already created a first reminder.
Users can choose between a "No Response Reminder," which is a single message, or a "RSVP Reminder," which allows for an initial message as well as two follow-up messages sent to patients who respond "Yes" or "No." Each reminder can be specified to be sent immediately or x days/weeks before an appointment, so users can choose the timing that works best for them.
Clear, specific error messaging helps users understand and easily resolve any errors preventing form submission.
Personalized Messages
User Need
Communicate appointment-specific information within each reminder.
Allow users to add tags to messages to communicate important appointment-specific information with patients, such as the appointment date, time, location, and provider.
Within the appointment reminder creation form, users can type @ to open a dropdown list of possible tags to include in their message. This ensures appointment reminders are clear and useful to patients. Tags are populated with data from the appointment file users upload.
Previewing Inputs
User Need
See an example of how a message with tags would look when sent to a patient.
Add a "View Message Preview" button to the message creation form that shows users a preview of how the message would look with fake data inputted into the tags. This helps set expectations and builds user confidence.
The message preview modal helps users understand how their final message will look. This is especially useful for tags like "Date" "Month" and "Time" that can be a little difficult to conceptualize. Tags are bold and blue for clarity.
Importing Appointment Data
Appointment reminders are created when users upload a file with their appointment data and specify the appointment template they want to use.

I ensured this process was clear to users by providing straightforward instructions and clarifying requirements at each stage of the upload process.
Clarifying File Requirements
User Need
Know what fields my appointment file needs to contain.
Users upload their appointment data through the file upload process. On the file upload page, if a user selects the action "Import Appointments," they are shown text explaining the workflow and listing the required fields.
To ensure users know which fields they need in the file they upload, the file requirements are shown after users select their desired action.
Reducing Cognitive Load
User Need
Know which fields I need to map in my file.
List the required fields that users need to map their column headings to; after a field is matched, show visual feedback with a green checkmark.
During the matching stage of the file upload process, users must match their column headings to the appropriate CareMessage field. Rather than requiring users to memorize file requirements, I listed the requirements on this page and provided clear feedback when those requirements were met. This significantly reduces a user's cognitive load (information they need to remember) and reduces the chance for user error.
Showing Relevant Actions
User Need
Know what to do after I complete the file upload process.
Use the final page of the upload process to set user expectations and inform them of the next step.
After completing the upload process, the system needs time to process the data and create the appointments. To help set expectations, the final screen informs users that they will receive an email when their appointments have been created.
Monitoring Patient Responses
After appointments have been uploaded and matched to a reminder template, the reminder messages are automatically sent to patients. Users can then monitor patient responses as they come in.
Optimizing Interfaces for User Goals
User Need
See the most important patient response information at a glance.
List the most recent patient responses in a split screen layout with the ability to see additional details and take appropriate action, all on the same page.
Without navigating away from the page, users can monitor recent patient responses, see the key details for each appointment, and take follow-up actions if needed. This makes it is easy for users to accomplish their goals while reducing their cognitive load and number of clicks.
Reminder Status at a Glance
User Need
Know the status of an appointment's reminder messages.
Use icons to designate the scheduling and delivery status of a reminder.
I used simple colored icons with symbols to help users quickly identify the status of an appointment reminder. This allowed users to easily know how many reminders had been sent, if they were successfully delivered, and if there were more scheduled to go out.
Showing Relevant Actions
User Need
1. Edit or delete an appointment before reminders have been sent.
2. Cancel or reschedule an appointment after reminders have been sent.
Update the key action buttons shown for each appointment based on the status of the reminders.
Before appointment reminders have been sent, the main user actions are deleting or editing the appointment, so those buttons are shown on the appointment summary screen. Once reminders have been sent, those actions are no longer viable and are replaced with cancelling or rescheduling the appointment. This ensures the buttons users see are always the most useful and relevant to their workflow.
Classifying Unusual Responses
User Need
Know whether an unusual patient response requires follow-up.
Allow users to manually update a patient's RSVP to "Going" or "Not Going" to signal that their response does not require additional action.
Common patient responses (Yes, Y, Si, No, N, etc.) are automatically mapped to "Going" or "Not Going," but if a response is less clear, users can manually map the response to identify messages that do not require follow-up. To ensure transparency for accounts with multiple users, an activity log entry is generated to show the staff member who made the update.
Exporting Response Data
Some patient responses require follow-up outside of CareMessage or need to be imported into a user's health management tool.
User Need
Export a list of appointment reminder responses that require additional actions or follow-up outside of the app.
Solution v1
Allow users to apply filters and download a filtered list.
After the initial solution was implemented, user behavior indicated that users were applying the same filters every time at a regular cadence (ex. weekly lists of patients who RSVP'd "No"). Rather than forcing users to complete this repetitive action, I explored ways this could be automated.

User Need
Automatically export a list of appointment reminder responses that require additional actions or follow-up outside of the app.
Solution v2
Allow users to create an appointment report to be automatically sent to them on a recurring basis and choose which information to include in the report.
Users can customize the frequency of a report, what information to include in it, and who the report will be sent to. This saves time from manually filtering and downloading if users are applying the same filters every time.
Result & Next Steps
In the first month of release, users messaged 20,000 patients through this feature. Over time, clinic staff increasingly relied on this feature. Three years after the feature was first released, users messaged an average of 350,000 patients per month (1750% increase).

This growth in utilization led me to work on new enhancements that made the feature more scalable.

As utilization increased, it became more cumbersome for clinic staff to manually find the patient responses that required additional actions. To make this process easier, I designed a workflow to automatically flag and compile these messages for users to review.

If clinic staff needed to reschedule an appointment, this typically meant they would individually call patients to set a new appointment date. To further save users time, I designed a way to automate this interaction. Now, when users click "Reschedule," patients receive a text message that guides them through the appointment rescheduling process.
© Lisa Dzera 2021