Category: AI in Restoration

AI is not coming to the restoration industry — it is already here. From automated estimating to AI-powered content generation to predictive analytics on storm seasons, the companies that adopt intelligently will dominate the next decade. We cut through the hype and show what is real, what works, and what is just noise. No fluff, no fear — just the tools and strategies that give restoration operators an unfair advantage.

AI in Restoration covers artificial intelligence applications, machine learning tools, automation workflows, AI-powered estimating, predictive analytics, chatbot deployment, content generation, operational AI, and technology adoption strategies for water damage, fire restoration, mold remediation, and commercial restoration companies.

  • GCP-Powered CRM Touch Calendar Automation for Restoration Companies: Architecture Guide

    GCP-Powered CRM Touch Calendar Automation for Restoration Companies: Architecture Guide

    Who this is for: Your IT person, your developer, or a technical contractor. This brief describes a production-grade automation architecture for the restoration company CRM touch calendar using Google Cloud Platform (GCP). It assumes basic familiarity with cloud infrastructure, command line tools, and web APIs. It does not require deep expertise in any single area — the implementation is intentionally modular so that each component can be handed to a different person if needed.

    The business strategy this automates is in Your CRM Is Not a Lead Database. The manual version of this system is in the Email Automation Setup Guide. This brief is for teams who want to reduce ongoing manual work and build a more robust, scalable version of the same workflow.


    What This Architecture Automates

    The manual system requires a person to: export contacts from the CRM, validate emails, import to Mailchimp or Brevo, configure each campaign, schedule it, and log results back to Notion. For 4–6 campaigns per year, this is manageable manually. For a company running 10–15 campaigns across multiple divisions or service areas, or for an agency running this system for multiple restoration clients, a GCP automation layer eliminates the recurring labor.

    What this architecture handles automatically:

    • Scheduled contact export from ServiceTitan or Jobber via API
    • Segmentation and deduplication logic
    • Email validation pass before import
    • Contact import to Mailchimp or Brevo
    • Campaign creation from template stored in Cloud Storage
    • Campaign scheduling per the calendar in Notion
    • Results logging back to Notion after send

    What still requires human review:

    • Email copy review before scheduling (always — no automation should skip this)
    • Reply triage and qualitative logging
    • Warmth scoring and super-connector identification

    Prerequisites

    • A Google Cloud Platform account with billing enabled (new GCP accounts include $300 in free credits)
    • ServiceTitan or Jobber API access (ServiceTitan requires contacting their enterprise team; Jobber API is available on Connect plan and above at $119–$169/month)
    • Mailchimp account with API access (available on all paid plans) OR Brevo with API access (all plans)
    • Notion account with Notion API integration enabled (free at notion.com/my-integrations)
    • Basic Python familiarity (this implementation uses Python 3.11+)

    Architecture Overview

    ┌─────────────────────────────────────────────────────────────┐
    │                    TRIGGER LAYER                            │
    │  Cloud Scheduler → cron job on campaign dates from Notion   │
    └────────────────────────────┬────────────────────────────────┘
                                 │
    ┌────────────────────────────▼────────────────────────────────┐
    │                 ORCHESTRATION LAYER (Cloud Run)             │
    │  campaign-runner service — reads Notion calendar,           │
    │  determines which campaigns are due, triggers pipeline      │
    └────────────────────────────┬────────────────────────────────┘
                                 │
             ┌───────────────────┼───────────────────┐
             │                   │                   │
    ┌────────▼────────┐ ┌───────▼────────┐ ┌────────▼────────┐
    │  CONTACT SYNC   │ │ TEMPLATE STORE │ │  RESULTS LOGGER │
    │  Cloud Run      │ │  Cloud Storage │ │  Cloud Run      │
    │  - CRM export   │ │  - Email copy  │ │  - Poll email   │
    │  - Segment      │ │  - Subject     │ │    platform     │
    │  - Dedupe       │ │    variants    │ │  - Write Notion │
    │  - Validate     │ │  - Prompt lib  │ │  - Update touch │
    │  - Import to    │ │                │ │    log          │
    │    email        │ └────────────────┘ └─────────────────┘
    │    platform     │
    └─────────────────┘
    

    Component 1: GCP Project Setup

    # Install gcloud CLI and authenticate
    gcloud auth login
    gcloud projects create restoration-crm-[yourcompany] --name="Restoration CRM Automation"
    gcloud config set project restoration-crm-[yourcompany]
    
    # Enable required APIs
    gcloud services enable \
      run.googleapis.com \
      cloudscheduler.googleapis.com \
      secretmanager.googleapis.com \
      storage.googleapis.com
    
    # Create service account for the automation
    gcloud iam service-accounts create crm-automation-sa \
      --display-name="CRM Automation Service Account"
    
    # Grant necessary permissions
    gcloud projects add-iam-policy-binding restoration-crm-[yourcompany] \
      --member="serviceAccount:crm-automation-sa@restoration-crm-[yourcompany].iam.gserviceaccount.com" \
      --role="roles/run.invoker"
    

    Component 2: Secret Manager for API Credentials

    Store all API credentials in GCP Secret Manager. Never hardcode credentials in source code.

    # Store each credential as a separate secret
    echo -n "your-servicetitan-api-key" | gcloud secrets create servicetitan-api-key \
      --data-file=-
    
    echo -n "your-jobber-api-key" | gcloud secrets create jobber-api-key \
      --data-file=-
    
    echo -n "your-mailchimp-api-key" | gcloud secrets create mailchimp-api-key \
      --data-file=-
    
    echo -n "your-notion-token" | gcloud secrets create notion-token \
      --data-file=-
    
    # In Python, access secrets like this:
    # from google.cloud import secretmanager
    # client = secretmanager.SecretManagerServiceClient()
    # name = f"projects/{project_id}/secrets/{secret_id}/versions/latest"
    # response = client.access_secret_version(request={"name": name})
    # secret_value = response.payload.data.decode("UTF-8")
    

    Component 3: Contact Sync Service

    This Cloud Run service handles the contact export → segment → validate → import pipeline. Deploy as a container triggered by the orchestration layer.

    # contact_sync/main.py
    
    import os
    import json
    import requests
    from google.cloud import secretmanager
    
    def get_secret(secret_id):
        client = secretmanager.SecretManagerServiceClient()
        project_id = os.environ.get("GCP_PROJECT_ID")
        name = f"projects/{project_id}/secrets/{secret_id}/versions/latest"
        response = client.access_secret_version(request={"name": name})
        return response.payload.data.decode("UTF-8")
    
    def export_jobber_contacts():
        """Export residential clients from Jobber API"""
        api_key = get_secret("jobber-api-key")
        
        # Jobber uses GraphQL API
        query = """
        query GetClients($after: String) {
          clients(first: 100, after: $after) {
            nodes {
              id
              firstName
              lastName
              emails { address isPrimary }
              tags { label }
              jobs(first: 1) {
                nodes { jobType completedAt }
              }
            }
            pageInfo { hasNextPage endCursor }
          }
        }
        """
        
        headers = {
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        }
        
        contacts = []
        cursor = None
        
        while True:
            variables = {"after": cursor} if cursor else {}
            response = requests.post(
                "https://api.getjobber.com/api/graphql",
                headers=headers,
                json={"query": query, "variables": variables}
            )
            data = response.json()
            clients = data["data"]["clients"]
            
            for client in clients["nodes"]:
                email = next(
                    (e["address"] for e in client["emails"] if e["isPrimary"]),
                    client["emails"][0]["address"] if client["emails"] else None
                )
                if not email:
                    continue
                
                # Determine segment based on tags
                tags = [t["label"].lower() for t in client["tags"]]
                if "residential" in tags or not any(t in tags for t in ["commercial", "adjuster", "vendor"]):
                    segment = "Homeowner"
                elif any(t in tags for t in ["adjuster", "agent", "insurance"]):
                    segment = "Industry"
                else:
                    segment = "Trade"
                
                # Get most recent job type
                job_type = None
                if client["jobs"]["nodes"]:
                    job_type = client["jobs"]["nodes"][0].get("jobType", "")
                
                contacts.append({
                    "first_name": client["firstName"],
                    "last_name": client["lastName"],
                    "email": email.lower().strip(),
                    "segment": segment,
                    "job_type": job_type or ""
                })
            
            if not clients["pageInfo"]["hasNextPage"]:
                break
            cursor = clients["pageInfo"]["endCursor"]
        
        return contacts
    
    def deduplicate_contacts(contacts):
        """Remove duplicate emails, keep most recent record"""
        seen = {}
        for contact in contacts:
            email = contact["email"]
            if email not in seen:
                seen[email] = contact
        return list(seen.values())
    
    def segment_contacts(contacts):
        """Split into three segment lists"""
        segments = {"Homeowner": [], "Industry": [], "Trade": []}
        for contact in contacts:
            seg = contact.get("segment", "Homeowner")
            if seg in segments:
                segments[seg].append(contact)
        return segments
    
    def import_to_mailchimp(contacts, tag, api_key, list_id):
        """Batch import contacts to Mailchimp with tag"""
        
        # Mailchimp batch operations (max 500 per call)
        batch_size = 500
        
        for i in range(0, len(contacts), batch_size):
            batch = contacts[i:i+batch_size]
            
            operations = []
            for contact in batch:
                operations.append({
                    "method": "PUT",
                    "path": f"/lists/{list_id}/members/{contact['email'].encode().hex()}",
                    "body": json.dumps({
                        "email_address": contact["email"],
                        "status_if_new": "subscribed",
                        "merge_fields": {
                            "FNAME": contact.get("first_name", ""),
                            "LNAME": contact.get("last_name", ""),
                            "JOB_TYPE": contact.get("job_type", "")
                        },
                        "tags": [tag]
                    })
                })
            
            response = requests.post(
                "https://us1.api.mailchimp.com/3.0/batches",
                auth=("anystring", api_key),
                json={"operations": operations}
            )
            
            if response.status_code not in [200, 201]:
                raise Exception(f"Mailchimp batch import failed: {response.text}")
        
        return len(contacts)
    
    def run_contact_sync(request):
        """Main Cloud Run handler"""
        mailchimp_api_key = get_secret("mailchimp-api-key")
        mailchimp_list_id = os.environ.get("MAILCHIMP_LIST_ID")
        
        contacts = export_jobber_contacts()
        contacts = deduplicate_contacts(contacts)
        segments = segment_contacts(contacts)
        
        results = {}
        for segment_name, segment_contacts in segments.items():
            count = import_to_mailchimp(
                segment_contacts,
                tag=segment_name,
                api_key=mailchimp_api_key,
                list_id=mailchimp_list_id
            )
            results[segment_name] = count
        
        return json.dumps({"status": "success", "imported": results})
    

    Component 4: Cloud Scheduler Trigger

    Cloud Scheduler runs the orchestration service on the campaign dates stored in your Notion calendar. The scheduler checks Notion weekly for upcoming campaigns and pre-triggers the contact sync 7 days before each scheduled send.

    # Create weekly scheduler job
    gcloud scheduler jobs create http crm-weekly-check \
      --schedule="0 9 * * 1" \
      --uri="https://[cloud-run-url]/check-upcoming-campaigns" \
      --oidc-service-account-email="crm-automation-sa@[project].iam.gserviceaccount.com" \
      --time-zone="America/Los_Angeles" \
      --location="us-west1"
    

    The orchestration service reads your Notion Campaign Calendar database, finds any campaigns with a send date within the next 7 days and a Status of “Scheduled,” and triggers the contact sync and campaign creation pipeline for each one.


    Component 5: Results Logger

    After each campaign sends, this service polls the Mailchimp or Brevo API for campaign analytics and writes them back to your Notion Campaign Calendar database.

    # results_logger/main.py (simplified)
    
    def log_campaign_results(campaign_id, notion_page_id):
        mailchimp_api_key = get_secret("mailchimp-api-key")
        notion_token = get_secret("notion-token")
        
        # Get Mailchimp campaign report
        response = requests.get(
            f"https://us1.api.mailchimp.com/3.0/reports/{campaign_id}",
            auth=("anystring", mailchimp_api_key)
        )
        report = response.json()
        
        open_rate = report.get("opens", {}).get("open_rate", 0)
        
        # Update Notion page
        notion_headers = {
            "Authorization": f"Bearer {notion_token}",
            "Content-Type": "application/json",
            "Notion-Version": "2022-06-28"
        }
        
        requests.patch(
            f"https://api.notion.com/v1/pages/{notion_page_id}",
            headers=notion_headers,
            json={
                "properties": {
                    "Status": {"select": {"name": "Sent"}},
                    "Open Rate": {"number": round(open_rate * 100, 1)}
                }
            }
        )
    

    Estimated Monthly GCP Costs

    For a single restoration company running 6 campaigns per year:

    Service Usage Monthly Cost
    Cloud Run (contact sync) 6 invocations/year, <5min each <$1
    Cloud Scheduler 52 weekly checks/year $0.10
    Cloud Storage (templates) Minimal storage <$0.01
    Secret Manager 4 secrets, <1000 accesses/month <$0.10
    Total <$2/month

    For an agency running this system for 10 restoration clients simultaneously, the cost scales linearly — approximately $15–20/month in GCP costs for the full multi-client operation. The manual labor savings at that scale are significant: an estimated 8–12 hours per month of manual campaign setup eliminated.


    Deployment Checklist

    • GCP project created and APIs enabled
    • Service account created with appropriate permissions
    • All API credentials stored in Secret Manager
    • Contact sync service containerized and deployed to Cloud Run
    • Cloud Scheduler job created and tested
    • Notion Campaign Calendar database connected
    • Results logger deployed and tested with a historical campaign
    • Full end-to-end test run on a staging contact list before live deployment

    Full documentation for each GCP service referenced here: cloud.google.com/run/docs, cloud.google.com/scheduler/docs, cloud.google.com/secret-manager/docs.


  • AI-Assisted Email Drafting for Restoration Companies: A Claude Prompt Library

    AI-Assisted Email Drafting for Restoration Companies: A Claude Prompt Library

    Who this is for: Anyone at your company who writes emails — the owner, the office manager, or whoever handles the CRM touch campaigns. This brief requires no technical background. It’s a ready-to-use prompt library for Claude (claude.ai), Anthropic’s AI assistant, that you can use to write every email in your annual CRM touch calendar without starting from a blank page.

    The strategy behind these prompts is in Your CRM Is Not a Lead Database. The calendar that tells you when to send each one is in The 12-Month Outreach Calendar. This brief gives you the words.


    How to Use This Prompt Library

    Go to claude.ai. Create a free account if you don’t have one. Open a new conversation. Paste a prompt from this guide, fill in the bracketed fields with your real information, and press enter. Claude will generate a draft email. Review it, edit anything that doesn’t sound like you, and copy it into your email platform.

    That’s the entire workflow. No API key. No technical setup. No code. A free Claude account at claude.ai is sufficient for this use case.

    One important principle before you start: the more specific your prompt, the better the output. Telling Claude “write a hiring email for a restoration company” will generate something generic. Telling Claude “write a hiring email for a 12-person water and fire restoration company in Tacoma, WA that’s been in business for eight years and is known for fast response times and honest communication with insurance adjusters” will generate something that sounds like it came from your company specifically. Put in the specifics; get out something publishable.


    The Prompt Library

    Prompt 1: The Hiring Email — Homeowner Version

    I run [company name], a [type] restoration company in [city, state]. We’ve been in business [X] years and are known for [one or two specific things your company does well — e.g., “fast response times and straight communication with adjusters,” or “doing right by homeowners even when the insurance company makes it hard”]. We currently have [number] employees and serve the [geographic area] area.

    I need to write a short, plain-text email to past homeowner clients who we’ve done [water damage / fire damage / mold / storm] work for. We’re currently hiring for [job title]. The goal of the email is to ask if they know anyone — family, friends, people in the trades — who might be a great fit for a company like ours. We want to reach out to trusted contacts before posting the job publicly.

    Tone: Personal and warm, like a note from a real person. Not corporate, not salesy. The recipient should feel like we remembered them and value their opinion specifically.

    Requirements: Under 150 words. Plain text (no HTML). Sign it from [owner first name] at [company name]. Include a phone number as the only contact info. No subject line needed — just the body.


    Prompt 2: The Hiring Email — Insurance Adjuster Version

    I run [company name], a restoration company in [city, state]. I need to write a short email to insurance adjusters I’ve worked with on claims. We’re hiring a [job title].

    The tone should be collegial — peer to peer, professional but not formal. We want to reach out to trusted colleagues before posting publicly, and we’d appreciate any recommendations they might have. Keep it under 120 words. Plain text. From [owner name]. Include phone number.

    Do not use any of these phrases: “I hope this email finds you well,” “I wanted to reach out,” “touch base,” “circle back,” or “leverage.” Write it how a real contractor would talk to an adjuster they’ve worked with for years.


    Prompt 3: The Vendor Ask — Specialty Sub Search

    Write a short email from a restoration company owner to their contact database asking if anyone knows a reliable [trade type — e.g., drywall sub, flooring contractor, HVAC tech] in [city/region]. We have a larger project coming up and want to find a quality sub through our network before going the cold-search route.

    Context about our company: [2–3 sentences about your company — size, how long you’ve been in business, your service area]. The recipients are a mix of past homeowner clients, insurance industry contacts, and trade partners.

    Tone: Casual and direct. Like asking a trusted colleague. Under 100 words. Plain text. From [owner name]. Phone number only.

    Optional addition: Add one sentence at the end that invites the recipient to reach out directly if the description matches their own business.


    Prompt 4: The Seasonal Safety Email — Winter Freeze Version

    I run a water damage restoration company in [city, state]. I want to send a helpful, non-promotional email to past homeowner clients before freeze season. The goal is to give them genuinely useful information about preventing the kind of water damage we see most commonly in [our region] in winter.

    Specific things to cover: [list 3–4 real things relevant to your region — e.g., “disconnecting garden hoses,” “knowing where the main shutoff is,” “checking sump pumps before the ground freezes,” “insulating exposed pipes in crawlspaces”]. These should be specific to [region] winters, not generic national advice.

    Tone: Knowledgeable and helpful, like a trusted expert checking in on a neighbor. No sales pitch, no CTA other than “if you have questions, we’re here.” Under 200 words. Include a link placeholder for [blog post URL] if they want to read more. From [owner name].


    Prompt 5: The Post-Storm Check-In

    Write a short check-in email from a restoration company owner to past homeowner clients after a significant weather event. Context: [describe the event — e.g., “We just had the biggest rainstorm in three years hit the [area]” or “The deep freeze last week affected a lot of homes in our area”]. We’re reaching out not to generate leads but to genuinely check in and let them know we’re available if they or anyone they know had issues.

    Tone: Warm, community-focused, genuine. Not a pitch. One optional sentence can mention that we’re available for a free look if they’re not sure about anything. Under 120 words. From [owner name]. Include phone.


    Prompt 6: The Company Anniversary or Milestone Email

    Write a short personal email from the owner of a restoration company to their full contact database for our company’s [X-year anniversary / new IICRC certification / expansion into a new service area]. The goal is to thank the people who’ve been part of our journey — past clients, industry partners, trade contacts — and share something genuine about where we’re headed.

    Specific context: [1–2 sentences about what milestone you’re celebrating and what it means genuinely — not marketing language, just the real version]. [1 sentence about something you’re proud of or looking forward to.] [1 sentence of genuine gratitude.]

    Tone: Personal. From the owner’s voice, not a company PR voice. Should feel like the kind of email you’d want to receive from a company you’ve worked with. Under 175 words. No CTA. No offer. Just the relationship. From [owner first name].


    Prompt 7: Adapting Any Template to Your Brand Voice

    Use this prompt whenever a generated draft doesn’t quite sound like you:

    Here are two examples of how I normally write emails to clients and contacts: [paste two real examples of emails you’ve sent — can be short, informal, anything genuine]. Using this voice and style, rewrite the following email: [paste the generated draft]. Keep all the same information but make it sound like I wrote it, not like AI wrote it. Pay attention to sentence length, word choice, and how formal or informal I am.


    Prompt 8: Subject Line Generation

    Write 8 subject line options for the following email: [paste the email body]. The subject line should feel personal and human — not like a marketing email. No click-bait. No exclamation points. No “Quick question for you!” style openers. It should make the recipient want to open it because it sounds like a note from someone they know, not a promotional blast. Vary the options — some direct, some conversational, some that lead with the topic, some that lead with the relationship.


    Prompt 9: Batch Personalization for Homeowner Lists

    Use this when you have a list of homeowner contacts and want to add one personalized sentence per email based on their job type and timing:

    I’m going to give you a list of past restoration clients in CSV format. For each client, add one personalized opening sentence to the following email template that references their specific job type and, if the job was more than 18 months ago, acknowledges it’s been a while. Keep the personalized sentence under 20 words. Do not change the rest of the template. Return the output as a numbered list matching the order of the input.

    Email template: [paste template]

    Client list (paste up to 20 rows at a time):
    First Name, Job Type, Months Since Job
    Sarah, water damage, 14
    Tom, fire damage, 26
    Jennifer, mold remediation, 8
    [continue…]


    Tips for Getting the Best Results from Claude

    Be specific about what you don’t want. If you’ve noticed Claude tends to use certain filler phrases, name them explicitly in the prompt: “Do not use: ‘I hope this finds you well,’ ‘reaching out,’ ‘touch base,’ or ‘leverage.’” This single instruction usually eliminates the most recognizable AI writing patterns.

    Give it your real company context. Claude doesn’t know your company. Everything you tell it about your history, your reputation, your service area, and your typical client becomes context it can draw on to make the output more specific and authentic. Two sentences of real company context transform generic output into something that sounds like it came from you.

    Iterate in the same conversation. Don’t start a new Claude conversation for each revision. Reply in the same conversation with: “Good, but make it shorter” or “The tone is right but the middle paragraph is too formal — simplify it.” Claude maintains context within a conversation and can refine based on your feedback without losing the good parts.

    Ask for multiple options. Ending a prompt with “Give me three versions — one shorter, one more formal, one more casual” lets you pick from options rather than iterating from a single draft. This works especially well for subject lines.

    Review everything before sending. Claude’s output is a first draft, not a final draft. Read every email before it goes out. Check for: anything that doesn’t sound like your voice, any specific facts about your company that are wrong (Claude will sometimes assume details you didn’t provide), and any phrasing that might feel off to a specific recipient.


    Frequently Asked Questions

    Do I need to pay for Claude to use these prompts?

    No. A free account at claude.ai is sufficient for this use case. The free tier allows you to run multiple prompts per day and generate all the email drafts you need for a full annual campaign calendar. Claude Pro ($20/month) gives you higher usage limits and access to more powerful models, but is not required for basic email drafting.

    Can I save these prompts somewhere so I don’t have to look them up each time?

    Yes — store the full prompt library in a Notion page (your Second Brain, per the related technical brief). Create one page per prompt type, fill in the bracketed fields with your company’s standard information, and save them as templates. Before each campaign, open the relevant prompt, verify the details are current, and paste it into Claude.

    What if Claude generates something that doesn’t sound like me?

    Use Prompt 7 from this guide — the brand voice adaptation prompt. Paste two real emails you’ve written, paste the Claude draft, and ask it to rewrite in your voice. After two or three rounds of this, Claude will have internalized your style well enough that the initial drafts need much less editing.

    Is it ethical to use AI-generated emails for relationship outreach?

    Yes, with one condition: you review and approve every email before it sends. The same way you might ask an assistant to draft a letter you then sign and send in your voice, using AI to draft email is a production tool, not a substitute for genuine relationship intention. The goal of these campaigns is real — staying in touch with people who know your company, asking for genuine help with real business needs. AI helps you express that goal in words. The relationship authenticity comes from you.


  • Building a Notion Second Brain for Restoration CRM Intelligence: Technical Guide

    Building a Notion Second Brain for Restoration CRM Intelligence: Technical Guide

    Who this is for: The person building your knowledge and relationship tracking system — your office manager, a tech-savvy ops person, or a consultant helping you get organized. This brief builds a Notion-based Second Brain layer that sits on top of your existing CRM to capture the relational intelligence that your job management software never will. No coding required. Full setup takes 3–4 hours. The strategy this supports is in Your CRM Is Not a Lead Database.


    What a Second Brain Does That Your CRM Doesn’t

    Your job management software (ServiceTitan, Jobber, or similar) is built to track transactions: jobs, invoices, and technician assignments. It is exceptional at this. What it cannot do is capture the relational layer — who referred whom, who replied to your hiring email, which adjuster said they’d keep you in mind for the next CAT event, which homeowner’s reply mentioned their neighbor’s flooded basement.

    This is the intelligence that determines whether your CRM becomes a community. It lives in email threads, in the notes field of your phone contacts, in your memory after a golf round with an adjuster. It disappears when your office manager leaves, when you switch phone carriers, when the thread buries itself under 400 new emails.

    The Notion Second Brain captures this layer systematically. It’s not a replacement for your CRM. It’s a relationship intelligence layer that your CRM was never designed to hold.


    The Architecture: Four Linked Databases

    The system uses four Notion databases connected by relations. Notion’s free tier supports all of this — you do not need a paid plan for the initial build. If you add more than five members, you’ll need to upgrade to the Plus plan ($10/user/month).

    Database 1: Contacts

    Your master contact registry. Every person in your network gets a record here. This does not replace your CRM contact list — it supplements it with relationship context that belongs in a knowledge management tool, not a job management tool.

    Properties:

    Field Type Notes
    Name Title Full name
    Segment Select Homeowner / Industry / Trade / Other
    Sub-type Select Homeowner past client / Adjuster / Agent / PA / Sub / Supplier / Vendor
    Email Email
    Phone Phone
    Company Text For industry and trade contacts
    Location Text City or zip — for local filter
    Warmth Select Hot / Warm / Cool / Cold — subjective relationship temperature
    Last Touch Date Date Last time you had meaningful contact
    Last Touch Type Select Email campaign / Personal email / Phone / In person
    Times Referred Number How many referrals this contact has ever sent you
    Notes Text Anything important that doesn’t fit a field
    CRM ID Text Matching ID in ServiceTitan or Jobber for cross-reference

    Database 2: Touch Log

    Every meaningful interaction with a contact gets an entry here. Campaign sends, personal replies, phone calls, in-person conversations. This is how you build a timeline of every relationship in your network.

    Properties:

    Field Type Notes
    Touch Summary Title Brief description of the interaction
    Contact Relation → Contacts Links to the contact record
    Date Date
    Touch Type Select Campaign email / Personal email / Phone / In person / Reply received
    Direction Select Outbound (you reached out) / Inbound (they contacted you)
    Signal Select Neutral / Positive / Referral Generated / Lead Mentioned / Complaint
    Follow Up Needed Checkbox
    Follow Up Date Date Only populate if Follow Up Needed is checked
    Notes Text What was said or what happened

    Database 3: Referrals

    Every referral — whether it turned into a job or not — gets a record here. This is where you track the ROI of the community strategy over time.

    Properties:

    Field Type Notes
    Referral Summary Title Brief description
    Referred By Relation → Contacts Who sent it
    Referred Person or Property Text Who or what was referred
    Date Received Date
    Source Touch Relation → Touch Log Which email or interaction triggered the referral
    Outcome Select Job Won / Job Lost / Not Yet Followed Up / Not a Lead
    Job Value Number Estimated or actual job value if won

    Database 4: Campaign Calendar

    This is the full campaign planning and results database from the outreach calendar guide. It lives here in the Second Brain so that every campaign is linked to the contacts and touches it generates.


    Setting Up the System in Notion: Step by Step

    Phase 1: Create the Workspace Structure (30 minutes)

    1. Create a new page in Notion called “CRM Second Brain”
    2. Add four sub-pages, one per database: Contacts, Touch Log, Referrals, Campaign Calendar
    3. On each sub-page, add a full-page database (not inline)
    4. Add all properties to each database as listed above
    5. Set up Relations between databases: Touch Log → Contacts (one contact, many touches), Referrals → Contacts (one contact, many referrals), Referrals → Touch Log (link each referral to the touch that generated it)

    Phase 2: Import Your Seeding Data (1–2 hours)

    1. Take your clean, segmented contact CSV from the segmentation brief
    2. In Notion, on your Contacts database, click the three dots → Import CSV
    3. Map the CSV columns to Notion database properties
    4. Notion will create one database record per row
    5. After import, manually review the first 20 records to confirm mapping is correct
    6. Set the Warmth field for your top 30 contacts manually — this is subjective and cannot be automated

    Phase 3: Set Up Views for Daily Use (30 minutes)

    The database is only useful if you actually open it. Create these four views in your Contacts database:

    • “Super Connectors” view: Filter by Times Referred ≥ 2, sorted by Times Referred descending. This shows you your highest-value network contacts at a glance.
    • “Gone Cold” view: Filter by Last Touch Date is before 6 months ago AND Warmth is Warm or Hot. These are relationships that need attention.
    • “Follow Up Today” view: Filter from Touch Log — Follow Up Needed = true AND Follow Up Date = today. Surfaces what needs action today.
    • “Homeowners — Local” view: Filter by Segment = Homeowner AND Location contains [your city/zip]. Your residential community at a glance.

    Connecting the Second Brain to Your Campaign Workflow

    The Second Brain becomes powerful when it’s updated in real time during campaign execution. Here is the exact workflow for each campaign:

    Before sending: Open the Campaign Calendar database and update the Status to “Scheduled.” Verify that the target audience count in your email platform matches your Contacts database filtered view for that segment.

    Within 48 hours of sending: Log the campaign as a single batch entry in the Touch Log: Touch Type = “Campaign email”, Direction = Outbound, Date = send date. This creates the event anchor for all replies that follow.

    For every reply received: Add a Touch Log entry: Touch Type = “Reply received”, Direction = Inbound, link to the Contact record, set Signal based on content (Referral Generated, Lead Mentioned, or Positive). If a follow-up is needed, check Follow Up Needed and set Follow Up Date.

    For every referral: Add a Referrals database entry immediately. Link to the Contact who sent it and to the Touch Log entry that triggered it. Set Outcome to “Not Yet Followed Up” until the lead is worked.

    After 12 months of this workflow, your Super Connectors view will show you exactly which five to ten people in your network are responsible for the majority of inbound referrals. These are the people to take to coffee, to thank personally, to invite to events. The system surfaces what intuition alone cannot track at scale.


    Advanced: Connecting Notion to Your Email Platform via Zapier

    For teams who want to reduce manual entry, Zapier (zapier.com) can automate the Touch Log entry step. This requires a Zapier account (free tier allows five automated workflows) and basic Zapier setup familiarity.

    The automation: When a contact replies to a Mailchimp campaign → Zapier creates a Touch Log entry in Notion with the reply details, linked to the Contact record by email address.

    The Zap flow:

    1. Trigger: Mailchimp → New Campaign Reply (or Gmail → New Email matching campaign reply-to address)
    2. Action 1: Notion → Find Database Item (search Contacts database for the reply’s email address)
    3. Action 2: Notion → Create Database Item in Touch Log (populate fields from the Mailchimp reply data and the Contact ID found in Action 1)

    This automation removes the manual step of logging each reply. It does not remove the step of reviewing replies and adding qualitative Signal and Notes — that still requires human judgment.

    Zapier setup documentation: zapier.com/apps/mailchimp/integrations/notion and zapier.com/apps/gmail/integrations/notion.


    Notion Pricing for This Use Case

    Scenario Plan Needed Cost
    Solo owner managing the database alone Free $0/month
    Owner + office manager (2 users) Free (up to 5 collaborators on free plan) $0/month
    Owner + office manager + 3 others Free (up to 5 still covered) $0/month
    6 or more users Plus plan $10/user/month

    For most restoration companies running this system, the free tier is sufficient indefinitely. The system described here does not require Notion AI, advanced automations, or enterprise features.


  • Email Automation Setup for Restoration CRM Outreach: Technical Implementation Guide

    Email Automation Setup for Restoration CRM Outreach: Technical Implementation Guide

    Who this is for: The person setting up your email system — your office manager, your IT contact, or a freelance marketing person you’ve brought in. This brief assumes basic comfort with web-based software (setting up accounts, uploading files, clicking through settings). No coding required. The strategy behind this system is in Your CRM Is Not a Lead Database and the full 12-month calendar is in The 12-Month CRM Touch Calendar.


    What We’re Building

    A four-to-six email annual touch sequence for three audience segments (homeowners, industry contacts, trade contacts), running through a standard email marketing platform, triggered on a predetermined calendar, and tracked in a simple Notion or spreadsheet log.

    The system requires no custom development. It uses off-the-shelf software that any non-technical person can configure in an afternoon. Total ongoing maintenance time after setup: approximately one hour per campaign, four to six times per year.


    Platform Selection: Mailchimp vs. Brevo for Restoration Companies

    Both platforms are appropriate for this use case. Choose based on your database size and send frequency:

    Choose Mailchimp if: Your database is under 1,500 contacts, you want the most widely documented platform (easiest to find help online), and you’re comfortable paying $13–$30/month. Mailchimp’s Essentials plan is sufficient — you do not need Standard or Premium for this use case.

    Choose Brevo if: Your database is over 1,500 contacts, you only send 4–6 times per year and want to avoid paying for contacts you rarely email, or you want built-in transactional email for other automations. Brevo’s Starter plan is $9/month with no contact storage limits — you pay based on emails sent, not contacts stored. For a 2,000-contact database sending 6 campaigns per year, Brevo costs significantly less than Mailchimp.

    The setup instructions below cover both platforms in parallel. Follow the path that matches your platform choice.


    Step 1: Account Setup and List Import

    Complete the database segmentation build from the CRM segmentation technical brief before starting this step. You should have three clean CSV files: Homeowners, Industry, and Trade.

    Mailchimp Setup

    1. Create account at mailchimp.com. Select Essentials plan. Enter billing info.
    2. Go to Audience → Manage Audience → Add a Field. Add two custom merge fields: JOB_TYPE (text) and SEGMENT (text). These allow personalization tokens in email copy.
    3. Go to Audience → Manage Audience → Import Contacts. Upload each CSV file separately, assigning a tag during each import: “Homeowner”, “Industry”, “Trade”.
    4. Map CSV columns to Mailchimp fields: First Name → FNAME, Last Name → LNAME, Email → EMAIL, Job Type → JOB_TYPE, Segment → SEGMENT.
    5. After import, verify contact counts match your spreadsheet totals. A mismatch usually means invalid email format in some rows — check the import error log.

    Brevo Setup

    1. Create account at brevo.com. Select Starter plan ($9/month).
    2. Go to Contacts → Lists → Create a List. Create three lists: “Homeowners”, “Industry Contacts”, “Trade Contacts”.
    3. Go to Contacts → Import Contacts. Upload each CSV, assign to the corresponding list.
    4. Map fields: First Name → FIRSTNAME, Last Name → LASTNAME, Email → EMAIL. Create custom attributes for JOB_TYPE if needed.
    5. Verify counts after import.

    Step 2: Sender Domain Authentication (Critical for Deliverability)

    This is the step most people skip and then wonder why their emails land in spam. Both Mailchimp and Brevo require domain authentication to ensure your emails are delivered to inboxes rather than spam folders. This step requires access to your domain’s DNS settings (usually managed through your domain registrar — GoDaddy, Namecheap, Google Domains, or similar).

    What Authentication Does

    SPF, DKIM, and DMARC records tell receiving mail servers that your email marketing platform is authorized to send email on behalf of your domain. Without them, major providers (Gmail, Outlook, Yahoo) increasingly route your emails to spam or refuse delivery entirely.

    Mailchimp Domain Authentication

    1. In Mailchimp, go to Account → Settings → Domains → Add and Verify Domain
    2. Enter your company domain (e.g., yourcompany.com)
    3. Mailchimp will provide you with specific DNS records to add: a CNAME record for DKIM and a TXT record for verification
    4. Log into your domain registrar and add these records exactly as shown. Allow 24–48 hours for DNS propagation.
    5. Return to Mailchimp and click “Authenticate Domain” once DNS has propagated. A green checkmark confirms success.

    Brevo Domain Authentication

    1. Go to Settings → Senders & IP → Domains → Add a Domain
    2. Enter your domain and follow the same process — Brevo provides specific DNS records for SPF and DKIM
    3. Add records at your domain registrar. Verify in Brevo after propagation.

    If your company uses a shared hosting email (e.g., yourbusiness@gmail.com rather than yourbusiness@yourcompany.com), you cannot authenticate a shared domain. In this case, create a free Google Workspace account at $6/month to get a branded email address before proceeding. Sending from info@yourcompany.com vs. yourcompany@gmail.com meaningfully affects both deliverability and perceived professionalism.


    Step 3: Build the Campaign Templates

    For the CRM community touch strategy, plain text emails outperform designed HTML templates. Research on warm, relationship-based email consistently shows that recipients perceive plain text as more personal and authentic. The goal is an email that looks like it came from a person, not a marketing department.

    Mailchimp Plain Text Campaign

    1. Go to Campaigns → Create Campaign → Email
    2. Select “Plain Text” as the campaign type (not the drag-and-drop builder)
    3. Write your email copy in the plain text field
    4. Use Mailchimp merge tags for personalization: *|FNAME|* for first name, *|JOB_TYPE|* for the custom job type field
    5. Example: “Hi *|FNAME|*, It’s [Owner Name] from [Company]. We worked with you on your *|JOB_TYPE|* job a while back…”
    6. Set up subject line, preview text, from name (use owner’s first name, e.g., “Mike from Acme Restoration”), and from email address (owner’s direct email preferred over info@ for homeowner segment)

    Brevo Plain Text Campaign

    1. Go to Campaigns → Email Campaigns → Create an Email Campaign
    2. Choose “Plain Text” from the template selection
    3. Use Brevo’s personalization tokens: {{ contact.FIRSTNAME }}, {{ contact.JOB_TYPE }}
    4. Configure sender name and address as above

    Build all six campaigns for the year in draft mode before publishing any of them. Label each draft clearly: “Q1-2026-Homeowners-Hiring”, “Q2-2026-Homeowners-Storm-Prep”, etc. This allows you to see the full year’s campaign lineup at once and catch any overlap or redundancy before it goes out.


    Step 4: Schedule the Campaign Calendar

    Mailchimp Scheduling

    1. Open each draft campaign
    2. In the Campaign Builder, go to the Schedule step
    3. Select “Schedule” and set the date and time. Use the send time optimization feature if available on your plan — it will automatically send to each contact at the time they’re most likely to open based on historical behavior.
    4. For your first campaign (no historical data), use Tuesday or Wednesday at 9:30am local time as a default

    Brevo Scheduling

    1. In the campaign builder, select “Schedule” on the final step
    2. Set date, time, and timezone
    3. Brevo’s Send Time Optimization is available on paid plans and functions similarly to Mailchimp’s

    Schedule all three segment versions of each campaign within the same 2-hour window on the same day — homeowners first, then industry, then trade — staggered by 30 minutes. This prevents simultaneous reply volume from overwhelming a single inbox.


    Step 5: Build the Results Tracking System in Notion

    Both platforms provide analytics (open rate, click rate, unsubscribes) automatically. The tracking that neither platform does is the qualitative signal — replies, referrals, leads mentioned, and relationship warmth indicators. That layer goes in Notion.

    Setting Up Notion (Free Tier)

    1. Go to notion.com and create a free account
    2. Create a new page called “CRM Touch Calendar”
    3. Add a database (table view) with the following properties:
    Property Type
    Campaign Name Title
    Send Date Date
    Segment Select (Homeowners / Industry / Trade / All)
    Touch Type Select (Operational Ask / Educational / Milestone / Seasonal)
    Platform Select (Mailchimp / Brevo / CRM)
    Status Select (Planned / Draft Ready / Scheduled / Sent)
    Open Rate Number (percent)
    Reply Count Number
    Referrals Generated Number
    Leads Mentioned Number
    Notes Text (for qualitative observations)
    1. Add all six planned campaigns for the year as rows in the database
    2. Set the Status to “Planned” for all. Update to “Draft Ready”, “Scheduled”, and “Sent” as you progress
    3. After each campaign sends, log the open rate from your email platform and manually count and log reply count, referrals, and lead mentions from your email inbox

    The Notion database becomes your campaign intelligence layer. After two or three years of data, you’ll have clear evidence of which touch types generate the highest referral rates, which segments are most engaged, and which subject lines perform best for your specific audience.


    Step 6: Set Up Reply Management

    For the homeowner and industry segments, replies to hiring emails and vendor asks often include lead mentions (“actually, our neighbor just had water get in last week”). These need to route to whoever handles incoming leads immediately, not sit in an inbox until someone reviews the campaign results.

    The simplest solution: create a dedicated email address (campaigns@yourcompany.com or outreach@yourcompany.com) as the reply-to address for all campaigns. Set up a simple email rule that forwards any reply mentioning keywords like “water”, “damage”, “claim”, “flooded”, “burst”, or “insurance” to your main dispatch email address.

    In Gmail, set this up under Settings → Filters and Blocked Addresses → Create a new filter. In Outlook, use Rules → Create a New Rule. Set the trigger to “subject or body contains” and the action to “forward to [dispatch email]”. This catches the accidental leads without requiring manual review of every reply.


    Cost Summary

    Item One-Time Monthly Annual
    Mailchimp Essentials (500 contacts) $0 $13 $156
    Mailchimp Essentials (1,000 contacts) $0 $20 $240
    Brevo Starter (unlimited contacts) $0 $9 $108
    Google Workspace (if needed for branded email) $0 $6 $72
    Notion free tier $0 $0 $0
    Email validation (one-time list clean) $5–$15 $0 $0

    Total annual cost for a fully operational system: $108–$312 depending on platform choice and contact volume. This covers 4–6 campaigns per year to a warm, segmented local database of up to 2,000 contacts.


  • CRM Segmentation for Restoration Companies: Technical Implementation Guide

    CRM Segmentation for Restoration Companies: Technical Implementation Guide

    Who this is for: The person who manages your company’s data — your office manager, operations coordinator, or IT contact. This is a technical brief. Hand it to them and say: “Build this for us.” The strategy behind it is in Your CRM Is Not a Lead Database.


    What We’re Building and Why

    A restoration company’s customer relationship system contains contacts across multiple relationship types: past homeowner clients, insurance adjusters, insurance agents, public adjusters, subcontractors, suppliers, and vendors. The business value of these contacts is currently being left on the table because they all sit in a single undifferentiated list — or worse, in multiple disconnected systems.

    This technical brief covers how to build a clean, three-segment contact database that can be exported to any email platform for the CRM community touch strategy. The output is a CSV-ready contact list with four fields: First Name, Email, Segment, and Job Type (for homeowners). The process takes 2–4 hours for a database of 200–1,000 contacts and does not require any new software purchases.


    Step 1: Audit Your Current Data Sources

    Before building the segmented database, identify every place your contact data currently lives. For most restoration companies, this is a combination of:

    • Job management software (ServiceTitan, Jobber, Xactimate, or a custom system)
    • Accounting software (QuickBooks, FreshBooks) — often contains additional contact records
    • Email inbox — years of adjuster and agent correspondence with contact info in signatures
    • Business cards and physical records — especially older trade contacts
    • Google Contacts or Outlook — personal and professional contacts mixed together
    • Social media connections — LinkedIn connections that have business relationship context

    Create a simple spreadsheet with one column per source and a rough count of contacts in each. This gives you the scope before you start merging.


    Step 2: Export Raw Data from Each Source

    ServiceTitan Export

    1. Navigate to Customers in the left sidebar
    2. Use the filter panel to select Customer Type: Residential for the homeowner segment; Commercial for business contacts
    3. Click Export → Export to CSV
    4. The export includes: customer name, address, phone, email, job history, and last job date
    5. For the homeowner segment, add a filter for jobs completed in the last 5 years to avoid very stale contacts
    6. Run a second export filtered to job type (Water Damage / Fire / Mold) to capture the Job Type field you’ll need for personalized emails

    ServiceTitan note: The export may include multiple email addresses per contact (primary and secondary). Keep both in separate columns and let the email platform deduplicate. Do not discard secondary emails — these are often more reliably checked than the primary.

    Jobber Export

    1. Go to Clients in the navigation menu
    2. Click the three-dot menu at the top right → Export
    3. Select: Client Name, Email, Phone, Service Address, Tags, Last Job Date
    4. The export is a CSV file. Open it in Excel or Google Sheets
    5. If you’ve been using Jobber’s tags feature, filter by residential/commercial tag to create your segments. If not, sort by address type manually

    Jobber note: Job type data lives in the Jobs table, not the Clients table. You’ll need to run a second export from Jobs (Reports → Job Reports → Export) and do a VLOOKUP on client ID to join job type data to client records.

    QuickBooks Export

    1. Go to Reports → Customer Contact List
    2. Customize report to include: Customer Name, Email, Phone, Balance
    3. Export → Export to Excel
    4. This gives you billing-context contacts that may not appear in your job management system (e.g., commercial billing contacts, property management companies)

    Email Inbox (for Industry Contacts)

    For insurance adjusters and agents, the most reliable data source is often your email inbox. Here’s the efficient approach:

    1. In Gmail, search for: “adjuster” OR “claims” OR “State Farm” OR “Allstate” OR “Farmers” — this surfaces the most relevant industry email threads
    2. Export these to a spreadsheet: contact name, email, company, title (from email signatures)
    3. In Outlook, use the same keyword search and export via File → Open & Export → Import/Export → Export to CSV
    4. Expect 50–200 unique industry contacts from a 3-year inbox history

    Step 3: Build the Master Contact Database

    Consolidate all exported data into a single Google Sheet or Excel workbook with the following standardized columns:

    Column Format Notes
    First Name Text Separate from Last Name for personalization
    Last Name Text
    Email Email Lowercase, validate format
    Phone Text Keep for SMS campaigns if applicable
    Segment Select: Homeowner / Industry / Trade The most important column
    Job Type Text: Water / Fire / Mold / Storm / Other Homeowners only — leave blank for others
    Job Date Date For homeowners — used to filter by recency
    City/Zip Text For geographic filtering — local contacts only
    Company Text For industry and trade contacts
    Title Text For industry contacts — Adjuster, Agent, PA, etc.
    Source Text: ServiceTitan / Jobber / QB / Email / Manual For deduplication tracking
    Email Valid Boolean: Y/N Flag after validation step
    Opted Out Boolean: Y/N Mark anyone who has unsubscribed or asked not to be contacted

    Step 4: Deduplicate

    If you’ve pulled from multiple sources, you will have duplicates. Deduplication is the most tedious part of this process but cannot be skipped — sending the same person two emails from the same campaign is a trust-breaker.

    In Excel:

    1. Select the Email column
    2. Data → Remove Duplicates → check “Email” as the key column
    3. Review the flagged duplicates before deleting — sometimes two records with the same email represent different relationship types (e.g., someone who was both a homeowner client and is now an adjuster). Keep the record with the more current relationship type in the Segment field.

    In Google Sheets:

    1. Add a helper column with formula: =COUNTIF($B:$B, B2) where column B is Email
    2. Filter for values greater than 1 to find duplicates
    3. Manually review and merge or delete

    After deduplication, sort by Segment and do a manual spot check of 10 records per segment to verify the segmentation logic is correct.


    Step 5: Validate Email Addresses

    Sending to invalid email addresses hurts your sender reputation with your email platform, which reduces deliverability over time. Before importing into Mailchimp, Brevo, or any other platform, run a basic email validation pass.

    Free option: Hunter.io offers 25 free email verifications per month. For a list under 500, their free tier covers a meaningful sample. Upload your list and verify the top contacts by relationship quality.

    Paid option for large lists: NeverBounce or ZeroBounce. Both charge approximately $0.003–$0.008 per email verification. For a 500-contact list, total cost is under $5. Both services flag invalid addresses, role-based addresses (info@, support@), and disposable email domains. Remove all flagged emails before import.

    Manual validation for high-value contacts: For your top 20–30 industry contacts (key adjusters, major agents), manual verification is worth it. Send a quick personal email asking them to confirm their preferred contact info. This also serves as a warm re-introduction before your first campaign.


    Step 6: Import to Your Email Platform

    Export your clean, validated, segmented contact database as three separate CSVs — one per segment — and import into your email platform of choice.

    Mailchimp Import

    1. Go to Audience → Manage Audience → Import Contacts
    2. Upload CSV → Map columns to Mailchimp fields (First Name → FNAME, Email → EMAIL, Job Type → custom merge tag JOB_TYPE)
    3. Assign a tag to each import: “Homeowner-2026”, “Industry-2026”, “Trade-2026”
    4. Important: Do not create three separate Audiences. Use one Audience with tags. Mailchimp charges per contact, not per audience, but managing one audience with tags is significantly easier than managing three separate ones.

    Brevo Import

    1. Contacts → Import Contacts → Upload CSV
    2. Map fields and create a list per segment: “Homeowners”, “Industry”, “Trade”
    3. Brevo stores contacts once even if they appear in multiple lists — no duplicate billing risk

    ServiceTitan or Jobber Built-In Email

    If using the CRM’s native email for homeowner segments, the import step is not necessary — your homeowner data is already in the system. Create a saved filter for the homeowner segment you want to target and use it directly when setting up a campaign.


    Step 7: Establish Ongoing Data Hygiene

    The segmented database is only valuable if it stays current. Establish these three practices:

    1. New client email capture at intake: Make email address a required field in your job intake form. In ServiceTitan, add it to the customer create form. In Jobber, it’s already a standard field — enforce it.
    2. Post-job segment tagging: After every job closes, tag the homeowner record in your CRM with the job type. One minute of work per job prevents hours of data cleaning later.
    3. Quarterly list audit: Set a recurring quarterly reminder to archive Mailchimp/Brevo contacts who unsubscribed in the previous quarter. Mailchimp charges for unsubscribed contacts unless they’re manually archived — this is a real cost that many companies pay unknowingly.

    Tools Summary and Costs

    Tool Purpose Cost
    ServiceTitan Job data export Included in your existing plan
    Jobber Client data export Included in your existing plan ($39–$599/mo)
    Google Sheets or Excel Master database build and deduplication Free (Google Sheets) or included in Office
    Hunter.io Email validation (small lists) Free up to 25/month
    NeverBounce or ZeroBounce Email validation (larger lists) ~$4–8 per 1,000 emails
    Mailchimp Essentials Email platform for segmented sends $13–$30/month for most restoration databases
    Brevo Starter (alternative) Email platform, priced by sends not contacts $9/month for up to 5,000 emails/day

    Total one-time setup cost: $0–$15 (validation only). Ongoing monthly cost: $9–$30 (email platform). Total annual cost for a 500-contact database running 6 campaigns per year: under $400, including all platform fees.


    Frequently Asked Questions

    What if our job management software isn’t ServiceTitan or Jobber?

    Any job management platform with a client list has an export function — check the Reports or Clients section for CSV export. The field names will differ but the process is the same: export, standardize column names in a spreadsheet, segment, import to email platform. If your software doesn’t support export, contact their support team — this is a standard feature and they will walk you through it.

    How long does the initial database build take?

    For a company with 200–500 contacts across two or three sources, expect 3–6 hours for a first-time build. After the initial build, ongoing maintenance is 30–60 minutes per quarter. If you have 1,000+ contacts across four or more sources, budget a full day for the initial consolidation and deduplication.

    Do we need a dedicated person to manage this?

    No. Once built, the database requires 30 minutes per quarter to maintain and an hour to set up each campaign. This is appropriate for an office manager or administrative coordinator, not a dedicated data or marketing role.


  • How to Re-Engage Past Homeowner Clients: The Restoration Company’s Most Underused Asset

    How to Re-Engage Past Homeowner Clients: The Restoration Company’s Most Underused Asset

    You spent somewhere between $150 and $500 to acquire them as a customer. They let your crew into their home during one of the worst weeks of their year. They watched how your company handled the stress, the communication, the insurance company, and the work. They paid the invoice and you never talked to them again.

    That’s the standard lifecycle for a residential restoration client. Job complete. File closed. Move on.

    It is also one of the most expensive mistakes in service business marketing.

    This guide is specifically for restoration company owners who want to re-engage their past homeowner client database — not to sell them anything, but to stay in the one place that generates the majority of residential restoration revenue: the mental file where people store companies they trust enough to recommend.

    The full strategy behind this is in Your CRM Is Not a Lead Database. This article focuses entirely on the homeowner — who they are after the job, how they think about your company, and exactly what to say to stay close to them without ever sending a sales email.


    What a Past Homeowner Client Actually Knows About You

    Before you decide what to say, understand what you’re working with.

    A past homeowner who had water damage, fire damage, or mold remediation knows things about your company that no amount of advertising can convey:

    • Whether your crew showed up when they said they would
    • Whether your project manager communicated clearly during a stressful situation
    • Whether you dealt with the insurance company honestly and professionally
    • Whether the final result matched what was promised
    • Whether they felt like a number or a person during the process

    If the job went well, that homeowner has a level of personal, experience-based trust in your company that no review, ad, or testimonial can manufacture for a stranger. They are your best possible referral source — and most restoration companies never contact them again after the final invoice.

    The homeowner who experienced a good restoration job doesn’t need to be sold on you. They need to be reminded you exist when the question comes up.


    The Referral Moment: When It Happens and How to Be Ready

    Referrals from past homeowner clients in restoration follow a predictable trigger pattern. Someone in their life — a neighbor, a family member, a coworker — experiences a property damage event and asks if they know a good company. Or they see water damage in a friend’s home at a dinner party. Or a Facebook group post asks “does anyone know a good restoration company in [city]?”

    In that moment, your company’s name either comes up or it doesn’t. The deciding factor is not the quality of your work — it’s whether your name is still accessible in their memory.

    Memory fades. The homeowner whose crawlspace you dried out two years ago has had two years of other companies, experiences, and information go through their head since then. Your name is still there, but it’s not on top. A single relevant, human email can move it back to the surface — and keep it there for the next six months.

    This is why the timing of your re-engagement touches matters. You want to be in their inbox in the six weeks before they’re most likely to get the referral question: pre-storm season, pre-winter freeze, late summer when people are finishing renovations and talking about their homes.


    The Homeowner Re-Engagement Framework: Four Touches That Work

    None of these emails ask for anything directly. They don’t include CTAs, offers, or discounts. They are human moments that remind the homeowner your company is real, active, and cares about the people it’s worked with.

    Touch 1: The Hiring Referral Ask

    This is the full template and strategy from The Hiring Email Guide. The key adaptation for homeowners: keep it personal, reference the job you did for them if you have the data, and make it clear you value their opinion specifically.

    Why it works for homeowners specifically: most people feel genuinely pleased when a company they liked asks for their help. It confirms that the relationship mattered, not just the transaction. And it gives them something concrete to do for you — which strengthens the connection in both directions.

    Touch 2: The Pre-Season Safety Resource

    A one-page checklist relevant to the season and your service area. Before winter freeze: pipes, outdoor faucets, sump pump, HVAC filters, emergency shutoff location. Before storm season: gutters, roof inspection, tree branches near the house, sump pump backup power. Before dry season in wildfire-prone areas: defensible space, ember-resistant vents, gutter debris.

    The email copy is simple: “As we head into [season], I wanted to send along a quick checklist for your home. This is the stuff our crews see preventable damage from every year. Hope it’s useful.” Link to a longer blog post if you have one. No offer. No CTA. Three sentences.

    Touch 3: The Neighbor / Community Check-In After a Local Event

    When a major weather event, storm, or flood affects your service area, email your homeowner database within 48 hours. Not to generate leads — to be human. “We had a lot of calls come in after the [event] this week. If you or anyone nearby had any water get in, don’t hesitate to reach out. We’re also happy to give a free look at anything you’re not sure about.”

    This email serves two purposes. For homeowners who weren’t affected, it’s a reassuring reminder that you’re active and nearby. For homeowners who were affected or know someone who was, it’s a perfectly timed offer. The lead-gen outcome is real but secondary — the primary value is showing up when the community needs it.

    Touch 4: The Annual Thank-You

    Once a year, send a short personal note. Company anniversary. Year-end. Start of a new year. Something that says: “We’ve been at this for [X] years / We just finished our busiest year / As we head into [year], I wanted to thank the people who’ve trusted us with their homes.” Short. Personal. From the owner.

    This is the email that gets forwarded. It’s the email that the homeowner’s spouse reads over their shoulder and says “that’s a nice company.” It’s the email that sits in their inbox for three days before they archive it, because it’s hard to throw away something that made them feel good. It doesn’t ask for anything. That’s why it works.


    The Data You Need and Where to Find It

    The homeowner re-engagement strategy requires three pieces of data per contact: name, email address, and job type. Everything else is bonus.

    In ServiceTitan: Navigate to Customers → Export. Filter by customer type (Residential) and job type (Water / Fire / Mold). Export includes name, email, job date, job type, and address. This is your homeowner segment.

    In Jobber: Go to Clients → Export. Filter by client tag or service type if you’ve been tagging jobs. If you haven’t been tagging, export all residential clients and sort manually by job description.

    In a spreadsheet-based system: Your completed job list is your database. Sort by date, filter to residential, and pull the contact info. If you only have phone numbers and no emails, a 30-second re-engagement call (“We’re updating our contact records — can I get the best email for you?”) adds significant long-term value. Make it part of your job closeout process going forward.

    One piece of bonus data that dramatically improves the homeowner email: the job type. “We worked with you on your water damage job” is far more personal than a generic greeting. Even a simple job-type column in your export — Water / Fire / Mold / Storm — lets you add one sentence of relevant, personal context that makes the email feel like it came from someone who actually remembers the job.


    The Copy: Homeowner Version Templates

    These are written for the owner to send directly. Plain text. Short. Human.

    The Water/Fire/Mold Job Acknowledgment (for when you have job data)

    Subject: Quick note from [Company Name]

    Hi [First Name],

    It’s [Your Name] from [Company Name]. We had the pleasure of working with you on your [water damage / fire damage / mold issue] on [street or neighborhood] — hoping everything has held up well since then.

    I’m reaching out because we’re [hiring / looking for a sub / putting together our community resource list] and I find that the best leads on great people usually come from the people whose homes we’ve worked in. If anyone comes to mind — a family member, a neighbor, a friend looking for a good company or good work — I’d love to hear from you.

    Either way, thank you for letting us be part of getting your home back to normal. It’s work we take seriously.

    [Your Name]
    [Phone]


    The Pre-Season Safety Version

    Subject: Before freeze season — quick home checklist from us

    Hi [First Name],

    As we head into winter, I wanted to send along a quick checklist — the stuff our crews see people wish they’d done before the cold hit.

    Three things worth checking this week:
    1. Know where your main water shutoff is (and test it)
    2. Disconnect garden hoses and drain outdoor faucets
    3. Check your sump pump — run a bucket of water through it

    We wrote up a longer version here if it’s useful: [link to blog post]

    Stay warm — and if you ever need anything, we’re always here.

    [Your Name]
    [Company Name]
    [Phone]


    The Post-Storm Check-In

    Subject: Checking in after the [storm/flooding/event] this week

    Hi [First Name],

    With everything that happened this week in [city/region], I wanted to reach out to the homeowners we’ve worked with in the past just to check in.

    If you had any water get in — or if someone you know did — we’re here. We can swing by for a free look at anything you’re not sure about. No obligation, just want to help if it’s useful.

    Hope you and yours came through it fine.

    [Your Name]
    [Company Name]
    [Phone]


    Using Claude to Personalize at Scale

    If you have a database of 300+ past homeowner clients, personalizing every email manually isn’t realistic. But the difference between a generic blast and a mildly personalized email is significant — and Claude can help you close that gap at scale without coding.

    Here’s the practical workflow:

    1. Export your homeowner list with at minimum: First Name, Job Type, Neighborhood or Street (not full address), Completion Date
    2. Open Claude at claude.ai and paste the following prompt:

    “I’m going to give you a list of past restoration clients. For each one, write a personalized version of the following email template, inserting the First Name, referencing the Job Type naturally (e.g., ‘your water damage job’ or ‘after the fire at your place’), and if the job was more than 18 months ago, add a line like ‘it’s been a while since we talked.’ Keep each version under 150 words. Template: [paste template]. Client list: [paste CSV rows, 20 at a time].”

    1. Copy each personalized version into your email platform as a separate email, or use mail merge if your platform supports it
    2. Review 10% of outputs before sending — Claude’s personalization is reliable but not perfect, and a weird phrasing on a homeowner email is worse than no personalization at all

    This process adds 45–90 minutes to the campaign setup but meaningfully increases the human feel of the emails. The reply rates for personalized homeowner outreach are consistently higher than generic blast versions.


    Frequently Asked Questions

    Is it weird to contact a homeowner years after their job is done?

    Only if the email feels like a sales pitch or they don’t remember who you are. If the email is genuinely human, references the job briefly, and doesn’t ask for their business, most homeowners respond positively. People like hearing from companies they had a good experience with. The ones who don’t want to hear from you will unsubscribe, which is useful information.

    What if we don’t have email addresses for most past clients?

    Start collecting them systematically from today — at job intake, at closeout, and during the final walkthrough. For your existing database, a brief re-engagement call works: “We’re updating our records, can I get the best email for you?” Many homeowners will give it. Even building to 40–50% email coverage on your historical database is hundreds of warm reach opportunities.

    How do we handle homeowners who had a bad experience?

    Don’t filter them out manually at first — you may not remember every job. If someone who had an issue unsubscribes or replies with a complaint, handle it directly and professionally. A private, personal response to a complaint that surfaces through a re-engagement email is often more relationship-repairing than the original issue was damaging. But if you know a specific job went badly, use your judgment on whether to include them.

    Should we segment by job type (water vs. fire vs. mold)?

    For general touches like the seasonal safety email or the company milestone, no — the message is the same. For highly specific touches (e.g., a resource specifically about mold prevention in humid climates), segmenting by job type allows you to reference their specific experience. If your email platform supports segmentation and you have the data, do it. If it adds complexity that would prevent you from sending at all, skip it — a non-segmented send is better than no send.


  • The 12-Month CRM Touch Calendar for Restoration Companies

    The 12-Month CRM Touch Calendar for Restoration Companies

    The hiring email works. The vendor ask works. The educational resource works. The problem is that none of them happen consistently unless they’re on a calendar with an owner, a template, and a send date.

    This article is the hub of the entire CRM Community Framework — the piece that turns a good idea into a running system. Everything in the strategy described in Your CRM Is Not a Lead Database lives or dies by whether it gets scheduled.

    What follows is a full 12-month outreach calendar for a restoration company, built around legitimate business triggers. Every touch has a reason that isn’t “we want to sell you something.” Every touch reinforces that your company is active, professional, and thinks of its network as more than a lead source.


    The Architecture: Four Touch Types Across Twelve Months

    A sustainable touch cadence has four types of emails distributed across the year. Too many of one type and it starts to feel like a newsletter you never asked for. The right mix keeps the relationship varied, human, and genuinely useful.

    Type 1: Operational Ask (2x per year)

    A real business need: hiring, vendor search, supplier sourcing. These are your highest-engagement emails because recipients can actually help you with something concrete. They feel useful to the sender. Covered in detail in the hiring email guide and the vendor ask guide.

    Type 2: Educational Resource (2x per year)

    A genuinely useful piece of content — a seasonal maintenance checklist, a guide to what to do in the first 24 hours after a pipe burst, a “what your insurance actually covers” plain-language explainer. No CTA beyond “thought you’d find this useful.” The goal is to be the trusted expert in their inbox, not the company asking for something.

    Type 3: Company Milestone or Update (1x per year)

    An anniversary, a new certification, a new service area, an award or recognition. Framed around what it means for the people in your network — not as a press release. “We just hit five years and I wanted to thank the people who’ve trusted us with their homes and their claims.” This is the most relationship-dense email of the year and the one most restoration companies never send.

    Type 4: Seasonal Safety or Storm Alert (1x per year)

    Before major storm season, freeze season, or wildfire season depending on your geography, a brief heads-up email positions you as the local expert who thinks about their community’s safety. No pitch. Just: “Freeze season is coming — here are three things to check in your home before temps drop.” A link to a longer blog post if they want more detail. Short, local, relevant.


    The 12-Month Calendar Template

    Adapt the timing based on your region and business cycle. The example below assumes a general U.S. market with standard restoration seasonality (storms in spring/summer, freeze in winter). Adjust as needed.

    January: Seasonal Safety Email

    Type: Type 4 — Seasonal Safety
    Audience: Full database
    Trigger: Winter freeze season
    Content: “Three things to check before a hard freeze” — pipes, outdoor faucets, HVAC filters, sump pump. Link to a full blog post if you have one. 150 words max.
    Why it works: January is a low-activity month for most homeowners. A helpful, non-promotional email from a company they already trust is genuinely welcome.

    March: Hiring Email (if applicable) OR Vendor Ask

    Type: Type 1 — Operational Ask
    Audience: Three segments (homeowners, industry, trade)
    Trigger: Spring hiring cycle begins, or sourcing subs for storm season
    Content: Use the templates from the hiring or vendor guides. If you’re not hiring, a specialty sub search ahead of storm season is always relevant in Q1/Q2.
    Why it works: Spring is when most restoration companies start ramping for busy season — hiring and vendor sourcing at this time is authentic and expected.

    May or June: Educational Resource

    Type: Type 2 — Educational Resource
    Audience: Homeowners only
    Trigger: Pre-storm season
    Content: “Your storm prep checklist for [your region]” — gutters, roof, trees near the house, emergency kit, insurance policy review. One page. No CTA other than “save this somewhere useful.”
    Why it works: This email will be forwarded. Homeowners share safety resources with neighbors and family. It’s one of the highest organic-reach emails you’ll send all year.

    August or September: Company Milestone Email

    Type: Type 3 — Company Update
    Audience: Full database
    Trigger: Company anniversary, new certification (IICRC, RIA), new service area, or team growth milestone
    Content: Short, personal note from the owner. Thank the people who’ve been part of the journey. Mention what’s new. No ask. Just appreciation.
    Why it works: Late summer is a natural “back to business” moment. A warm, human email from a company you’ve worked with is a pleasant interruption in a busy inbox.

    October or November: Hiring OR Vendor Ask (second round)

    Type: Type 1 — Operational Ask
    Audience: Three segments
    Trigger: Pre-winter hiring, or sourcing vendors for year-end projects
    Content: Second operational ask of the year. If you hired in March, this is a different position or a referral partner ask. Vary the type so it doesn’t feel like a pattern.
    Why it works: Fall is another natural hiring window. And year-end is when restoration companies start planning vendor relationships for the coming season.

    December: Educational Resource (Optional)

    Type: Type 2 — Educational Resource
    Audience: Homeowners
    Trigger: Holiday season, travel, and winter property risks
    Content: “What to check before you leave for the holidays” — water shutoff, thermostat settings, emergency contacts. Optional — if you already sent a freeze checklist in January, this may feel redundant. Only send if the content is genuinely different and useful.
    Why it works: December holiday homeowner emails have strong open rates because they’re immediately relevant to something the homeowner is actively thinking about.


    The Minimum Viable Calendar: If You Do Nothing Else

    If the full six-touch calendar feels like too much to start, here is the two-email annual minimum that will still meaningfully move the needle:

    1. March or April: One operational ask (hiring or vendor). Three segments. Uses the templates from the other guides in this series.
    2. June or July: One educational resource (storm prep checklist). Homeowners only. No CTA.

    Two emails per year to a warm local database of 400–800 contacts will reach more people with a higher quality impression than $2,000 spent on Facebook ads to a cold audience. The bar is genuinely that low — because almost nobody in the restoration industry is doing this at all.


    The Technical Setup: Building the Calendar in Notion

    The Notion free tier (available at notion.com — free for individuals and small teams) is sufficient for this system. You need one database with the following properties:

    Property Type Purpose
    Email Name Title What this touch is called
    Send Date Date Scheduled send date
    Touch Type Select Operational Ask / Educational / Milestone / Seasonal Safety
    Audience Select Full Database / Homeowners / Industry / Trade
    Platform Select Mailchimp / Brevo / CRM / Direct
    Status Select Planned / Draft Ready / Scheduled / Sent
    Template Link URL Link to the draft in Mailchimp or the Notion doc with the copy
    Results Text Open rate, replies received, referrals generated

    Create a calendar view of this database filtered to the current month. Every Monday, glance at it. If something is sending in the next two weeks and isn’t in “Draft Ready” status, that’s your action item for the week.

    Set the following Notion reminders on each row: 14 days before send date (“write/review draft”), 3 days before send date (“schedule in email platform”), 1 day after send date (“log results”).


    Connecting the Calendar to Your Email Platform

    For Mailchimp Users

    Build a campaign for each email in advance using Mailchimp’s campaign drafts feature. Give each draft a name that matches the Notion database row (e.g., “March 2026 — Hiring Email — Homeowners”). When the draft is ready, link it in the Template Link field of your Notion row. Schedule it in Mailchimp 3 days before your intended send date so you have time to make last-minute adjustments. After sending, pull the open rate and reply count from Mailchimp’s Reports tab and log them in the Results field in Notion.

    For Brevo Users

    Brevo’s Campaigns section works the same way — drafts can be built in advance and scheduled. Brevo’s analytics are straightforward: open rate, click rate, unsubscribes. Log these in Notion after each send.

    For CRM-Native Email (Jobber or ServiceTitan)

    Neither platform has robust campaign scheduling, so the process is more manual. Build the email copy in Notion, then on the scheduled send date, copy it into your CRM’s email function and send manually. Log results in Notion immediately after.


    Using Claude to Maintain the Calendar Year Over Year

    After your first year running this system, you’ll have a Notion database with six email records, each containing the copy, the results, and the audience. In year two, you don’t start from scratch — you improve what worked and adjust what didn’t.

    Here’s a prompt you can use at the start of each year to refresh your calendar with Claude:

    “I run a restoration company in [city] and I send 4–6 emails per year to my CRM database to stay top of mind. Here are the emails I sent last year and their results: [paste Notion export]. Based on these results and the current time of year ([month]), help me plan this year’s calendar. Suggest which touch types to repeat, which to update, and any new ones that might be relevant given [any business changes — new service area, new certifications, team growth, etc.]. Keep the total to 4–6 sends.”

    This is the compound interest of the system — each year’s data makes next year’s calendar smarter and more targeted.


    The Results You Should Expect

    Realistic benchmarks for a warm local restoration CRM database of 300–800 contacts:

    • Open rate: 30–45% for operational asks and seasonal safety emails; 25–35% for educational resources; 40–55% for the company milestone email (people open personal notes)
    • Reply rate: 2–8% on operational asks (higher for the hiring email in our experience); under 1% on educational content (they read, they don’t reply)
    • Referral rate: 0.5–2% per operational ask email (so 2–16 referrals per campaign for a 800-contact list)
    • Lead mentions in replies: Expect 1–4 per operational ask campaign from homeowners who mention a neighbor or family member who “just had something happen”

    These numbers are modest. The cumulative effect across 4–6 touches per year is not. A company that consistently runs this system for three years has touched every warm contact in their database 12–18 times with relevant, human, non-salesy content. That is a referral pipeline that no Google Ads campaign can build.


    Frequently Asked Questions

    How do I know if I’m emailing too much?

    Watch your unsubscribe rate. For a warm local database, a healthy unsubscribe rate is under 1% per campaign. If you’re consistently seeing 2–3%+ unsubscribes, reduce frequency or audit whether your content is genuinely useful vs. promotional.

    Should every touch include an offer or discount?

    No. This is the most important rule of the system. The moment your CRM emails start offering 10% off water damage mitigation, you’ve converted them from relationship touches into promotional emails. Your contacts will start treating them as such — lower open rates, more unsubscribes, zero referrals. Keep the strategy clean: no promotions, no CTAs, no discounts. Just presence.

    What if we miss a planned send date?

    Send it anyway, or skip it and move to the next one. A late educational resource is still useful. A late hiring email is no longer authentic if you’ve already filled the position. Use your judgment — the goal is consistency over perfection, and six emails per year gives you enough margin that a missed one doesn’t break the system.

    Can we automate any of this?

    The scheduling and platform side can be automated — Mailchimp sequences can be set to send automatically on a schedule. The content should not be fully automated. Each touch should have a human review before it goes out, especially the operational asks and the milestone email. The value of this system comes from its authenticity. Automation can help with logistics; it cannot replace judgment.


  • The Vendor Ask Email: How Restoration Companies Turn Operational Needs Into Community Touchpoints

    The Vendor Ask Email: How Restoration Companies Turn Operational Needs Into Community Touchpoints

    You need a reliable drywall sub. Or a specialty cleaning supplier. Or a caterer for your company appreciation event. Or an electrician you can confidently refer to homeowners after the remediation is done.

    These are real operational needs that every restoration company has constantly. Most owners solve them the hard way — Google searches, calls to other contractors, trial-and-error with vendors they find cold. What almost nobody does is the obvious thing: ask the 600 people in their database who already know and trust their company.

    This guide covers the vendor and supplier outreach strategy — the second major touchpoint in what we call the CRM Community Framework. You don’t need a new hire to execute this. You need one email, one segment, and 30 minutes.


    Why This Works When Cold Outreach Doesn’t

    When you post a vendor search on a trade forum or send a cold email to a supplier you found online, you’re a stranger. The vendor has no context for who you are, what volume you do, or whether you pay on time. The relationship starts at zero.

    When you email your CRM database with a vendor ask, every person receiving that email has a prior relationship with your company. Past homeowner clients know you did good work and were professional. Insurance adjusters have worked claims with you. Subcontractors know how you run a job. These are warm introductions waiting to happen — you just have to ask for them.

    And here’s the secondary benefit that most owners miss: even the contacts who don’t know a vendor are being reminded that your company is active, growing, and doing interesting projects. A vendor ask email signals operational health. Companies that are struggling don’t post on social media or send emails about sourcing suppliers for interesting projects. It is passive brand maintenance disguised as a practical business email.


    The Vendor Ask Taxonomy: What’s Worth Sending

    Not every operational need warrants a database email. The test is simple: would a genuinely good referral from someone in my network be more valuable than what I’d find cold? If yes, send it. Here are the categories that consistently pass that test:

    Specialty Subcontractors

    Drywall, painting, flooring, HVAC, electrical, plumbing. Any trade you regularly need for rebuild phases but don’t always have on contract. Your past clients include property managers, contractors, and homeowners who’ve renovated — they know tradespeople. Your adjusters know everyone in the local restoration and construction ecosystem. This is your highest-yield vendor ask category.

    Specialty Suppliers

    A new product line you’re adding (e.g., antimicrobial coatings, specialty cleaning agents), equipment suppliers you haven’t worked with, or a specific vendor for a material type you don’t use regularly. Your trade contacts and vendor network are the right audience for this one.

    Service Vendors for Your Own Business

    Catering for a company event. A photographer for updated headshots or job site documentation. A branded merchandise vendor for uniforms or promotional items. A commercial cleaning company for your shop or vehicles. These asks go to your full database — homeowners and industry contacts alike. They’re genuinely human asks that anyone could help with.

    Referral Partners for Post-Job Services

    The restoration job is done. Now the homeowner needs a good contractor for reconstruction, a HVAC tech for the system you flagged, or a structural engineer to sign off on something. Building a trusted referral list for these services is valuable for your clients and your reputation. Email your database: “We’re looking for a structural engineer we can confidently recommend to clients in the [market] area. If you know someone exceptional, I’d love an introduction.”


    The Email Copy: Vendor Ask Templates

    Same rules as the hiring email: short, plain text, personal tone, no sales pitch. The vendor ask should feel like a text message from a professional, not a procurement RFP.

    Template A: Specialty Sub Search (Full Database, Local Filter)

    Subject line: Looking for a great [trade] sub in [city/region] — know anyone?

    Hi [First Name],

    Quick ask — we’re working on a larger project coming up and are looking for a reliable [drywall / flooring / painting / electrical] subcontractor in the [city] area. Someone who does quality work and communicates well.

    If you know anyone in the trades who fits that description, I’d love a quick introduction. Just reply here with their name and contact info and I’ll take it from there.

    Thanks in advance, and hope you’re doing well.

    [Your Name]
    [Company Name]
    [Phone]


    Template B: Referral Partner Ask (Full Database)

    Subject line: Building our referral network — do you know a great [contractor type]?

    Hi [First Name],

    One thing we try to do well is connect our clients with trusted professionals for the work that comes after our part is done. We’re currently building out our referral list for [reconstruction contractors / structural engineers / HVAC techs / general contractors] in the [region] area.

    If you’ve worked with someone exceptional and would trust a personal recommendation, I’d genuinely appreciate the introduction. We’re not looking for a business arrangement — just trying to build a list of people we’d feel confident referring to our clients.

    Reply any time. And as always, if you ever need anything from us, don’t hesitate.

    [Your Name]
    [Company Name]


    Template C: Event Vendor or Business Service (Warm Contacts, Full Database)

    Subject line: Random ask — do you know a good [caterer / photographer / printer]?

    Hi [First Name],

    Totally different kind of email from me — we’re putting together a company appreciation event this spring and I’m looking for a caterer in the [city] area who does great work for smaller groups. Anything in the 30–50 person range.

    If you have a go-to recommendation, I’d love to hear it. Reply here and I’ll reach out directly.

    Hope things are good on your end.

    [Your Name]


    The Technical Setup: Same Infrastructure, Different List

    If you’ve already built the three-segment email setup from the hiring email guide, you’re 80% done. The vendor ask uses the same list infrastructure. The only question is which segments receive which version:

    • Specialty sub search: Send to all three segments. Homeowners know tradespeople. Adjusters know the construction ecosystem. Trade contacts know it best of all.
    • Referral partner ask: Send to homeowners and industry contacts. Trade contacts already know your referral landscape.
    • Event vendor / business service: Send to your full database. This is a fully human ask that anyone could help with.

    One tactical addition for vendor asks vs. hiring emails: consider adding one line at the bottom that invites the vendor themselves to reach out if the ask describes their own business. “If this describes you or your company, feel free to reply directly.” This occasionally turns a referral request into a direct vendor relationship.


    Building This Into a System: The Notion Vendor Tracker

    The vendor ask email generates two kinds of value: immediate referrals and long-term intelligence about who in your network knows whom. To capture both, build a simple tracker in Notion (free tier works fine for this).

    Your Notion Vendor Tracker needs four database properties:

    1. Vendor Name — the business or person being referred
    2. Trade/Service Type — what they do
    3. Referred By — which contact in your database made the referral (linked to your contact database)
    4. Status — Contacted / Vetted / Active Vendor / Not a Fit

    Every reply to a vendor ask email gets a row in this database. After 12 months of running this strategy quarterly, you’ll have a vendor intelligence layer that no competitor can replicate — because it came from your specific network, not a cold search.

    The Referred By column is especially valuable. Over time, you’ll see which contacts in your database are the most connected and most likely to generate useful introductions. These are your super-connectors. They deserve extra attention in your community touch cadence.


    Using Claude to Write Vendor Ask Emails for Any Scenario

    The templates above cover the most common scenarios. For anything else, here are four prompts you can paste directly into Claude at claude.ai:

    For a specialty sub search:

    “Write a short, plain-text email from a restoration company owner to their past client database. We’re looking for a reliable [trade type] subcontractor in [city/region] for an upcoming project. The tone should be warm and direct — like a personal note, not a business solicitation. Ask if they know anyone who does quality work in this trade. Keep it under 100 words. Sign it from [owner name] at [company name].”

    For a referral partner ask:

    “Write a short email from a restoration company owner to insurance adjusters and past clients. We’re building a referral list of trusted [contractor type / engineer type] for post-restoration work, and we’re asking our network for recommendations. We’re not offering a referral fee — just trying to build a list of people we’d feel comfortable referring our clients to. Keep it under 120 words, conversational tone.”

    For an event vendor ask:

    “Write a casual, friendly email from a business owner to their contact list asking for a recommendation for a [caterer / event space / photographer] for a small company event of about [number] people in [city]. It should feel like texting a friend, not a business email. Under 80 words.”

    For customizing to your market:

    “I run a restoration company in [city] that handles residential water, fire, and mold jobs. My typical CRM contact is a homeowner who had a claim 1–3 years ago, or an insurance adjuster I’ve worked with on claims. Write a vendor ask email to this audience for [specific need]. Match the tone of this example from our company: [paste an example email you’ve written].”


    Frequently Asked Questions

    How is a vendor ask email different from spam?

    The key difference is relationship context. You’re emailing people who have a prior relationship with your company — they’ve worked with you, used your services, or referred you business. A genuine operational ask to a warm contact is fundamentally different from unsolicited commercial email. The contacts who don’t want to hear from you will unsubscribe; the contacts who are engaged will stay and, often, reply.

    What if the vendor ask generates more replies than we can handle?

    This is a good problem to have, and it’s unlikely. A typical vendor ask to a 500-contact list generates 5–20 replies. Log each one in your Notion tracker, respond within 24 hours, and prioritize follow-up by referral quality. If volume becomes a real issue, add a line to the email: “If you have a recommendation, please reply by [date] so I can review all suggestions together.”

    Should we offer to reciprocate referrals?

    Yes, naturally, but don’t make it transactional in the email. A line like “We’re always happy to refer business your way as well” is appropriate in the trade contacts version. In the homeowner version, keep it purely human — you’re not negotiating a referral exchange with someone who had a water loss two years ago.

    What’s the difference between this and a referral fee program?

    A referral fee program creates a financial incentive structure. This strategy creates a community touchpoint. The distinction matters because the motivation for helping you is different — people who respond to this email are doing it because they like you and want to be helpful, not because they’re chasing a check. That’s a different kind of relationship and a stronger one long-term.


  • The Restoration Hiring Email: How to Turn a Job Posting Into a CRM Community Touch

    The Restoration Hiring Email: How to Turn a Job Posting Into a CRM Community Touch

    You have a job to fill. You’ve probably already drafted the Indeed posting. Before you publish it, spend 20 minutes doing something that will generate better candidates, cost nothing, and quietly remind 400 warm contacts that your company exists.

    Send an email to your entire local database.

    This guide is the tactical companion to the strategic case for treating your CRM as a community. That article explains why this works. This one tells you exactly how to do it — the segments, the copy, the timing, and the follow-up. Take this document and hand it to whoever manages your email or your CRM. They can have the campaign out this week.


    Before You Write a Word: Pull and Segment Your Database

    The hiring email only works if it feels personal. A generic blast to a mixed list feels like spam. Three short, targeted emails to three different audiences feel like a phone call from someone who respects the relationship.

    Your minimum viable segmentation is three groups:

    Segment 1: Past Homeowner Clients (Local Only)

    Filter your CRM or job management software for residential jobs completed in your service area in the last three to five years. If your system is ServiceTitan or Jobber, you can export this directly from the customer list filtered by job type and zip code. If you’re on a spreadsheet, sort by city or zip and pull anything within your service radius.

    What you’re looking for: name, email address, job completion date, and job type (water, fire, mold, etc.). You don’t need anything else for this email.

    Segment 2: Industry Contacts (Adjusters, Agents, Public Adjusters)

    These are the professional referral relationships in your CRM — insurance adjusters you’ve worked with on claims, agents who have sent you referrals, PAs you’ve collaborated with. Filter by contact type if your CRM supports it, or manually tag this group.

    Segment 3: Trade Contacts (Vendors, Subs, Partners)

    Suppliers, subcontractors, and trade partners. These people understand your business from the inside and often have the strongest networks within the trades workforce.

    If your database is in ServiceTitan: navigate to Customers → Export, then filter by customer type. For Jobber: go to Clients → Export CSV. For a spreadsheet: create a column called “Segment” and sort manually. The whole segmentation process for most restoration companies takes under an hour.


    The Email Copy: Three Versions, One Campaign

    Each version is short. The goal is a 90-second read that feels like a note from a real person, not a marketing email. Do not use HTML templates with banners and logos. Plain text or minimal formatting performs significantly better for relationship-based emails. No header image. No footer with six social icons. Just your name, your company, and the ask.

    Version 1: Past Homeowner Clients

    Subject line: Quick question — do you know anyone looking for good work?

    Hi [First Name],

    It’s [Your Name] from [Company Name]. We had the pleasure of working with you on your [water/fire/mold] job at [property address or neighborhood] — hope everything has been holding up well since then.

    I’m reaching out because we’re growing. We’re currently looking for a [position title — e.g., crew lead, project coordinator, estimator] to join our team, and before we post publicly, I wanted to reach out to people we’ve worked with and whose opinion I trust.

    If you know someone who might be a great fit for a company like ours — a family member, a friend, someone in the trades looking for a stable company with a good culture — I’d love to hear from you. Just reply to this email with their name and I’ll take it from there. No formal application needed on your end.

    Either way, I hope you’re doing well. And if you ever need us again or have any questions about your property, don’t hesitate to reach out.

    [Your Name]
    [Title]
    [Company Name]
    [Phone Number]


    Version 2: Industry Contacts (Adjusters, Agents)

    Subject line: Growing our team — wanted to reach out to you first

    Hi [First Name],

    Hope things are going well on your end. I wanted to reach out personally because we’re adding to our team — specifically hiring for [position title] — and I always prefer to see if someone in my network has a connection before going the generic posting route.

    If you know anyone in the area who would be a great fit for a professional restoration company — someone who takes their work seriously and wants to be part of a growing operation — I’d genuinely appreciate the introduction. Just reply with their contact info and I’ll handle it from there.

    Thanks for everything over the years. Looking forward to the next one.

    [Your Name]
    [Title]
    [Company Name]
    [Phone Number]


    Version 3: Trade Contacts (Vendors, Subs)

    Subject line: Hiring for [position] — know anyone good?

    Hey [First Name],

    We’re hiring for [position title] and figured I’d reach out to people in the trades before going the job board route. You know the kind of people we work with better than anyone.

    If anyone comes to mind — someone looking to land somewhere solid — just shoot me a reply. Happy to take it from there.

    [Your Name]
    [Company Name]
    [Phone]


    The Technical Setup: Getting These Emails Out

    You have three realistic paths depending on what tools you already have.

    Path A: Your CRM’s Built-In Email (ServiceTitan or Jobber)

    Both ServiceTitan and Jobber have basic email blast capability built in. In ServiceTitan, navigate to Marketing → Campaigns → Email. In Jobber, use the Client Communications feature under the Marketing tab. Compose your email, select your filtered list, and send. This is the fastest path if your contact list is already clean in the system. Limitation: formatting options are limited and tracking (opens, clicks) may be minimal depending on your plan tier.

    Path B: Mailchimp (Recommended for Most Shops)

    Mailchimp’s Essentials plan starts at $13/month for up to 500 contacts. For a typical restoration company database of 300–800 local contacts, you’ll likely stay in the $13–$30/month range depending on list size. The free plan as of 2026 caps at 250 contacts with no automation, which is not enough for most shops — pay for Essentials.

    Setup process:

    1. Export your three segments from your CRM as CSV files (Name, Email, Segment Type, Job Type)
    2. Create three Audiences in Mailchimp — one per segment — or use one Audience with tags for each segment
    3. Build one campaign per segment using the corresponding email template above
    4. Schedule them to send on the same day, 30 minutes apart, so you’re not flooding your own inbox with replies simultaneously

    Important Mailchimp note: the platform charges for unsubscribed contacts unless you manually archive them. If your list has been in Mailchimp for a while, audit it before your campaign — you may be paying for contacts who can’t receive your email. Archive anyone who unsubscribed more than 6 months ago.

    Path C: Brevo (Best if You Have a Large or Mixed List)

    Brevo (formerly Sendinblue) prices by emails sent rather than contacts stored, which works in your favor if you have a large database but only email them a few times a year. Their free plan includes 300 emails per day with unlimited contact storage. For a quarterly campaign to 800 contacts, Brevo’s free tier may cover your needs entirely. Upgrade to the Starter plan ($9/month) if you need scheduling and no daily send limit.


    Timing and Frequency

    Send the homeowner version on a Tuesday or Wednesday morning between 9am and 11am local time. Open rates for warm, local databases are typically highest mid-week in the morning window — people are at their desks, not yet in weekend mode.

    Send the industry version on the same day, 30 minutes later. These contacts are professionals and check email throughout the day — timing matters less than it does for homeowners.

    Send the trade version on the same day, afternoon. Tradespeople often check phones between jobs in the afternoon rather than first thing in the morning.

    Do not send all three simultaneously. Staggering by 30 minutes gives you manageable reply volume and prevents any single moment of inbox overwhelm.


    What to Do With the Replies

    This is where most companies drop the ball. The email generates replies. Someone refers their nephew who’s looking for work. An adjuster forwards it to a plumber he knows. A past homeowner replies just to say hi and mention their neighbor had a pipe burst last month.

    You need a simple log. A Notion page, a Google Sheet, or even a notes field in your CRM — whatever you’ll actually use. For every reply:

    • Log the sender name and contact type (homeowner, adjuster, vendor)
    • Log whether they referred someone (yes/no)
    • Log any other signal in the reply (lead mention, service inquiry, general warmth)
    • Set a follow-up reminder for 30 days if the reply was warm but didn’t lead anywhere immediately

    This log becomes the seed of your community intelligence layer. Over time, you’ll see which contacts are active in your network and which have gone completely cold. That’s information worth having.


    The Prompt Library: Using Claude to Write Your Versions

    If you want to adapt these templates for your specific company voice, job title, or market, here are four ready-to-use prompts for Claude (claude.ai). Paste these directly into a new Claude conversation:

    For the homeowner version:

    “Write a short, plain-text hiring email from a restoration company owner to a past homeowner client. We completed [water damage / fire damage / mold remediation] work for them in [city]. We’re hiring a [job title]. The email should feel personal and warm, mention that we’re reaching out before posting publicly, and ask if they know anyone — family or friends — who might be a great fit. No sales pitch. No marketing language. Sign it from [owner name] at [company name]. Keep it under 150 words.”

    For the industry version:

    “Write a short professional email from a restoration company owner to an insurance adjuster they’ve worked with on claims. We’re hiring a [job title]. The tone should be collegial and peer-to-peer — not formal, not salesy. We’re reaching out to trusted contacts before posting publicly and asking for referrals if they know anyone in the area. Keep it under 120 words.”

    For the subject line variations:

    “Give me 5 subject line options for a hiring referral email from a restoration company to past clients. The email is not a job posting — it’s a personal note asking if they know anyone who might want to work at a company like ours. The tone should be warm and human, not corporate. No clickbait. No exclamation points.”

    For customizing to your brand voice:

    “Here are two emails I’ve written before that represent how I communicate with clients: [paste examples]. Using this voice, rewrite the following hiring email template: [paste template]. Keep the same message but make it sound like I wrote it.”


    Frequently Asked Questions

    Do I need to include an unsubscribe link in these emails?

    If you’re sending through an email marketing platform like Mailchimp or Brevo, yes — the platform will add one automatically. If you’re sending through your CRM’s built-in email or directly from your own inbox to a small list, the legal requirements vary by country and list size. In the U.S., CAN-SPAM applies to commercial email. A personal, non-promotional email like this occupies a gray area — consult your legal advisor for your specific situation, but err toward including an unsubscribe option for any bulk send.

    What if my CRM doesn’t have email addresses for past clients?

    This is a data problem worth fixing before the next job completes. Make capturing email address a standard part of your intake process going forward. For the existing database, you can often find emails through invoice records, text message history, or a simple re-engagement call (“We’re updating our records — can I get the best email for you?”). Even 50% coverage on a 400-contact database is 200 warm reaches.

    How long should I wait before sending this campaign?

    Don’t wait. If you’re hiring now, send now. The email is most authentic when it reflects a real, current need. The whole premise is that this is a genuine business moment, not a manufactured excuse.

    What if someone replies with a lead instead of a job referral?

    Log it immediately. Route it to whoever handles incoming leads. Thank the person who referred it. This is the community strategy working exactly as intended — and it’s why the reply log matters.


  • Your CRM Is Not a Lead Database — It’s a Community That Doesn’t Know It’s a Community Yet

    Your CRM Is Not a Lead Database — It’s a Community That Doesn’t Know It’s a Community Yet

    The Restoration Industry Spends $400 a Lead and Then Never Talks to Those People Again

    PPC campaigns. Direct mail. Google Local Services Ads. Storm chasers working neighborhoods after a weather event. The average restoration company spends somewhere between $150 and $500 to acquire a single qualified lead — and in some markets, especially water and fire, that number climbs higher. The industry has an entire ecosystem built around lead generation: lead brokers, referral networks, preferred vendor programs, adjuster relationships cultivated over years of lunches and golf rounds.

    And then a homeowner files a claim, you do the work, you get paid, and you never talk to them again.

    Not because you don’t want to. Because nobody told you what to say.

    That is the problem this article is going to solve — not just for homeowner re-engagement, but for your entire database. Adjusters, agents, vendors, subs, referral partners, past employees, community contacts. Every person who has ever touched your business in any way is sitting in a CRM that you treat like a ledger instead of a community. This article is about changing that, and it starts with the most counterintuitive entry point in restoration marketing: your next job posting.


    What Is a CRM Community and Why Restoration Companies Don’t Have One

    A community is a group of people who feel connected to something beyond a single transaction. Your past homeowner clients paid you, possibly during the worst week of their year. They watched your crew work. They saw how you handled their insurance company. They know your company name. If you did good work, they have a positive association with your brand that most businesses spend years trying to build.

    That is not a lead. That is a community member who doesn’t know they’re in a community.

    The reason restoration companies don’t leverage this is structural. The industry is built around reactive demand — you don’t have time to do relationship marketing when the phone is ringing after a storm. Your sales process is built around the claim cycle, not around the customer lifetime. And when it’s quiet, the instinct is to spend on advertising to generate the next job, not to re-engage the people you already served.

    But there’s a second reason, and it’s more fundamental: most restoration companies don’t believe they have a valid, non-salesy reason to contact past clients.

    They do. They just don’t know it yet.


    The Hiring Email: The Best Marketing Touch You’re Not Sending

    Here is the scenario. You need to hire a crew lead. You post on Indeed. You get 40 applications, most of which don’t match what you need, and you spend three hours screening.

    Now here is the alternative. You open your CRM. You pull every contact in your service area — homeowners, adjusters, agents, vendors, subs, anyone local. You send a single email. The subject line is something like: “We’re growing — know anyone looking for a great job in the trades?”

    The email is short. It says you’re hiring for a specific position. It says you value the relationship you have with them. It says if they know anyone — a family member, a friend, someone in the trades looking for a stable company with a good culture — you’d love a direct introduction. No application portal. Just an email back to you.

    That email does four things simultaneously that no advertising spend can replicate:

    1. It reminds your past clients you exist — without selling them anything
    2. It makes them feel respected — you’re asking their opinion, not their money
    3. It positions your company as growing and healthy — companies that are struggling don’t hire
    4. It creates a genuine two-way relationship moment — they can actually help you

    For your insurance contacts — adjusters and agents — it signals something even more powerful. It says you’re a company that is serious about quality people, that you care about your workforce, and that you think of them as partners in your business rather than just referral sources to be harvested.

    The cost of this email campaign: the time it takes to write one email and hit send. The leads you generate from the replies and referrals: free. The brand impression you leave on every person who opens that email: priceless in an industry where word-of-mouth still drives a significant percentage of residential work.


    The Vendor and Supplier Ask: Operational Needs as Community Touchpoints

    The hiring email is the entry point. But once you internalize the underlying principle — that your database wants to help you when asked the right way — you realize how many legitimate reasons you have to contact them.

    You’re looking for a reliable drywall sub in your market. You need a specialty cleaning supplier for a specific job type. You’re trying to source a vendor for an event you’re hosting. You’re looking for a trusted electrician or HVAC contractor to refer to clients after the remediation is done.

    Every one of these is a real business need. And every one of them is a valid reason to reach out to your database.

    “Hey, we’ve got a large commercial project coming up and we’re looking for a reliable drywall sub who does quality work. Do you know anyone in the area?”

    That message, sent to 500 people in your CRM, will generate responses. Some of them will be recommendations. Some of them will lead to subcontractor relationships that serve you for years. But every single one of them will reinforce that your company is active, growing, and doing interesting work — and that you value the people in your network enough to ask them first.

    Your adjusters and agents will forward that message to people they know. Your past homeowners will think of you as a company that is embedded in their community. Your vendors and subs will feel like partners rather than line items.


    Why Past Homeowner Clients Are Your Most Underutilized Asset

    This is the one that most restoration companies are leaving the most money on the table with, and it deserves its own focus.

    A homeowner who used your services has a profile that no amount of advertising can manufacture. They experienced a property damage event. They navigated a claim. They worked with a restoration company — yours — and if it went well, they came out the other side with a specific, emotional memory of your brand. They are also, statistically, likely to experience another property damage event in their lifetime. Water damage recurs. Roofs age. Mold finds new moisture sources.

    And they have neighbors, family members, and friends who will experience property damage events and who will ask them: “Do you know a good restoration company?”

    That referral question is the single most valuable marketing moment in residential restoration. And the answer depends entirely on whether your company is still alive in that homeowner’s memory when the question gets asked.

    The hiring email keeps you alive. The vendor ask keeps you alive. The event invitation keeps you alive. Any legitimate, non-salesy touchpoint that reminds them you exist — without asking them for anything except their opinion or their help — keeps you alive in that mental file where they store “companies I trust.”

    Most restoration companies let that file go cold within six months of project completion. The ones who don’t are the ones with referral pipelines that their competitors can’t explain.


    The Full Taxonomy of Legitimate Outreach Triggers

    Once you start thinking this way, the opportunities multiply. Here is a working list of reasons you can legitimately contact your entire database — not a fake reason, not a manufactured excuse, but a genuine business moment that also happens to be a marketing touch:

    People Needs

    • Hiring for any position (crew, admin, estimator, project manager)
    • Looking for a skilled subcontractor in a specialty trade
    • Seeking someone who speaks a specific language for a growing market segment
    • Looking for a part-time administrative or customer service person

    Vendor and Supplier Needs

    • Sourcing a new supplier for a product line you’re adding
    • Looking for a caterer or venue for a company event
    • Seeking a vendor for branded merchandise or uniforms
    • Looking for a commercial cleaning partner for office maintenance

    Community and Knowledge Needs

    • Asking for feedback on a new service you’re considering
    • Sharing an educational resource (storm prep checklist, winter maintenance guide) with no CTA other than “thought you’d find this useful”
    • Inviting them to a community event, open house, or educational workshop
    • Asking them to be a case study or share their experience (with their permission)

    Recognition and Relationship

    • Congratulating them on something (new business, local award, personal milestone you’re aware of)
    • Checking in after a major weather event in your area to make sure they’re okay
    • Sharing a company milestone (anniversary, certification, new service area) that reflects positively on your brand

    None of these require a sales pitch. None of them should have a sales pitch. The moment you attach a CTA to a relationship email, you’ve converted it from a community touch into a marketing email, and people feel the difference immediately.


    The Math That Makes This a Strategy, Not a Tactic

    Let’s run a simple scenario. A restoration company has been operating for five years. They’ve completed 600 jobs. Their CRM has 600 homeowner contacts plus 200 industry contacts (adjusters, agents, vendors, subs) — 800 total, all local, all warm.

    They send a hiring email. Open rate for a warm, local database is typically 30–45%. That’s 240–360 people who see your company name, read that you’re growing, and think about you for 30 seconds. Some reply. A handful refer someone. Maybe you hire one person from a referral.

    But here’s what actually happened: 300 people just got a brand impression from your company for free. Some percentage of those people will have a neighbor ask them about restoration services in the next 12 months. Some of them are adjusters who are looking at your brand name right as they’re assigning a claim. Some of them are agents who are going to recommend a restoration company to a client next week.

    Now do this four times a year. Hiring email in Q1. Vendor ask in Q2. Educational resource in Q3. Company milestone or community event in Q4. You’ve touched your entire warm database four times in twelve months for the cost of an email platform and a few hours of writing time.

    Your $400-per-lead PPC campaign cannot buy what that touch cadence builds.


    The System: Building a CRM Touch Calendar for Restoration

    The reason most companies don’t do this is not lack of intention. It’s lack of system. When you’re running jobs, managing crews, handling supplements, and fighting with adjusters, a quarterly email to your database is not going to happen unless it is on a calendar with an owner and a template.

    Here is the minimum viable system:

    Step 1: Segment your CRM. You need at minimum three segments: past homeowner clients (local), industry contacts (adjusters, agents, PAs), and trade contacts (vendors, subs, partners). Each segment gets slightly different framing on the same message. The homeowner version of the hiring email is warmer and more personal. The adjuster version is more professional. The sub version is peer-to-peer.

    Step 2: Build a 12-month touch calendar. Map out the four to six touches you’ll make this year before the year starts. Assign each one a trigger type from the taxonomy above. Some will be tied to real business events (when you actually hire); others can be evergreen (the educational resource can go out every January before storm season).

    Step 3: Write the templates. The hiring email template takes 30 minutes to write and can be reused every time you hire. The vendor ask template takes 20 minutes. Once these exist, the execution cost per touch is near zero.

    Step 4: Track the signal. Every reply is signal. Every referral is data. Every response from an adjuster who says “hey, I was just thinking about you” is a relationship that needed warming. Build a simple log of who responded and what they said. Over time, this becomes the most valuable intelligence you have about which contacts are actually in your community.


    What This Builds Over Time

    The companies in the restoration industry that win long-term referral pipelines are not necessarily the ones with the best Google rankings or the highest review counts. They are the ones whose name comes to mind first when someone needs to make a recommendation.

    Top-of-mind awareness in a local market is not built by advertising. It is built by presence. Consistent, relevant, human presence in the lives of people who already know you.

    Your CRM is not a list of people who used you once. It is a network of people who have direct, personal experience with your company — and who, with the right cultivation, will become the distributed sales force that no lead broker can compete with.

    The next time you post a job opening, send the email. See what happens. Then do it again with the vendor ask. Then again with the educational resource. By the time you’ve done it four times, you will have a community. And your competitors will still be paying $400 a lead to meet people who have never heard of them.


    Frequently Asked Questions

    Is it appropriate to email past homeowner clients for non-service reasons?

    Yes, provided the contact is warm (they’ve done business with you), the reason is genuine (you actually are hiring), and there’s no sales pitch attached. A hiring email or a vendor referral ask is a human, peer-level communication — not marketing spam. Most recipients appreciate being asked for their opinion or their help.

    How often should a restoration company contact their CRM?

    A minimum of four times per year is enough to maintain top-of-mind awareness without overwhelming contacts. Six times per year is sustainable if each touch has a genuine trigger. More than monthly for a non-service communication risks feeling like a marketing list rather than a community relationship.

    What email platform should I use for CRM outreach?

    Any standard email marketing platform (Mailchimp, Constant Contact, HubSpot, or even your CRM’s built-in email) works for this. The key is segmentation capability (homeowners vs. industry contacts vs. trade contacts) and basic analytics (open rate, click rate) so you can see who’s engaging.

    What if we don’t have a formal CRM?

    Start with what you have. Even an exported list of completed jobs from your job management software, sorted by zip code and filtered to local contacts, is a CRM. The strategy works with a spreadsheet and a Mailchimp free account. Build the system around the behavior, not the tool.

    Should the hiring email come from the owner or from HR?

    From the owner, always, for homeowner and industry contacts. The personal relationship was built on the owner’s credibility. A generic HR communication breaks the human connection that makes this work. For trade contacts, a project manager or ops lead can send it credibly.

    What happens if someone unsubscribes?

    Respect it, honor it immediately, and don’t worry about it. Unsubscribes from a warm database are typically low (under 2%) when the content is relevant and non-salesy. The people who unsubscribe were unlikely to refer you anyway. The people who stay are your community.

    Can this strategy work for commercial restoration clients as well?

    Yes, with modified framing. Commercial contacts (property managers, facility directors, HOA boards) respond well to vendor sourcing requests, educational content on maintenance and prevention, and event invitations. The hiring email works in commercial too — facility managers often know trades workers in their buildings or communities.