Dynamic numbers pools setup check list


Setting up a pool of rotating numbers requires a set of actions and information to get from the partner. If the customer has technical resources, they can create and manage their pools and the related JavaScript snippet. It is important that the way it is set remains consistent across all of our customers.

A pool of numbers is only requires when tracking on a visitor / session level, and the amount of numbers will need to be defined based on a formula.

Check List

Standard (session tracking)

Session tracking allows the customer to allocate a unique number for every session, for each new visitor, a different number will be displayed.


  • Obtain list domain names on sandbox (testing environment URL) and production

  • Obtain list of phone numbers (destination numbers) we need to replace/swap

  • Define a whitelist / blacklist:

    • OPTIONAL - Whitelist, blacklist are managed in the git repository for "legacy" rotating numbers.
  • Define a unique identifier (pool ID). The customer to confirm what this should be (usually we use the destination number or link ID but it can also be an internal reference of theirs)

  • Set the pool status:

    • Recycle: default one, numbers will recycle at the end of a cycle, and no errors are thrown
    • Warning: set to warn the customer. Email alert sent to customer, possibly internally as well
      • Two possible actions can be taken by customer via the API:
        • Decrease number life cycle
        • Increase the number of numbers
  • If needed, provide necessary document to purchase numbers in specific country e.g. Italy, Ireland etc.

  • Hand over all information to L2, and they will create the pool

Source Tracking

On top of tracking the session, it is possible to add a data layer by tracking the source that led the visitor to the website before making the call.


  • If combined with Session Tracking:

    • All of the information from the session tracking (please refer to the list above)
  • Obtain list domain names on sandbox (testing environment URL) and production

  • Sources:

    • Source names
    • Parameters: Strings in the URL (can be any utm_* strings or any others such as ids, affiliate ids, etc.)
  • Get the customer to write their own JS from the docs and provide them to us, we will then commit them ourselves so we can keep track - more information on the JS script can be found here: https://docs.iovox.com/pages/viewpage.action?spaceKey=JA&title=v2#v2-requirement

It is important for the customer to commit the JS they are using into this internal repo: https://gitlab.iovox.com/customer/rn

Doing this regularly means when they come to us with issues we aren't blind as to their implementation. It also provides examples we can re-use for other cases.


If a customer would like to assign their technical resources to independently create and manage their number pools, and to customise the JavaScript needed to obtain additional metadata from their numbers, we need to make sure we provide the necessary API keys.

API Keys

We can create API Keys via the admin tool called “JS API ADMIN” on Enterprise:

  1. Log into your pool account
  3. Select the User
  4. Click on “Generate” to populate the Action Key field
  5. Change the result to “getVoxnumberRotate”
  6. Click on “Add Action Key”

Both Action Key and Js Access Key will appear in the list below, they will have to be shared with the user otherwise they will not be able to send requests to our API. Please note that if the customer needs to make some tests on Sandbox, this process will have be repeated on https://sandbox-enterprise.iovox.com/.

Note that if the customer is only going to manage pools, the additional user does not need a JS key. So there will be one JS Action Key for getVoxnumberRotate which will be used in their JS. Any other user in the account, with their secureKey only can manage pools.


All the necessary information to create and manage number pools can be found in our documentation, here’s the related link: https://docs.iovox.com/display/RA/Number+poolsPlease note that VoxNumber must already be in your account, not assigned to any other pools and not assigned to any nodes or links (unassigned).

  • Define whether a single Link is setup for their pool or multiple Links sharing a pool:
    • If single Link with a Call Template:
      • Make sure the link_id is set on the pool and the customer knows they can change the template by updating the Link

The dial_string on the pool, while not used for the actual destination is right now the only thing restricting the destination for calls. This can be a security risk as the browser can change the destination to anything that matches the pool's dial_string. We should encourage pool dial_string to be the entire destination number. We should discourage pools with multiple destinations, but if we must have one than the dial_string should match a number range for an area E.G 1650242. We need to avoid having a country-code-only dial_string.

Dynamic Number Insertion

To display numbers on a webpage / website we use a JavaScript snippet, which can be configured by following the instructions listed here: https://docs.iovox.com/display/JA/v2

Advanced Options

Applicable to both Session and Source tracking, it is possible to customise rule templates, push the data into an interface etc.


  • Implement whispers/email alerts:
    • If they want email alerts, share the default template with customer and ask if any amendments needed.
    • Put the HTML in their account and specify to L2 which template to use. (L2 will need to put the template on Sandbox as this cannot be done via the Ops portal). How to implement a customized email alert guide here.

Pool Numbers estimation


  • Assess volume of numbers needed per pool and iovox Numbers needed per city.

  • Factors affected the pool:

    • Will numbers be displayed directly on the page or behind click-to-reveal?
    • Number of site visitors per day
    • Number of sessions/day
    • Average duration of session
    • Number of site visitors during peak hour
    • Is the rotation period expected? Does this vary for per source and per user? What should we use as a general guide for a suitable rotation period?


{# of visitors per hour} / 60 = { visitors per minute }

then { visitors per minute } x { session time aka minutes to rotate } = { numbers per pool }

{ numbers per pool } x { number of pools } = total numbers

How to manage pools rotation?

iovox Support

  • Queries available in the Level 1 Knowledge Base to review when numbers were last displayed

  • Useful Queries for LV1

    • select * from rotating_pools where partner_id = 379229; /* List of active pools for a specific partner */
    • select * from rotating_numbers where partner_id = 379229 and pool_id = 1979; /* List of numbers in a specific pool */
  • Also the queries below help retrieving a pool ID if not provided by the customer:

  1. You first have to get the ext_node_id from the customer (the Node ID in their account) in order to get the node_id: select node_id, ext_node_id from nodes where partner_id = 17 and ext_node_id = '125083';

  2. Then the node_id will give you the link_ida and ext_link_id: select link_id, ext_link_id from links where partner_id = 17 and node_id = '44181529';

  3. Then, once you have the link_id or ext_link_id, you can retrive the pool_id or ext_pool_id: select pool_id, ext_pool_id from rotating_pools where partner_id = 17 and link_id = '16440334';select pool_id, ext_pool_id from rotating_pools where partner_id = 17 and ext_link_id = 2451M;

    Dynamic and GA

  • Confirm if they want to push call data to GA on both sandbox & Production.
  • Collect GA information:
    • Get their Google Analytics id under this format: "UA-XXX-XX"
    • API method to post to, e.g. "event"
    • Client ID to track, can use call ID here, e.g. "1234567890"
    • Category in GA, e.g. "iovox Call Tracking"
    • Link ID, Link Name + any other data to be pushed into GA
    • Provide us an access to their google analytics account if possible . iovox email to authorize is iovoxlvl1@gmail.com

For more information about how to send call events into Google Analytics, please visit our <ahref="/help/google-analytics-integration-guide">Google Analytics UA Integration Guide.

Contact our team today to explore our products and solutions

Please select an option:

Contact Us

Send us a message and someone from our team will contact you ASAP.
Or call us on +1 (888) 408 4128