🙌 Our latest webinar is live!
Nov 7
Attribution

How to Measure Sales From Ads in Kommo (Step by Step)

Andre Sottil
Founder & CEO, Admira

To measure sales from ads in Kommo, add UTM parameters and Kommo's dynamic placeholders (such as {{campaign.name}} and {{ad.name}}) to the URL parameters of your Meta ads, so every WhatsApp, Instagram or Messenger lead saves its campaign, ad set and ad in the lead's tracking data. Then move every closed lead to the Won stage with its real sale value, and report Won revenue by campaign against ad spend. That gives you cost per sale and ROAS on closed revenue, not just cost per message.

The steps below follow Kommo's own guide to tracking WhatsApp ad campaigns with UTMs, checked in November 2026, plus what Kommo does not cover on its own.

What does Kommo capture from your ads?

Some fields arrive automatically. Others only appear if you set them up. Knowing the difference saves weeks of empty reports.

Field in the lead cardHow it gets thereSetup needed
Meta Ads ad ID, Meta Ads sourceSaved automatically when a client messages from an adNone
Meta Ads refSaved if you set a Ref value in the adAdd a Ref in the ad
Meta Ads campaign ID, ad set ID, creative IDSaved with ad-account access and a supported connectionGrant Kommo permission to read ad data
utm_source, utm_medium, utm_campaign, utm_content, utm_termCopied from the ad's URL parametersAdd parameters at the ad level in Ads Manager
Campaign, ad set and ad namesFilled by placeholders like {{campaign.name}}, {{adset.name}}, {{ad.name}}Use the placeholders inside your UTMs
Sale valueEntered on the lead (budget) by the repA rule that every Won lead has a value

Kommo's docs also note that, for WhatsApp only, {{site_source_name}} records the platform where the ad appeared. Data shows up in the lead card under Statistics → Tracking data.

How do you set up ad-to-sale tracking in Kommo? (7 steps)

  1. Connect the right accounts. Connect WhatsApp Business (or Instagram, or Messenger) to Kommo. Your WhatsApp Business account and ad account must sit in the same Meta Business Manager, and you need permission to edit the ads.
  2. Grant ad-data access. In the WhatsApp Business integration settings, connect Facebook so Kommo can read campaign, ad set and creative IDs. Kommo says access can take about 10 minutes to apply.
  3. Write one UTM template and reuse it. For example: utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}. Keep field names exact; Kommo warns that a typo like "utm_campain" creates a separate field.
  4. Paste it at the ad level. In Meta Ads Manager, open each ad, go to Tracking, then URL parameters, paste only the parameters (no "?" and no full URL), and publish. Changes can take up to 6 hours.
  5. Test with a real message. Click your own ad, send a message, open the new lead in Incoming leads, and check Statistics, then Tracking data, then Show.
  6. Make Won mean money. Use the final Won and Lost stages for every outcome, and require a sale value on Won. Leads left in active stages never show up as sales.
  7. Report weekly. Use Kommo's Win-Loss analysis filtered by source, or export leads with UTM fields, Won date and value, and join them to ad spend by campaign.

Our UTM naming convention guide has a template you can copy across Meta, Google Ads and TikTok.

How do you calculate cost per sale from Kommo data?

Use three numbers per campaign: ad spend (from Ads Manager), Won leads and Won value (from Kommo).

MetricFormula
Cost per leadAd spend / leads created
Lead-to-sale rateWon leads / leads created
Cost per saleAd spend / Won leads
ROAS on closed revenueWon value / ad spend

Example (hypothetical numbers): a furniture retailer in Mexico runs two Click-to-WhatsApp campaigns for a month.

CampaignSpend (MXN)LeadsWonWon value (MXN)Cost per leadCost per saleROAS
Promo video60,00040016320,0001503,7505.3x
Catalog carousel60,00020020520,0003003,0008.7x

Judged on cost per message, the promo video wins at MXN 150 per lead. Judged on sales, the carousel wins: it costs MXN 750 less per sale and returns 8.7x instead of 5.3x. This is why measuring to the Won stage matters. More on this in cost per lead vs cost per sale.

What are the limits of Kommo's ad tracking?

  • The client must message. On WhatsApp and Instagram, a lead is only tagged after the person clicks the ad and sends a message.
  • utm_source is whatever you type. Kommo says "utm_source=facebook always saves facebook"; it does not detect where the person actually saw the ad.
  • Old leads keep old values. Changing parameters in Meta does not rewrite saved leads, and a returning client who answers another ad may keep earlier values.
  • Legacy Instagram Login connections do not support UTMs or custom parameters.
  • Win-Loss follows the current owner. Won and Lost metrics are credited to whoever is responsible for the lead now, not who closed it.
  • Analytics depends on plan. Kommo's pricing page lists Base at $25, Advanced at $35 and Pro at $45 per user per month (shown on 6-month billing, with a 6-month minimum). Sales and marketing analytics and campaign ROI tracking are listed on Pro.
  • Ads do not learn from your sales by default. Tagging leads in Kommo does not tell Meta which chats became sales. That needs a separate step.

How do you send Kommo sales back to Meta?

Meta's Conversions API for Business Messaging lets a business send events from WhatsApp conversations, such as LeadSubmitted, QualifiedLead and Purchase, with action_source set to "business_messaging" and the ctwa_clid click ID that Meta attaches to the first message. When Meta receives Purchase events tied to the original click, it can optimize toward people who buy, not just people who chat. Meta notes it does not deduplicate these events for you, so each sale must be sent once.

We did not find a native Kommo feature that sends Won leads to this API, so check your current setup or use an integration. Admira is one option: it connects to Kommo, ties each Click-to-WhatsApp lead to its campaign and closed revenue, and sends CRM stages back to Meta through its Conversion API, starting at $199/month. It is a young brand with few public reviews, so ask for a demo on your own Kommo data. See how the flow works on WhatsApp ads attribution, and read how to optimize Meta ads for qualified leads.

Who this is for, and when it doesn't apply

For: teams in Mexico and LATAM that sell through WhatsApp, Instagram or Messenger with Kommo as the CRM: real estate, education, clinics, auto dealers, furniture and services.

Doesn't apply: if your ads send people to a website checkout, track purchases there instead; and if leads come from Meta lead forms, the source is saved differently from Click-to-WhatsApp. If you also use HubSpot, read HubSpot attribution limits.

FAQ

Where do I see UTMs in Kommo?

Open the lead, go to Statistics, then Tracking data, and click Show. UTM fields and Meta Ads IDs appear there.

Which Kommo plan do I need for ad tracking?

Kommo says UTM tracking works on any plan, including the 14-day trial. Campaign ROI tracking and advanced sales analytics are listed on the Pro plan ($45 per user per month).

Why are my Kommo leads missing UTM data?

Common causes: parameters added at the campaign instead of the ad level, a typo in field names, ad and WhatsApp accounts in different Business Managers, or changes made less than 6 hours ago.

Can Kommo show the ad name, not just the ID?

Yes, if you use placeholders like {{ad.name}} and {{campaign.name}} inside your UTM values. Kommo replaces them with the actual names.

How do I know which ad produced a sale?

Filter Won leads by utm_content or Meta Ads ad ID, sum their sale value, and divide by that ad's spend for ROAS.

Does Meta learn from sales closed in Kommo?

Not automatically. You need to send sale events through Meta's Conversions API for Business Messaging with the ctwa_clid, using an integration or a tool like Admira.