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.