Automation: AI-Powered Project Update Texts That Send Themselves

Tools:Google Sheets + Zapier + OpenAI + Twilio (or Gmail)
Time to build:1-2 hours
Difficulty:Intermediate-Advanced
Prerequisites:Comfortable with ChatGPT for writing. see Level 3 guide: "Set Up ChatGPT as Your Dedicated Estimating Assistant"

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:

ColumnHeaderPurpose
ADateWhen the update is entered
BClient NameFull name for personalization
CClient EmailFor email delivery
DClient PhoneFor SMS delivery
EProject TypeKitchen / Bathroom / etc.
FUpdate NotesYour raw notes (what happened, what's next)
GMilestoneA dropdown: Demo Complete / Rough-In Done / Drywall Complete / Tile Done / Paint Done / Final Walkthrough
HAny Issues?Brief note on any problems or delays
ISend ViaDropdown: 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

  1. Go to zapier.com → Create Zap
  2. Trigger: Search Google Sheets → Event: New or Updated Spreadsheet Row
  3. Connect your Google account → select the Project Updates sheet
  4. 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:

Copy and paste this
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 → GmailSend Email

  • To: {{Client Email}}
  • Subject: "Project Update. {{Project Type}} Remodel"
  • Body: {{OpenAI response}}

Option B. SMS via Twilio: Add a step → TwilioSend 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 SheetsUpdate 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):

Prompt

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.