Number Pools & DNI

Set up Dynamic Number Insertion to track website visitors at the session level.

What is Dynamic Number Insertion (DNI)?

Dynamic Number Insertion (DNI) is a technique where the phone number on your website changes based on who's visiting. Each visitor sees a unique tracking number, allowing you to attribute the call to their specific session — including which ad they clicked, what keyword they searched, and which page they landed on.

Number pool configuration page

How Number Pools Work

A Number Pool is a group of tracking numbers that CallScaler rotates through for your website visitors. When someone visits your website, the tracking snippet requests a number from your pool. That number is "locked" to that visitor's session for a configurable timeout period (default: 30 minutes). If the visitor calls within that window, the call is attributed to their session with full UTM, landing page, and click ID data.

  • Visitor arrives on your website → snippet fires
  • CallScaler assigns a number from your pool to this visitor
  • Your website's phone number is swapped with the assigned number
  • If the visitor calls, the call is attributed to their session
  • After the session timeout, the number returns to the pool for reuse

Creating a Number Pool

Go to Number Pools in the sidebar and click "Create Pool." Configure the following:

Name: A descriptive name like "Website DNI Pool"
Website URL: The domain where this pool will be used
Call Flow: Which call flow should handle calls from pool numbers
Session Timeout: How long a number stays assigned to a visitor (default: 1800 seconds / 30 minutes)
Fallback Number: The number to show if all pool numbers are in use
Target Number: The number on your website that should be replaced

Adding Numbers to a Pool

After creating a pool, add numbers to it. The more numbers in your pool, the more simultaneous visitors you can track. A good rule of thumb: you need enough numbers to cover your peak concurrent website visitors. For most sites, 5–20 numbers is sufficient.

Start with 5–10 numbers and monitor the "Active Sessions" count on the Number Pools page. If it regularly approaches your total pool size, add more numbers.

Installing the DNI Snippet

Add CallScaler's tracking snippet to your website. This small JavaScript file handles number swapping and visitor tracking. Copy the snippet from your Number Pool's settings page and paste it into your website's tag or before the closing tag.

The snippet is lightweight (~3KB) and loads asynchronously, so it won't slow down your website.

javascript
<script src="https://your-domain.com/api/v1/tracking/snippet.js"
  data-pool-id="YOUR_POOL_ID"
  data-target="+1234567890"
  async>
</script>

What Data DNI Captures

When a visitor calls through DNI, you get incredibly detailed attribution data:

  • UTM parameters: source, medium, campaign, term, content
  • Landing page URL and referrer
  • Google Ads click ID (gclid)
  • Facebook click ID (fbclid)
  • Microsoft Ads click ID (msclkid)
  • Visitor IP address and user agent
  • Session duration and pages viewed