Your ad budget has a leak — and it's not the ads
You ran Google Ads last month. Leads came in. A handful converted. The rest? They are sitting in your CRM in a stage called 'New Lead', with no follow-up sent, no tag applied, and no automation enrolled. The money to acquire them is already spent — and it is rotting.
The five-minute window you are almost certainly missing
According to Salesforce's State of the Connected Customer 2023 report, businesses that follow up within five minutes of a lead coming in are nine times more likely to convert than those who wait 30 minutes or longer. Most Australian service businesses follow up the next morning — or not at all. That is not a sales problem. That is a CRM setup problem. If your CRM had a working automation, the follow-up would have gone out at 8:31am without you touching anything.
What the fall-through rate actually costs you in dollars
Run the numbers for your own situation:
- 30–50 leads per month at a cost-per-lead of $40–$120 (typical for trades and clinics running Google Ads in metro Australia)
- A 40% fall-through rate — leads who enquired and were never meaningfully followed up
- That is 12–20 lost leads per month, at $480–$2,400 in wasted ad spend — every single month
And that figure does not include the job revenue those leads would have generated. At an average job value of $800 for a trade or $350 for a clinic appointment, a 40% fall-through on 50 leads is $5,600–$14,000 in missing monthly revenue from a pipeline that already has the contacts in it.
Why admin overload is the real culprit
The Australian Small Business and Family Enterprise Ombudsman's 2023 Small Business Counts report found that 62% of small businesses cite 'admin overload' as the reason customer follow-up falls through. That statistic is worth sitting with. The CRM is not broken. The leads are not bad. The system was never set up to work without you manually pushing every contact through — and at 9pm after a full day on the tools or in clinic, that is not happening.
The leads rotting in your CRM cost you just as much as the ones you closed — you just don't feel the pain yet.
What 'CRM hygiene' actually means for a sub-1,000-contact database
CRM hygiene is not a big-company concept. It applies just as directly to a 400-contact database as it does to a 40,000-contact one — arguably more so, because at sub-1,000 contacts, every single record represents a real conversation with a real person who has already raised their hand.
The working definition
CRM hygiene is the practice of keeping every contact record accurate, tagged, sequenced, and sitting in the correct pipeline stage — so that automations fire when they should, and nothing slips through because of a missing field or a stale status. It is not a one-time clean. It is a 10-minute weekly habit built on a one-evening foundation audit.
Why solo operators have it worse
HubSpot's 2024 State of Sales report found that 27% of sales reps name poor CRM data quality as their number-one barrier to closing deals. That figure is from teams with dedicated sales ops people. For a solo founder who built the contact database themselves — adding contacts manually between jobs, importing a spreadsheet from a previous booking system, or letting a web form dump leads in without a tagging rule — the data quality problem is typically much worse. There is no one auditing the records because there is no one whose job it is.
The four buckets where problems cluster
For a sub-1,000-contact CRM, hygiene problems almost always fall into exactly four areas:
- Duplicate contacts — the same person exists twice or three times under different email addresses or phone numbers, splitting their activity history and firing automations multiple times
- Missing lead-source tags — contacts with no 'Source' property (Google Ads, Meta, Referral, Organic) that make attribution impossible
- Stale pipeline stages — contacts sitting in 'New Lead' or 'Contacted' for weeks or months, with no movement and no sequence enrolled
- Broken or never-built follow-up automations — workflows that were set up once and have been silently failing, or that were never built at all
The good news: on a sub-1,000-contact database, all four of these can be diagnosed in under 90 minutes using the tools already inside GoHighLevel or HubSpot Starter — no paid add-on, no consultant required for the audit itself.
The four-bucket audit you can run tonight in under 90 minutes
Clear 90 minutes. Open your CRM. Work through each bucket in order — do not skip ahead to rebuilding automations before you have cleaned the contact records, or you will automate the mess.
Bucket one: duplicates
Duplicates are the most damaging hygiene problem because they split automation history and cause the same person to receive multiple follow-up sequences. Here is how to surface them in each platform:
- GoHighLevel: Navigate to Contacts › Smart Lists › create a new list with no filters, then sort by Email column. Identical email addresses will group together visually. Alternatively, export to CSV (Contacts › Bulk Actions › Export) and run the check in Google Sheets — see the GoHighLevel section below for the exact formula.
- HubSpot Starter: Go to Contacts › Actions › Manage Duplicates. HubSpot surfaces likely duplicates based on matching email, phone, or name. Work through the list — each card shows you which record to keep and what will be merged.
Bucket two: untagged lead sources
Any contact without a Source property cannot be attributed to a campaign. That means you cannot tell whether your Google Ads spend or your Meta spend is actually producing bookings — you are flying blind on budget allocation.
- GoHighLevel: Create a Smart List filtered by: Custom Field 'Lead Source' is empty. Bulk-select all results and use Bulk Actions › Update Field to apply the closest known source. If you genuinely do not know the source for a contact older than 90 days, tag them 'source-unknown' so they are at least visible and excluded from attribution reporting.
- HubSpot Starter: Go to Contacts, add the 'Original Source' column to your table view. Filter for 'Original Source is unknown'. For any contact added manually, you will need to update the 'Lead Source' property individually or in bulk via Actions › Edit Properties.
Bucket three: stale pipeline stages
These are your warm leads rotting. Filter for contacts sitting in 'New Lead' or 'Contacted' for more than 14 days with no last-activity update. In both GoHighLevel and HubSpot Starter, you can add 'Last Activity Date' as a filter column and sort ascending — the oldest records surface immediately.
Do not delete these contacts. Do not move them to a 'Lost' stage out of tidiness. They need a re-engagement sequence — see Section 6 for the exact copy. Flag every one of them tonight by adding the tag 'reactivation-[month][year]' (e.g., 'reactivation-apr25') so you can enrol them into an automation immediately.
Bucket four: broken automations
In GoHighLevel, navigate to Automation and open each active workflow. Look at the Enrolled and Failed counts in the top-right corner of the workflow canvas. A Failed count above 5% of Enrolled is a red flag — it usually means a trigger tag was renamed, a pipeline stage was deleted, or a connected integration (calendar, SMS number) lost its authentication. Click into 'Failed' contacts to read the error message — it will name the exact step that broke.
In HubSpot Starter, go to Automation › Workflows (if on a workflow-enabled tier) or check Sequences › Sequence Performance for step-by-step open and reply rates. A step with a 0% completion rate in an otherwise active sequence usually means the connected inbox has been disconnected.
The leads rotting in your CRM cost you just as much as the ones you closed — you just don't feel the pain yet.
GoHighLevel specifics: the exact screens to check first
GoHighLevel is the platform SoudCoh recommends for most Australian service businesses under $5M because the sub-account structure, built-in SMS, and pipeline automation are all in one place. Here is exactly where to look.
Finding duplicates with a Google Sheets formula
Export your full contact list: Contacts › Bulk Actions › Export All. Open the CSV in Google Sheets. In an empty column next to the email column (assume column B), paste this formula into row 2 and drag it down:
=COUNTIF($B:$B,B2)>1
Any cell that returns TRUE is a duplicate email address. Filter the column for TRUE values, copy those email addresses, and take them back into GoHighLevel to merge manually or via the deduplication tool.
Using the built-in merge tool before building anything new
GoHighLevel's Sub-Account Contact Deduplication tool lives at Settings › Business Info › Merge Duplicates. It matches on identical email address or identical phone number and merges the records, preserving the most recent activity history. Per GoHighLevel's public documentation at help.gohighlevel.com, this merge is non-reversible — so run your CSV export first as a backup, then run the merge.
Critical: run this merge before you build any new automation. If you build a workflow first and then merge contacts, the enrolled-contact counts in your workflows will be inaccurate and some contacts will have partial automation histories from both pre-merge records.
Setting the right timezone before you activate anything
GoHighLevel's workflow time-window setting — the feature that prevents your SMS from firing at 2am — uses the timezone set in your sub-account, not a global setting. Go to Settings › Business Info and confirm the timezone is set to Australia/Sydney. If your business is in Queensland, set it to Australia/Brisbane (no daylight saving). This one setting affects every workflow in the sub-account. Set your follow-up windows to 8:30am–8:00pm to stay within reasonable contact hours and reduce opt-out rates.
HubSpot Starter specifics: the free tools most owners never open
HubSpot Starter costs $20–$50 AUD per month for most service businesses and includes enough pipeline and sequence tooling to run a clean follow-up system for sub-1,000 contacts. The problem is that most owners use it as an address book with a pipeline column. Here is what else is in there.
The Contact Activity feed as a lead-temperature gauge
Every contact record in HubSpot has an Activity feed on the right panel — it shows the last email open, last page visit, last form fill, and last logged call. In your Contacts list view, add 'Last Activity Date' as a column, then sort ascending. Every contact with no activity in the last 30-plus days is a candidate for your re-engagement sequence. This is not a manual process — set up the saved filter once and come back to it every Monday.
Building a three-touch re-engagement sequence in 20 minutes
Go to Sales › Sequences › Create Sequence. Build it like this:
- Step 1 (Day 1): Automated email — personalised plain-text, no HTML template, subject line: 'Following up on your [service] enquiry'
- Step 2 (Day 3): SMS task (if opt-in confirmed) or a second email variant
- Step 3 (Day 7): Manual call task assigned to you, with a note template pre-filled
Once the sequence is built, go to your Contacts view, filter for the stale-stage contacts you identified in Bucket Three, bulk-select them, and choose Actions › Enrol in Sequence. The whole process — build plus enrol — takes under 20 minutes the first time.
A re-engagement sequence built in 20 minutes tonight can book jobs from leads you paid for three months ago.
Using the Deal Stage Funnel report to prove the fix worked
HubSpot Starter does not include custom reporting, but the built-in Deal Stage Funnel report is under Reports › Reports Library › Sales › Deal Stage Funnel. Take a screenshot of it tonight before you run the audit. Take another screenshot in four weeks. The change in the 'Contacted → Proposal Sent' conversion rate is your proof-of-work — and the number you use to decide whether to keep running the system yourself or hand it to someone.
The re-engagement sequence that books jobs from dead leads — with real copy
A dead lead is not a lost lead. It is a person who raised their hand, got distracted by life, and has not heard from you since. They chose you once. A direct, no-pressure message often gets a reply within hours — because the buying intent was real, it just went cold.
The three-touch structure
Keep it simple. Three touches over seven days. Do not automate beyond this — after seven days with no reply, move the contact to a 'Long-term nurture' stage and let a monthly newsletter do the work.
| Touch | Day | Channel | Purpose |
|---|---|---|---|
| 1 | Day 1 | Plain-text email | Re-open the conversation, acknowledge the gap |
| 2 | Day 3 | SMS (opt-in only) | Direct booking link, one sentence |
| 3 | Day 7 | Manual call task | Personal call — log outcome and move stage |
The actual copy to use — copy and adapt it now
Touch 1 — Email (plain text, no logo, no footer banner):
Subject: Quick follow-up — [Your Business Name]
Hi [First Name],
You reached out a few weeks ago about [service type]. I want to make sure we didn't drop the ball on our end.
If you're still looking for help with [service], I'd love to have a quick chat this week — no pressure, just 10 minutes to work out if we're the right fit.
Here's my calendar: [Booking Link]
[Your Name]
Touch 2 — SMS (confirmed opt-in contacts only):
Hi [First Name], [Your Name] from [Business]. Still happy to help with [service] — book a time here: [Short Link]. Reply STOP to opt out.
Touch 3 — Manual call task note template:
Call [First Name] re: [service] enquiry from [date]. Goal: confirm still interested, book a site visit / consult. If no answer: leave voicemail referencing email sent [date]. Log outcome and update pipeline stage.
Australian compliance — do not skip this part
SMS marketing to contacts who have not explicitly opted in may breach the Spam Act 2003. If your lead came in via a web form that included a checkbox with wording like 'I agree to receive SMS updates from [Business Name]', you are covered for Touch 2. If the lead came via a phone call, a referral, or an older form without that checkbox, use email for Touches 1 and 3 only and skip the SMS entirely. When in doubt, check the Australian Communications and Media Authority guidance at acma.gov.au before you activate any SMS sequence.
How to trigger this in each platform
- GoHighLevel: Build a Workflow with the trigger 'Contact Tag Added' and set the tag to 'reactivation-apr25' (or whatever tag you applied during Bucket Three of the audit). When you bulk-add that tag to stale contacts, the sequence fires automatically for each one.
- HubSpot Starter: From the Contacts view, filter for the stale-stage contacts, bulk-select, and choose Actions › Enrol in Sequence. Select the three-touch sequence you built earlier. HubSpot will send Touch 1 immediately and schedule the rest.
A re-engagement sequence built in 20 minutes tonight can book jobs from leads you paid for three months ago.
What to tag, track, and check every Monday morning in five minutes
The audit is a one-evening event. The maintenance is a five-minute Monday habit. If you do not build the habit, you will be running the same audit again in six months on the same mess.
The Monday morning ritual
Open your CRM every Monday before you look at email or messages. Do these three things in order:
- Open your 'Monday Check' saved filter (instructions below). Confirm every new lead from the last seven days has a Source tag and is enrolled in a follow-up sequence.
- Check your automation Failed counts in GoHighLevel (Automation › each active workflow) or your Sequence performance in HubSpot (Sales › Sequences). Any new failures need to be fixed before they compound.
- Move any contact that has replied or booked to the correct pipeline stage. Do not leave 'Contacted' contacts in 'New Lead' — stale stage data is how this whole problem starts again.
Building the saved filter in each platform
GoHighLevel — Smart List setup:
- Go to Contacts › Smart Lists › + New Smart List
- Add filter: Lead Source is empty OR Pipeline Stage is 'New Lead' AND Last Activity Date is more than 7 days ago
- Save the list as 'Monday Check'
- Bookmark the URL in your browser — it will always open to this filtered view
HubSpot Starter — Saved filter setup:
- Go to Contacts, click Add Filter
- Set: Original Source is unknown OR Lifecycle Stage is 'Lead' AND Last Activity Date is more than 7 days ago
- Click Save Filter and name it 'Monday Check'
- Pin it to your left sidebar for one-click access
The one metric that tells you whether any of this is working
Track one number every month: the ratio of leads entering the pipeline to leads reaching 'Proposal Sent' (or whatever your equivalent conversion stage is). If before the audit that ratio was 25% and after four weeks of clean tagging and working automations it is 40%, you have recovered real booked jobs — at zero additional ad spend. That is the number to take to whoever controls your marketing budget.
When to stop DIY-ing and hand the CRM to someone who does this every day
The audit in this article is designed to be done by you, tonight, on a sub-1,000 contact database. But there is a version of what you find that tells you the one-evening fix is not enough.
The three signals that mean you need help
Stop and get help if your audit surfaces any of these:
- More than 200 untagged contacts — bulk-tagging 200 records and then building attribution logic from scratch is a multi-session rebuild, not an audit
- Three or more broken automations — broken workflows usually mean the underlying pipeline structure (stage names, tag taxonomy) was never documented, which means fixing one workflow breaks another
- No written pipeline stage definitions — if you have never written down what 'Contacted' actually means in your business (did someone call them? did they reply?), your pipeline data is fiction and no automation can fix fictional data
What SoudCoh actually does — and why it is different from a generic VA
SoudCoh works with Australian service businesses — trades, clinics, professional services — on CRM hygiene and pipeline automation inside GoHighLevel and HubSpot Starter. The process is specific:
- Contact database audit — duplicates, source tagging, stage accuracy, automation failures — documented in a report with exact counts
- Workflow rebuild — every automation is rebuilt with Australian timezone rules (AEST/AEDT transitions matter in GoHighLevel), Spam Act opt-in checks on every SMS sequence, and stage definitions written for your actual sales conversation — not copied from a SaaS template
- Monday-morning handover — a one-page checklist written for your specific service type, so you can maintain it yourself after handover without needing to call anyone
See real examples of this process in action across the accounts we have written up — including pipeline rebuilds for a trades client and a health clinic client, both with before/after lead-to-booking conversion rates.
Why specificity to Australia matters here
A generalist VA or an offshore CRM admin will set your workflows to UTC. They will not know that GoHighLevel's Australia/Sydney timezone observes AEDT in summer and AEST in winter, and that this shifts your 8:30am send window by a full hour for six months of the year. They will not check your SMS sequences against the Spam Act. They will not map your pipeline stages to a Fair Work-compliant admin process if you have staff managing follow-up. These are not edge cases — they are the things that cause your clean CRM to quietly stop working two months after the build.
If you want to understand what SoudCoh's paid ads management, SEO, or web design work looks like alongside a CRM build, the about page explains how those services connect in practice for service businesses.
What to do next: Run the four-bucket audit tonight — it costs nothing and takes 90 minutes. If what you find is manageable, use the Monday habit to keep it clean from here. If what you find is a database that has never been properly structured, do not spend another week and another ad budget on top of a broken foundation. Book a free CRM audit with SoudCoh through the work we do on lead quality and find out exactly how many booked jobs are sitting in your contact database right now.

