Appointment Reminder — YAML Workflow
Automated appointment reminders for service businesses. Sends two reminders per appointment — 24 hours before (with confirm/cancel/reschedule) and 1 hour before (final reminder). Works via SMS, WhatsApp, or any channel.
The Problem
No-shows cost service businesses thousands per year. A plumber drives 30 minutes to a workflow, nobody's home. A salon holds a chair for an hour, client doesn't show. A consultant blocks their afternoon, meeting never happens.
Dedicated scheduling software (Calendly, Acuity, ServiceTitan) costs $30-300/month. Most small businesses either send reminders manually (inconsistently) or don't send them at all.
How It Works
- You maintain an appointments CSV (or connect to your scheduling database)
- A workflow runs every hour and checks for upcoming appointments
- 24 hours before: Customer gets a friendly reminder with confirm/cancel/reschedule option
- 1 hour before: Customer gets a final "see you soon" reminder
- Customer replies are processed by the AI assistant
Setup
1. Create the Appointments CSV
Create INTOUCH_HOME/data/appointments.csv:
customer,phone,service,datetime,reminded_24h,reminded_1h
Jane Smith,+15551234567,AC Repair,2026-04-15 10:00,no,no
Bob Johnson,+15559876543,Plumbing Inspection,2026-04-15 14:30,no,no
Carol Davis,+15555551212,Annual HVAC Service,2026-04-16 09:00,no,no
Columns:
- customer: Customer name
- phone: Phone number (for SMS/WhatsApp)
- service: Service type or description
- datetime: Appointment date and time (YYYY-MM-DD HH:MM)
- reminded_24h: Set to "yes" after 24h reminder sent
- reminded_1h: Set to "yes" after 1h reminder sent
2. Configure SMS or WhatsApp
Enable outbound messaging:
- SMS: System > Server Settings > SMS (Twilio, Telnyx, or Plivo)
- WhatsApp: System > Server Settings > Messaging > WhatsApp
For customer replies (confirm/cancel), enable inbound on the same channel.
3. Create an Anthropic Connection
The workflow uses Claude Haiku to generate natural, personalized reminder messages:
- Connections > Add Connection
- Type: Anthropic
- Name: use your existing Anthropic connection name (update the workflow YAML if different)
4. Schedule the Workflow
Create a Day schedule with intraday frequency:
- Every: 1 day
- Intraday: Every 1 hour
- Link to the appointment-reminder workflow
5. Handle Replies
When customers reply CONFIRM, CANCEL, or RESCHEDULE:
- Their reply comes through inbound SMS/WhatsApp
- The AI assistant processes it naturally
- Create a
customer-followupskill or custom skill to handle the response and update the CSV/database
Example Messages
24-hour reminder:
Hi Jane! This is a reminder about your AC Repair appointment
tomorrow, Wednesday April 15 at 10:00 AM. Reply CONFIRM,
CANCEL, or RESCHEDULE. See you soon!
1-hour reminder:
Hi Jane! Your AC Repair appointment is at 10:00 AM today.
See you in an hour!
Customization
Change Reminder Windows
Edit the Python script:
# Change 24-hour window (currently 23-25 hours before)
if 23 <= hours_until <= 25 and not reminded_24h:
# Change 1-hour window (currently 0.5-1.5 hours before)
elif 0.5 <= hours_until <= 1.5 and not reminded_1h:
Add a 48-Hour Reminder
Add another tier for appointments booked far in advance.
Use a Database Instead of CSV
Replace the Python CSV task with a sql task:
- name: check-appointments
tool: sql
connection: business-db
properties:
operation: export
statement: |
SELECT customer, phone, service, appointment_time,
TIMESTAMPDIFF(HOUR, NOW(), appointment_time) as hours_until
FROM appointments
WHERE appointment_time > NOW()
AND appointment_time < DATE_ADD(NOW(), INTERVAL 25 HOUR)
AND reminded_24h = 0
Change Message Tone
Edit the systemPrompt in the reminder tasks. Examples:
- Professional: "You are a professional office assistant..."
- Casual: "You are a friendly neighborhood service rep..."
- Minimal: "Generate a bare-minimum reminder with just time and service..."
Multi-Language
Add to the system prompt: "Generate the message in the same language as the customer's name suggests, or in [Spanish/English/etc.]"
Cost
- Claude Haiku: ~$0.001 per reminder (cheapest model, text only)
- 20 appointments/day × 2 reminders × 30 days = 1,200 messages/month = ~$1.20/month
- Ollama: Free
Compare to Calendly ($12-16/user/month) or ServiceTitan ($300+/month).
Impact
Industry data on no-show rates: - Without reminders: 20-30% no-show rate - With SMS reminders: 5-10% no-show rate
For a plumber averaging $200/visit with 10 appointments/day: - 3 no-shows/day × $200 × 20 work days = $12,000/month in lost revenue - With reminders: 1 no-show/day × $200 × 20 = $4,000/month - $8,000/month saved for $1.20/month in AI costs