Turning Back-and-Forth into Flow: Building a Rescheduling Experience That Frees Users and Devs
Lessonpal’s rescheduling flow was broken — endless back-and-forth, confused time slots, and a support team drowning in manual requests. Frustrated by the friction users faced and tired of systems that treated scheduling like a transaction instead of a human experience, I took ownership of the problem from research to design to implementation, crafting a guided, automated rescheduling feature that reduced developer intervention and made lesson changes effortless.
ROLE
Product Designer
User Researcher
Product Strategist
TEAM
Product Manager
2 Developers
1 Content Strategist
DURATION
1.5 months
Aug - Sep 2023
SKILLS
User Research
Interviews
Interface Design
Process Optimisation
Usability Testing
Impact
83/150 weekly requests automated
83/150 weekly requests automated
83/150 weekly requests automated
55% user satisfaction increase
55% user satisfaction increase
55% user satisfaction increase
23% decrease in cancellations
23% decrease in cancellations
23% decrease in cancellations
Context
Lessonpal connects students and instructors across time zones, but the rescheduling experience was a constant pain point. Every lesson change triggered back-and-forth messages, support tickets, and sometimes developer intervention, creating frustration on all sides. Students struggled to find available slots, instructors faced inconsistent scheduling, and the support team spent hours handling repetitive requests instead of solving meaningful problems.
Context
Lessonpal connects students and instructors across time zones, but the rescheduling experience was a constant pain point. Every lesson change triggered back-and-forth messages, support tickets, and sometimes developer intervention, creating frustration on all sides. Students struggled to find available slots, instructors faced inconsistent scheduling, and the support team spent hours handling repetitive requests instead of solving meaningful problems.
Context
Lessonpal connects students and instructors across time zones, but the rescheduling experience was a constant pain point. Every lesson change triggered back-and-forth messages, support tickets, and sometimes developer intervention, creating frustration on all sides. Students struggled to find available slots, instructors faced inconsistent scheduling, and the support team spent hours handling repetitive requests instead of solving meaningful problems.
Support teams overwhelmed by manual rescheduling requests
Support teams overwhelmed by manual rescheduling requests
Support teams overwhelmed by manual rescheduling requests
Students and instructors confused about available time slots
Students and instructors confused about available time slots
Students and instructors confused about available time slots
Endless messaging causing delays, missed lessons, and cancellations
Endless messaging causing delays, missed lessons, and cancellations
Endless messaging causing delays, missed lessons, and cancellations



Initial brainstorming
This initial brainstorming phase brought together user behavior, operational strain, technical constraints, and journey friction into one shared view. By surfacing cross-functional questions early, we exposed hidden dependencies and misalignments before jumping into solutions. The exercise clarified that rescheduling wasn’t just a UI problem, but a system-wide coordination challenge.
Objectives
Before exploring solutions, I defined clear objectives aligned with user relief, operational efficiency, and long-term platform trust. The goal wasn’t just to make rescheduling possible, but to remove negotiation, reduce manual intervention, and create a dependable system users could rely on. These objectives ensured the solution balanced user experience, business needs, and technical feasibility from the start.
Objectives
Before exploring solutions, I defined clear objectives aligned with user relief, operational efficiency, and long-term platform trust. The goal wasn’t just to make rescheduling possible, but to remove negotiation, reduce manual intervention, and create a dependable system users could rely on. These objectives ensured the solution balanced user experience, business needs, and technical feasibility from the start.
Objectives
Before exploring solutions, I defined clear objectives aligned with user relief, operational efficiency, and long-term platform trust. The goal wasn’t just to make rescheduling possible, but to remove negotiation, reduce manual intervention, and create a dependable system users could rely on. These objectives ensured the solution balanced user experience, business needs, and technical feasibility from the start.
Objectives
Before exploring solutions, I defined clear objectives aligned with user relief, operational efficiency, and long-term platform trust. The goal wasn’t just to make rescheduling possible, but to remove negotiation, reduce manual intervention, and create a dependable system users could rely on. These objectives ensured the solution balanced user experience, business needs, and technical feasibility from the start.
Eliminate manual rescheduling dependency
Reduce the need for support and developer intervention by automating the rescheduling workflow.
Eliminate manual rescheduling dependency
Reduce the need for support and developer intervention by automating the rescheduling workflow.
Eliminate manual rescheduling dependency
Reduce the need for support and developer intervention by automating the rescheduling workflow.
Eliminate manual rescheduling dependency
Reduce the need for support and developer intervention by automating the rescheduling workflow.
Simplify decision-making for users
Replace open-ended negotiation with guided, mutually available time suggestions.
Simplify decision-making for users
Replace open-ended negotiation with guided, mutually available time suggestions.
Simplify decision-making for users
Replace open-ended negotiation with guided, mutually available time suggestions.
Simplify decision-making for users
Replace open-ended negotiation with guided, mutually available time suggestions.
Increase scheduling reliability
Minimize missed lessons, confusion, and last-minute cancellations.
Increase scheduling reliability
Minimize missed lessons, confusion, and last-minute cancellations.
Increase scheduling reliability
Minimize missed lessons, confusion, and last-minute cancellations.
Increase scheduling reliability
Minimize missed lessons, confusion, and last-minute cancellations.
Strengthen trust in the platform
Ensure rescheduling feels fast, final, and frictionless across time zones.
Strengthen trust in the platform
Ensure rescheduling feels fast, final, and frictionless across time zones.
Strengthen trust in the platform
Ensure rescheduling feels fast, final, and frictionless across time zones.
Strengthen trust in the platform
Ensure rescheduling feels fast, final, and frictionless across time zones.
To measure whether the feature delivered meaningful impact, I defined the following success metrics:
% of Reschedules Automated
Target: 80%+ handled without support involvement.
% of Reschedules Automated
Target: 80%+ handled without support involvement.
% of Reschedules Automated
Target: 80%+ handled without support involvement.
% of Reschedules Automated
Target: 80%+ handled without support involvement.
Rescheduling Completion Time
Reduce average resolution time from hours to under 2 minutes.
Rescheduling Completion Time
Reduce average resolution time from hours to under 2 minutes.
Rescheduling Completion Time
Reduce average resolution time from hours to under 2 minutes.
Rescheduling Completion Time
Reduce average resolution time from hours to under 2 minutes.
Cancellation Rate Post-Reschedule
Cancellation Rate Post-Reschedule
Cancellation Rate Post-Reschedule
Cancellation Rate Post-Reschedule
Cancellation Rate Post-Reschedule
Cancellation Rate Post-Reschedule
Cancellation Rate Post-Reschedule
Cancellation Rate Post-Reschedule
Explorations
With objectives defined, I moved into structured exploration focused on defining scope and mapping the end-to-end journey. The goal was to prevent solution drift and ensure the feature addressed real constraints, not imagined ones. Every design direction was evaluated against user behavior, system logic, and operational impact.
Explorations
With objectives defined, I moved into structured exploration focused on defining scope and mapping the end-to-end journey. The goal was to prevent solution drift and ensure the feature addressed real constraints, not imagined ones. Every design direction was evaluated against user behavior, system logic, and operational impact.
Explorations
With objectives defined, I moved into structured exploration focused on defining scope and mapping the end-to-end journey. The goal was to prevent solution drift and ensure the feature addressed real constraints, not imagined ones. Every design direction was evaluated against user behavior, system logic, and operational impact.
Explorations
With objectives defined, I moved into structured exploration focused on defining scope and mapping the end-to-end journey. The goal was to prevent solution drift and ensure the feature addressed real constraints, not imagined ones. Every design direction was evaluated against user behavior, system logic, and operational impact.



Scope
The scope focused specifically on self-serve lesson rescheduling within policy limits, eliminating the need for support or developer intervention in standard cases. Edge cases and exceptions were intentionally separated to maintain system clarity and feasibility.



User Journey
I mapped the complete rescheduling journey from trigger to confirmation, identifying friction points, drop-offs, and moments of hesitation. The journey emphasized guided slot selection, real-time availability, and clear confirmation to eliminate negotiation loops.
High Fidelity Designs
With the flows validated and constraints mapped, I translated the solution into high-fidelity designs to test clarity, confidence, and interaction precision. The focus was not visual polish alone, but ensuring the interface reduced cognitive load, communicated availability instantly, and made rescheduling feel definitive rather than negotiable. Every component was designed to reinforce speed, reliability, and trust.
High Fidelity Designs
With the flows validated and constraints mapped, I translated the solution into high-fidelity designs to test clarity, confidence, and interaction precision. The focus was not visual polish alone, but ensuring the interface reduced cognitive load, communicated availability instantly, and made rescheduling feel definitive rather than negotiable. Every component was designed to reinforce speed, reliability, and trust.
High Fidelity Designs
With the flows validated and constraints mapped, I translated the solution into high-fidelity designs to test clarity, confidence, and interaction precision. The focus was not visual polish alone, but ensuring the interface reduced cognitive load, communicated availability instantly, and made rescheduling feel definitive rather than negotiable. Every component was designed to reinforce speed, reliability, and trust.
High Fidelity Designs
With the flows validated and constraints mapped, I translated the solution into high-fidelity designs to test clarity, confidence, and interaction precision. The focus was not visual polish alone, but ensuring the interface reduced cognitive load, communicated availability instantly, and made rescheduling feel definitive rather than negotiable. Every component was designed to reinforce speed, reliability, and trust.






Feedback based revisions
Early feedback revealed hesitation around unilateral rescheduling, particularly when consent wasn’t explicitly discussed. To reduce friction without introducing heavy backend logic, we added a contextual alert prompting users to message the other party before confirming the new time. This lightweight intervention reinforced shared accountability while requiring minimal developer effort, preserving both trust and implementation speed.
Feedback based revisions
Early feedback revealed hesitation around unilateral rescheduling, particularly when consent wasn’t explicitly discussed. To reduce friction without introducing heavy backend logic, we added a contextual alert prompting users to message the other party before confirming the new time. This lightweight intervention reinforced shared accountability while requiring minimal developer effort, preserving both trust and implementation speed.
Feedback based revisions
Early feedback revealed hesitation around unilateral rescheduling, particularly when consent wasn’t explicitly discussed. To reduce friction without introducing heavy backend logic, we added a contextual alert prompting users to message the other party before confirming the new time. This lightweight intervention reinforced shared accountability while requiring minimal developer effort, preserving both trust and implementation speed.
Feedback based revisions
Early feedback revealed hesitation around unilateral rescheduling, particularly when consent wasn’t explicitly discussed. To reduce friction without introducing heavy backend logic, we added a contextual alert prompting users to message the other party before confirming the new time. This lightweight intervention reinforced shared accountability while requiring minimal developer effort, preserving both trust and implementation speed.



Impact
By redesigning rescheduling as a guided, system-driven experience rather than a manual negotiation, we removed operational bottlenecks at their source. The focus was on automation with clarity, ensuring that user relief and business efficiency improved simultaneously. The results validated that solving everyday friction at a systems level creates measurable, compounding impact.
Impact
By redesigning rescheduling as a guided, system-driven experience rather than a manual negotiation, we removed operational bottlenecks at their source. The focus was on automation with clarity, ensuring that user relief and business efficiency improved simultaneously. The results validated that solving everyday friction at a systems level creates measurable, compounding impact.
Impact
By redesigning rescheduling as a guided, system-driven experience rather than a manual negotiation, we removed operational bottlenecks at their source. The focus was on automation with clarity, ensuring that user relief and business efficiency improved simultaneously. The results validated that solving everyday friction at a systems level creates measurable, compounding impact.
Impact
By redesigning rescheduling as a guided, system-driven experience rather than a manual negotiation, we removed operational bottlenecks at their source. The focus was on automation with clarity, ensuring that user relief and business efficiency improved simultaneously. The results validated that solving everyday friction at a systems level creates measurable, compounding impact.
83 weekly requests automated without human intervention
83 weekly requests automated without human intervention
83 weekly requests automated without human intervention
83 weekly requests automated without human intervention
55% jump in satisfaction with scheduling flexibility
55% jump in satisfaction with scheduling flexibility
55% jump in satisfaction with scheduling flexibility
55% jump in satisfaction with scheduling flexibility
Resolution time dropped from hours to under 2 minutes
Resolution time dropped from hours to under 2 minutes
Resolution time dropped from hours to under 2 minutes
Resolution time dropped from hours to under 2 minutes
23% fewer cancellations, thanks to guided rescheduling
23% fewer cancellations, thanks to guided rescheduling
23% fewer cancellations, thanks to guided rescheduling
23% fewer cancellations, thanks to guided rescheduling
Support team workload cut nearly in half, freeing time for real issues
Support team workload cut nearly in half, freeing time for real issues
Support team workload cut nearly in half, freeing time for real issues
Support team workload cut nearly in half, freeing time for real issues
Reflection
Small Fixes, Massive Impact
What looked like a minor workflow tweak turned out to be a systemic shift in user experience and operations. By removing a single friction loop, we reduced support load, cancellations, and user frustration at once. The project reinforced that small, well-targeted interventions often unlock disproportionate value.
Small Fixes, Massive Impact
What looked like a minor workflow tweak turned out to be a systemic shift in user experience and operations. By removing a single friction loop, we reduced support load, cancellations, and user frustration at once. The project reinforced that small, well-targeted interventions often unlock disproportionate value.
Small Fixes, Massive Impact
What looked like a minor workflow tweak turned out to be a systemic shift in user experience and operations. By removing a single friction loop, we reduced support load, cancellations, and user frustration at once. The project reinforced that small, well-targeted interventions often unlock disproportionate value.
Small Fixes, Massive Impact
What looked like a minor workflow tweak turned out to be a systemic shift in user experience and operations. By removing a single friction loop, we reduced support load, cancellations, and user frustration at once. The project reinforced that small, well-targeted interventions often unlock disproportionate value.
Designing for When Things Break
The real complexity wasn’t in the happy path, but in moments when availability failed, time zones conflicted, or users changed plans last-minute. Anticipating breakdowns shaped the feature more than ideal scenarios ever could. Designing for failure first ensured the experience felt stable, even when circumstances weren’t.
Designing for When Things Break
The real complexity wasn’t in the happy path, but in moments when availability failed, time zones conflicted, or users changed plans last-minute. Anticipating breakdowns shaped the feature more than ideal scenarios ever could. Designing for failure first ensured the experience felt stable, even when circumstances weren’t.
Designing for When Things Break
The real complexity wasn’t in the happy path, but in moments when availability failed, time zones conflicted, or users changed plans last-minute. Anticipating breakdowns shaped the feature more than ideal scenarios ever could. Designing for failure first ensured the experience felt stable, even when circumstances weren’t.
Designing for When Things Break
The real complexity wasn’t in the happy path, but in moments when availability failed, time zones conflicted, or users changed plans last-minute. Anticipating breakdowns shaped the feature more than ideal scenarios ever could. Designing for failure first ensured the experience felt stable, even when circumstances weren’t.
Let’s make your next release unmistakably better.
You’re a lean team with big ambitions, early users to impress, fires to put out, and zero time for a slow designer. I ship fast, and make your product feel alive, lovable, usable, and make it shareable.
You’re a lean team with big ambitions, early users to impress, fires to put out, and zero time for a slow designer. I ship fast, and make your product feel alive, lovable, usable, and make it shareable.
You’re a lean team with big ambitions, early users to impress, fires to put out, and zero time for a slow designer. I ship fast, and make your product feel alive, lovable, usable, and make it shareable.