Guide · Lead & Estimate & Paid stages

Marketing automation that reaches the sold job.

You bought the lead. Did you win the job? Choose the workflows that close the gap, adapt complete follow-up sequences, and audit your last 30 paid inquiries.

  1. Lead
  2. Estimate
  3. Sold
  4. Production
  5. Paid
Updated September 28, 2026
Watch: 2 minutes

You’re paying for leads nobody calls.

You bought the lead. This two-minute example follows one $80 Google lead through the five minutes that decided it, then shows every source held to one standard.

Editorial illustration connecting customer inquiries, an estimate and a schedule to a contractor arriving at a home.
Illustration · GoodHandoff
THE POINTChoose one marketing workflow, approve its messages and stop rules, then measure the held estimates and profitable work it actually produces.
CHOOSE THE WORK, THEN THE SOFTWARE

What contractor marketing automation should actually do.

Contractor marketing automation connects a customer event to a relevant next action: a new inquiry gets an owned response, an unanswered estimate gets a useful question, and a sold job updates the source report. It is not simply posting more content or sending the same reminder to everyone.

For an HVAC, window, siding or remodeling team, start with the stage that loses otherwise suitable work. A small service-repair business may need fast dispatch triage rather than a multi-week estimate sequence. Do not apply the same sales journey to both.

Five candidate workflows; implement the one your records justify
TriggerUseful actionExit and owner
New eligible inquiryCapture source and request, assign an owner, acknowledge receipt through an approved channel.Reply, booking, disqualification or opt-out stops unattended sales attempts. Intake owner handles exceptions.
Accepted estimate appointmentSend approved confirmation and preparation details from the actual booking.Cancellation or reschedule updates reminders. Scheduling owner resolves failed saves.
Estimate sent, no decisionCheck receipt, ask about scope or timing, route questions to the estimator.Any reply, sale or decline ends the sequence. Sales owner takes over.
Customer-requested return dateRecheck current status and channel permission, then reopen the relevant project.Renewed interest becomes an owned task, not an automatic sale. See the reactivation playbook.
Completed job, approved customer-care milestoneRequest feedback or a review using uniform eligibility rules, not a predicted star rating.Honor preferences and existing conversations. Customer-care owner handles service issues. See review-request design.

Native CRM automation, a connector, or a custom build?

Use a native rule when one system owns the event and the action. Jobber documents scheduled quote follow-ups, with availability depending on plan and communication settings. Test its actual stop behavior before adding a second sender.

Use a connector when the missing piece is a supported transfer between two systems. Consider custom work when you need several opportunity records, delayed source updates, customer-specific return dates or destination reconciliation. AI is useful for interpreting a reply; it should not decide whether an opt-out can be ignored or an expired price can be promised.

The buying test: ask a vendor to demonstrate a reply arriving just before a queued reminder, a duplicate lead event, and an uncertain delivery result. The correct outcome is one owned conversation, not another message.

A COMPLETE STARTER SEQUENCE

Give every follow-up a new reason to answer.

The following is a proposed cadence for fictional Example Home Services, not a measured best-performing schedule. Adapt it to the service, customer expectation, permitted channel and local contact window. It is not authorization to call or send. Choose one approved channel per step; do not automatically stack calls, texts and emails.

New replacement-project inquiry: at most three unanswered touches
When eligibleIllustrative message or actionWhat must be recorded
At intake, within the approved contact window“Hi Jordan, Example Home Services here. We received your patio-door request. What ZIP code is the property in, and are you looking for replacement or repair?”Source event, one opportunity, owner, channel permission and actual delivery status.
Next business day, only if still unanswered“Are you still looking for help with the patio door? We can arrange an assessment once we confirm the address and type of work.”Current reply and booking checks, attempt number and next action. No invented available slot.
Three business days later, only if still unanswered“Would you like us to arrange the next step, reconnect at a better time, or close this request?”Sequence complete if no reply. Leave an accurate disposition; do not silently restart next week.
Unanswered estimate: use the estimate version and a finite stop point
When eligibleIllustrative messageHuman next step
Two business days after the estimate“Hi Taylor, Example Home Services here. Did the window estimate reach you, and is there anything in the scope you would like explained?”Estimator checks the actual sent version. A delivery failure goes to repair, not a sales reminder.
Five business days after the estimate, if unanswered“Is the window project still under consideration? If timing, scope or cost is holding it up, we can talk through that specific question.”Reply stops all pending attempts. Estimator answers or issues an approved revision.
Ten business days after the estimate, if unanswered“Should we close this estimate for now, or is there a better time to reconnect? Any later work would need current scope and pricing confirmed.”Close the sequence; a requested return date becomes a separate, reviewed task.

Before every attempt: recheck permission, suppression, current opportunity status, customer replies, confirmed appointments and owner activity. An email open is not a reply. An unclear match or uncertain provider outcome belongs in review. Recheck at execution time, not only when the lead first enters the sequence.

These scripts omit your channel-specific footer. For SMS, review Twilio's consent, identification and opt-out requirements. Commercial email needs appropriate sender details, postal address and unsubscribe handling under the FTC's CAN-SPAM guidance. AI calls need separate legal and provider review; an old form is not blanket permission for every channel.

Download the sequence approval worksheet

Do not mistake a busy sequence for a successful one.

Report unique eligible opportunities, meaningful replies, confirmed appointments, held estimates and sold jobs. Keep negative replies and complaints visible. For a process change, compare equivalent lead cohorts over the same maturity window; seasonality, capacity and sales effort can explain changes that the automation did not cause.

01 / TWO FAILURES TO CHECK FOR

The lead was in the system. The follow-up still stopped.

Before you judge a lead source, check whether its leads were actually worked. Two failure patterns are common in lead follow-up systems, and both make a good source look bad.

Pattern 1: the retry that never runsIllustrative example

The lead looks active and a next call is scheduled. But after a technical call failure, the workflow tries to reuse a retry step it already used. A duplicate guard finds the old attempt, returns it, and no new call goes out. The lead sits overdue while the dashboard still says it is in follow-up.

  1. An ordinary call fails technically.
  2. The permitted retry runs and finishes.
  3. A later ordinary call also fails.
  4. The workflow schedules the already-used retry step.
  5. The duplicate guard returns the old record; no new call is established by that callback.

Count carefully when you look for this. A provider’s failed-call log and your own attempt records measure different things, and adding them together overstates how many leads were lost.

What this changes in a marketing decision

Before calling the source “low quality,” check whether eligible leads received a real attempt. A queued task, provider request, completed conversation, and confirmed appointment are four different events. Your report needs to retain that distinction.

Pattern 2: the phone number arrives after the lead.

Some sources send the inquiry before the customer shares a phone number. A later event adds the number, and it has to update the same lead. If the connector passes the update without the source’s lead ID and the right phone field, a usable inquiry sits in review instead of moving forward.

This is a documented, source-specific detail. Yelp documents a separate Phone Availability trigger because the initial inquiry can arrive before a consumer finishes phone verification. In a build, inspect the actual trigger output and the destination contract; preserve the original request and update the same record when the new contact data arrives.

The lesson is practical: a source can generate a valid inquiry while your intake or follow-up process fails it. Do not buy more volume until you can distinguish the two.

02 / DO THIS WITH YOUR LAST 30 PAID LEADS

A working source-to-sale audit.

Choose one paid source and the last 30 inquiries received through it. Thirty is a manageable operational sample, not a reliable test of a channel’s long-term return. Export the original source list, the matching CRM opportunities, appointment records, and completed-job values. Keep contact details in your own systems; stable IDs are enough for the audit worksheet.

Download the blank source-to-sale audit worksheet ↓

  1. Establish the cohort before reading the dashboard.

    Write down the source, acquisition date range, time zone, and review cutoff. Use the original source event to count inquiries. A duplicate webhook is one inquiry; a repeat customer asking about a new project may be a new opportunity. Do not mix either with provider call-attempt counts.

    Finished when: every source inquiry has a unique source ID, and every repeat or unmatched event has an explained disposition.

  2. Join each inquiry to the correct opportunity.

    Match the external source ID to the CRM opportunity, then the opportunity to appointments and sold jobs. A name or phone number is a secondary clue. One homeowner can have two projects. Two household members can contact you about the same project. An uncertain match needs review rather than an automatic merge.

    Finished when: every inquiry has a matched opportunity or a named owner investigating the gap. Keep “no CRM record” visible.

  3. Separate attempted contact from a customer conversation.

    Inspect the first useful response and its evidence. A receipt email acknowledges a form. A provider-accepted call request establishes submission. A no-answer outcome establishes an attempt. A delivered text establishes delivery. A reply or answered conversation establishes customer engagement. Do not combine them into one “contacted” flag.

    Finished when: you can explain the first meaningful response, the last customer interaction, and the next action for each lead.

  4. Read the actual appointment.

    Use the accepted appointment ID and its status. A requested Tuesday window is unconfirmed. A saved slot is booked. A visit marked completed is held. A cancelled or no-show visit remains separate. If a lead disappears from the active queue, check the appointment and closed tabs before declaring it lost.

    Finished when: confirmed, held, cancelled, and pending requests reconcile to the scheduling system.

  5. Attach the sale and its economics.

    Use your approved sold stage and stable job ID. Pull sold revenue and direct job cost from the system that owns them. Label estimates of unfinished-job cost separately from actual costs on completed jobs. If margin is unavailable, show revenue and say the profitability result is incomplete.

    Finished when: sold jobs have a supported value and cost, and open opportunities are marked pending rather than lost.

  6. Pick the first repair from the evidence.

    Sort the gaps into missing intake, failed contact, unconfirmed booking, stalled sales follow-up, and missing revenue data. Assign one owner to each repair. Choose a narrow fix with an observable destination result—for example, a delayed phone update reaches the existing eligible lead exactly once.

    Finished when: you have a repair owner, an acceptance check, and a date to rerun the same reconciliation.

Keep the denominator honest.

Measure response health for the sampled inquiries. Evaluate marketing return over a larger, mature lead cohort. For a long sales cycle, revisit the same cohort at agreed cutoffs; do not pair this month’s ad spend with unrelated jobs sold from older leads.

THE MEASUREMENT PROBLEM

More leads can hide a weaker pipeline.

An ad platform can tell you what it spent and which forms it received. Your CRM knows who booked an estimate and which jobs sold. Those are different records. If they never meet, the team may scale a source that produces cheap inquiries but few profitable jobs.

Response speed matters, but an instant text does not make a lead qualified. A “booked” appointment that never appears on the estimator’s calendar is not a held estimate. And a signed contract with thin margin may be a poor return on ad spend. Give every stage its own definition.

  • Source & spend
  • Qualified lead
  • Held estimate
  • Sold job
  • Gross profit

This is a measurement and follow-up problem, not a promise that GoodHandoff manages your ad campaigns. We connect the operating systems and close the reporting gaps so you and your marketing partner can make a better budget decision.

WORKED ECONOMIC MODEL

The cheaper appointment is not always the better buy.

Consider a fictional 30-day period for one contractor. Both sources use the same rules for a qualified lead, a held estimate, and a sold job. Gross profit is job revenue minus direct job costs, before ad spend and overhead.

Illustrative source comparison — invented figures, not GoodHandoff client results
MetricSearch adsSocial ads
Ad spend$6,000$4,000
New inquiries5070
Held estimates1514
Sold jobs63
Cost per held estimate$400$286
Gross profit before ads$18,000$9,000
Gross profit after ads$12,000$5,000

Social looks better on inquiry volume and cost per appointment. Search produces more sold jobs and $7,000 more gross profit after ad spend in this example. The conclusion is not “turn off social.” First ask whether the sources brought different job types, whether sales follow-up was comparable, and whether the sample is large enough to guide a budget change.

CALCULATE IT CONSISTENTLYCost per held estimate = source spend ÷ estimates actually heldGross profit after ads = sold-job revenue − direct job cost − attributed ad spend

Keep overhead, cancellations, refunds, financing fees, and sales commissions visible in the next layer of analysis. Do not call this number net profit.

TRY YOUR SOURCE NUMBERS

What did the campaign produce?

Use one source and a consistent lead cohort. Starting values are fictional; this calculation does not forecast sales.

Cost / held estimate
$400
Cost / sold job
$1,000
Gross profit after ads
$12,000

Excludes overhead and other marketing costs. Gross profit should already subtract direct job cost. Figures are rounded.

THE DATA MODEL

One lead ID. One accountable owner. Every real transition.

At intake, store the original source, campaign identifier when available, arrival time, contact details, service area, requested work, and a stable lead ID. Match that ID through the appointment and job record. A phone number alone is a risky match: one household can have multiple jobs, and a repeat customer can respond to a new campaign.

Define the stages

Inquiry: a new source event arrived. Qualified: it meets agreed service and location criteria. Booked: the scheduling system confirmed a slot. Held: the visit or call happened. Sold: the contract reached your approved sale stage.

Define the money

Pull spend from the ad account and job value and direct cost from your business system. Record who owns those numbers and how late sales or change orders are handled. If job margin is unavailable, report sold revenue separately and label the profitability view incomplete.

Attribution is a decision rule, not magic. Choose whether first touch, last touch, or a reviewed primary source owns the job. Keep all recorded touches for context. Avoid silently reassigning every sale to the last text message the customer received.

06 / TURN THE AUDIT INTO A BUILD

The handoffs worth automating.

A narrow repair scope and the evidence that closes it
Observed gapBuild or configureRead back after the fix
Source has a lead; CRM does notEvent capture, identity matching, duplicate handlingThe correct opportunity with source ID and owner
Valid lead waits on delayed contact dataUpdate the existing lead when the source releases the dataThe same record progresses under approved eligibility rules
A technical failure leaves an overdue taskBounded retries, unique attempt identity, visible exhausted statesOne supported attempt or an explained, owned exception
Customer picks a time; no booking existsCalendar confirmation and CRM appointment linkageAccepted slot and matching appointment ID
Sale is disconnected from source reportingOpportunity-to-job linkage and source-cohort reportingSold job, supported value, cost basis, and original source

Carry qualified outcomes back to the ad account.

Your internal source-to-sale report comes first. Where the account and data collection support it, your marketing partner can also import downstream conversion outcomes. Google’s enhanced conversions for leads documentation explains how imported offline conversions can be attributed to an ad interaction using customer data. Define the event you are returning—such as a qualified opportunity or a sale—and confirm the measurement and customer-data requirements for that account.

A form-fill event and a sold-job event should not receive the same meaning simply because both are named “conversion.” Keep their definitions and values separate. Check the import’s acceptance and diagnostics; a generated file is not proof that the ad account processed it.

Keep source names stable.

For non-Google campaigns, preserve consistent source, medium, campaign, and campaign-ID values through the landing page and intake. Google Analytics’ campaign-import guidance requires matching values when cost data is joined to collected campaign data; capitalization differences can break the match. Store the original values and normalize them deliberately for reporting.

A useful first scope

“Connect one lead source to the existing CRM; retain the original source ID; assign eligible inquiries; surface failed writes; and reconcile received, contacted, booked, and sold outcomes.” That is a build you can review. “Make marketing automatic” is too vague to price or verify.

GoodHandoff builds the intake, follow-up, booking and reporting connections. Your advertising partner owns campaign strategy, and your sales team owns prices and closing decisions. Bring the audit, not just a tool wish list, to the first project conversation.

THE WEEKLY DECISION

A useful 20-minute marketing review.

For each source, review spend, qualified inquiries, response time, held estimates, sold jobs, and gross profit after ad spend for a consistent date cohort. Separate “not sold yet” from “lost”; a long sales cycle should not make a new source look worthless after a week.

Then inspect five lost or stalled records. Was the lead out of area? Did the callback never happen? Did the estimate go out with no follow-up? Those answers tell you whether to adjust targeting, sales process, appointment capacity, or automation. More ad spend cannot repair a missing handoff.

Start with a small audit.

Bring the last 30 leads from one paid source and the matching CRM opportunities. If the records cannot be joined, that is the first deliverable. If they can, the source-to-sale scorecard becomes possible.

Once booking is the bottleneck, see how an AI appointment setter can move a qualified lead to a confirmed estimate.

BEFORE YOU COMMIT

Questions owners ask before buying.

Which marketing workflow should a contractor automate first?

Use your actual lost or stalled records. If inquiries never receive a useful response, start with intake and ownership. If qualified estimates receive no decision, start with estimate follow-up. Reporting helps identify the leak; it does not replace the repair.

Do we need AI or a new marketing platform?

Not necessarily. A native CRM rule can handle straightforward reminders. AI can help interpret variable customer language. Use fixed rules for permissions, stop conditions and assignment, and confirm that the current tools can perform the required operations.

How often should we follow up?

There is no proven universal cadence in this guide. The starter schedules are proposed examples. Choose a finite attempt cap and contact windows appropriate to the customer request, channel rules and sales cycle, then measure useful replies and negative feedback.

Can the automation take credit for every sale it touches?

No. A linked record establishes attribution under your chosen reporting rule, not causation. Use mature comparable cohorts and, where appropriate, a holdout that does not withhold normal service to estimate incremental results.

How this guide was prepared

Written by GoodHandoff from platform documentation, checked on September 28, 2026, and worked examples. The failure patterns, financial examples, simulations and illustrations are illustrative. They do not describe a specific customer or document savings or sales lift. GoodHandoff sells custom workflow services.

Next step

Find the marketing leads you already paid for.

Book a free 20-minute call. Bring last month’s lead count and how many got a callback the same day.