Aesthetix CRM's built-in call tracking gives your practice a complete picture of every phone conversation—from a brand-new patient's first inquiry to a follow-up from a long-time client. With number pools and call-tracking workflows, you can see exactly which marketing channels, campaigns, and even keywords are driving calls, so you can spend your budget where it converts.
This guide covers how call tracking works, how to build and manage number pools for dynamic website tracking, how to set up workflows for static (offline) source numbers, and how Call Connect keeps your call data accurate.
Every missed call, every interaction, every source—captured, logged, and optimized. Aesthetix CRM's call tracking helps you stay connected, informed, and conversion-ready:
Call forwarding that works with your existing systems. Whether your practice uses landlines, VoIP, or mobile phones, calls forward seamlessly to your existing setup. There's no need to replace what's already working—just layer on smart routing, tracking, and insights.
Call recording for quality assurance. Inbound and outbound calls can be automatically recorded for staff training, call-quality monitoring, dispute resolution, and a consistent patient experience. Recordings are securely stored and accessible from each contact record.
Smart contact management from every call. New leads are automatically created as contacts the moment they call, and returning patients' calls are logged to their existing profiles for a complete interaction history. Notes, tags, and follow-up tasks can be added directly from the call log.
Missed-call text-back. A dropped call doesn't have to mean lost revenue. Personalized missed-call text-back automations instantly send a branded message letting the caller know you'll be in touch—improving response times and patient satisfaction.
Unlimited numbers and number pools for attribution. Create unlimited phone numbers and track them across marketing campaigns, web forms, landing pages, and your Google Business Profile. Number pools dynamically assign a number to each visitor so you get real-time insight into which channels drive the most calls.
A number pool uses Dynamic Number Insertion (DNI) to assign a unique tracking phone number to each website visitor session (or to each source/medium, depending on setup). When someone visits your site, a small script swaps in a number from the pool. Because that visitor sees a number tied to their session, Aesthetix CRM can attribute their call—and the campaign, keyword, and UTM data behind it—back to the exact source.
Important: For number pools to function, calls must forward to another phone number. Native in-app calling is not supported for pooled tracking numbers.
Each pool needs enough numbers to cover your busiest moments so two visitors never share the same tracking number at once.
Find your peak hourly visitors. In Google Analytics, open your Audience Overview report, select a relevant date range (e.g., the last month), switch the view to hourly, and find the hour with the most sessions.
Calculate the pool size. Divide peak hourly visitors by 4. For example, 100 peak hourly visitors needs a pool of 25 numbers.
The minimum pool size is four numbers. High-spend campaigns may need 8–10 or more.
Go to Settings → Phone Numbers.
Click Add Number, then choose the option to add a number pool used for lead tracking.
Select the pool type:
Marketing Campaign — a single static tracking number for one source.
Visitor Activity — recommended for advanced, session-level tracking across reports.
Select the aspects of your website you want to monitor, then click Next: Tracking Options.
Choose which visitors you'd like to monitor, then click Next: Create Pool.
Name your pool something descriptive, such as "Google Ads Call Tracking."
Enter the forwarding number that pooled calls should route to (typically a central practice number).
Set the swapping number to match the forwarding number, so the pool's numbers display correctly on your landing pages.
Tick the box to acknowledge the terms, then click Next: Choose Numbers.
Select from the available numbers that best suit your practice. You can optionally choose a local area code to match the campaign's target location.
Click Next: Number Features.
Optionally enable a whisper message (announced to your team before the call connects) and call recording.
Confirm the purchase of the numbers, then click Activate Numbers.
After activating, review the pool to confirm everything looks right.
For dynamic tracking to work, the swapping script must be installed on your site.
Open the Number Pool Info section for your pool and copy the JavaScript code.
Paste the script just before the closing </body> tag on each landing page you want to track.
Save and preview the page to confirm the number swap works—the displayed number should change based on visitor activity.
This script captures detailed campaign data, including UTM parameters, ensuring accurate attribution down to the keywords searched in Google Ads.
A workflow turns each tracked call into clean attribution data on the contact record.
Go to Workflows and create a new workflow for call tracking.
Add a trigger. Use the Call Status trigger and name it clearly. Add filters for:
Incoming calls from the specific number pool.
Completed-call statuses, including voicemail, no answer, and busy.
Add actions.
Update Contact Source to tag the call appropriately (e.g., "Google Ads").
Use an if/else condition so you don't overwrite a source that already exists.
Add Google Ads conversion tracking (optional). If you have a connected Google Ads account, add this action to report conversions back to Google Ads.
In your standard inbound-call workflows, specify the primary incoming number so pool numbers don't trigger workflows they shouldn't. This is typically handled during onboarding for a smoother setup.
Some marketing channels can't rotate numbers dynamically—print, radio, billboards, your Google Business Profile, and click-to-call ads. For these, you use a single static number per source and a workflow to tag attribution.
Feature | Static Numbers | Number Pools (Dynamic) |
|---|---|---|
Best for | Print, Google Business Profile, offline ads | Website and landing-page traffic |
Attribution | Manual via call workflow | Automated via tracking script |
Requires website script | No | Yes |
Triggers source workflow | Yes (via static number match) | Yes (via pool + script) |
Locate your static number. Go to Settings → Phone Numbers and find the number assigned to a marketing source. These are usually labeled clearly (e.g., "Facebook Ads Main Phone") and set up during onboarding. If you're adding a new source later, add the number and configure the workflow manually.
Duplicate the workflow template. In Workflows, open the Phone, Calling, and SMS → Call Tracking folder, find the Marketing Source Call Tracking Template, click the three-dot menu, and duplicate it. Rename it for your source (e.g., "Facebook Ad Call Tracking").
Configure the triggers. The duplicated workflow includes two triggers—Inbound Call Completed and Voicemail / No Answer. For each, scroll to the In Phone Number filter, select your static number, and save.
Set the marketing source tag. In the Contact Source Update step, replace the placeholder source with the actual marketing source (e.g., "Facebook Ads," "Radio," "Google Business Profile"). This updates the contact's source field for accurate lead-origin reporting.
Confirm the logic. The workflow adds the lead to your user-assignment workflow for ownership, uses conditions to check whether the call completed or went to voicemail, and updates the contact source accordingly.
If you're adding multiple new static numbers, duplicate the workflow for each one.
Once a pool is live, you can edit, reorganize, and clean it up from Settings → Phone Numbers → Number Pools.
Find the pool, click the three dots next to it, and choose Edit Configuration.
Make your changes, then click Save.
Click the three dots next to the pool and choose Update Tracking Number.
Adjust the formatting of the swapping numbers and pool numbers as needed, then click Update.
Click the three dots next to the pool and choose Update Visitors Source.
Choose the visitors you'd like to monitor, then click Update to save.
You can move individual numbers between pools and the general list without deleting the whole pool. Open the three dots next to a pool and choose Number Pool Info, then:
Transfer to a different pool. Locate the number, click Transfer to a Different Number Pool, choose the destination pool, and click Move.
Return a number to the general list. Click Move to Phone Numbers. The number is returned to your general number list without being deleted.
Remove and delete a single number. Click Remove and Delete Number to delete just that number while keeping the rest of the pool intact.
Add a number from the general list. Go to Phone Numbers, click the three dots next to the number, choose Add to Existing Number Pool, select the destination, and click Add to Number Pool.
Every action is recorded in an audit log—who moved, removed, or deleted a number, with timestamps—so you have a transparent history for troubleshooting and accountability.
Find the pool, click the three dots next to it, and choose Delete.
Type "delete" in the confirmation prompt.
Click Confirm Delete.
Deleting a pool removes all numbers within it. To keep any of those numbers, move or remove them before deleting the pool.
By default, Twilio marks every call as "Completed" once it finishes routing—even when no one answers. That means voicemails, missed calls, and timeouts can look like successful connections, throwing off your reporting and automations.
Call Connect fixes this by requiring a real human to confirm pickup. When a contact answers, the system calls your assigned team member and waits for them to press a key (such as "1") before bridging the two parties. If no one presses a key, the call is never marked as connected.
Benefits:
More accurate call-status tracking and reporting—only real conversations are counted.
Workflow triggers fire only on truly connected calls.
Clear separation of true pickups from voicemail.
Better accountability and lead follow-up based on real interactions.
Go to Settings → Phone Numbers.
Click the three dots next to the phone number you want to configure, then select Edit Configuration.
Toggle on Call Connect.
Toggle on Play Whisper Message.
Customize the whisper message to instruct your team to connect (e.g., "You have a new call. Press any key to connect.").
Click Save.
Prefer to use CallRail or another provider? Aesthetix CRM integrates with most external call-tracking services via webhooks, so your workflow stays flexible and centralized. See the External Phone Call Provider Integration article and the CallRail Integration article for setup details.
Name numbers and pools clearly (e.g., "Google Business Profile – Houston") for easier setup and reporting.
Group numbers by campaign, region, or use case.
Review and clean up unused numbers regularly to keep pools efficient.
Double-check that contacts created from tracked calls are being assigned to a team member and tagged with the correct source.
Number pools require purchasing additional phone numbers, and tracking numbers carry ongoing usage charges. For current pricing, see the pricing page.
How many phone numbers do I need in a pool?
At least four. To size larger pools, divide your peak hourly website visitors by four—so 100 peak hourly visitors needs about 25 numbers.
Why do my calls show as "Completed" even when no one answered?
That's Twilio's default behavior—every routed call is marked "Completed." Enable Call Connect to require a human keypress, so only truly connected calls are counted.
Can I restore a number I deleted from a pool?
No. Once a number is deleted it cannot be restored. Only numbers that were removed (returned to the general list) can be reassigned.
Is there a limit to how often I can move a number between pools?
No. You can move numbers between pools as often as you need.
Will removing a number from a pool affect my tracking data?
No. Removing a number only changes its pool assignment; it does not delete historical tracking data.
What's the difference between a number pool and a static tracking number?
Number pools rotate numbers dynamically to track website and landing-page visitors at the session level using a script. Static numbers are single, fixed numbers for offline or click-to-call sources (print, radio, Google Business Profile) where dynamic rotation isn't possible; they're attributed through a call-tracking workflow instead.
What happens if I delete a pool?
Deleting a pool removes every number in it. To keep any numbers, move or remove them before deleting the pool.
For additional help setting up call tracking, reach out to support.