Designing an appointment service for your eCommerce application requires a comprehensive understanding of your business, close cross-team collaboration, and thorough technical architecture. In my last post about appointments, I introduced a couple considerations that would help frame your thinking for the technical design for such a service, including the importance of the race condition, as well as identifying whether your appointment is with a purchase, or is the purchase itself. With this deliberation in mind, this post will go through the key decisions necessary to develop a proper technical design for your appointment service.
Rarely would you want to create the entire appointment application yourself. Given the number of well-supported appointment softwares available, as well as the general similarity between use cases, there should be no need for you to spend the time and resources required to build an entire appointment application from scratch. With that in mind, here are the key questions to ask when evaluating which software will best serve your business’ needs:
Now that you’ve chosen your appointment software, the first step should be determining the operations required to develop the desired customer experience. Once you have a comprehensive understanding of the software’s APIs, bring your technical and UX teams together to figure out the best way to align technical capabilities with the planned appointment flow.
Consider who is interacting with the appointment software and the applications that will be interacting with it. Will the application used by the store managers and the brick-and-mortar stores be needing the same operations that are exposed to customers on the website? How do they differ? Identifying how each system will use the appointment software will help build a roadmap for your internal teams’ development with more accurate estimates, as well as avoid duplication of work.
For example, say you want to display the available appointment times for an entire week; what are the necessary parameters I need to pass as a part of my request for this appointment data? Ideally, there’s an option to pass a date range as two parameters in my GET request to retrieve a list of available times in that range. However, what if the API only supports a GET request with a single day parameter? Either a revision is needed to the customer experience to better match the capabilities of the API, or you need to get creative in your call to the appointment software, such as creating multiple threads to make 7 synchronous GET requests for the multiple days for which you are requesting data.
As discussed in my earlier article, the way to address the potential of two customers reserving the same appointment will be heavily influenced by your use case and business requirements.
If your business case has serious repercussions for overbooking, you’ll want to be sure to design a technical solution that prevents this scenario from ever occurring. Here are a couple of ways you can handle this:
While there is no one correct way to design your appointment service for you eCommerce application, there are ways to best set yourself and your customers up for the most optimal appointment-placing experience. Close collaboration between business, technical, and user experience teams, designing with the appointment application limitations in mind, and developing with your business’s appointment operations and race conditions in mind will ensure you’re on the best path possible to avoid headaches in the future.