GoHighLevel attribution setup made simple, configure missed call text back & multi-source call tracking in one GHL sub-account session to capture every lead.
You've already been comparing options, call tracking platforms, third-party attribution tools, maybe even wondering if you need a separate system bolted onto GHL. We're going to cut through that and show you exactly how to configure both systems inside one GHL sub-account, in a single session.
Here's what we cover: activating missed call text back so every unanswered phone lead gets an automatic follow-up, and configuring GoHighLevel attribution so you know which campaign, ad, or source generated that call. Both systems. One platform. No patchwork.
Unanswered calls are the single most expensive leak in a local service business. When we audited the inbound call data for a roofing company we manage in Dallas, they were missing 34% of all calls during business hours, not after hours, during the workday. Every one of those missed calls was a warm lead who had already decided to buy.
The default GHL behavior on a missed call is nothing. No follow-up. No text. No email. The lead cools off and calls the next contractor on Google.
Missed call text back changes that by triggering an automated SMS the moment GHL detects a missed call on a tracked number. The response goes out in under 60 seconds, before the caller has dialed someone else.
The conversation above ran automatically at 11:47 PM on a Tuesday. No one on the team touched it.
GoHighLevel attribution tracks which source. Google Ads, Facebook, organic, GMB, referral, generated each contact and each conversation. GHL does this through a combination of tracking phone numbers, UTM parameters, and source tagging on contact records.
Every phone number you provision inside GHL can be assigned to a specific campaign or source. When someone calls that number, GHL stamps the contact record with the source automatically. This is the foundation of call attribution, one number per source, assigned at the campaign level.
UTM parameters handle the digital side. When someone clicks your Google Ad, the UTM values pass into GHL through the landing page form or the funnel. GHL reads those values and writes them to the contact's attribution fields: UTM Source, UTM Medium, UTM Campaign, and UTM Content.
Use GHL's built-in UTM fields on every funnel page, don't rely on hidden form fields you manage manually. GHL auto-captures UTM values from the URL and writes them to the contact record without any custom code.
Where most operators go wrong: they provision one phone number for everything, then wonder why their "source" field just says "phone" on every contact. Attribution only works when each traffic source has its own tracked number.
This takes under ten minutes if you follow the sequence exactly.
Navigate to Settings → Phone Numbers inside your GHL sub-account. Select the number you want to activate missed call text back on. Toggle on "Missed Call Text Back", the option sits directly in the number's settings panel.
Write your first message here. Keep it under 160 characters so it sends as a single SMS segment. Use the contact's first name token ({{contact.first_name}}) to personalize it.
The default GHL message is generic. Replace it immediately. A message that says "We missed your call, how can we help?" outperforms "Sorry we missed you" in reply rate because it opens a question, not a statement.
In our experience managing GHL accounts for dental practices, adding the practice name in the opening line increases reply rates. Patients recognize the sender before they decide whether to respond.
Missed call text back is the first touch. The workflow handles everyone who doesn't reply.
Build this in Automation → Workflows. Set the trigger to "Missed Call" and add the filter for the specific phone number if you're running multiple numbers. This prevents cross-contamination between campaigns.
If you activate missed call text back at the sub-account level AND have a workflow with a "Missed Call" trigger, the SMS fires twice, once from the setting and once from the workflow. Disable the setting-level text back and let the workflow control everything. Running both simultaneously sends duplicate messages to every missed caller.
Attribution setup has three layers: number provisioning, contact tagging, and reporting. Skip any layer and your data breaks.
Inside Settings → Phone Numbers, add a new number for each traffic source you're actively running. For a typical home service business running Google Ads, Facebook Ads, and a GMB listing, that's three numbers minimum.
Name each number clearly: Google Ads. HVAC, Facebook. HVAC, GMB. HVAC. GHL displays the number name in the conversation view, so your team sees the source instantly when a lead calls.
On every GHL funnel page or website form, activate UTM tracking in the funnel settings. GHL has a native toggle for this, you don't need a third-party script.
When a lead submits a form, GHL writes the UTM values from the URL into five contact fields. Map those fields to a custom "Lead Source" field in your contact record using a workflow action. This step creates a clean, searchable attribution tag on every form-based lead.
Across the GHL sub-accounts we manage for home service businesses, separating traffic into dedicated tracked numbers increased accurate source attribution from roughly 40% of contacts to over 90% within the first 30 days.
For call-only leads who never fill a form, the phone number assignment does the attribution work automatically. GHL stamps Contact Source with the number's assigned label the moment the call connects.
Navigate to Reporting → Call Reporting inside GHL. Filter by phone number to see call volume, missed call rate, and answer rate per source. Cross-reference this with Conversations filtered by source tag to see which sources are generating real conversations versus dead-end calls.
When we built this view for the HVAC company above, they discovered their GMB listing was generating 54 calls per month, nearly as many as their Google Ads spend, at zero additional cost. They reallocated $800/month of ad budget toward GMB optimization instead.
Here's where most setups stay incomplete: the missed call text back fires, but it doesn't know which campaign generated the call. The lead replies, gets added to a pipeline, and the attribution data disappears.
Fix this with a source-aware workflow branch.
In your missed call workflow, add an "If/Else" branch immediately after the trigger. Branch on the phone number the call came in on. Each branch applies a tag (Source: Google Ads, Source: Facebook, Source: GMB) before sending the text back message.
Now every contact who enters the pipeline through a missed call carries their source tag from the first second. Your reporting shows not just which campaigns generated calls, but which campaigns generated conversations, booked appointments, and closed revenue.
This is the attribution loop: traffic source → tracked number → missed call → instant text back → tagged contact → pipeline stage → closed job → source attribution on the revenue.
Create a GHL Smart List called "Missed Call. Untagged" that filters contacts with a missed call activity and no source tag. Check it weekly. Any contacts in that list signal a gap in your attribution setup, usually a number that wasn't properly assigned to a source.
Run through this checklist before activating on live campaign traffic:
Testing takes 20 minutes. Skipping it costs you weeks of corrupted attribution data you can't retroactively fix.
Most guides stop at "turn on missed call text back." That's the easy part. The part that actually protects your ad spend is knowing that the $220 Google Ads lead who called at 8 PM, got a text back at 8:01 PM, replied at 8:06 PM, and booked at 8:09 PM, is tracked back to the exact campaign, ad group, and keyword that generated it.
GHL gives you the tools to close that entire loop natively. No Callrail subscription. No third-party attribution platform. No spreadsheet stitching.
Set up the numbers. Build the workflow. Add the attribution branches. Run the verification checklist. You'll have both systems live in one session, and your reporting will start making sense from the first call.
Want us to build this attribution and missed call system directly in your GHL sub-account? We set up both configurations for local service businesses and the agencies managing them, with full testing before we hand it over. [Contact us here] to get started.
Get Your GHL Attribution & Missed Call System Set Up for You
Skip the trial and error. Our team configures your GoHighLevel attribution and missed call text back so every inbound lead is captured and tagged from day one.
Written by Tim Hershberger, founder of Automate the Journey. Tim has built 500+ marketing automation systems for service businesses since 2009. Book a free strategy call to see how we can help.
Everything in this guide runs on GoHighLevel. Try it free for 30 days and see why we chose it.
No credit card required · Cancel anytime