---
title: CallRail Setup — Implementation Walkthrough
type: article
created: '2026-04-05'
updated: '2026-04-05'
source_docs:
- raw/2025-12-12-internal-adava-care-callrail-setup-108448388.md
tags:
- callrail
- call-tracking
- attribution
- wordpress
- google-ads
- dni
- marketing-ops
- hubspot
- wp-engine
- elementor
layer: 2
client_source: Adava Care
industry_context: healthcare
transferable: false
---

# CallRail Setup — Implementation Walkthrough

## Overview

Internal working session with Mark Hope, Melissa Cusumano, and Sebastian Gant to implement CallRail for [[wiki/clients/current/adava-care/index|Adava Care]]. The session covered the rationale for call tracking, live setup of a DNI pool and a static location number, WordPress plugin integration, and cache-clearing procedures. The Glendale location was used as the worked example; remaining locations were split between Melissa and Sebastian to complete independently.

**Attendees:** Mark Hope · Melissa Cusumano · Sebastian Gant
**Date:** 2026-04-05

---

## Key Decisions

- **Hybrid tracking model adopted.** A single DNI pool targets the main website number (`414-262-0653`). All location-specific pages get individual static CallRail numbers. No second pool will be created for this site.
- **Whisper messages disabled at launch.** The feature that announces call source to the recipient was turned off to avoid confusing staff during the rollout. Can be re-enabled once the team is briefed.
- **WordPress plugin preferred over manual JS.** The CallRail WordPress plugin was installed rather than injecting the JavaScript snippet manually. The plugin key comes from CallRail → Integrations → WordPress, *not* the general API key.
- **One pool per website rule.** Running two DNI pools on a single site causes unpredictable swap behavior. Only one pool should ever be active on the Adava Care site.
- **Dedicated numbers for offline/ad campaigns.** For granular attribution on specific campaigns (Google Ads call extensions, print, direct mail, billboards), a separate static CallRail number should be created per campaign and named accordingly (e.g., "Glendale Google Ads").

---

## Action Items

| Owner | Task | Status |
|---|---|---|
| Melissa + Sebastian | Split remaining locations 50/50; create a static CallRail number for each | 🔲 Open |
| Melissa + Sebastian | Update all instances of each location's original number on the website (page content, footer, `tel:` links) using Elementor | 🔲 Open |
| Melissa + Sebastian | Clear WP Engine + WP Rocket caches after each batch of edits | 🔲 Open |
| Melissa | Notify Karosh that CallRail implementation is underway but not yet complete | 🔲 Open |
| Future | Create dedicated static CallRail numbers for Google Ads call extensions / offline campaigns | 🔲 Backlog |
| Future | Set up webhook to push call recordings into HubSpot | 🔲 Backlog |
| Future | Investigate webhook to backfill Google keyword data (Google populates click-to-keyword association on ~12-hour delay) | 🔲 Backlog |

---

## Implementation Details

### DNI Pool — Main Website Number

**Purpose:** Attribute calls to their traffic source (ad click, organic, direct, etc.) for any visitor who calls the main number.

**Configuration:**
- **Swap target:** `414-262-0653` (main website number, also appears in footer)
- **Pool size:** 4 numbers (414 area code)
- **Forwards to:** `414-262-0653` (original number unchanged)
- **Name:** "Website Pool"
- **Call recording:** Enabled

**How it works:** A JavaScript snippet (injected via the CallRail WordPress plugin) replaces the swap-target number with a unique pool number for each visitor. That number is reserved for ~20 minutes. If the visitor calls within that window, CallRail captures the Google Click ID and attributes the call to its source. After 20 minutes the number is released back to the pool; the call still forwards correctly but attribution granularity may be reduced.

**Pool sizing note:** With 4 numbers, attribution degrades if more than 4 concurrent visitors are active within a 20-minute window. Monitor for data gaps and expand the pool if needed.

### Static Tracking Numbers — Location Pages

**Purpose:** Track calls originating from specific location pages or offline campaigns. Static numbers do not swap; they are permanently placed on the page.

**Configuration per location (Glendale as example):**
- **CallRail number:** New 262-area number selected during session
- **Forwards to:** `262-247-7101` (Glendale's original RingCentral number)
- **Name:** "Glendale" (or "Glendale Website")
- **Call recording:** Enabled
- **Whisper message:** Disabled

**Attribution capability:** Static numbers capture source at a coarser level than the DNI pool (e.g., "website" vs. specific keyword). For keyword-level or campaign-level granularity, create a *separate* dedicated static number per campaign.

### WordPress Plugin Integration

1. In WordPress admin → **Plugins → Add Plugin**, search for "CallRail" and install + activate.
2. In CallRail → **Integrations → WordPress**, copy the WordPress-specific plugin key (this is *not* the general API key).
3. In WordPress admin → **Settings → CallRail**, paste the plugin key and save.
4. The swap goes live within ~1–2 minutes.

> ⚠️ Use an **incognito window** to verify the swap is working. The DNI timer means repeated checks from the same browser session will stop swapping after the first hit.

### Updating Location Numbers in Elementor

For each location page, three or more instances of the original number typically need updating:

1. Visible phone number text in the location section
2. The `tel:` href link on that number (controls tap-to-call on mobile)
3. Any additional appearances lower on the page (e.g., near the address block)
4. Footer (if the location number appears there separately from the main number)

Edit each instance via **Edit with Elementor**, replace both the display text and the `tel:` link value, then **Publish**.

### Cache Clearing (Required After Every Edit Batch)

After completing edits, clear both caches in this order:

1. **WP Engine:** WordPress admin top bar → **WP Engine → Caching → Clear All**
2. **WP Rocket:** WordPress admin top bar → **WP Rocket → Clear Cache**

If numbers still appear stale after clearing, verify in an incognito window. Persistent browser cache can mask changes even after server-side caches are cleared.

---

## Attribution Notes — Google Ads

Static location numbers will show that a call came from the website, but will not surface keyword-level data the way the DNI pool does. For Google Ads specifically:

- **Traffic sent to location pages:** The static number on that page will capture the visit source at a general level.
- **Call-only ads / call extensions:** Use a dedicated static CallRail number (e.g., "Glendale Google Ads") rather than the Google-assigned number. This keeps call data inside CallRail alongside all other call activity.
- **Keyword attribution delay:** Google sometimes takes up to 12 hours to associate a keyword search with a click ID. A backfill webhook can be configured to retroactively populate this data — flagged as a future task.

---

## Pricing Note

The current CallRail plan includes 10 numbers. Additional numbers beyond that incur a small incremental cost. Defer adding campaign-specific numbers until the base location rollout is complete and value has been demonstrated to the client (Karosh).

---

## Related

- [[wiki/clients/current/adava-care/index|Adava Care — Client Index]]
- [[wiki/knowledge/call-tracking/dynamic-number-insertion|Dynamic Number Insertion (DNI) — Concept]]
- [[wiki/knowledge/call-tracking/callrail-hubspot-webhook|CallRail → HubSpot Webhook Integration]]