Docs
Appointment Reminders

Appointment Reminders

How FrontdeQ places outbound reminder calls the day before appointments.

Appointment reminders are an early outbound workflow in FrontdeQ. The system can call clients the day before their Square appointment with appointment context injected into the call.

Current Behavior

Once daily, the reminder cron:

  1. Finds active Square locations for each salon with an active receptionist.
  2. Queries Square for appointments starting tomorrow in each location's local day.
  3. Looks up the booked customer's phone number.
  4. Skips bookings without a phone number or with a phone number that is not roughly E.164 format.
  5. Places one outbound Retell call with reminder-specific dynamic variables, using the salon's dedicated reminder agent when one is provisioned, or its main receptionist agent otherwise.

Each reminder is claimed in a persistent reminder_sent ledger (unique per salon, booking, and send date) before the call is placed, so retried or overlapping cron runs never call the same customer twice for the same day's reminder.

What the Caller Hears

The outbound call uses your main receptionist voice with appointment context attached, such as the customer's first name, appointment time, service, stylist, and Square booking ID.

Example:

Agent:    Hi Maria, this is Luxe Salon calling to confirm your color
          appointment tomorrow at 2 PM with Sofia. Can you still make it?
Caller:   Yes, I'll be there.
Agent:    Great, thank you. We'll see you tomorrow.

Outcomes

Confirmed. If the caller confirms, the booking stays unchanged.

Needs a change. If the caller needs to reschedule, cancel, or ask a more complex question, the main receptionist flow handles it as a normal call: checking Square when possible, transferring when available, or taking a message for staff.

Unanswered. Retell's voicemail handling leaves the configured voicemail message when voicemail is detected. There is no automatic retry later in the day.

Not Yet Self-Service

The following controls are not yet exposed as self-service dashboard settings:

  • Per-client reminder opt-outs.
  • A salon-level appointment-reminder toggle.
  • Choosing a dedicated reminder-only agent from the dashboard (one can be provisioned per salon today, but not self-service).
  • A dedicated outbound/reminder filter in the call log.

If you need reminders disabled or filtered for a salon, contact support or disable the reminder cron while the self-service controls are being built.

Call Volume and Cost

Reminder calls count against your monthly call allowance the same way inbound calls do. A salon with 50 appointments per week can use about 200 reminder calls per month before counting inbound calls.

Troubleshooting

Reminders aren't firing. Check that the salon has an active receptionist, Square is connected, tomorrow's appointments have customer phone numbers, and the reminder cron is enabled with the correct CRON_SECRET.

Reminders are firing at the wrong time. The appointment lookup uses each Square location's timezone. If the timezone is wrong in Square, update the location there first.

Duplicate reminder calls happened. This should not occur: each reminder is claimed in the persistent reminder_sent ledger (unique per salon, booking, and send date) before dialing, so retried or overlapping cron runs skip already-claimed bookings. If you see a genuine duplicate, check whether the booking was recreated with a new Square booking ID.