Automation Playbook
← Back to Portfolio

Service Business: End-to-End Automation Playbook

Version: 1.0
Last Updated: July 2025

Table of Contents

1. Overview & Purpose

This playbook is your friendly guide to understanding and building the automation system. Whether you’re new to automation or want to expand this workflow, you’ll find every step explained in plain English—no jargon, just practical advice and real examples.

2. Visual Workflow

Here’s the big picture of how everything flows, step by step:

  1. Customer submits a form (Squarespace or similar)
  2. Address is cleaned and validated (using code and AI)
  3. Google Maps API gets property info
  4. Service quote is generated (custom JavaScript)
  5. AI analyzes and formats the data
  6. Email is generated and sent to the customer
  7. All data is logged in Google Sheets
  8. Slack notifications are sent if manual review is needed
Tip: Each step is automated—once set up, you don’t have to touch it!

3. Step-by-Step Setup

Step 1: Form Submission (Squarespace Forms)
Customer fills out a form on your website. This is the trigger for everything else.
Step 2: Clean & Combine Address (Code by Zapier)
A small code step combines and tidies up the address fields from the form, making sure the address is ready for validation.
Step 3: Clean & Validate Address (AI by Zapier)
AI checks the address for typos, missing info, and standardizes it (e.g., "St" → "Street").
Step 4: Format Address (Formatter by Zapier)
Ensures the address is in the right format for the next step.
Step 5: Google Map API Call (Webhooks by Zapier)
Looks up the property on Google Maps to get coordinates and more details.
Step 6: Generate Service Quote (Code by Zapier)
Custom JavaScript calculates the price for each service, applies discounts, and creates a detailed quote.
Step 7: Analyze and Return Data (AI by Zapier)
AI reviews the quote, checks for errors, and adds helpful notes or warnings if needed.
Step 8: Run Javascript (Code by Zapier)
Final data processing and formatting for email and logging.
Step 9: Send Email (Gmail)
A professional, branded email is sent to the customer with their quote.
Step 10: Log to Google Sheets
All details are saved in a Google Sheet for tracking, reporting, and follow-up.
Step 11: Slack Notifications (Optional, via Paths)
If something needs manual review (like a weird address or calculation), a Slack message is sent to your team. You can set up different paths for errors and normal cases.

4. Field Mapping Reference

Here’s how data moves from the form, through the estimator, and into emails, Google Sheets, and Slack:

Form FieldEstimator InputEmail/Sheets/Slack Field
Customer Namecustomer_name{{customer_name}}
Property Addressproperty_address{{property_address}}
Selected Servicesselected_services{{services_list}}
Subtotalsubtotal{{subtotal}}
Discountdiscount_amount{{discount_amount}}
Final Totalfinal_total{{final_total}}
Manual Review?requires_manual_review{{requires_manual_review}}
Tip: The estimator script creates all the fields you need for emails, Sheets, and Slack. No extra mapping needed!

5. Sample Data & Outputs

Sample Form Submission

{
  "customer_name": "Jane Doe",
  "property_address": "123 Main St, Atlanta, GA",
  "selected_services": ["House Washing", "Concrete Cleaning"]
}

Sample Estimator Output

{
  "services_list": "House Washing, Concrete Cleaning",
  "subtotal": 450.00,
  "discount_amount": 45.00,
  "final_total": 405.00,
  "requires_manual_review": false
}

Sample Email

Subject: Your Property Cleaning Estimate

Hi Jane,

Here’s your custom quote:
- House Washing: $264.15
- Concrete Cleaning: $211.33

Total: $427.93

Thank you for choosing our services!

Sample Google Sheets Row

Jane Doe | 123 Main St, Atlanta, GA | House Washing, Concrete Cleaning | $427.93 | No | ...

Sample Slack Message (Manual Review)

:warning: Manual Review Required!
Name: Jane Doe
Address: 123 Main St, Atlanta, GA
Services: House Washing, Concrete Cleaning
Total: $427.93

6. Troubleshooting & Best Practices

Still stuck? Try running the workflow with a test submission and watch where the data stops flowing. That’s your clue!

7. Expanding the Automation (Add New Services)

How to Add a New Service (Step-by-Step)

  1. Update the Form: Add a new checkbox or dropdown for the new service (e.g., "Gutter Cleaning").
  2. Update the Estimator Script: In smart_property_estimator_v3.js, add the new service to the SERVICES_CONFIG section. Set the price per square foot or per job, and any minimums.
  3. Update the Email Template: Add a new line for the new service in your email template if you want it to show up in quotes.
  4. Update Google Sheets: Add a new column if you want to track the new service separately.
  5. Update Zapier Field Mapping: Make sure the new service is mapped from the form, through the estimator, and into Sheets/Slack/Email as needed.
  6. Test Everything: Submit a test form with the new service selected. Make sure it shows up everywhere (email, Sheets, Slack).
Pro Tip: Always test with real data after adding a new service. It’s easy to miss a mapping step!

9. Estimator Script Anatomy & Customization

What Does the Estimator Script Do?

The smart_property_estimator_v3.js script is the brain of your automation. It takes property and service info, calculates areas and prices, applies discounts, and outputs everything for emails, Sheets, and Slack. It’s designed to be easy to update and safe for non-coders to tweak.

Script Structure (Anatomy)

How to Change Prices, Minimums, or Add Services

  1. Change a Price or Minimum: Edit the BUSINESS_CONFIG section at the top. Example:
    HOUSE_RATE: 0.15 // $0.15 per sq ft
  2. Add a New Service: Add a new entry to SERVICES_CONFIG with its rate, minimum, and description.
  3. Adjust Discounts: Edit SILVER_PACKAGE or GOLD_PACKAGE in BUSINESS_CONFIG.
  4. Update Business Info: Change BUSINESS_NAME, PHONE, or EMAIL in BUSINESS_CONFIG.

How Calculations Work

Common Customizations

Sensitive Info

No sensitive customer data is stored in the script. Only business contact info is included for manual follow-up.

8. FAQ / Common Issues

Q: What if my email is blank or missing info?

A: Check that your email template placeholders match the estimator output fields. Also, make sure the AI/email step is getting the right data from the previous step.

Q: How do I notify the team only for manual review cases?

A: Use a “Path” in Zapier after Google Sheets. If requires_manual_review is true, send a Slack message. Otherwise, skip Slack.

Q: Can I use a different form tool?

A: Yes! As long as the form can send data to Zapier, you can use any form builder (Squarespace, Google Forms, Typeform, etc.).

Q: What if the Google Sheet isn’t updating?

A: Make sure the sheet headers match the mapped fields exactly. Zapier is case-sensitive and space-sensitive.

Q: How do I add more notifications (like SMS)?

A: Add another action in Zapier after the estimator or Sheets step. You can send SMS, emails, or anything else Zapier supports.

10. Glossary

Zapier
An automation platform that connects your apps and automates workflows.
Webhook
A way for one app to send real-time data to another app when something happens.
API
Application Programming Interface; lets different software talk to each other.
Estimator Script
The custom JavaScript that calculates service areas, prices, and outputs for your workflow.
Manual Review
When the automation flags something unusual and asks a human to check it.