Quick overview
This workflow runs every 3 hours to read appointments from Google Sheets and send confirmation, reminder, win-back, and review-request messages via Gmail and/or Twilio SMS, then updates the sheet and notifies the owner with an email and optional Slack digest.
How it works
- Runs every 3 hours (or on manual trigger) to process the latest appointment rows.
- Reads appointments from a Google Sheets “Appointments” sheet and evaluates each row’s status and appointment date in the configured timezone.
- Builds personalized email and/or SMS content from configurable templates, validates email/phone fields, and skips rows that can’t be contacted.
- Sends messages via Gmail for email and Twilio for SMS based on each row’s Channel setting (or the default channel configuration).
- Updates the Google Sheets row with the new status and LastContacted date to prevent duplicate sends.
- If a send fails after retries, emails the owner with the appointment details and error information.
- Creates a run summary and sends the digest to the owner by email and (optionally) posts it to a Slack channel.
Setup
- Connect your Google Sheets OAuth2 credential and set the Google Sheet ID in both Google Sheets nodes.
- Connect a Gmail OAuth2 credential for sending customer messages, owner failure alerts, and the owner digest.
- If you send SMS, add a Twilio credential and set your Twilio “from” number in the Configuration.
- If you want Slack notifications, add a Slack credential and set the target channel ID in the Configuration.
- Create a sheet named “Appointments” with columns like AppointmentID (unique), Name, Email, Phone, AppointmentDate, Status, Channel, and LastContacted, and update the Configuration values (timezone, links, reminder days, and templates) before activating.