- In our experience, most lead-tracking problems are not a missing tool but the lack of one agreed home for every lead.
- Send a test inquiry through every channel and count how many reach one record with a source, owner and next step.
- In our view, the CRM, not the analytics property, is the centre of the stack: only it holds phone, email and walk-in leads as records.
- Add tools in order: lead record and fields, routing, ownership, website tags and consent, outcome feedback, then the report.
In our experience, many small and mid-sized companies already pay for more marketing software than they use: a website builder, an analytics property nobody opens, two ad pixels, a CRM trial, a WhatsApp number on the sales manager’s phone and a shared email inbox. Ask a simple question, “how many inquiries did we get last month, and from where?”, and the answer still takes three people and a day of guessing.
In our view, the problem is rarely a missing tool. It is that the tools do not meet in one place. Leads arrive through forms, calls, WhatsApp, email and people walking into the showroom, and each channel keeps its own partial list. This diagnosis checks whether every lead you receive becomes one record with a source, an owner and an outcome, and then sets out the smallest stack that makes that true and the order in which to add it.
The symptoms: how a leaking stack shows up
A stack that loses leads does not look broken. Every tool works on its own. The signs appear when you try to join the numbers up. If three or more of these sound familiar, the issue is the stack, not the campaigns.
- Each channel has its own count. The website form plugin, Meta Ads Manager, the WhatsApp phone and the sales spreadsheet each show a different number of leads for the same month, and nobody knows which one overlaps with which.
- “Where did you hear about us?” is answered by the salesperson, not recorded. Source is a memory, not a field.
- WhatsApp and phone inquiries never reach the CRM. They are handled well, but they disappear from the record once the chat scrolls away.
- Walk-ins and exhibition contacts live in a notebook or a business-card box.
- You cannot answer “what happened to this lead?” for an inquiry from six weeks ago without asking the person who took it.
- New tools are bought to fix reporting and become one more place where data sits.
The commercial effect is direct. Channels that produce customers through calls or WhatsApp look weak, because their leads are invisible. Channels that produce form fills look strong. Budget then moves in the wrong direction.
Likely causes: where leads fall out of the record
Every lead channel has a typical gap. The table shows the most common ones and what each gap costs you.
| Channel | Typical gap | What you lose |
|---|---|---|
| Website forms | Submissions go to an email inbox only; the page URL and campaign tags are not saved with the lead | The source of the lead and a clean count |
| Ad platform lead forms | Leads stay inside the ad platform and are downloaded occasionally, if at all | Speed of follow-up and any link between the ad and the outcome |
| Phone calls | Calls to the switchboard or a salesperson’s mobile are not logged | The whole channel, which in our experience is often the highest-intent one |
| Chats live on one or several phones; the ad that started the chat is not recorded | Ownership, history and the campaign that produced the chat | |
| Inquiries land in personal inboxes and are answered without being logged | Visibility when the person is away or leaves | |
| Walk-ins, events, referrals | Captured on paper, or not at all | Proof that offline marketing works |
Behind all of these sits one structural cause: there is no agreed home for a lead. Until one system is named as the place where every inquiry is recorded, each new tool adds another partial list.
How to check each channel
You can run this audit in an afternoon with the person who answers inquiries. Do it for real, not from the settings screens.
1. Send a test lead through every door
Submit your own website form, fill in your own ad lead form if you run one, call the number on your ads and on your Google Business Profile, send a WhatsApp message from a personal number, email the address on the website and, if you have a showroom, walk in and ask for a quotation. Then wait one working day and ask: how many of these six appear in one list, with a source, an owner and a next step? In our experience, the answer is rarely all six.
2. Check that forms carry their source
Open a recent form submission. It should show which page it came from and the campaign tags of the visit. Google recommends always using utm_source, utm_medium and utm_campaign on campaign links, and notes that values are case sensitive, so lowercase should be the standard (Google Analytics Help). If those values are not saved into the lead record through hidden fields or your form tool, the source is lost the moment the email is sent.
3. Check how ad-platform leads leave the platform
If you use Meta lead forms, find out how leads reach your team. Meta’s developer documentation describes partner integrations, webhooks and API reads for moving leads into a CRM, and does not recommend manual download except as a temporary fallback. It also asks that the 15–17 digit Meta Lead ID be included with each lead’s data, which is what later lets you match the outcome to the lead (Meta for Developers).
4. Check whether WhatsApp chats know which ad started them
For click-to-WhatsApp ads, Meta passes a click identifier, the ctwa_clid, in the referral data of the incoming message. Its Conversions API for Business Messaging uses that identifier to send events such as a submitted lead or a purchase back to the ads system, and it requires an integration with the WhatsApp Business Platform, through the Cloud API or the On-Premises API (Meta for Developers). If your WhatsApp still runs on a phone, the minimum is a person who logs each new chat with its source. Our earlier guide on when to move from the WhatsApp Business app to the API covers that decision.
5. Check calls, email and walk-ins
These three are usually captured by people, not software. Ask who logs a call, a forwarded email or a showroom visit, where, and with which source options. If the answer is “everyone does it differently”, the gap is a process, not a tool.
6. Check what the lead record actually contains
Pick ten leads from last month and look for the same fields in each: date, channel, source or campaign, owner, status and outcome. Google’s own recommended events for lead generation describe the stages a lead moves through, from generate_lead to qualify_lead or disqualify_lead, working_lead and finally close_convert_lead or close_unconvert_lead (Google Analytics Help). In our view, your own stages can be simpler, but each lead should have one.
The smallest stack that captures every lead
Once you know where the gaps are, the stack you need is usually shorter than the one you are paying for. In our view, most SMEs need seven parts, and each has one job.
| Layer | Its one job | Sign it is doing that job |
|---|---|---|
| Website with working forms, click-to-call and a WhatsApp button | Turn visits into inquiries and pass the source along | Every form lead arrives with page and campaign tags |
| Tag manager | Manage tracking tags in one place; Google describes Tag Manager as a way to set up and manage tags “without changing your website’s code” (Tag Manager Help) | Nobody edits site code to add or change a tag |
| Analytics with a few key events | Show which pages and campaigns produce inquiry actions; Google defines a key event as one that “measures an action that’s particularly important to the success of your business” (Google Analytics Help) | Only actions a salesperson would care about are marked |
| Ad pixels and tags, with consent | Let ad platforms measure and learn, while respecting the visitor’s choice; consent mode passes that choice to Google tags (Google Analytics Help) | Tags behave according to the banner choice |
| CRM, or one shared lead sheet at first | Be the single home for every lead, whatever the channel | All six test leads appear here |
| WhatsApp, on the app or the Business Platform | Hold sales conversations with shared ownership and history | Every new chat has an owner and a source in the CRM |
| One monthly report | Show leads, qualified leads, quotations and customers by source | Management reads it and decides from it |
The detailed set-up of the analytics layer is covered in our guide to tracking forms, calls and WhatsApp clicks in GA4. The point here is different: analytics measures behaviour on the website, but only the CRM can hold the lead that arrived by phone, by email or in person. The CRM, not the analytics property, is the centre of the stack.
What to fix first, and in what order
Buying tools in the wrong order is how SMEs end up with subscriptions nobody uses. Add each layer only when the one before it is working.
- Name the home for leads and define the fields. Choose the CRM, or start with one shared sheet if the volume is small; our CRM requirements checklist covers how to choose one. Agree the source list (for example: website form, ad form, phone, WhatsApp, email, walk-in, referral, exhibition) and make it a fixed choice, not free text.
- Route every channel into it. Forms push to the CRM with their tags; ad-platform leads arrive through an integration rather than a download; whoever answers calls, emails and walk-ins logs them the same day. This step is mostly process and costs little.
- Give every lead an owner and a status. Unowned leads are the ones that are never answered. A status that moves from new to contacted, qualified, quoted and won or lost is enough to start.
- Clean up the website layer. Install a tag manager, mark a small number of key events and add a consent banner connected to consent mode (see cookie consent and GA4 consent mode for GCC websites). Do this before adding more pixels, not after.
- Send outcomes back to the ad platforms. Once the CRM records which leads qualified and which became customers, those outcomes can be returned. Google Ads supports offline conversion import using the click ID and enhanced conversions for leads using details such as email addresses and phone numbers; Google’s page says that, since 15 June 2026, API uploads for offline conversion imports and enhanced conversions for leads go through its Data Manager API and are blocked in the Google Ads API, so check the current requirements before building or repairing an integration (Google Ads Help). Meta’s Conversions API accepts events from an advertiser’s server, website platform, app or CRM (Meta for Developers).
- Move WhatsApp to the Business Platform when the app stops coping, not before. The trigger is several people sharing one number, chats without owners or click-to-WhatsApp spend you cannot measure.
- Build the one report last. A dashboard built on incomplete data looks precise and misleads. Build it once the record is complete.
For example, a distributor with one showroom, a website and a modest ad budget might find that half its real inquiries come by phone and WhatsApp and never reach the spreadsheet. The first fix for that business is not a new platform but a source field, a same-day logging rule and one person who checks it each week.
Common mistakes to avoid
- Buying an all-in-one platform before defining the fields. A powerful CRM with free-text source fields gives you the same confusion with a monthly fee.
- Letting ad platforms be the record. Lead lists inside Ads Manager or a form plugin are copies, not the master record.
- Tracking everything as a key event. Scroll depth and page views marked as key events make campaigns look productive and teach bidding systems the wrong lesson.
- Leaving consent to the end. Adding a banner after the pixels are in place often means reworking the tag set-up.
- Keeping logins with one person or one supplier. The company should own its ad accounts, analytics property, tag manager container and CRM, and grant access to the people and partners who work on them. RX works this way: ad accounts stay in the client’s name.
A month after each fix, repeat step 1: send a test lead through every door and confirm that each one lands in the lead record with a source, an owner and a status. When every test lead arrives complete, the stack is finished; if the forms or the tracking are what fail, you need a website fix, not another subscription.
Frequently asked questions
What marketing software does a small business actually need?
In our view, most SMEs need: a website with working forms and contact buttons, a tag manager, analytics with a few key events, ad tags with consent, one CRM or shared lead record, WhatsApp, and one monthly report. Each should have one clear job; anything without a job is a candidate to cancel.
How do I track leads that come by phone, WhatsApp or walk-in?
Mostly through process: whoever takes the inquiry logs it the same day in the CRM with a fixed source option. For click-to-WhatsApp ads handled on the WhatsApp Business Platform, Meta passes a click ID (ctwa_clid) with the incoming message that can be stored and used to report outcomes back.
Do I need a CRM before running ads?
You need one agreed home for leads before you can judge ads fairly. At low volume a shared, structured sheet can do the job; move to a CRM when several people handle leads or you want to send outcomes back to ad platforms.
Is Google Analytics enough to measure leads?
No. Analytics measures what happens on the website, such as form submissions and button taps. It is not built to hold lead records that arrive by phone, email or in person, or to show which leads became customers. That belongs in the CRM.
- Google Analytics Help, [GA4] URL builders: Collect campaign data with custom URLs.
- Meta for Developers, 1: Connecting Your CRM to Download Leads.
- Meta for Developers, Conversions API for Business Messaging.
- Google Analytics Help, [GA4] Recommended events.
- Tag Manager Help, Google Tag Manager overview.
- Google Analytics Help, [GA4] About key events.
- Google Analytics Help, [GA4] About consent mode.
- Google Ads Help, About offline conversion imports.
- Meta for Developers, Conversions API.




