Instagram

How to know which Instagram post actually brought you leads

Reach and saves do not tell you which reel produced a customer. Here is why every DM automation tool answers this with UTM links and discount codes, what those methods miss, and the one setup that can follow a single comment all the way to a booking.

You post a reel. It does 40,000 views, 300 comments, and your automation sends 300 DMs. Two weeks later, three people have paid you.

Which reel were they from?

Instagram Insights will not tell you. It stops at reach, saves and shares. Your DM tool will not tell you either. It stops at "sent". The gap between those two numbers is where the only question that matters lives, and almost nothing on the market answers it.

Why can't Instagram Insights tell me which post brought leads?

Because Insights measures attention, not outcome. It knows how many people saw the reel and how many commented. It has no idea which of those people later paid you, because it has never seen your customer list.

That is not a flaw. Instagram is not your CRM and does not want to be. But it means the moment your goal shifts from views to revenue, Insights stops being a scoreboard and becomes a vanity dashboard.

Why doesn't my DM automation tool track this?

This one is structural, and it is worth understanding before you go shopping for a tool that fixes it.

Almost every Instagram DM tool is a single-purpose product. It watches for a comment, sends a DM, and its job ends. It does not hold your customer records, your pipeline, or your bookings, so when you ask "which post produced revenue", it has nothing on its side of the join. It knows the post. It knows the DM. It has never heard of the sale.

You can see this in their own documentation. Search for how to attribute Instagram revenue and every guide gives you the same two answers:

  1. Put a UTM parameter on the link in each DM
  2. Give each post a unique discount code

Both are real techniques. Both are also workarounds for a missing join, and both leak badly.

Method Captures Misses
UTM link Someone who taps the link and buys in that session Anyone who replies in the DM instead of tapping, anyone who buys days later on a different device, anyone who books a call
Discount code Someone who buys online and remembers to type it Anyone who does not use the code, anyone who negotiates, anyone whose sale happens over a call or WhatsApp
Neither Every conversation that turns into a customer without a checkout

That last row is the one that should worry you. If you sell coaching, consultations, services, property, courses with a call, or anything else closed by a human, the majority of your revenue never touches a UTM or a discount code. The methods everyone recommends are built for e-commerce and quietly fail for everyone else.

There is a second problem nobody mentions. A UTM is attached to the link, so it can only survive if the person clicks. On Instagram, plenty of people read the DM, reply "how much?" and buy from that conversation. That person is invisible to UTM tracking and always will be.

What actually answers the question

To follow a comment to a customer, one system has to hold three things at once:

  • the post the comment was left on
  • the conversation that started because of it
  • the customer record and its outcome

If any one of those lives somewhere else, the chain breaks and you are back to guessing with discount codes.

That is the whole argument. It is not about having better analytics. It is about not splitting the data across two products in the first place. A DM tool plus a separate CRM cannot do this reliably, because nothing carries the post id across the gap: you would be matching an Instagram username against a customer record by hand.

When the same system does hold all three, the report is not clever, it is just a count. Something like:

Post DMs sent Became leads Booked
Reel, 12 July 214 61 9
Carousel, 18 July 88 40 11

Read those two rows carefully, because they say something the reach numbers cannot. The reel got more than twice the DMs. The carousel produced more customers. If you were optimising on engagement you would make more reels, and you would be making the wrong thing.

That is the actual value of post-level attribution. Not a nicer chart. A different decision.

How to set this up

Whatever tool you use, the sequence is the same:

  1. Give each post its own trigger. A single keyword used across every post collapses them all into one bucket and destroys the attribution before it starts. One keyword per post, or a tool that records the post id automatically.
  2. Capture something durable in the DM. A name, a phone number, an email. An Instagram username alone is not enough to match against a payment later.
  3. Make sure the lead record keeps the post id. This is the step that is either automatic or impossible. If your DM tool exports to a CRM, check whether the post travels with it. Usually it does not.
  4. Record the outcome on the same record. Booked, paid, no reply. Attribution without an outcome column is just a DM count wearing a suit.

Step 3 is where most setups quietly break. It is worth testing with one real lead before you build a month of content on top of it.

Where Kredoo sits

Kredoo is a CRM that happens to do Instagram automation, rather than an Instagram tool that added a contacts list. The comment, the DM, the lead and the booking are rows in the same database, so the post id survives the whole way and the report above is a query rather than a reconciliation exercise.

Being straight with you: we are new to Instagram. The WhatsApp side of Kredoo has handled tens of thousands of real customer messages; the Instagram module shipped recently and its numbers are still our own testing, not a case study. What we can show you is the mechanism, which you can verify on your own account inside a free plan.

You can check it against your own account without paying: start free, 200 DMs a month, no card. There is more detail on the plans for creators if you want to read first.

The short version

Reach tells you who watched. Your DM tool tells you who you messaged. Neither tells you who paid, and the standard fixes for that gap, UTM links and discount codes, only work if your customers buy online in one session without talking to you.

If people become customers by having a conversation with you, the only thing that will ever answer "which post worked" is a system that holds the conversation and the customer in the same place.

Once you can see it, the next question is usually whether the numbers are any good, which is what the Instagram conversion benchmark is for. And if the answer turns out to be that plenty of people watch while very few buy, that gap has causes worth naming, most of which are not the algorithm.

Questions people ask

Can Instagram Insights show me which post brought leads?

No. Insights reports reach, impressions, saves, shares and comments, which measure attention rather than outcome. It has no access to your customer records or sales, so it cannot connect a post to a paying customer.

Do UTM parameters work for tracking Instagram DM revenue?

Partially. A UTM only records people who tap the link in the DM and complete a purchase in that session. It misses anyone who replies in the conversation instead of clicking, anyone who buys later on another device, and anyone whose sale is closed on a call. For service businesses that is usually most of the revenue.

Why can't my Instagram DM automation tool tell me which post produced a sale?

Because most DM tools do not store your customer records. They know which post triggered which DM, but they have never seen the sale, so there is nothing on their side to join it to. The gap is structural, not a missing feature.

How do I track which Instagram reel made me money?

Use one trigger keyword per post so posts do not collapse into a single bucket, capture a durable identifier such as a phone number or email in the DM, make sure the post id is stored on the resulting lead record, and record the outcome on that same record. The third step is the one most setups cannot do.

Is a discount code per post good enough for attribution?

Only for online purchases where the buyer remembers to use it. It captures nothing for consultations, bookings, calls or any sale negotiated with a person, and it undercounts even in e-commerce because not every buyer applies the code.

Stop losing leads to the follow-up gap

Kredoo captures leads from Meta and Google Ads, then follows up on WhatsApp automatically. Live in 5 minutes.

Get Started