Back to Main Website Sales Scripts, Email Templates & Google Sheets Setup B2B Tool
✦ Sales & Operations Toolkit

Scripts, Emails & Setup Guide

Everything you need to close residential clients over the phone, via cold email, and connect your contact form to Google Sheets.

Phone Sales Script

Residential Cold Call Script

Use this script when calling leads from your neighborhood, referrals, or people who expressed interest. Read it naturally β€” don't sound like a robot.

Opening β€” First 30 Seconds

Critical β€” Don't Wing This
NOTE
Call between 10am–12pm or 5pm–7pm. These are highest answer rates. Never call during dinner (7–9pm). Have your calendar open so you can book immediately.
YOU
"Hi, is this [NAME]? … Hi [NAME], my name is [YOUR NAME] β€” I run Virtuous Touch Cleaning here in [their city/area]. I'm not going to take much of your time β€” I'm just reaching out to a few homeowners in [NEIGHBORHOOD/CITY] to introduce ourselves and share a special offer we're running for new clients. Do you have just two minutes?"
NOTE
If they say "I'm busy" β†’ "Totally understand β€” when would be a better time to call? I'll be quick, I promise." If they say no / hang up β†’ move on, don't push.

The Pitch β€” 60–90 Seconds

Value First
YOU
"We're a local residential cleaning company β€” fully insured, background-checked β€” and we specialize in making homes feel like they were just professionally restored. We use eco-friendly products, we're safe for kids and pets, and we have a 100% satisfaction guarantee β€” if you're not happy, we come back and fix it for free."
YOU
"Right now, we're offering new clients in [their area] our '3 Cleans, Pay for 2' special β€” that's one complete cleaning on us. We have a few spots open next week and I wanted to make sure [AREA] homeowners get first access before we open it up online."
NOTE
Pause here. Let them respond. Don't fill the silence β€” it's powerful. Give them 3–5 seconds.

The Ask β€” Book It Now

Always Try to Book
THEM
"That sounds interesting…"
YOU
"Great! We're really flexible β€” we do mornings, evenings, and weekends. What day works better for you β€” would weekdays or the weekend be easier?"
NOTE
Give them an either/or choice β€” it moves toward booking without pressure. Never ask "Would you like to book?" β€” it's too easy to say no.
THEM
"Weekday mornings usually work…"
YOU
"Perfect β€” I have Tuesday the [DATE] at 9am or Thursday the [DATE] at 10am open. Which one works better for you?"
YOU (after they pick)
"Excellent! I've got you down for [DATE/TIME]. Can I get your address and email so I can send you a confirmation? … And just to be clear β€” this is the start of your '3 cleans, pay for 2' package, so today is the first of your three visits. No contracts, cancel anytime."

The Close & Confirmation

Lock It In
YOU
"Wonderful! I'll send you a text and email confirmation right after this call with all the details. Our team will arrive right on time β€” you don't need to do anything to prepare except let us know if there are any pets or areas you'd like us to focus on. Any questions before I let you go?"
YOU
"Thank you so much, [NAME] β€” I'm really looking forward to taking care of your home. We'll see you [DATE]. Have a wonderful [day/evening]!"
Objection Handling

Common Objections & Perfect Responses

Every "no" is usually a "not yet" in disguise. These responses acknowledge the concern and redirect toward booking.

"I already have a cleaner."
"That's great β€” most of my best clients said the same thing before switching to us! I'm not asking you to replace anyone right now. What if I just did one complimentary clean so you could compare the quality? You don't lose anything, and if ours isn't better, no hard feelings. What do you think?"
"How much does it cost?"
"Great question! Our pricing depends on the size of the home and type of service β€” a standard 3-bedroom cleaning typically runs between $120–$180. But with our new client offer, your first clean is included when you book 3 sessions β€” so you're essentially paying for 2. Would you like me to give you an exact quote? I just need to ask a couple quick questions about your home."
"I'm not interested."
"I completely understand β€” I appreciate you being upfront with me. Just out of curiosity, is it the timing, the service, or something else? … [Listen] … I hear you. Would it be okay if I followed up in a couple months? Life gets busy and sometimes the timing isn't right β€” I just want to be here when you need us."
"I don't want strangers in my home."
"That is one of the most common concerns I hear, and honestly it's the reason we built our business the way we did. Every single cleaner is thoroughly background-checked, insured, and bonded. We also send you a profile of who's coming before every visit. You're always welcome to be home during the clean β€” many of our clients prefer it at first until they're comfortable. Does that help put your mind at ease?"
"Can you send me information first?"
"Absolutely β€” I'll text you our website right now: virtuoustouchcleaning.com. You'll see our services, photos, and reviews there. But let me ask β€” while I have you on the line, is there any specific service you'd be most interested in? That way I can make sure what I send is relevant to you. [Get their answer] … Perfect. I'll send that over now and follow up in 2 days β€” is mornings or afternoons better for a quick follow-up call?"
"I need to talk to my spouse / think about it."
"Of course β€” that makes total sense for something you're bringing into your home. Let me ask: aside from checking with them, is there anything about the offer or the service that you'd want me to clarify? … [Listen] … Great. When would be a good time to follow up β€” should I call Thursday or would the weekend be better?"
"I can't afford it right now."
"I completely understand β€” budgets are real. That's actually one of the reasons our new client offer exists. With the '3 cleans, pay for 2' package, you're getting real value upfront. And you can schedule the cleans as far apart as you'd like β€” even monthly. What if we just locked in a date and you can decide closer to the time if the budget works? There's no deposit required."
Residential Cold Email

Cold Email Templates for New Clients

Use these for neighborhood outreach, Facebook/Nextdoor leads, or anyone who's expressed interest but hasn't booked.

Forms & Google Sheets Setup

Your Form Already Works on Netlify

The contact form is pre-wired for Netlify Forms β€” the moment you deploy to Netlify, submissions are captured in the dashboard, and email notifications are handled by the Netlify form notification settings. Here's the full picture.

Netlify Forms is connected. Once form detection is enabled and the site is deployed to netlify.com, submissions are captured in your dashboard. An email notification must also be configured for virtuoustouchcleaning@gmail.com; this site now has that notification set up.
1

Confirm Email Notifications in Netlify

After deploying your site, set up where form submissions get emailed:

  • β†’ Log in at app.netlify.com
  • β†’ Go to your site β†’ Project configuration β†’ Notifications
  • β†’ Under Emails and webhooks, open Form submission notifications
  • β†’ Enter your email: virtuoustouchcleaning@gmail.com
  • β†’ Save β€” you'll now get an email every time someone books!
2

Connect to Google Sheets via Zapier (Free)

To have every submission also appear as a row in Google Sheets automatically:

  • β†’ Go to zapier.com and create a free account
  • β†’ Create a new Zap: Trigger = "Netlify β†’ New Form Submission"
  • β†’ Action = "Google Sheets β†’ Create Spreadsheet Row"
  • β†’ Connect your accounts, map the fields, turn Zap on
  • β†’ Free plan: 100 tasks/month β€” more than enough to start
3

Create Your Google Sheet (for Zapier to log into)

Go to sheets.google.com β†’ new spreadsheet β†’ name it "Virtuous Touch β€” Lead Tracker". Add these column headers in Row 1:

A: Timestamp | B: First Name | C: Last Name | D: Phone | E: Email | F: Address | G: Service | H: Home Size | I: Preferred Date | J: Notes | K: Claimed Offer
4

Optional: Google Apps Script (Advanced β€” Email + Sheets in One)

If you prefer not to use Zapier and want a direct Google Sheets integration with email alerts built in, use this script. In Google Sheets β†’ Extensions β†’ Apps Script, paste this code. It logs to the sheet AND sends you an email:

// Virtuous Touch Cleaning β€” Sheet + Email Notification Script
var NOTIFY_EMAIL = 'virtuoustouchcleaning@gmail.com';

function doPost(e) {
  try {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var data = JSON.parse(e.postData.contents);

    // 1. Log to Google Sheet
    sheet.appendRow([
      data.timestamp   || new Date().toLocaleString(),
      data.firstName, data.lastName,
      data.phone,     data.email,
      data.address,   data.service,
      data.homeSize,  data.preferred,
      data.notes,     data.claimOffer,
      data.source     || 'Website'
    ]);

    // 2. Send email notification
    var subject = '✦ New Lead: ' + data.firstName + ' ' + data.lastName;
    var body =
      'New booking request from your website!\n\n' +
      'Name: '    + data.firstName + ' ' + data.lastName + '\n' +
      'Phone: '   + data.phone    + '\n' +
      'Email: '   + data.email    + '\n' +
      'Service: ' + data.service  + '\n' +
      'Home Size: ' + data.homeSize + '\n' +
      'Preferred: ' + data.preferred + '\n' +
      'Notes: '   + data.notes    + '\n' +
      'Claimed Offer: ' + data.claimOffer + '\n\n' +
      'Submitted: ' + data.timestamp;

    MailApp.sendEmail(NOTIFY_EMAIL, subject, body);

    return ContentService
      .createTextOutput(JSON.stringify({'result': 'success'}))
      .setMimeType(ContentService.MimeType.JSON);

  } catch(err) {
    return ContentService
      .createTextOutput(JSON.stringify({'result': 'error', 'error': err.toString()}))
      .setMimeType(ContentService.MimeType.JSON);
  }
}

function doGet() {
  return ContentService.createTextOutput('Virtuous Touch Form Handler Active');
}
3

Deploy as Web App

In the Apps Script editor, click Deploy β†’ New Deployment. Configure it as follows:

  • β†’ Type: Web App
  • β†’ Execute as: Me (your Google account)
  • β†’ Who has access: Anyone

Click Deploy, authorize the permissions when prompted, then copy the Web App URL β€” it starts with https://script.google.com/macros/s/...

4

Paste the URL into Your Website

Open your index.html file. Find this line near the bottom in the JavaScript section:

const GOOGLE_SCRIPT_URL = 'YOUR_GOOGLE_SCRIPT_URL';

Replace YOUR_GOOGLE_SCRIPT_URL with the URL you copied in Step 3. Save the file.

Done! Test it by filling out your contact form. Within seconds, a new row should appear in your Google Sheet with all the lead's information.
Important: If the form stops working after a few months, go back to Apps Script β†’ Deploy β†’ Manage Deployments β†’ create a new version. Google sometimes requires re-deployment.
Follow-Up System

Your 5-Touch Follow-Up Sequence

Most clients book after the 3rd–5th follow-up. This system keeps you top of mind without being annoying.

Touch 1 β€” Immediate (Same Day)

Within 1 Hour
TEXT MESSAGE
Send this via text (not email) immediately after the call or form submission:
TEXT TEMPLATE
"Hi [NAME], this is [YOUR NAME] from Virtuous Touch Cleaning. Thanks for your interest! I'll follow up with a full quote by [TIME TODAY]. In the meantime, check out our website: [URL] β€” and don't forget, our new client special (3 cleans, pay for 2) is still available! 😊"

Touch 2 β€” Day 1–2 (Quote + Nurture)

Email
EMAIL
"Hi [NAME], here's your personalized quote: [QUOTE DETAILS]. Also attached is our services overview. Let me know if you have any questions β€” I'm happy to walk you through everything on a quick call. To lock in your spot for the '3 cleans, pay for 2' offer, just reply here or call me at (717) 715-7550."

Touch 3 β€” Day 4–5 (Check-In Call)

Phone Call
CALL OPENER
"Hi [NAME], this is [YOUR NAME] from Virtuous Touch. I sent over a quote a couple days ago and just wanted to make sure you received it and answer any questions. Did you have a chance to take a look? … [Listen] … [If no] No worries β€” I can walk you through it quickly right now if you have 2 minutes?"

Touch 4 β€” Day 8–10 (Value Email)

Email β€” Soft Sell
EMAIL
"Hi [NAME], I wanted to share something quickly β€” [SHARE A TIP: e.g., 'The biggest thing homeowners miss is grout cleaning β€” here's why it matters...']. We include this in every deep clean. If you'd like to experience it firsthand, our new client offer is still open. Would love to have you as a client!"

Touch 5 β€” Day 14 (Final Outreach)

Last Touch
EMAIL + TEXT
"Hi [NAME], this is my final note for now β€” I don't want to crowd your inbox! Our new client offer closes at the end of the week. If the timing isn't right, I completely understand β€” feel free to reach out anytime. Wishing you a wonderful [week/weekend]! β€” [YOUR NAME], Virtuous Touch Cleaning"
NOTE
After Touch 5 β€” add to a monthly check-in list. Re-contact them in 60 days with a simple "Hey, just checking in β€” is now a better time?" Most long-term clients came from follow-ups 30–90 days after initial contact.

Β© 2024 Virtuous Touch Cleaning Β· Sales Toolkit β€” Private Use Only