Installing the JavaScript Snippet

This feature is available for the Call Tracking Essentials plan and higher.
Use our help article to see or change your pricing.

CallRail’s JavaScript snippet allows you to use dynamic number insertion (DNI) to integrate call tracking with your website. Each tracking number you create can be assigned a source (like Google Ads, Bing Organic, Yelp, Facebook, etc.) and the correct tracking number will display when a user reaches your website via one of those sources.

The JavaScript snippet also powers CallRail's Form Tracking product. Whether you've built a form using our form builder or have an external form you'd like to track, the JavaScript snippet captures the contents of forms submitted on your website and displays your form data in a contact's timeline.

If you are using a WordPress website, please follow these instructions to install the WordPress plugin instead of using the JavaScript snippet. This will offer you the same functionality.

The same snippet powers both call and form tracking if you're using both products in CallRail, so you don't have to install the same script more than once. After your company's snippet has been added to each page of your website, it gathers all the details of your customer's interactions on your website and relays their activity back to CallRail.

How the JavaScript Snippet Works

Each company in your CallRail account has its own, unique JavaScript snippet. The installation is just like installing Google Analytics— a single JavaScript snippet added to each page of your website before the </body> tag. This script tag works for both HTTP and HTTPS pages.

To use the dynamic number insertion feature, create tracking numbers within your CallRail account to track visitors from a specific source, like Google Ads. When a visitor navigates to your website through one of the sources you’re tracking, CallRail’s JavaScript will detect the phone numbers on your web page and swap them with the correct tracking number. We’ll then store the visitor’s source in a cookie so they’ll continue to see the same tracking number each time they return to your website (unless your snippet is removed).

Getting Started

There are a few important details you’ll need to know before you get started with dynamic number insertion:

  1. Once you’ve installed the JavaScript snippet on your website, be sure to test your installation before your campaign begins.

    Learn how to test your installation with this help article.

  2. Dynamic number insertion detects multiple number formats, including:
    111-222-3333, 111.222.3333, and (111) 222-3333.

  3. Special steps are necessary to swap phone numbers in images.

    Learn more about image swapping with this help article.

  4. Ideally, CallRail’s JavaScript snippet should be installed on every page of your website, but it must be embedded on the visitor’s landing page, as well as each page on your website that displays a phone number or a web form you'd like to track.

Installing the JavaScript snippet on Your Website

Each company in your account has its own unique JavaScript code for dynamic number insertion. If you have multiple companies in your CallRail account, you’ll have a different code for each.

  1. Click Analytics in the navigation bar on the left.

  2. Click Settings at the top of the page.

  3. Choose the company whose JavaScript code you’d like to install.

  4. Select All Integrations from the Integrations section in the left menu.

  5. Choose JavaScript Snippet from the list of available integrations.

  6. Copy the JavaScript provided. It should look similar to this sample JavaScript code.


  7. Paste your script into each page of your website right before the </body> tag.


Can I test that dynamic number insertion is working?
Yes, there are a couple of ways to test that your DNI script is working properly. Read how to use our auto-test feature to see live swap examples of your tracking numbers swapped on your page or manually test dynamic number insertion.

Why isn’t my telephone number swapping?

Have you cleared your cookies, or tried accessing the website in a private browsing session? The most important part of testing dynamic number insertion is to simulate the experience of a first-time visitor before testing. Otherwise, the swap code will detect you as a visitor to the website from a previous session.

Troubleshoot common dynamic number insertion issues with this help article.

How do I prevent a number from swapping on my website?

If there is a specific place on your website where you don't want a number to swap, you're able to update the telephone number in your source code so that our swap script doesn't recognize it. In the number that you do not want to be swapped, use HTML tags that don't apply any additional style.

For example: 555-<span>444<span>-3333.

When setting this up, we recommend placing "<span>" within the middle of the phone number (as illustrated above). With those additional HTML tags, our JavaScript snippet will not find/swap the number that you'd like to appear static.

Can I use dynamic number insertion in an iframe?

We do not recommend installing our dynamic number insertion script in an iframe since they run independently from the rest of a website. This could cause an inconsistent experience for website visitors, and they could potentially see two different tracking numbers on the same website. CallRail's swap script can still be installed on websites that use iframes, but any number within an iframe won't swap.

Can I use dynamic number insertion on my Squarespace site?

Yes. You can install CallRail's JavaScript snippet for dynamic number insertion on a Squarespace site using the Code Injection feature.

Can I use dynamic number insertion on my Wix site?

If you are on any of Wix's premium plans, you can install CallRail's JavaScript snippet in Google Tag Manager, and add Google Tag Manager to your Wix site.

Use this article to learn how to add dynamic number insertion to Google Tag Manager.

Use these Wix instructions to learn how to add Google Tag Manager to your premium Wix site.

Do I need to remove the JavaScript after I disable call tracking?

If you don’t plan on creating new tracking numbers in the same company where your tracking number(s) has been disabled, you can safely remove the CallRail JavaScript code. However, if you leave the swap script on your website, the numbers will no longer swap since those numbers have been disabled.

Can I have a white-labeled version of my swap code?

Yes. Use the instructions above when logged into CallRail via your white label domain to access a white label version of your swap script.