I'm building a booking system for administrators who may not be very comfortable with computers. Every appointment needs to be linked to a customer, so I'm trying to decide how the creation flow should work. Should the user start by selecting an existing customer, with an option to create one if there's no match? I'm concerned that sending them from the appointment form to a separate customer form and then back again will feel awkward or cause them to lose their progress. What layout or step-by-step process would make this as simple and reliable as possible?
2 Answers
Start the appointment flow with a customer selector that supports searching existing customers. Put a clearly labeled “Create new customer” option beside the search results, and open the customer form inline or in a small modal. Once the customer is saved, return them to the appointment form with that customer already selected. This avoids unnecessary page changes and keeps the whole process feeling like one task.
You can also split the process into clear steps: choose or create the customer, then enter the appointment details, then review and save. If someone has to create a customer midway through, preserve the appointment information they already entered so an interruption doesn’t wipe it out. Save progress between steps where practical, and validate on the server when the final submission is made.
Before creating a new customer, check for likely duplicates using details such as phone number or email address. That becomes especially important when multiple administrators are adding customers.

A modal works well here because it prevents the back-and-forth navigation problem, as long as the customer form stays short and easy to understand.