See llms.txt for all machine-readable content.

Back to Templates

Track solar project milestones with Google Sheets, Gmail and DeepSeek

Homeowners sit in the dark about their solar install for weeks because nobody has time to send updates. This workflow takes project and milestone webhooks, works out where each project sits on the install ladder, has an AI agent write the homeowner update in plain language, and emails it. Stalled projects get caught every morning instead of sitting silent for a month.

Last updated: November 2026.

Quick Overview

A project webhook logs a new residential solar job to a Projects tab in Google Sheets and has an AI agent on DeepSeek write the welcome email that points the homeowner at the site survey. A second webhook takes milestone updates, matches the project id, maps the milestone onto a ten step catalog, and works out the new stage, the days spent in the previous stage and the progress. Another agent writes the homeowner update, the milestone is logged, the stage is advanced and the update goes out through Gmail. Problem milestones are flagged to the office, and a daily sweep lists projects with no update in ten days or sends an all clear.

How it works

  1. Receives a new project on a POST webhook (solar/project) with homeowner name, email, address, system size and contract date.
  2. Validates it: a name, a usable email and a property address are required. A rejected project is not written, and the office gets a Gmail notice with the values that arrived.
  3. Appends the project with a generated id at the contract signed stage, then asks an AI agent for a welcome email that confirms the project id and system size and names the site survey as the next step.
  4. Parses the welcome email, sends it to the homeowner through Gmail, and falls back to a plain welcome when the agent reply is not valid JSON.
  5. Receives a milestone on a second webhook (solar/milestone), normalises the label, and routes a request without a project id or milestone to the office by email.
  6. Maps the milestone onto the ten step catalog, from contract signed through site survey, design approval, permits, utility interconnection, install scheduled and complete, inspection passed and permission to operate.
  7. Works out the new stage, the days spent in the previous stage and the progress out of ten, then asks an AI agent for a 60 to 110 word homeowner update naming the milestone and the next step.
  8. Logs the milestone, updates the stage in the Projects tab and emails the update. A milestone containing reject, denied, delay, fail, issue, hold, reschedule or cancel, or one that moves the project backwards, also emails the office.
  9. Every day at 07:00 the stalled sweep lists projects with no update in 10 or more days and emails the office that list or an all clear.

Setup

  1. Connect Google Sheets and point the nodes at a spreadsheet with a Projects tab (project_id, homeowner_name, homeowner_email, address, system_size_kw, contract_date, current_stage, last_update, notes) and a MilestoneLog tab.
  2. Connect Gmail for the homeowner welcome, the homeowner updates and the four office notices.
  3. Add an OpenAI credential on the welcome and update model nodes with a DeepSeek model selected.
  4. Replace the placeholder office address in the notice nodes with your own inbox.
  5. Give the office the solar/project webhook URL and the crew the solar/milestone webhook URL.
  6. Adjust the 10 day stall threshold in Compute Stalled and the 07:00 sweep time, and add your own stages to the catalog in Compute Milestone Update.

Quick Answers

Which milestones does the workflow understand?
Ten, from contract signed through site survey, design approval, permits, utility interconnection, install scheduled and complete, inspection passed and permission to operate.

How is a homeowner update written?
An agent receives the project, the new milestone, the next step, the progress and the days spent in the previous stage, and returns a subject and a 60 to 110 word body that never invents details.

What counts as a problem milestone?
One containing reject, denied, delay, fail, issue, hold, reschedule or cancel, or one that moves the project backwards in the catalog. Those raise an extra office email alongside the homeowner update.

What happens when a project goes quiet?
Every morning at 07:00 the sweep lists the projects with no update in 10 or more days and emails the office, or sends an all clear when nothing is stuck.

Additional info

Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/