Know which ad made the phone ring.
Drop a 1-line JS snippet on your site. Callswala swaps the displayed phone number based on UTM, gclid or referrer — and ties every inbound call to that campaign.
The problem
Phone calls are still the highest-intent lead for service businesses — and the hardest to attribute. Google Analytics ends at the click. Most CRMs end at the form.
How Callswala solves it
DNI rules match the visitor's session against your campaign config, swap the number on the page (text replace or CSS selector), and pool numbers across visitors so you can attribute thousands of sessions with a handful of DIDs.
What you get
Rule-based number swap
Match on UTM source/medium/campaign, gclid, fbclid, or referring domain.
Two swap modes
Replace-all-instances or target a specific CSS selector — for sites that show the number in many places.
Visitor session pooling
Numbers are reserved per visitor session; one number serves many sessions across the day.
1-line install
Drop the snippet in your <head>. No build step. No dev cycle.
Works with any CMS
WordPress, Webflow, Shopify, custom — anywhere you can paste a script tag.
FAQs
How many numbers do I need?▾
Depends on your concurrent visitors. We auto-recommend a pool size from your traffic.
Does it slow down my site?▾
The snippet is async and < 5 KB gzipped. No render-blocking calls.
Will Google penalize swapped numbers?▾
No — DNI is a Google-recommended pattern for offline conversion measurement.