wiki/knowledge/attribution/callrail-setup-guide.md · 904 words · 2026-04-05
CallRail Setup for Ad-to-Move-In Attribution
Overview
When clients run paid ads and want to know which ads are actually driving move-ins (or any high-value conversion), a simple conversion pixel isn't enough. The gap appears the moment a prospect picks up their phone and dials — that call is invisible unless you've implemented dynamic number insertion (DNI) via a tool like CallRail.
This guide covers the full attribution chain: from ad click → landing page → phone call → CRM record → confirmed move-in.
Context: This approach was developed while working on [1], where the client (Kharosh) was skeptical of ad ROI and demanded proof that ads were driving actual move-ins, not just form fills.
The Attribution Gap
Without CallRail, your traceability breaks the moment a visitor dials a phone number directly:
Ad click → Landing page ✓ (tracked)
↓
Visitor dials phone ✗ (gap — no idea where this call came from)
With CallRail + DNI, the chain is complete:
Ad click → Landing page → Unique tracking number displayed → Call recorded
↓
Google Click ID captured → Keyword/ad attributed → CRM record created
↓
Move-in confirmed → Traced back to originating ad
Prerequisites
Before setup, confirm:
- [ ] Landing pages live on the client's main domain (not in GoHighLevel or a separate tool — those pages won't appear in GSC/GA and break attribution)
- [ ] You have access to the CallRail account
- [ ] You have access to the client's CRM (e.g., Monday.com, GoHighLevel)
- [ ] Google Ads is running and passing click IDs
Note: GoHighLevel does not reliably handle call attribution tied to specific ad keywords. CallRail uses the Google Click ID to look back at the exact keyword and ad — this is something only CallRail can do cleanly.
Setup Steps
DNI swaps the phone number displayed on a page based on the traffic source. A visitor from a Google Ad sees a different number than an organic visitor.
- Install the CallRail JavaScript snippet on all site pages
- Create a number pool in CallRail for Google Ads traffic
- Assign a static tracking number for organic/direct traffic (so you can distinguish those calls too)
- Test: visit the landing page via a Google Ad click and confirm the number changes
2. Pass UTM Parameters Through to the CRM
Every CTA button and link in your ads, social posts, and emails should carry UTM parameters:
utm_source=google
utm_medium=cpc
utm_campaign=memory-care-wisconsin
utm_content=blog-boost-oct
When a form is submitted or a call is made, these parameters should be captured and passed into the CRM record. This lets you see not just that someone converted, but which ad, campaign, and even which button they clicked.
3. Connect CallRail to the CRM
- In CallRail, enable the Google Ads integration to import call data into the Ads dashboard as conversions
- Pass the Google Click ID (GCLID) from CallRail into the CRM on each call record
- When a move-in is confirmed in the CRM, look up the contact's GCLID → trace back to the originating call in CallRail → trace back to the originating ad
4. Export and Analyze Calls with AI
Once calls are flowing through CallRail:
- Export call logs (CallRail provides transcripts for each call)
- Feed the export into ChatGPT or similar: "Here are all our calls from the last 30 days. How many were legitimate leads? What were the common questions? Which locations were most requested?"
- Use the output to build a weekly lead report for the client
This same workflow applies to form fills — see [2].
Presenting Attribution to a Skeptical Client
When a client demands proof that ads drive move-ins, reframe the conversation around the value of leads already in the pipeline before attribution is fully closed:
- Quantify existing leads. Export all form fills for the year, run them through ChatGPT, and surface the count of legitimate inquiries (e.g., 138 real prospects).
- Calculate revenue potential. At ~$6,000–$7,000/month per resident × 12 months = ~$72,000/year per move-in. 138 inquiries × $72,000 × 10% conversion = ~$1M in annual revenue potential from leads already generated.
- Acknowledge the gap honestly. Explain that without DNI, calls that come in after a visitor dials manually are invisible — and that's exactly what CallRail fixes.
- Show the plan. Attribution tightening is a project with clear steps, not a mystery. Present the setup roadmap.
"You've got 138 legitimate leads this year. We don't need huge numbers — we just need to convert 10% of them. That's a million dollars. Let's make sure we can trace every one."
If the client uses Gravity Forms on WordPress:
- Configure form notifications so every submission triggers an email alert (confirm who receives these — they are often misconfigured or unmonitored)
- Set up a Google Sheets export via Gravity Forms add-on or Zapier for a running lead log
- Include the UTM parameters as hidden fields in the form so source data is captured on submission