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.
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?
Will this work if each client sits in its own CallRail company?
How far back do the call counts go?
Can I create a new tracking number here, or only manage existing ones?
Does the app change anything in CallRail on its own?
Why does it count calls per client instead of per number?
Related templates
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.
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.
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.
Every 15 minutes, turn new CallRail form submissions into Salesforce leads and ping a Slack channel with an AI summary and suggested reply.
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.
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.
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.