Automation Firing Twice? The Overlap Audit in Depth

Your customer got the appointment reminder twice — once from your field-service software, once from your CRM. Duplicate texts don't look like a glitch; they look like you don't know what you're doing. The full overlap-audit setup guide.

Part of the Leveraged Owner 8-system framework

The complaint comes in like this: "I got three texts about my appointment tomorrow. Three. From two different numbers." Your customer isn't annoyed at a technical glitch — they're questioning whether a business that can't coordinate its own text messages can coordinate a crew. Duplicate messaging is the most visible symptom of a stack that grew by accident. Here's how to find every overlap and kill it.

This is a Hub post in the 8-system framework — the maintenance discipline behind Pillar A: Capture Every Lead, Pillar B: Turn Estimates Into Signed Jobs, Pillar C: 5-Star Review Engine, and Pillar D: Full & Calm Calendar. Every system that sends messages can overlap; this audit covers all of them.

How overlaps happen (the five usual suspects)

  • The field-service software + CRM double-send. Your field service management software sends appointment reminders natively, and your CRM/marketing tool sends its own reminder workflow. Both fire. Customer gets two. This is the #1 overlap in home services.
  • The old tool you never turned off. You migrated from one texting tool to another and the old one's automations are still live, still sending to the old contact list.
  • The Zap that duplicates the native feature. Someone built a Zapier automation for review requests, forgetting the field-service software already sends them. Two review texts, minutes apart.
  • The manual + automatic collision. Your CSR manually texts "confirming tomorrow" while the automation sends the same message. The human didn't know the robot was on it.
  • The multi-number split. Reminders come from your 10DLC business number; the marketing tool sends from a different number. The customer sees two strangers texting about the same appointment.

Every overlap has the same root cause: no single map of who sends what. The audit builds that map.

Step 1: map every sender (45 minutes)

Build a table — spreadsheet, whiteboard, napkin, doesn't matter — with one row per automated message your business sends. Columns:

  • Message: what it says (appointment reminder, review request, estimate follow-up…).
  • Sender tool: which system fires it (field-service software, CRM, texting tool, Zap).
  • Trigger: what event sets it off (appointment created, job completed, 24h before).
  • Timing: when it sends relative to the trigger.
  • From-number: which phone number it sends from.
  • Audience: who receives it (all customers, estimate recipients, etc.).

To find them all: check the automations/workflows tab of every tool (field-service software, CRM, texting tool, email tool), check Zapier/Make for active scenarios, and ask your team "do you have any automatic messages set up that I don't know about?" — the answer is usually yes.

Step 2: highlight the collisions

Sort the table by trigger + audience. Any two rows with the same trigger and overlapping audience are a collision — or a collision waiting for the right timing. The classic finds:

  • Appointment reminders: field-service software native reminder + CRM workflow reminder. Kill one.
  • Review requests: field-service software post-job text + standalone review tool + the tech's manual ask. Pick one automated sender; the tech's verbal ask is a complement, not a collision.
  • Estimate follow-ups: CRM sequence + field-service software's native quote-follow-up nudge. These often fire on different schedules, so the customer gets a chaotic drip instead of a designed sequence.
  • New-lead notifications: website form emails the office and the CRM texts the owner and the field-service software creates an alert. Notifications to your team can overlap too — three pings for one lead trains everyone to ignore all of them.

Step 3: apply the one-sender rule

For every message type, exactly one tool owns it. The decision framework:

  • Job-lifecycle messages (confirmations, en-route, completion, invoice reminders) → owned by the field-service software, because the field-service software owns the job data and triggers. Turn off the CRM's versions.
  • Marketing sequences (estimate follow-up, reactivation, review requests if you run them as campaigns) → owned by the CRM/marketing tool, because it owns the sequencing logic. Turn off the field-service software's versions.
  • Lead response (missed-call text-back, instant inquiry replies) → owned by the texting layer (your 10DLC tool or the CRM's texting), because speed and keyword handling live there.
  • Team notifications → owned by one channel per event. New lead → one text to the owner, not an email plus a text plus a push. Pick the channel the owner actually reads within minutes.

Write the ownership down — a one-page "who sends what" doc — and put it where anyone who builds automations will see it. Overlaps recur because the map lives in someone's head instead of on paper.

Step 4: the kill sequence (doing it safely)

  1. Pause, don't delete — yet. Turn off the losing automation but keep it intact for two weeks. If the winner breaks, you can re-enable in seconds.
  2. Fix the from-number. The surviving sender should send from your 10DLC business number wherever possible — one number the customer recognizes. If the tool can't send from your number, that's a point against it in the ownership decision.
  3. Dedupe the triggers. Make sure the surviving automation's trigger actually covers the cases the killed one handled. (The field-service software's reminder might only fire for jobs with a tech assigned; the CRM's fired for all appointments. Check the edge cases.)
  4. Test with your own number. Book a fake appointment, run a fake job to completion, submit a fake estimate. Verify exactly one message per event, from the right number, with the right content.
  5. After two clean weeks, delete the loser. Dead automations left "paused" get re-enabled by accident during the next settings spelunking. Delete them.

Step 5: prevent recurrence (the 10-minute monthly check)

Overlaps grow back — every new tool, every new hire with admin access, every "quick Zap I built" reintroduces them. The prevention is a monthly 10-minute check:

  • Review active automations in every tool. Anything you don't recognize gets investigated, not ignored.
  • Ask the team. "Has anyone set up any automatic messages or notifications this month?" Make it a standing question, not an accusation.
  • Watch for customer comments. "I got two texts" is a bug report — log it and trace it the same day. Every duplicate a customer reports is ten you didn't hear about.
  • Gate admin access. Not everyone needs the ability to create automations. The people who build messages should be the people who've read the who-sends-what doc.

Worked example: the double-reminder kill

Example: a 4-truck plumbing shop where customers reported double appointment reminders. The audit found: Housecall Pro sending its native 24-hour reminder text and GoHighLevel firing a 24-hour reminder workflow, from two different numbers, with slightly different wording. The fix took 20 minutes:

  • Ownership decision: Housecall Pro owns reminders (it has the live schedule data; its trigger handles reschedules automatically).
  • Paused the GoHighLevel reminder workflow; verified Housecall's version covered all appointment types including estimates.
  • Confirmed the surviving reminder sent from the business's 10DLC number.
  • Ran a test booking — one text, correct details, right number.
  • Two weeks later, deleted the GoHighLevel workflow and documented "reminders: Housecall Pro" in the who-sends-what doc.

Duplicate complaints stopped that week. The deeper win: the audit also caught a double review-request (field-service software + review tool) and a triple new-lead notification (email + text + push) in the same session.

Compliance note

Duplicate texts aren't just annoying — they multiply compliance surface. Every extra sender is another system that must honor opt-outs, respect quiet hours, and carry proper consent. Killing overlaps reduces your compliance risk: fewer senders, fewer suppression lists to keep in sync, fewer chances for a STOP to be honored in one tool and missed in another. Standard texting compliance applies throughout: 10DLC business-texting registration (carrier registration for texts sent by software; 1–7 day approval, ~$15–$20 in fees), opt-out language in automated texts, no marketing texts before 8am or after 9pm recipient's local time. General information, not legal advice.

Related guides in this series

The overlap audit protects every pillar — Pillar A: Capture Every Lead, Pillar B: Turn Estimates Into Signed Jobs, Pillar C: 5-Star Review Engine, Pillar D: Full & Calm Calendar — from the duplicate-message problem. Run it quarterly, and run the weekly 30-minute systems health check in between.

Get System 1 free: the complete Missed-Call Safety Net

The full setup guide, all four copy-paste scripts (including the owner notification), the "Your Numbers" missed-call worksheet, and the step-by-step setup guide — free, no catch. Fix your missed calls this week.

Want all 8 systems + 6 bonus modules in copy-paste form? The AI Automation Starter Pack is $27: https://leveragedowner.com/starter-pack/

The done-for-you version

This post is part of the Leveraged Owner 8-system framework from the Starter Pack — the done-for-you version with the overlap-audit worksheet, the who-sends-what template, every script, and complete setup guides for all 8 systems.

No industry statistics were used in this post. Pricing figures are approximate — verify with your tools' current pricing pages.

Keep building your systems

Related guides from the Leveraged Owner blog: