Automation: AI-Powered Project Update Texts That Send Themselves
What This Builds
A system where you enter brief milestone updates into a Google Sheet, and it automatically generates a personalized, AI-written text message or email to the homeowner within minutes. You spend 30 seconds entering what happened; the homeowner gets a professional update without you writing it.
Prerequisites
- Comfortable using ChatGPT for daily communication tasks (Level 3)
- A Google account (for Sheets)
- A Zapier account (free tier works; paid from $20/mo for more advanced triggers)
- An OpenAI API account (platform.openai.com. costs pennies per message)
- Optional: A Twilio account for SMS texts ($1/mo + $0.0079/text) OR use Gmail for email updates
- Time to build: 1-2 hours
- Cost: Zapier ($0-20/mo), OpenAI API ($1-5/mo), Twilio optional ($1-5/mo)
The Concept
Think of this like having someone on your team whose only job is writing the "here's what happened today" messages to your clients. You tell them the facts (in 5 words); they write the professional message and send it. The difference: this system never forgets, never gets behind, and never sends a message that sounds rushed. Proactive communication is the single biggest driver of client satisfaction in remodeling, this makes it automatic.
Build It Step by Step
Part 1: Build Your Project Update Sheet in Google Sheets
Create a new Google Sheet called "Project Updates." Set up these columns:
| Column | Header | Purpose |
|---|---|---|
| A | Date | When the update is entered |
| B | Client Name | Full name for personalization |
| C | Client Email | For email delivery |
| D | Client Phone | For SMS delivery |
| E | Project Type | Kitchen / Bathroom / etc. |
| F | Update Notes | Your raw notes (what happened, what's next) |
| G | Milestone | A dropdown: Demo Complete / Rough-In Done / Drywall Complete / Tile Done / Paint Done / Final Walkthrough |
| H | Any Issues? | Brief note on any problems or delays |
| I | Send Via | Dropdown: Email or Text |
Add Column J as "Sent?" to track: This is where Zapier will write "Sent" after processing each row.
To add the dropdown:
- Click column G → Data → Data validation → List of items: paste the milestone options
Part 2: Create the Zapier Automation
- Go to zapier.com → Create Zap
- Trigger: Search Google Sheets → Event: New or Updated Spreadsheet Row
- Connect your Google account → select the Project Updates sheet
- Set trigger column: column J (Sent?). trigger fires when a new row is added with J blank
Test trigger: Add a sample row to your sheet and test in Zapier to confirm it detects the row.
Part 3: Add the OpenAI Step
Add a step → OpenAI (ChatGPT) → Send Prompt
In the prompt field, write:
You are an assistant for [Company Name], a residential remodeling company in [City, State].
Write a brief, warm project update [email/text] to a homeowner. Match the channel:
if text: max 160 characters, very casual. If email: 2-3 sentences, professional but friendly.
Client name: {{Client Name}}
Project type: {{Project Type}}
Update notes: {{Update Notes}}
Milestone reached: {{Milestone}}
Any issues to mention: {{Any Issues}}
Send via: {{Send Via}}
For texts: Start with their first name. Be brief. End with your first name.
For emails: Start with "Hi [first name]," and sign with your full name and phone number.
Do not mention pricing. Be positive but honest if there's a delay.
Use Zapier's Insert Data to reference the actual column fields from your sheet.
Set model: GPT-4o-mini (fast and cheap for this use case)
Part 4: Add the Send Step
Option A. Email via Gmail: Add a step → Gmail → Send Email
- To: {{Client Email}}
- Subject: "Project Update. {{Project Type}} Remodel"
- Body: {{OpenAI response}}
Option B. SMS via Twilio: Add a step → Twilio → Send SMS Message
- To: {{Client Phone}}
- Body: {{OpenAI response}}
- From: Your Twilio phone number
Part 5: Mark the Row as Sent
Add a final step → Google Sheets → Update Spreadsheet Row
- Update column J to "Sent" so you don't accidentally trigger it again
Part 6: Test the Full Automation
Add a test row to your sheet:
- Client Name: "Test Client"
- Client Email: your own email
- Project Type: Kitchen
- Update Notes: "Demo is complete, rough plumbing and electrical both roughed in today"
- Milestone: "Rough-In Done"
- Any Issues: "None"
- Send Via: Email
Run the Zap manually in Zapier → check your email. A professionally written update should arrive within 1-2 minutes.
Real Example: Bathroom Remodel in Progress
Setup: Google Sheets project tracker → Zapier → OpenAI → Gmail
Input (you type into the sheet, Friday afternoon):
- Client Name: "Sarah & Mike Thompson"
- Project Type: Bathroom
- Update Notes: "Tile floor complete, tub surround about 60% done, should finish Monday"
- Milestone: "Tile Done" (partial)
- Any Issues: "Tile setter running about 1 day behind original schedule but still on track for completion by Friday"
- Send Via: Email
Output (automated email, arrives within 2 minutes):
Hi Sarah and Mike,
Quick update on your bathroom project! The floor tile is completely done and looks great. The tile setter is about 60% through the tub surround, he'll wrap that up Monday. We're tracking about a day behind the original pace on the tile work, but we're still on target to complete everything by Friday.
Let me know if you have any questions!
[Your Name] [Company Name] | [Phone]
Time saved: You typed 25 words. The homeowner got a 75-word professional email. You didn't have to think about how to phrase the delay diplomatically.
What to Do When It Breaks
- Zap not triggering → Check the trigger in Zapier; make sure you're adding new rows, not editing old ones; re-test the trigger in Zapier's interface
- Update sounds wrong (too formal, too casual) → Edit the prompt in the OpenAI step; add specific style guidance like "sound like a friendly local contractor, not a corporate email"
- Texts too long (over 160 chars) → Add to the prompt: "If sending via text, keep under 140 characters" and test again
- Row getting triggered multiple times → Make sure column J "Sent?" check is working; alternatively, move processed rows to a separate "Archive" tab after sending
Variations
- Simpler version: Skip Zapier entirely. After your site visit, open ChatGPT, paste your bullet points, ask for a client email, copy-paste into Gmail. Still 10x faster than writing it yourself.
- Extended version: Add a conditional step, if the "Any Issues?" column mentions a delay, route to a different, more detailed email template that explains the delay and sets a new expected completion date
What to Do Next
- This week: Build the Google Sheet tracker for 1-2 active projects and send updates manually through ChatGPT first
- This month: Set up the full Zapier automation and run it for 30 days. count how many "how's it going?" calls you stop receiving
- Advanced: Add a field for "Expected Completion Date" and have the automation remind clients of the timeline in every update. this cuts end-of-project timeline disputes significantly
Advanced guide for remodeling estimator professionals. These techniques use multiple paid services, budget $20-50/month for the full stack.