Automation Recipe: Auto-Log Appointment Confirmations to Google Sheets
What This Builds
Instead of manually tracking which patients confirmed, declined, or need follow-up for tomorrow's schedule, this automation logs every patient response (confirmed, declined, no reply) into a Google Sheet automatically. You check one sheet each morning to see exactly who is coming — no phone tag, no manual list-building, no sticky notes.
Prerequisites
- Your practice uses Weave for patient texting
- You have a Google account for Google Sheets
- A free or paid Zapier account (free tier may work; paid is needed for multi-step automations)
- Time needed: 1-2 hours to build and test
- Cost: Zapier free tier (limited) or $20/month for the Starter plan; Weave already in your budget
The Concept
Zapier is like an invisible assistant that watches for something to happen in one app, then does something in another — automatically, without you doing anything. In this case: "When a patient texts back to confirm their appointment in Weave → Zapier logs it in Google Sheets with their name, date, and status." You stop tracking manually. The sheet tracks itself.
Think of it like this: you've been writing notes on sticky notes every time a patient calls to confirm. This automation writes those notes for you, automatically, every time — even when you're chairside with a patient.
Build It Step by Step
Part 1: Set Up Your Google Sheet
Open Google Sheets → create a new spreadsheet
Name it: "Daily Appointment Confirmations — [PRACTICE NAME]"
Create these column headers in row 1:
- A: Patient Name
- B: Phone Number
- C: Appointment Date
- D: Status (Confirmed / Declined / No Reply)
- E: Patient Message
- F: Logged At (timestamp)
Format the header row (bold, colored) so it's easy to read at a glance
Save the sheet and note the Google Sheet URL — you'll need it in Zapier
Part 2: Create the Zapier Account
- Go to zapier.com → click Sign up → create a free account
- Once logged in, click Create Zap
- Name your Zap: "Weave Confirmation → Google Sheets Log"
Part 3: Set the Trigger (what starts the automation)
- In the Zap editor, click Trigger → search for "Weave" in the app search box
- Select Weave → for the trigger event, select New Inbound Text Message (or "New SMS received" — exact name varies)
- Connect your Weave account by clicking Sign in to Weave → authorize Zapier access
- Click Test trigger to pull in a sample message from Weave
What you should see: A sample patient text message from your Weave history, with fields like: sender name, phone number, message body, timestamp.
Troubleshooting: If Weave isn't listed in Zapier's app directory, check zapier.com/apps/weave for current integration status. As an alternative, you can use Zapier's Email trigger if Weave sends you email notifications for new messages.
Part 4: Add a Filter (only log confirmations)
- Click the + button to add a step → choose Filter
- Set the filter: "Continue only if message body contains 'yes' OR 'confirm' OR 'confirmed'"
- This prevents every "thanks" or spam text from appearing in your sheet
To also catch declines, create a second Zap with filter: "message body contains 'no' OR 'cancel' OR 'reschedule'" → logs with status "Declined."
Part 5: Set the Action (log to Google Sheets)
- Add another step → search Google Sheets → select Create Spreadsheet Row
- Connect your Google account → select your "Daily Appointment Confirmations" spreadsheet
- Map the fields:
- Patient Name → map to the Weave sender name field
- Phone Number → map to the Weave phone number field
- Status → type "Confirmed" (static text)
- Patient Message → map to the Weave message body field
- Logged At → map to the Weave timestamp or use Zapier's current time
- Click Test action → check your Google Sheet to confirm a row appeared
What you should see: A new row in your Google Sheet with the patient's name, number, "Confirmed" status, and the time.
Part 6: Publish and Monitor
- Click Publish Zap → it goes live immediately
- For the next 48 hours, check your Google Sheet against what's actually happening in Weave to confirm accuracy
- Add a second Zap for "Declined" responses following the same process
Real Example: Full Workflow
Setup: Dr. Lee's practice uses Weave to send appointment reminders the day before. Patients reply "yes" or "no" by text.
Before this automation: The front desk assistant checks the Weave inbox, manually reads each reply, and updates the schedule manually — 20-30 minutes per morning.
After this automation:
- Patient replies "Yes, I'll be there at 2pm, thank you"
- Zapier detects the message contains "Yes"
- Google Sheets gets a new row: Name: Sarah P. | Phone: (555) 234-1234 | Status: Confirmed | Message: "Yes, I'll be there..." | 8:47am
- Assistant opens Google Sheet at 8:55am and sees at a glance: 12 confirmed, 2 no-reply, 1 declined
Time saved: 20-30 minutes per morning → 3 minutes to review the sheet.
What to Do When It Breaks
- Zap runs but sheet row is empty → Check field mapping in the Action step — one of the Weave fields may have changed names. Re-map using the test data.
- Confirmations aren't triggering → The filter may be too strict. Test with: message body "contains" just "yes" (case insensitive). Some patients type "YES!" or "Yes please" — the filter catches these if set to case-insensitive.
- Weave isn't available in Zapier → Check zapier.com/apps/weave for current availability. Alternative: set Weave to email you a copy of inbound texts, and use an email trigger instead.
- Too many false positives (random texts logging as confirmations) → Tighten the filter to require "yes" as a standalone word (not just contained in any text), or add a second filter checking that the message sender is in your patient contact list.
Variations
- Simpler version: Instead of Zapier, manually export your Weave conversations weekly and paste into the sheet — less automatic but no Zapier account needed.
- Extended version: Add a third column "Appointment Date" by having Zapier look up the patient in your PMS via API (advanced — requires developer assistance or a CRM bridge tool like CRMBridge.ai).
What to Do Next
- This week: Build and test the Zap with 10 real patient responses
- This month: Extend to track incomplete treatment follow-up responses
- Advanced: Connect to a patient satisfaction follow-up — after the appointment date passes, auto-send a Google Form review request
Advanced guide for dental assistant professionals. Zapier, Weave, and Google Sheets interfaces may change. Check current documentation for updated navigation.