Designing a ticket scheduling experience for a B2B SaaS product
B2B | Industry project-LIVE
Line of business: Green Industry
Team: Myself, Product Manager, Developer
Time taken: One month
Note: Owing to NDA constraints, certain screens and user journey aspects may be absent in this case study. I'd be pleased to discuss it further, separately. 🙂

Project Overview:
The primary use case of this module as briefed by the product manager was the capability to schedule job tickets by assigning them to the crew members
Business Objective

Customer Needs: Landscaping companies are increasingly looking for software solutions that can help them manage their schedules more efficiently, reduce costs, and improve customer satisfaction. According to a survey by Landscape Management, 86% of landscaping companies believe that using software has improved their overall efficiency.
Technology Adoption: According to a survey by the National Association of Landscape Professionals (NALP), 74% of landscaping companies use software for scheduling and routing
Competitors: Providing unique features, such as advanced scheduling algorithms, mobile compatibility, and integration with other business systems, can help attract customers and stay ahead of competitors.
Problem Statement

The current scheduling process relies on a whiteboard method, which is inefficient
IDENTIFYING THE ISSUE
What were the user frustrations or pain points with the existing system?
Manual Scheduling: Many landscaping companies still rely on manual methods, such as spreadsheets or paper-based systems
Complex Schedules: Landscaping projects often involve multiple tasks, crews, and equipment, making scheduling complex and challenging.
Unforeseen Changes: Weather conditions, equipment breakdowns, and last-minute client requests can disrupt schedules, requiring frequent adjustments.
Lack of Visibility: Limited visibility into job statuses and crew locations can make it difficult to track progress and make informed decisions.
Research
Research GOALS
Based on the data above I wanted to understand in detail about the scheduling process of the user persona of an Operation Manager here:
a. To understand users and their day to day job duties of this role.
b. To uncover the current scheduling process and trends.
c. To understand users by knowing what their day to day activities are and what they are expected to achieve from this module. To understand their pain points as well.
d. To learn about the scenarios and major events that obstruct them in their workflows.
e. To observe other competitor features and compare them for getting insights for opportunities.
Research FINDINGS
Basic capabilities users want to get fulfilled by this module:
a. Schedule/View jobs for by assigning a date and a crew with minimum fuss.
b. Strategise the overtime of the crew to ensure there is less/no overtime.
c. Plan to schedule job tickets prior for about quarter/half yearly basis for maintenance division-Recurring services
Pain points that currently obstruct user's workflow:
a. Immediate reschedule job tickets in case of bad weather, incomplete work.
b. Property not functional on specific days.
WHO ARE THE USERS?

We conducted in-depth interviews or surveys with these personas to gain a clear understanding of their specific challenges.
KEY TAKEAWAYS FROM RESEARCH
The operations manager wants to:
Schedule jobs by assigning crew members in advance for the Maintenance segment especially
Provision to deal with scheduled job tickets in case of bad weather
Strategise the overtime of the crew to ensure there is less/no overtime.
Design Solution
PHASE 1
Design goals:
Create a basic layout for the scheduling board that offers users a clear, wide view of their schedule.
Enable users to schedule unscheduled tickets by assigning them to a crew and a date, and allow scheduling for recurring services all at once to help users plan more effectively.
Address the flow of rescheduling a scheduled ticket.
Goal 1: Create a basic layout for the scheduling board that offers users a clear, wide view of their schedule
The Product Manager addressed some questions, while others were answered by the user:
Preferred Schedule View: Week view is optimal for managing job tickets (both scheduled and unscheduled) according to the PM.
Crew Operations: Typical crew hours are 7:00 AM to 5:00 PM with a one-hour lunch break. However, some variation might exist across companies. Weekends are primarily for non-commercial jobs.
Crew Member Details: Since job tickets are assigned to entire crews, detailed information about individual crew members is not essential.
Handling Incomplete Jobs: Users require a functionality to split a job ticket into two separate tickets if the work cannot be completed in a single visit.
design critique
Iteration2 consisted of the changes as given in the design critique:
Crew hours overtime/undertime tracking is missing.
"Work in Progress" status should be removed as real-time progress tracking is out of scope.
UX writing changes:
Change "Schedule tickets" to "Pending tickets".
Change "Crew Type" to "Route".
Consider displaying crew driving time between locations.
Add a column for US holidays.
Account for the possibility of multiple crews visiting the same property on the same day, each with different skills and services.
Discuss the necessity of a time axis view with users.
Consider removing grouping functionality due to scope constraints.

Goal 2: Enable users to QUICKLY schedule unscheduled tickets by assigning them to a crew and a date, and allow scheduling for recurring services all at once to help users plan more effectively
I focused on the term "QUICKLY" and brainstormed ways to streamline and expedite the scheduling process for greater efficiency and time savings.
design critique
Concurrent overlaps of the crew schedule in case of recurring services can be handled.an issue. How to handle this?
Goal 3: Address the flow of rescheduling a scheduled ticket.
Rescheduling a ticket is an extension of the "Scheduling a ticket" user flow. Users can either drag and drop the scheduled card or click on the card to manually change the date.

Usability Testing
We engaged with users and reviewed the design by testing the prototype with them.
Simplify view to avoid overwhelming with multiple crews.
Schedule based on crew's daily bandwidth.
Too many colors were confusing for the users and the overlap of the status colors as well
Improve findability of specific job tickets, especially for VIP customers in the Pending ticket section.
Show property address on the scheduling board instead of crew name, service name, and type.
Phase II
Goals:
Goals in this iteration was just to fix inputs from the usability session.
I grouped the job tickets according to specific crews, eliminating the need for users to input crew assignments. Now, they can simply drag and drop.
Design critique
Product manager and other stakeholder inputs:
1. This screen will go in scroll and then it will be difficult to get a consolidated view.
2. What if the time on Y-axis is split across the day and only one crew's information is visible at a glance.
3. The color palate can be rethought, currently the UI looks cluttered.
Goals:
Correct the color of cards and make it clear and
Incorporate "Property name" instead of crew name in the cards.
Avoid scrolling and show every crew in a single viewport.

Data driven design decision
Another reason was data validation, revealing that a crew can work only 8 hours a day. Thus, with an average service time of 2 hours, there can be at most 4 cards.
An ideal landscaping company typically has 6-7 crews per division, with each crew consisting of 5-6 members.
Outcome
Once we internally released the pilot version of this module, we setup the analytics of this. Through the help of this third-party application which also happens to give us behavioral insights. These insights are some improvements for our further releases of the scheduling module.
What is beyond this?
During the design tenure for this problem statement, I looked out for more ways to peed up the scheduling process. These might/might not work out well due to tech team feasibility or any red blocks. These were:
Optimize crew paths with a routing feature.
Automatically assign job tickets to crews with specific skill sets for particular services.
Learnings
Ensure a clear understanding of user needs by asking detailed questions.
Addressing edge cases in the scheduling flow is crucial, as they can impede the user's experience.
Designing for the worst-case scenario is important for comprehensive usability.
More projects

STEM Design System: Saving around 600+ design and development hours
Read case study

Designing a service booking shop for landscaping business with an 87.9% NPS
Read case study

Simplifying the consumer edtech app user experience for 80k users users
Read case study



