Automate reminders, notifications, and follow-ups for your bookings
Workflows allow you to automate communications and actions based on booking events. Send email reminders, SMS notifications, WhatsApp messages, or trigger custom actions at specific times or events.
// From constants.ts:3enum WorkflowTriggerEvents { BEFORE_EVENT // X time before event starts AFTER_EVENT // X time after event ends NEW_EVENT // Immediately when booked EVENT_CANCELLED // When booking is cancelled RESCHEDULE_EVENT // When booking is rescheduled BOOKING_REQUESTED // When approval is requested BOOKING_REJECTED // When booking is rejected BOOKING_PAID // When payment is completed FORM_SUBMITTED // When routing form is submitted BOOKING_NO_SHOW_UPDATED // When no-show status changes}
// From constants.ts:57[ "event_name", // Event type title "event_date", // Event date "event_time", // Event start time "event_end_time", // Event end time "timezone", // User's timezone "location", // Meeting location "organizer_name", // Host name "attendee_name", // Attendee full name "attendee_first_name", // Attendee first name "attendee_last_name", // Attendee last name "attendee_email", // Attendee email "additional_notes", // Booking notes "meeting_url", // Video meeting URL "cancel_url", // Cancellation link "reschedule_url", // Reschedule link "rating_url", // Rating/feedback link "no_show_url", // Mark as no-show link "attendee_timezone", // Attendee's timezone]
{ emailSubject: "Reminder: {event_name} in 24 hours", reminderBody: ` Hi {attendee_first_name}, This is a reminder that you have "{event_name}" scheduled for: {event_date} at {event_time} ({timezone}) Location: {location} Meeting URL: {meeting_url} Need to reschedule? {reschedule_url} See you soon! {organizer_name} `}
Variables are automatically replaced with actual values when the workflow executes.
// From schema.prisma:1556model Workflow { id Int @id name String userId Int? // Owner (if personal) teamId Int? // Owner (if team) trigger WorkflowTriggerEvents time Int? // Time value timeUnit TimeUnit? // DAY, HOUR, MINUTE steps WorkflowStep[] // Activation activeOn WorkflowsOnEventTypes[] // Event types using this activeOnTeams WorkflowsOnTeams[] // Teams using this activeOnRoutingForms WorkflowsOnRoutingForms[] // Routing forms using this isActiveOnAll Boolean @default(false) // Apply to all event types}model WorkflowStep { id Int @id stepNumber Int // Order of execution workflowId Int action WorkflowActions sendTo String? // Custom recipient emailSubject String? reminderBody String? template WorkflowTemplates // Phone/SMS specific numberRequired Boolean? numberVerificationPending Boolean @default(true) sender String? // SMS sender ID // Options includeCalendarEvent Boolean @default(false) autoTranslateEnabled Boolean @default(false) sourceLocale String?}