Notes — Automation
How I Automated Customer Onboarding with Make, Tally, and Google Sheets
The specific tools, the exact flow, and the one decision that made it actually feel human.
Published: June 2026
The problem was simple: a new customer called in, a dispatcher handwrote the intake, re-keyed it into the ERP, emailed a quote, booked a site visit over the phone, and waited. The customer heard nothing for two to four weeks unless they called back. By then, a third of them had ghosted.
I rebuilt the whole thing as a six-layer automated flow using tools that were either free or already in the Google Workspace account. Here's how it's wired.
The stack, and what each tool does
| Tool | What it does in the flow | Why this tool |
|---|---|---|
| Tally | The intake form — self-serve, no login required | Conditional logic that branches commercial vs. residential, so no one fills out fields that don't apply to them. Fewer fields = higher completion rate. |
| Google Sheets | The database — three tabs: raw, cleaned, dashboard | Free, already in the stack, accessible to anyone. The three-tab structure is the key design choice: raw data is never touched after capture, which protects downstream accuracy. |
| Make | The orchestration layer — connects everything | Two scenarios run in parallel when a form submits: one fires Sheets + Gmail + Calendar simultaneously; a second watches for status changes and sends update emails. Make handles error logging and retry logic automatically. |
| Gmail + Gemini | AI-drafted confirmation and status emails | Gemini pulls the customer's own variables from the Sheets row — property type, heat source, install window, service address — and writes a personalized email. The customer gets a message that references their specific situation, not a ticket-number acknowledgment. |
| Google Calendar | Auto-created install events | Make creates a Calendar event with the full customer payload in the description and assigns it to the right regional queue. No dispatcher has to manually schedule the first pass. |
| Google Sites | Per-customer status portal | The single biggest call-deflector. Customers stop calling "where am I" when they can see it on a page. |
The Make scenario, step by step
When a Tally form submits, Make fires in under two seconds:
- Watch Tally for new responses — the trigger. Make polls every few minutes on the free plan; a webhook fires instantly on paid.
- Validate the payload — check that required fields are populated before anything else runs. Catches bad submissions before they corrupt the Sheet.
- Add a row to Google Sheets — raw tab only. The cleaning formulas in the second tab run automatically from there.
- Call Gemini (via Gmail API) — pass the customer variables as a prompt. Gemini returns a drafted email; Make creates a Gmail draft for a dispatcher to review before send (or auto-sends, your call).
- Create a Google Calendar event — pulls address, install window, and property type from the same Tally payload. Assigns to the correct regional calendar.
- Log the run — Make's built-in execution history shows exactly what happened on each submission. Debugging a failed run takes seconds.
The decision that made the biggest difference
Not the Make scenario. Not the three-tab Sheet structure. The Gemini email layer.
The difference between "this is automated" and "someone wrote me back" is whether the message knows anything about you. The Tally form captures property type, heat source, install window preference, and service address. Gemini uses all of it.
The result: a new customer gets a confirmation that says "We've got your residential propane intake for [address]. Based on your preferred install window of [date range], we're scheduling your site visit for [week]..." — not "Thank you for your submission. A representative will contact you."
That detail mattered more than any other choice in the build.
What I'd do differently
The one gap in this architecture is the sales-to-CS handoff. Right now the flow handles new intake, but it doesn't automatically pull from the CRM if a sales team has already been talking to the prospect. In a SaaS context, you'd add a CRM lookup step in Make — check HubSpot or Salesforce for an existing contact before creating a new record — so you're enriching existing data instead of creating a duplicate.
That's the next build, and it's one Make module away.
Read the full case study — architecture table, projected impact metrics, and design decisions
Back to notesBrianna Bates builds practical lead, onboarding, and reporting workflows for service businesses using automation, Google Workspace, and lightweight dashboards. Discuss your workflow.