---
title: WordPress CallRail Plugin Integration
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
- wordpress
- dni
- call-tracking
- wp-engine
- wp-rocket
- elementor
- marketing-ops
layer: 2
client_source: null
industry_context: null
transferable: true
---

# WordPress CallRail Plugin Integration

How to install and configure the CallRail WordPress plugin to enable Dynamic Number Insertion (DNI) on a WordPress site. This approach avoids manual JavaScript snippet management and is the preferred method for WordPress-hosted clients.

## Overview

CallRail offers a dedicated WordPress plugin that handles DNI pool deployment automatically. The key configuration detail is that the plugin requires a **WordPress-specific integration code** from CallRail's Integrations panel — not the general API key. Using the wrong credential is a common mistake.

See also: [[knowledge/call-tracking/callrail-dni-pools]] | [[knowledge/call-tracking/callrail-static-numbers]]

---

## Installation Steps

### 1. Install and Activate the Plugin

1. In the WordPress admin sidebar, go to **Plugins → Add New**.
2. Search for `CallRail`.
3. Click **Install Now**, then **Activate**.

### 2. Get the WordPress Integration Code from CallRail

> ⚠️ **Do not use the general API key.** The plugin requires a WordPress-specific code found in a different location.

1. In CallRail, navigate to **Integrations** (puzzle piece icon in the left sidebar).
2. Search for or locate **WordPress**.
3. Copy the WordPress integration code shown there.

Keep the general API key saved separately — it may be needed for other integrations (e.g., webhooks, HubSpot).

### 3. Configure the Plugin in WordPress

1. In the WordPress admin sidebar, hover over **Settings** and click **CallRail**.
2. Paste the WordPress integration code into the **Plugin Key** field.
3. Click **Save**.

Within a minute or two, the DNI pool will begin swapping the configured target number for visitors.

---

## How DNI Works After Setup

Once the plugin is active and connected:

- The plugin injects CallRail's JavaScript onto every page automatically.
- Any instance of the **swap target number** (configured in the CallRail pool settings) is dynamically replaced with a pool number unique to each visitor.
- The pool number is reserved for that visitor for approximately **20 minutes**, during which any call is attributed to their originating click/source via the Google Click ID.
- Calls still forward to the original destination number — no changes to the client's phone system are required.

> **Important:** Only configure **one DNI pool per website**. Multiple pools on a single site will cause unpredictable swapping behavior.

---

## Verifying the Integration

Because of the 20-minute visitor timer, repeated checks from the same browser session will stop showing swaps. Always verify in a fresh **incognito window** to simulate a new visitor and confirm the number is swapping correctly.

---

## Clearing Caches After Changes

After any phone number updates or plugin configuration changes, clear both caches to ensure all visitors see the updated numbers:

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

If numbers still appear stale after clearing both caches, use an incognito window to bypass any persistent local browser cache.

> This applies to both DNI pool changes and manual static number replacements on page content.

---

## Static Numbers: Manual Page Updates Required

The DNI pool only swaps the single configured target number. Location-specific or campaign-specific numbers placed elsewhere on the site are **static** and must be updated manually in Elementor (or the relevant page builder):

- Update the **visible text** of the phone number.
- Update the **`tel:` href link** on the same element.
- Check all instances on the page (e.g., header area, body content, address block, footer).

After updating all instances, publish the page and clear both caches as described above.

---

## Observed in Practice

This setup was implemented for [[clients/adava-care/_index]] during a live walkthrough session. The DNI pool was configured to swap the main number (`414-262-0653`), and a static number was created for the Glendale location (forwarding to `262-247-7101`). Melissa and Sebastian split the remaining locations to complete the static number rollout.