Where leads come from: tracking sources (ads, maps, Telegram) and measuring ROI

"We get leads, but we have no idea where they come from." We hear this from almost every second client in Uzbekistan. Google Ads is running, the map listing is filled in, Instagram is active, a manager answers on Telegram — yet when you ask which channel actually brings money, the answer is "probably word of mouth". So the budget gets split by gut feeling.
Tracking lead sources is not about complex analytics or expensive tools. It is about a few disciplined habits: tag every link, write the source into the lead itself, build one summary table a month. Below is the scheme we roll out for clients, with a real example and an honest split between what is free and when you need your own dashboard.
Why it is unclear where leads come from
Usually three. First, leads arrive through five channels at once — website form, phone call, Telegram, Instagram DMs, a message from the map listing — and nothing collects them in one place. Second, before writing to you a person touches the business several times: saw an ad, found you on the map, then called from the website; which step "brought" them is debatable. Third, even when the manager knows the source, it stays in their head, not in a database, and a month later the picture cannot be restored.
Phone calls are a separate pain. In Uzbekistan most customers prefer to call or write on Telegram, and a call from the website is invisible to standard analytics: for the system it is just a visit without a conversion.
UTM tags: the base layer
A UTM tag is a tail on a link like ?utm_source=google&utm_medium=cpc&utm_campaign=aircon. It changes nothing for the visitor, but analytics sees where they came from. Every place people can click through to your site needs its own tagged link:
- ad campaigns (Google Ads, Instagram targeting) — by campaign and ad group;
- Google Maps and Yandex Maps listings — a separate tag for each map;
- Instagram bio, Telegram channel description, posts — their own tags;
- QR codes on business cards, packaging, signage — shortened UTM links.
Mistake: a "bare" link to the website in your map listing and Instagram bio. All that traffic then merges into "direct" in the reports, and maps — often the main lead source for a local business — look as if they bring nothing.
Writing the source into the lead itself
A UTM tag lives in the visitor's browser only until they submit the form; if the source is not saved, it is lost. So every form needs hidden fields: source, campaign, the page the lead was sent from. The visitor never sees them, and the manager receives the lead already marked "Google Ads, campaign aircon, landing page /uz/konditsioner".
From there the lead must go to one place with all the others: a CRM, a Telegram bot that saves enquiries into a spreadsheet, or your own dashboard. What matters is not "where" but "one point". Leads scattered across managers' personal chats do not exist for analysis.
Tip: for calls and Telegram enquiries, where UTM is not passed automatically, introduce a rule: at first contact the manager asks "how did you hear about us?" and picks from a short list (ads / maps / Instagram / referral / other). Not perfectly accurate, but far better than nothing. We make this field mandatory: a client card cannot be saved without a source.
Clicks on phone and Telegram are events too
To stop losing calls, treat a click on the phone number and on the Telegram button as separate events in analytics. It takes an hour to set up, and you see which page and channel people call from most. If the ad budget allows, add number substitution: a visitor from ads sees one number, a visitor from maps another, and calls are attributed precisely.
We build these events into every landing page for paid campaigns at development time, together with the form, hidden fields and CRM hand-off. Retrofitting later costs more than doing it once.
First touch or last touch: which channel is "the one"
When a client has touched the business several times, who gets the credit — the first touch (saw the ad) or the last one (came from the map and called)? Both approaches are legitimate.
| Model | What it shows | When it helps |
|---|---|---|
| First touch | Which channel first brought the person | Evaluating ads and content that introduce the business |
| Last touch | Where they came from right before the lead | Understanding what closes: maps, website, remarketing |
For a small business in Uzbekistan we recommend storing both values in the lead (two hidden fields instead of one) and using last touch by default in the report — it is simpler for budget decisions.
Deal outcome: without it the report is useless
The most common gap: sources are recorded, results are not. The report shows 60 leads from ads and 20 from maps, and everyone celebrates the ads. Except that of the 60 ad leads three bought for $400 total, while of the 20 map leads eight bought for $3,000. So every lead needs two fields the manager fills in by hand: status (won / lost / in progress) and deal amount. Two minutes a day per person — and the only way to calculate the return on a channel.
Once a month build the table: channel → leads → deals → revenue → channel cost → cost per lead and per deal. Five rows, ten minutes — and budget decisions rest on numbers, not feelings.
From OneDev practice. A water treatment client in Tashkent was getting leads from Google Ads, maps, a Telegram channel and referrals. We set things up so that every lead gets its channel written at creation (from UTM or from the manager's question), and status and amount at closing; the channel report is generated automatically for any month. The first report showed that maps brought three times fewer leads than ads, but the deals were larger and closed more often — the budget was reallocated and some ad queries switched off.
What is free, and when you need your own dashboard
The free toolkit is enough for most small businesses: Yandex Metrica or GA4 for sources and events, a spreadsheet of leads (filled by a bot or by hand) and a monthly summary table. Setup takes a day or two and needs almost no maintenance.
Your own dashboard or a CRM is needed when:
- there are more than 100–150 leads a month and the spreadsheet starts to drift;
- several managers work with leads and you need to see who handles what;
- deals are long and staged, and you need the funnel, not just the outcome;
- you want the channel report to arrive by itself on Telegram on the first of the month.
We build such dashboards as part of business process automation: from a simple bot with a spreadsheet at $500 to a custom CRM with a funnel and automatic reports. But we always advise starting with the free layer: without the habit of recording source and outcome, no system helps.
Conclusion
You can find out where your leads come from without a big investment: UTM tags on all links, hidden fields in forms, events for phone and Telegram clicks, a mandatory "how did you hear about us" question for calls, a manual deal outcome and a monthly summary table. In two or three months you will know which channel in Uzbekistan really pays off. If you want to set up such a scheme for your business, get in touch and let's discuss the task.
FAQ
Can lead sources be tracked for free?
Yes. Metrica or GA4, UTM tags, hidden form fields and a spreadsheet cover a business with a few dozen leads a month. You only pay for setup time and for number substitution if needed.
How do I know the source if the client called?
Two ways: number substitution (different numbers for ads, maps and the website) and a mandatory manager question "how did you hear about us?" with a pick list. The second is free and covers most cases.
Which matters more — first touch or last touch?
Store both, and use last touch for budget decisions. First touch helps evaluate ads and content that introduce the business.
When do I need a dashboard instead of a spreadsheet?
With more than 100–150 leads a month, several managers, or long multi-stage deals. A simple dashboard or a bot with reports starts at $500.
Need a similar system or want to discuss your project?
Describe the task — we will propose architecture, technical approach and a work plan. A short call is usually enough to get started.
Discuss project