Appointments

Confirmations and reminders, sent at the right moment.

Confirm a booking when it's made, remind the customer before the visit, and handle the "can we move it?" replies in the same Salesforce inbox.

  • No credit card required
  • Listed on Salesforce AgentExchange
  • Then $120 per user per year
  • Runs on your own Twilio account

How do you send appointment reminders from Salesforce? With ConnectSMS, a Flow calls Send Text Message when an appointment is booked and sets Send At to the reminder time, up to 35 days ahead. If the appointment moves, the Flow cancels the pending reminder and schedules a new one. Customers' replies land in the shared inbox, where staff answer from the same number.

Animation: on Sarah Chen's Contact record, Alex Kim writes "Hi Sarah, a reminder of your visit today at 10:30 AM. Reply here if you need to reschedule.", opens the Send options and chooses Schedule for later, then changes the date from today to Oct 13, 2026 and picks the 9:00 AM slot. After Schedule, the reminder appears on the record as Scheduled, with "Sends Tue, Oct 13 at 9:00 AM EDT" and a Cancel sending link.

Recreated from the ConnectSMS interface with sample data.

The day-to-day workflow

Book, confirm, remind, and adjust.

Front-desk staff confirm and reschedule by hand when they're talking to the customer. Everything that happens on a schedule is automated.

Booking confirmation

Sent right after the booking is saved, from the appointments line.

  1. Appointment booked
  2. Flow calls Send Text Message
  3. Confirmation delivered
  4. Replies go to the inbox

Reminder with Send At

The same Flow schedules the reminder. It waits in ConnectSMS as Scheduled and is checked again before it goes.

  1. Appointment saved
  2. Send At = start minus one day
  3. Scheduled on the record
  4. Sent in the first 15-minute slot

Reschedule or cancel

When the start time changes or the appointment is canceled, the pending reminder is canceled too.

  1. Start time changes
  2. Cancel Scheduled Text Message
  3. New reminder scheduled
  4. Old one shows Canceled

Recurring outreach

No Flow needed: an outreach runs every day against a report of the next day's bookings.

  1. Report: tomorrow's appointments
  2. Outreach runs every day
  3. Every recipient checked at send
  4. Replies in the inbox

Reminders from Flow

Schedule the reminder when the appointment is saved.

Set Send At on the Send Text Message action and ConnectSMS holds the text until then, up to 35 days ahead.

Prefer to wait in Flow instead? A scheduled path works too, and has no 35-day limit. The guide compares both.

  • The reminder shows on the record as Scheduled, with the time it sends
  • Access and opt-outs are checked again when it's due, so an opt-out in between stops it
  • An idempotency key built from the record ID and start time means a re-save never schedules a second reminder
  • Save the Message ID so a later change can cancel the pending text

Step-by-step: appointment reminders with Flow

FlowDay-before reminder
// Record-triggered Flow on Appointment__c, run after the record is saved
Send Text Message (ConnectSMS)
  Record ID        {!$Record.Id}
  Template ID      {!ReminderTemplateId}
  Send At          {!ReminderAt}
  Idempotency Key  {!ReminderKey}
  Business Number  blank = the automation default number

// Formula resources
ReminderAt   = {!$Record.Start__c} - 1
ReminderKey  = {!$Record.Id} & '-reminder-' & TEXT({!$Record.Start__c})

// Then store the output "Message ID" in Reminder_Message_Id__c

Recurring outreach

Daily or weekly reminders without building a Flow.

A campaign manager creates an outreach to a Salesforce report, such as Appointments tomorrow, and schedules it to run every day at a set time in a chosen time zone.

  • Each run uses the records the report returns at that moment
  • Reports need a record ID column and can return up to 2,000 rows
  • People who opted out and duplicate or invalid numbers are left out
  • Pause the schedule for a holiday, or cancel it when it's no longer needed

How outreach works

New outreach
  1. Details
  2. Audience
  3. Message
  4. 4Schedule
  5. 5Review & Send

Step 4 of 5

Schedule

Choose when and how often the outreach sends.

How often One timeEvery dayEvery weekEvery month
Days of the weekMonday
*Time10:00 AM
*Time zone(GMT-04:00) Eastern Daylight Time (America/New_York)

Every Monday at 10:00 AM Eastern Daylight Time (America/New_York).

Turn on this schedule

Recreated from the ConnectSMS interface with sample data.

Features that matter

What appointment teams use most.

Example messages

Appointment texts that answer the obvious questions.

When, where, and what to do if it doesn't work. These examples use a custom Appointment__c object with a Contact__c lookup and a text field holding the local time.

Contact · sent by staff

Booking confirmation

As written

Hi {!Contact.FirstName|there}, you're booked for Tue, Oct 13 at 10:30 AM at our Midtown office. Reply here if you need to change it.

What the customer receives

Hi Sarah, you're booked for Tue, Oct 13 at 10:30 AM at our Midtown office. Reply here if you need to change it.

111 characters · 1 segment · GSM-7

Appointment__c · Flow with Send At

Day-before reminder

As written

Hi {!Appointment__c.Contact__r.FirstName|there}, a reminder of your appointment on {!Appointment__c.Time_Label__c}. Reply here if you need to reschedule.

What the customer receives

Hi Sarah, a reminder of your appointment on Tue, Oct 13 at 10:30 AM. Reply here if you need to reschedule.

106 characters · 1 segment · GSM-7

Time_Label__c is a text field your booking process fills with the local time, so the text reads the same whoever the Flow runs as.

Appointment__c · canceled

Cancellation notice

As written

Hi {!Appointment__c.Contact__r.FirstName|there}, your appointment on {!Appointment__c.Time_Label__c} is canceled. Reply here to book a new time.

What the customer receives

Hi Sarah, your appointment on Tue, Oct 13 at 10:30 AM is canceled. Reply here to book a new time.

97 characters · 1 segment · GSM-7

Quick reply · any record

Reschedule reply

As written

Thanks for letting us know. What day and time would work better? {!$User.FirstName}, {!$Organization.Name}

What the customer receives

Thanks for letting us know. What day and time would work better? Maya, WorkBridge Solutions

91 characters · 1 segment · GSM-7

Ask customers to reply in their own words. CANCEL is an opt-out keyword and YES opts people back in, so Reply CANCEL to cancel would stop every text to that number. ConnectSMS records other replies in the inbox for your team; it doesn't act on them.

Setup notes

What your admin sets up for appointments.

An appointments line, a place to store the reminder's Message ID, and a running user that's allowed to send.

Permission sets

People and automation need different access.

  • ConnectSMS User for front-desk staff who confirm and reschedule
  • ConnectSMS Automation for the user your reminder Flow runs as
  • ConnectSMS Campaign Manager for recurring reminder outreach, with Send access to the number or a number available to automation

Numbers

Use the number customers should reply to.

  • An appointments line with Can send for the front desk, as their Default if they mostly text about bookings
  • Mark it Available to automation so flows can schedule reminders from it
  • Replies to reminders come back to this line

Records

Where the appointment data lives.

  • A record with a Date/Time start and a lookup to the Contact
  • To text the appointment record itself, add your object in Recipients with a phone field one lookup away, such as Contact__r.MobilePhone
  • A text field to hold the reminder's Message ID

Policies

Set once in ConnectSMS Setup.

  • Quiet hours hold automated reminders and outreach that fall inside them, never staff replies
  • Set the Business time zone that quiet hours use
  • Opt-outs are checked when a reminder is scheduled and again before it's sent

FAQ

Appointment texting: common questions

How far ahead can a reminder be scheduled?

Up to 35 days. A Flow can pass any Send At time within that window, and the text goes out in the first 15-minute slot at or after it. For appointments booked further ahead, use a scheduled path in your Flow, a daily scheduled Flow, or a recurring outreach that picks up the next day's bookings.

What happens to a reminder when the appointment moves?

Your Flow calls Cancel Scheduled Text Message with the Message ID it saved when it scheduled the reminder, then schedules a new one for the new time. Cancellation works until the message is handed to Twilio; a text that has already been sent can't be recalled.

Can customers reply CANCEL to cancel an appointment?

Don't ask them to. CANCEL is one of Twilio's standard opt-out keywords, so a customer who replies with just that word is opted out of texts from your business numbers. Ask customers to reply in their own words instead; the reply lands in the shared inbox, where your team handles the change.

Do quiet hours affect reminders?

Automated reminders and outreach, yes. If your admin has turned on quiet hours, a reminder that falls inside them is held until they end, in your business time zone. Texts that staff send one-to-one, and replies, are never delayed.

Which time zone are reminders sent in?

A Flow's Send At is an exact moment, so the text goes out at that moment wherever the customer is. When staff schedule a text from a record, the time is in their Salesforce time zone, which is shown next to the time. Outreach has its own time zone setting.

Keep exploring

Try it now: every feature, free for 14 days

Put every customer text where your team already works.

Install ConnectSMS from AgentExchange, connect your Twilio account and give your team the numbers they should text from.

  • No credit card required
  • Listed on Salesforce AgentExchange
  • Then $120 per user per year
  • Runs on your own Twilio account

ConnectSMS is published by WorkBridge Solutions. Twilio bills your Twilio account directly for messaging, including during the trial.