CallRail tracking number manager for multi client agencies

See every CallRail tracking number across your client accounts in one table, find the ones nobody calls, and rename, reroute, or release them in place.

App
CallRailOperationsMarketingResearch & Monitoring
PromptCreate

Build me an internal tool for managing our CallRail tracking numbers across every client company, to replace the spreadsheet we currently keep. We are an agency running CallRail for dozens of clients, CallRail bills us per number, and we have no good way to see which numbers are still earning their keep.

The main screen is a table of every tracking number in the account. Load it from CallRail List All Trackers, join the client name from CallRail List All Companies using the company id on each tracker, and join a trailing thirty day call count from CallRail List All Calls. Each row shows the tracker name, the tracking phone number, the client company, the type (source or session), the destination number that calls forward to, and calls in the last thirty days.

Be careful about how the call counts are fetched. CallRail list endpoints are paginated at up to 250 records per page, and the account has a general limit of 1,000 requests per hour, so do not make one call lookup per tracker. Instead pull calls once per company for the last thirty days, paging through the results, and roll the counts up by tracking number in the handler before returning rows to the UI. Page through trackers and companies the same way so agencies with large inventories get the full list rather than the first page.

Above the table give me a filter for numbers that received zero calls in the last thirty days, so I can find the ones we pay for and never use, and a way to filter or group the table by client company. Let me sort by the thirty day call count so the deadweight floats to the top, and let me search by tracker name or phone number. Show the client company on every row even when the table is grouped, since I am usually scanning across clients rather than within one.

Selecting a row opens a detail panel loaded with CallRail Retrieve a Single Tracker, showing the full configuration for that number. From the panel I can rename the tracker, change the routing destination it forwards to, and change its SMS settings, all saved through CallRail Update a Tracker. After a successful save, refresh the row in the table so the panel and the table never disagree.

The panel also has a release action that calls CallRail Disable a Tracker. This permanently releases the phone number back to CallRail and cannot be undone, so put it behind a confirmation step that says so plainly and requires a deliberate second click rather than a single button press. If the number took any calls in the last thirty days, the confirmation must show an extra warning naming the client and the exact call count, so I do not release a number that is still live on a client's advertising.

A New Number form provisions a tracker through CallRail Create a Tracker. Let me pick the client company, name the tracker after the campaign it is for, choose whether it is a source or session tracker, and set the destination number that calls should ring through to. When it succeeds, add the new number to the table right away with a call count of zero rather than making me reload the whole screen.

Everything is read only until I act. Loading the screen should never change anything in CallRail, and the only writes are the ones I trigger from the detail panel or the New Number form. Show clear inline errors when CallRail rejects a change, and if we hit the hourly rate limit, say so in plain language and let me retry rather than failing silently with an empty table.

What does this prompt do?

  • Lists every tracking number you own in a single table with the client it belongs to, the number itself, whether it is a source or session number, where calls are forwarded, and how many calls it took in the last thirty days
  • Flags numbers that received zero calls in the last thirty days so you can find the ones you pay for every month and never use
  • Opens any number in a detail panel where you can rename it, point it at a different destination, or adjust its text message settings
  • Provisions a brand new tracking number for a named campaign and routes it to the right destination without opening CallRail
  • Releases a number you no longer want behind a confirmation step, with an extra warning if that number actually took calls recently

What do I need to use this?

  • A CallRail account with API access enabled
  • Permission to create and disable tracking numbers in that account
  • At least one client company set up in CallRail, ideally one company per client
  • The forwarding phone numbers you want new tracking numbers to ring through to

How can I customize it?

  • Change the reporting window from thirty days to sixty or ninety if your clients have longer sales cycles
  • Change what counts as unused, for example fewer than three calls instead of exactly zero
  • Set a default client so the table opens filtered to the account you work in most

FAQs

What happens when I release a number?
Releasing a number gives the phone number back to CallRail permanently, so it stops billing but you cannot get that exact number back afterwards. Because of that, the app always asks you to confirm first, and it warns you separately if the number took calls in the last thirty days.
Will this work if each client sits in its own CallRail company?
Yes, that is the setup it is built for. The table pulls numbers from every company in your account and shows the client name on each row, so you can work across all of them at once or filter down to a single client.
How far back do the call counts go?
The table shows calls from the last thirty days by default, which is enough to spot numbers that are sitting idle. You can ask for a longer window when you build it.
Can I create a new tracking number here, or only manage existing ones?
Both. There is a form for provisioning a new number for a named campaign and pointing it at the destination you choose, so you do not need to switch over to CallRail to launch one.
Does the app change anything in CallRail on its own?
No. It only reads your numbers and call activity until you take an action. Renaming, rerouting, provisioning, and releasing all happen when you click the button yourself.
Why does it count calls per client instead of per number?
CallRail limits how many requests an account can make each hour. Pulling activity once per client and then matching it to numbers keeps large inventories fast and well under that limit.

Related templates

Morning call review queue for CallRail leads and spam

Open one screen each morning to score yesterday's tracked calls as qualified, not a lead, or spam, and send the real leads straight to HubSpot.

CallRail
HubSpot
App
Cost per qualified call dashboard for CallRail and Google Ads

See what every client location really pays for a qualified phone lead by blending CallRail call tracking with Google Ads spend in one shareable dashboard.

CallRail
Google Ads
App
High-intent CallRail buying signals to HubSpot and Slack

Every 15 minutes during business hours, scan completed CallRail calls, flag the high-intent ones from the transcript, and alert HubSpot and Slack with the next step.

CallRail
HubSpot
Slack Bot
Agentic Task
CallRail form to Salesforce lead with Slack alert

Every 15 minutes, turn new CallRail form submissions into Salesforce leads and ping a Slack channel with an AI summary and suggested reply.

CallRail
Salesforce
Slack
Agentic Task
Weekly CallRail marketing channel ROI report to Slack

Every Monday morning, rank your marketing channels by qualified CallRail calls, post a readable digest to Slack, and log a trend row to Google Sheets.

CallRail
Slack
Google Sheets
Agentic Task
Daily CallRail call log to Google Sheets

Every morning, archive yesterday's CallRail calls into a Google Sheets tab so marketing and ops can pivot the data and join it with other sources.

CallRail
Google Sheets
Deterministic Code

Stop tracking your client phone numbers in a spreadsheet.

Put every tracking number, the client it belongs to, and its real call volume on one screen, and cancel the ones nobody dials.