Skip to main content
    Proof
    Impress Blinds — cost per enquiry down 62.63%, $23.6 to $8.82SLS Solicitors — cost per enquiry down 58.48%, $84.64 to $35.14FixCare Property — cost per enquiry down 56.36%, $35.24 to $15.38Rubbish Removal WA — cost per enquiry down 53.18%, $71.02 to $33.25Floral Cakery — cost per enquiry down 49.82%, $13.83 to $6.94ILLUMINATE Laser Emporium — cost per enquiry down 48.54%, $138.65 to $71.35Aussie Plumbing — cost per enquiry down 41.96%, $117.75 to $68.34Sydney Fence Painting — cost per enquiry down 33.68%, $136.62 to $90.61Alliance Plumbing — cost per enquiry down 29.6%, $81.26 to $57.21Gridless Build Solutions — cost per enquiry down 29.16%, $78.16 to $55.37FacilityWorx — cost per enquiry down 23.62%, $157.13 to $120.01Cornerstone Roofing — cost per enquiry down 20.47%, $41.71 to $33.17A council finance platform — 194 of 194 requirements metA council finance build — 14 weeks to UAT, −34% 10-yr costA cultural institution — $634K of $750K kept workingA council platform — $470,106 built vs $503,262 SaaSA federal agency — n=5,000 prevalence survey at ±1.4%A civic mural — 36 concepts for a 71m × 9m wallA regional shire — 32-page visitor guide, 3 weeks earlyA shire council — one platform retiring 8 of 9 vendorsA pressure washing business — 138 jobs at A$20.43 eachA pressure washing business — 21.20% conversion rateA carpet cleaner — 53 jobs in 15 days at A$24.92 eachA roofing company — 68 quote requests in 35 daysA CCTV installer — 39 qualified leads in 15 daysA fence painter — 36 jobs in 24 days, quotes by day 3A maintenance business — live in 8 weeks, 3 stacks gone41 numbered clauses, published in full5.0 across every Google review$120M+ in media under management250+ active engagements across five countries
    Small Business

    Email Open Rates Are Broken: Measure Booked Jobs Instead

    Your quote follow-up emails show a 60% open rate and you feel good — but three of those jobs went to a competitor who called first. Since iOS 15, Apple pre-loads email pixels on its own servers, which means your open rate is partly a lie, and has been for three years. This piece shows you a 3-step sequence wired to a GoHighLevel pipeline stage so you measure booked jobs per send — the only number that pays your rent.

    • 4 January 2025
    • 15 min read
    • 3,341 words
    • 4 sources

    Apple quietly broke email open rates in September 2021 and nobody told your Mailchimp dashboard

    If you've been running email sequences for your service business and feeling quietly confident about those open rates, this section is going to sting a little. In September 2021, Apple shipped iOS 15 with a feature called Mail Privacy Protection. Most people clicked through the setup screen without reading it. That click changed what your email stats mean.

    What Mail Privacy Protection actually does to your tracking pixel

    Here's the mechanism. When you send a tracked email, it contains a tiny invisible image — one pixel — hosted on your email platform's server. Traditionally, when a recipient opened the email, their device fetched that image, and the platform logged a timestamp and IP address: open confirmed. Apple changed this. Per Apple's own support documentation for iOS 15, Mail Privacy Protection routes that pixel fetch through Apple's own proxy servers and pre-loads it before the recipient touches the email. The pixel fires. The open is recorded. The person may never have looked at the message.

    That's not a minor rounding error. That's a structural fault in the metric.

    Side-by-side illustration showing the old pixel-fetch flow (device → email server) versus the iOS 15 proxy flow (Apple proxy server → email
    Side-by-side illustration showing the old pixel-fetch flow (device → email server) versus the iOS 15 proxy flow (Apple proxy server → email server → recipient device optionally never fetches)

    How bad is the inflation? The Litmus numbers

    According to the Litmus 2023 State of Email report, more than 35% of all recorded email opens are now Apple proxy opens. Read that again: more than one in three opens in your dashboard did not come from a human eyeball on your message. If your quote follow-up sequence is reporting a 60% open rate, the real human-read rate could be as low as 25% — and you have no way to tell which 25% inside Mailchimp's standard reporting view.

    Stacked bar chart — Breakdown of a reported 60% open rate: ~35% Apple proxy opens (grey), ~25% genuine human opens (brand colour), showing t
    Stacked bar chart — Breakdown of a reported 60% open rate: ~35% Apple proxy opens (grey), ~25% genuine human opens (brand colour), showing the gap between repor

    The platforms haven't adjusted what they show you

    Mailchimp, ActiveCampaign, and even the built-in invoice reminder sequences inside Xero's payments module all still surface open rate as the headline KPI on their campaign dashboards. There's no asterisk. There's no proxy-adjusted column by default. You click into your sequence report, you see a strong open rate, and the tool's interface is implicitly telling you things are working. They may not be. Your dashboard is confidently reporting fiction, and most small business owners have no reason to question it because the number looks healthy.

    "A 60% open rate and zero booked jobs is not a marketing success — it's a broken measuring stick."

    The fix is not to find a tool that strips Apple proxy opens (though some do). The fix is to stop treating open rate as a meaningful outcome metric entirely for your email sequences, and replace it with something that can't be pre-loaded by a proxy server: a booked job.

    The metric you're ignoring is booked jobs per sequence send — and it's dead simple to calculate

    Before we get into the technical setup, let's make sure the concept is clear. Booked jobs per sequence send is not a new idea from a SaaS vendor. It's arithmetic. And once you see it, you won't care about open rates again.

    The formula, no tool required

    Booked jobs per sequence send = jobs booked that originated from a sequence email ÷ total contacts who entered that sequence. If you sent 40 people through your quote follow-up sequence and 6 of them booked a job, your rate is 6 ÷ 40 = 15%. That's a real business number. It has a dollar value attached to it. An open rate does not.

    The objection I hear from owner-operators is: "I can't track which jobs came from the email." That's true for most current setups — and that's the problem this article fixes. But the concept is simple enough that you can start approximating it today with a manual tally, even before you wire up a pipeline.

    The 18% vs 60% comparison that settles the argument

    Here's a concrete illustration. Sequence A reports 60% opens, uses a generic Mailchimp template, and has three CTAs — call us, visit our website, or reply to this email. It closes zero jobs from 40 sends because the quote expired before anyone acted, and there was no direct booking link. Sequence B reports 18% opens (mostly genuine), contains a single GoHighLevel calendar booking link, and is wired so that a reply automatically moves the contact to a "Job Booked" pipeline stage. It closes 1 in 4 replies. If 18% of 40 contacts reply, that's roughly 7 replies, and at a 25% close rate from reply, that's almost 2 booked jobs per 40 sends — with a real dollar figure attached.

    Metric Sequence A (60% open rate) Sequence B (18% open rate)
    Reported open rate 60% 18%
    Estimated real human opens ~25% ~16%
    Pipeline stage moves (replies/bookings) 0 7
    Jobs booked 0 ~2
    GST-exclusive revenue per send $0 $200+

    Keep it GST-exclusive from the start

    One detail that saves you a headache at BAS time: the ATO requires GST-registered businesses to record revenue GST-exclusive in their Business Activity Statements. Per ATO guidance on GST reporting and record-keeping, the figures on your BAS must reflect the ex-GST amounts. If you're tracking job value inside GoHighLevel or HubSpot at the GST-inclusive invoice total — the number the customer sees — your sequence revenue figure will never match your Xero BAS report without manual adjustment. Divide by 1.1 at the point of entry. Do it once, do it consistently, and your numbers are clean.

    Most service business owners have no way to connect an email send to a job booked — here's why the loop stays open

    This is not a failure of effort. It's a failure of tooling architecture. The typical small service business runs its operations across three or four tools that were never designed to talk to each other, and attribution falls into the gaps between them.

    The three-tool problem

    The standard setup for a trades or professional services business in Australia looks like this: quote sent from Tradify, ServiceM8, or a PDF emailed from Outlook; follow-up reminder sent from Mailchimp, a MailerLite broadcast, or — more commonly — a manually typed Gmail draft the owner sends when they remember; invoice raised in Xero when the job is won. Three separate tools. No shared contact ID between them. No handshake that says "the person who received that email became this invoice." Attribution is not just difficult — it's structurally impossible without an extra layer sitting on top.

    Diagram showing three disconnected tool islands — quoting tool, email platform, accounting software — with a gap between each and a question
    Diagram showing three disconnected tool islands — quoting tool, email platform, accounting software — with a gap between each and a question mark where the attribution link should be

    No pipeline stage, no closed loop

    A CRM pipeline stage is the missing link. When a contact moves from "Quote Sent" to "Job Booked" inside a CRM, that movement is a timestamped event that can be tied to the last email interaction in the sequence. Without that event, the email disappears into the recipient's inbox and the job either appears in your calendar a week later or it doesn't. There is no mechanism to connect cause and effect. The follow-up email could have been decisive, or irrelevant — you'll never know, so you can't improve it.

    Operators optimise what the tool surfaces

    Owner-operators working a 12-hour day and checking their marketing stats at 9pm are going to optimise what the dashboard shows them. If the dashboard shows open rate, they'll A/B test subject lines. They'll try a different emoji. They'll change the send time. They'll move the preheader text around. All of that effort is directed at a metric that Apple's proxy servers can move independently of any human behaviour. Meanwhile, the actual booking link is buried in paragraph three of a dense email, the CTA copy says "feel free to get in touch," and the contact has to figure out how to act. The tool is steering the operator away from the fix.

    A 60% open rate and zero booked jobs is not a marketing success — it's a broken measuring stick.

    Wire a 3-step quote follow-up sequence to a GoHighLevel pipeline stage in under an hour

    This is the practical section. The steps below assume you have a GoHighLevel account (sub-account level access is sufficient) and that your quoting tool can either send contacts to GoHighLevel via Zapier or a webhook, or that you're willing to add contacts manually when a quote goes out. Either works.

    Step 1 — Create the pipeline stage and trigger the sequence

    1. In GoHighLevel, go to Pipelines and create a new pipeline called "Quote Follow-Up" (or add a stage to an existing sales pipeline).
    2. Add two stages: Quote Sent and Job Booked.
    3. Go to Automation → Workflows and create a new workflow. Set the trigger to Pipeline Stage Changed → Quote Sent.
    4. Add three email actions in the workflow: Day 0 (immediate — sends the quote delivery email or confirmation), Day 2 (soft follow-up — "Just checking you received this"), and Day 5 (urgency close — "Quote expires Friday"). Schedule each send at 7:30 AM AEST using the "Delay" action set to a specific time of day.

    Per GoHighLevel's pipeline automation documentation, stage-change triggers fire reliably in real time, so the moment you drag a contact into "Quote Sent" — or a Zapier automation does it — the sequence starts without any manual action.

    Step 2 — One CTA, one action, one pipeline move

    1. In each email, include a single CTA. Use either a GoHighLevel calendar booking link (the contact picks a time and the appointment is created automatically) or a one-tap reply prompt: "Reply YES to confirm and I'll lock in the time."
    2. In the same workflow, add a trigger branch: If contact replies to email → move pipeline stage to Job Booked. This is done with a Conversation Reply trigger combined with a Pipeline Stage update action.
    3. For calendar bookings, GoHighLevel moves the stage automatically on appointment creation if you map it in the calendar settings under Appointment Status → Confirmed → Update Pipeline Stage.

    The attribution loop is now closed. Every contact who books or replies is logged against the sequence in real time, with no manual data entry.

    Step 3 — Pull the booked-jobs number from the reporting tab

    1. Go to Reporting → Pipeline Report in GoHighLevel.
    2. Filter by your "Quote Follow-Up" pipeline and set the date range to the current month.
    3. Count the contacts in the Job Booked stage — that's your jobs booked from sequence sends for the period.
    4. Add the deal values for those contacts (enter them GST-exclusive when the job is won), then export to CSV.
    5. Divide total job value by total contacts who entered the "Quote Sent" stage in the same period. That's your GST-exclusive revenue per sequence send. Drop it into a row in your monthly spreadsheet or cross-reference it against your Xero sales report.

    HubSpot Starter works too if you're already in that ecosystem — here's the equivalent setup

    Not every service business wants to move to GoHighLevel. If you're already using HubSpot Starter and your team is comfortable in it, you don't need to migrate. The same closed-loop attribution is achievable with a small workflow addition.

    HubSpot Sequences and deal stage mapping

    HubSpot Starter's Sequences tool — available from approximately AU$27/month at current pricing — lets you enrol a contact into a multi-step email sequence and track replies at the contact level. Create a three-step sequence with the same Day 0, Day 2, Day 5 cadence. In HubSpot, associate each enrolled contact with a deal in the "Quote Sent" stage of your pipeline before you enrol them. This is a manual step but it takes about 30 seconds per contact.

    Building the reply-to-stage workflow

    Here's where HubSpot differs from GoHighLevel. HubSpot won't automatically move a deal stage when a contact replies to a sequence email without a workflow. You need to build one:

    1. Go to Automation → Workflows → Create Workflow → Contact-based.
    2. Set the trigger to Contact property: Last sequence email replied date is known.
    3. Add an action: Set associated deal stage → Booked.
    4. Save and turn on. Total build time: approximately 10 minutes.

    Keeping the revenue figure GST-exclusive

    Both GoHighLevel and HubSpot export deal values in your chosen currency. Before you record any deal value anywhere — in the CRM, in a spreadsheet, or in a report — divide the GST-inclusive job total by 1.1. A $2,200 job becomes $2,000 in your tracking. This is not optional if you're GST-registered; it's the figure that needs to match your Xero BAS. Getting the habit right at the point of data entry means you're never reconciling two different numbers at the end of the quarter.

    Feature GoHighLevel HubSpot Starter
    Auto stage move on email reply Yes — built into workflow trigger Requires manual workflow (10 min build)
    Calendar booking link integration Native — built into platform Available via Meetings tool
    Approximate monthly cost (AU$) $97–$297/month (sub-account) ~$27–$54/month (Starter)
    Pipeline report with deal value Yes — filterable by pipeline stage Yes — via Deals dashboard
    GST-exclusive deal value entry Manual — divide by 1.1 on entry Manual — divide by 1.1 on entry

    GST-exclusive revenue per sequence is the number you put in your monthly report — here's the exact calculation

    Let's make the maths explicit and repeatable. This is the section to bookmark or screenshot, because this is the number that replaces open rate in your monthly review.

    Why GST-exclusive matters for your BAS

    Per ATO guidance on GST reporting, GST-registered businesses must record and report turnover on their BAS as GST-exclusive amounts. The 10% GST component is a liability to the ATO — it's not your revenue. If you track a $2,200 job as $2,200 in your sequence report and your Xero sales report shows $2,000 (ex-GST), you're managing two different numbers for the same job, and at month end something has to give. Get the habit right in the CRM from day one.

    The formula

    GST-exclusive revenue per sequence send = (total job value booked from sequence ÷ 1.1) ÷ total contacts who entered the sequence

    A worked example for a plumbing business running a quote follow-up sequence over one month:

    • 40 contacts entered the "Quote Sent" pipeline stage and received the sequence.
    • 8 contacts moved to "Job Booked."
    • Total job value (GST-inclusive) from those 8 jobs: $8,800.
    • GST-exclusive job value: $8,800 ÷ 1.1 = $8,000.
    • GST-exclusive revenue per sequence send: $8,000 ÷ 40 = $200 per send.
    "The only email metric that pays your rent is GST-exclusive revenue booked per sequence send."

    Using $200 as your benchmark to beat

    That $200 figure is now your benchmark. Next month, if you change the Day 2 subject line from "Following up on your quote" to "Your quote for [job type] — any questions?" and your revenue per send moves to $240, that subject line change was worth making. If it drops to $160, revert it. This is A/B testing with a real business outcome attached. Every optimisation decision has a dollar answer. The open rate never gave you that.

    1. Pull the pipeline report at the end of each calendar month.
    2. Count contacts who entered the sequence stage in that month.
    3. Sum the GST-exclusive deal values for contacts who moved to "Booked" in that same period.
    4. Divide. Record in a single row of a spreadsheet: Date | Contacts Sent | Jobs Booked | GST-ex Revenue | Revenue per Send.
    5. Cross-check the GST-exclusive revenue figure against the corresponding month in your Xero sales report. They should match within normal timing differences (jobs invoiced vs. jobs committed).
    The only email metric that pays your rent is GST-exclusive revenue booked per sequence send.

    Subject lines and send times still matter — but only after you can measure the outcome they drive

    This is not an argument against optimising your email sequences. Subject lines, send times, plain text versus HTML — all of it matters. The point is that optimisation is only meaningful when it's connected to a real outcome. Without the pipeline attribution in place, you're optimising a phantom.

    A/B testing that means something

    Once you have a booked-jobs-per-send baseline, A/B testing becomes real. Version A of your Day 5 subject line drives 6 bookings from 40 sends this month. Version B drives 9 bookings next month from the same volume. That's a 50% lift in actual revenue-generating outcomes — not a 5-point open rate increase that Apple's proxy may have manufactured half of. Keep Version B. Test the CTA copy next month. Build a sequence that gets measurably better every 30 days.

    Send times for Australian service businesses

    In SoudCoh's client sequences for Australian trades and professional service businesses, sends at 7:30 AM AEST on Tuesday or Wednesday consistently outperform evening sends and Monday morning sends. "Outperform" here means more replies that trigger pipeline stage moves — not higher open rates. Monday mornings compete with a crowded inbox. Evening sends land when the business owner is done making decisions. Tuesday and Wednesday at 7:30 AM AEST hit the inbox as the day is being planned, and a quote follow-up is an easy yes-or-no decision at that moment.

    Plain text over HTML templates for quote follow-ups

    For quote follow-up email sequences specifically, a plain-text email with a first-name merge field and a single booking link will outperform an HTML template with a header image, branded footer, and three CTAs. Here's why it matters beyond aesthetics: HTML templates with images trigger Apple's Mail Privacy Protection pre-load more reliably, because Apple's proxy fetches remote images as part of the process. This inflates your open rate further and tells you even less. Meanwhile, the cluttered layout with three CTAs reduces the probability that the contact does the one thing you want: click the booking link. One email. One ask. One action.

    Side-by-side comparison of a plain-text quote follow-up email (left, clean, single CTA) versus an HTML branded email template (right, header
    Side-by-side comparison of a plain-text quote follow-up email (left, clean, single CTA) versus an HTML branded email template (right, header image, three buttons, branded footer) — with a caption noting which drives more pipeline moves

    SoudCoh sets this up for service businesses as part of a GoHighLevel CRM build — here's what the engagement looks like

    If you've read this far, you know the problem and you know the solution. The question is whether you build it yourself tonight or get someone to do it properly the first time. Here's what working with SoudCoh on this looks like.

    What SoudCoh builds and what you see at the end of week one

    SoudCoh builds GoHighLevel CRM pipelines and email sequences for Australian service businesses, wiring the quote-to-booking attribution loop so the owner sees booked jobs per sequence in a single dashboard — not open rates, not click rates. The full process is outlined in the way we build a lead engine. Every sequence deployed is benchmarked against GST-exclusive job value from the first week of going live. The client has a revenue-per-send figure before the end of their first billing cycle. That number becomes the baseline for every optimisation conversation after it.

    Already on HubSpot or ActiveCampaign?

    For businesses already running on HubSpot, ActiveCampaign, or another platform, SoudCoh audits the existing sequence setup and rebuilds the attribution layer without migrating the full tool stack. The goal is a closed loop between email send and job booked — not a platform sale. If your current tool can do the job with a workflow addition, that's what gets built. If it can't, you'll hear an honest assessment of what moving to GoHighLevel would actually change, with numbers from comparable client setups, not vendor marketing. You can see examples of how SoudCoh has approached this for service businesses in the studies where the figures are published.

    The conversation SoudCoh won't have with you

    SoudCoh won't tell you your open rate needs to be higher. It won't recommend a new subject line formula before knowing what your current sequence closes. The first conversation is about what you're currently measuring, what a booked job is worth to your business GST-exclusive, and whether the attribution loop between your email tool and your jobs calendar is closed or open. Most of the time, it's open. That's the thing that gets fixed first.

    If you want SoudCoh to audit your current quote follow-up sequence and rebuild the attribution layer so you're measuring booked jobs — not Apple's pixel pre-loads — book a free 30-minute call with a SoudCoh strategist.

    What to do next

    If you want SoudCoh to audit your current quote follow-up sequence and rebuild the attribution layer so you're measuring booked jobs — not Apple's pixel pre-loads — book a free 30-minute call at soudcoh.com/about-us.
    Talk to SoudCoh

    Where the claims in this piece come from.

    Listed so you can check the reasoning rather than take it on trust. If a source has moved or been superseded, tell us and we will correct the piece.

    1. Apple Support: Mail Privacy Protection prevents senders seeing whether a message was opened — https://support.apple.com/en-au/guide/iphone/iphf084865c7/ios

    2. Mailchimp: Apple Mail Privacy Protection can inflate and distort open reporting — https://mailchimp.com/help/apple-privacy-faq/

    3. Mailchimp: Bot activity and filtering affect open and click metrics — https://mailchimp.com/help/about-bot-activity/

    4. HighLevel Support: Pipeline Stage Changed workflow trigger — https://help.gohighlevel.com/support/solutions/articles/155000002493-workflow-trigger-pipeline-stage-changed

    Read next

    Filed under the same desk first. The full index is searchable and filters by reader.

    If you would rather we just did it.

    The briefing above is the reasoning. These are the pages that describe what it looks like as a piece of paid work, including what it costs and what gets reported.

    Related evidence from live accounts.

    These are individual engagements where the market, system or measurement problem overlaps with the briefing. Each study names its window and the evidence available; none is a forecast for another account.

    Apply it to your account

    Reading it is the easy half. Thirty minutes with someone who runs accounts and you leave with a written list of what is leaking on yours — yours to keep either way.

    No pitch deck. No upsell. A real conversation and a written list of leaks.