GoHighLevel Attribution & Missed Call Text Back 2026 | ATJ
← All Articles

GoHighLevel Attribution & Missed Call Text Back 2026

GoHighLevel attribution setup made simple, configure missed call text back & multi-source call tracking in one GHL sub-account session to capture every lead.

Key Takeaways
  • Number assignment confirmed, each traffic source has its own GHL phone number, named clearly
  • Workflow trigger tested, place a test call, verify the SMS fires within 60 seconds, confirm no duplicate messages
  • UTM fields mapping correctly, submit a test form with UTM parameters in the URL, open the contact record, verify all five UTM fields populated
  • Source tags firing on branches, trigger the workflow manually from a test contact on each number branch, confirm the correct tag applies
  • Reporting filters working, pull the Call Reporting view, filter by each number, confirm data appears correctly

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.


Why Most GHL Users Are Bleeding Revenue on Missed Calls

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.

Messages. Dallas Pro Roofing
Hi! We just missed your call at Dallas Pro Roofing. We'd hate to miss you, what can we help you with today?
I need a quote for storm damage repair
Absolutely, we can get someone out fast. Do you want to book a free inspection today or tomorrow?
Tomorrow afternoon works
Confirmed for tomorrow 2pm! We'll send a reminder in the morning. Reply STOP to opt out.
Automated missed-call text back for a roofing company, lead converted without a single staff callback

The conversation above ran automatically at 11:47 PM on a Tuesday. No one on the team touched it.


How GoHighLevel Attribution Actually Works

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.

Pro Tip

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.


Setting Up Missed Call Text Back in GHL

This takes under ten minutes if you follow the sequence exactly.

Step 1: Enable the Feature at the Sub-Account Level

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.

Step 2: Customize Your Text Back Message

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.

Step 3: Build a Follow-Up Workflow for Non-Responders

Missed call text back is the first touch. The workflow handles everyone who doesn't reply.

Missed call detected on tracked number
Send SMS: "We just missed your call, how can we help?"
Wait 10 minutes
If no reply → Send SMS #2 with direct booking link
Wait 2 hours
If still no reply → Assign task to staff for manual callback
Lead replies, books, or enters nurture sequence
Three-touch missed-call recovery workflow, fully automated, hands off to staff only when needed

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.

Warning

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.


Need help getting more from GoHighLevel? Book a free call →

Configuring Multi-Source Call Attribution in GHL

Attribution setup has three layers: number provisioning, contact tagging, and reporting. Skip any layer and your data breaks.

Layer 1: Provision Separate Numbers Per Source

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.

Layer 2: Connect UTM Parameters to Contact Records

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.

Key Stat

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.

Layer 3: Build a Source-Aware Reporting View

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.

Call Attribution Dashboard. Peak HVAC (Monthly)
87Google Ads Calls
31Facebook Calls
54GMB Calls
Missed call recovery rate71%
Booked from text back23 jobs
Avg cost per booked call (Google)$38
Attribution data inside GHL, one view shows which source is actually producing booked jobs

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.


Connecting Attribution to Missed Call Text Back

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.

Pro Tip

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.


What to Verify Before You Go Live

Run through this checklist before activating on live campaign traffic:

  • Number assignment confirmed, each traffic source has its own GHL phone number, named clearly
  • Workflow trigger tested, place a test call, verify the SMS fires within 60 seconds, confirm no duplicate messages
  • UTM fields mapping correctly, submit a test form with UTM parameters in the URL, open the contact record, verify all five UTM fields populated
  • Source tags firing on branches, trigger the workflow manually from a test contact on each number branch, confirm the correct tag applies
  • Reporting filters working, pull the Call Reporting view, filter by each number, confirm data appears correctly

Testing takes 20 minutes. Skipping it costs you weeks of corrupted attribution data you can't retroactively fix.

Before Setup
  • One phone number for all traffic
  • Missed calls get no follow-up
  • Source field blank on 60%+ of contacts
  • No way to know which campaign books jobs
After Setup
  • Separate tracked number per source
  • Every missed call gets an SMS in under 60 seconds
  • Source tag on 90%+ of contacts from day one
  • Clear revenue-per-source data in GHL reporting
The before/after for a dental practice after full attribution and missed call text back setup

The GHL Setup That Actually Closes the Loop

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.

Book a Free Strategy Call ->


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.

Already on GoHighLevel? Let's fix what's costing you leads.