Start with a reliable completion event
Use the booking or operational system that knows an appointment actually happened. Send a stable external appointment ID, customer contact details, and the completion time so the feedback request can be connected to the right interaction.
Avoid triggering on a booking being created. Cancellations, no-shows, and reschedules can otherwise produce feedback requests for an experience that did not take place.