Draft preview · 9 min read

How to track which Instagram posts make sales

Which posts make sales

To track which Instagram posts make sales, every sale needs a trail back to the post that started the conversation. You need to know which post brought each lead in, send links that identify that lead, and record the sale on the same lead. If an automation sends your checkout link, you can stitch this together with tagged links and a spreadsheet. Once setters send links by hand in real conversations, that falls apart, and you need a DM CRM that tags every link and logs the sale for you.

Everyone is posting more because content works. The part nobody can see is which content works. You can see a reel did 400,000 views. You can't see whether a single one of those people paid you. So most creators and sales teams end up making more of whatever got the most views, which is rarely the same thing as whatever made the most money.

Why can't Instagram Insights tell me which posts make money?

Insights measures what happens on Instagram. Views, reach, saves, shares, profile visits, link taps. The sale happens somewhere else. On a sales call, on a checkout page, in a booking tool.

For anyone selling in the DMs, the gap gets wider. The lead comments on a reel, gets a DM, talks to a setter for two days, books a call, and buys a week later. Insights sees the comment. It never sees the $3,000.

So the posts that look best in Insights often aren't the ones paying the bills. A reel with 400,000 views can bring in a pile of curious commenters and zero buyers. A story seen by 2,000 people can fill your calendar.

What does it take to tie a sale to a post?

Three things have to line up. Miss one and the sale lands in your bank account with no post attached.

Step What it means What breaks it
1. The lead has a source You know which post, story or ad brought them into the DMs No DM automation in place to turn interest into an action you can track
2. The link identifies the lead The booking or checkout link carries a tag that says who clicked it Links sent as plain text, or untagged
3. The sale gets recorded on that lead The booking or purchase is logged against the same person Sales that only live in Stripe or your CRM, never matched back

The source comes from a clear trigger. Someone comments a keyword on a reel, replies to a story that asked them to, or messages through an ad. That's why every post and story that asks for action needs a DM automation behind it. Without one, interest shows up as a random DM with nothing tying it to the content that caused it, and the sale can't be credited to anything.

How hard the rest is depends on who sends the link, an automation or a person.

This is the low-ticket setup a lot of creators run. Someone comments a keyword, an automation DMs them a link to a Stan Store product or a checkout page, and they buy without ever talking to a human.

You can track this yourself. Give each post its own keyword and its own automation. Put a different UTM tag on the link inside each automation. A UTM tag is a bit of text added to the end of a URL that says where the click came from, and Google lists the standard ones in its URL builder guide.

https://yourstore.com/guide?utm_source=instagram&utm_medium=dm&utm_content=reel-oct-14

Then you need somewhere that reads the tag at the sale. Your checkout has to save the UTM on the order, or your analytics has to connect the visit to the purchase. Not every checkout does that, so check yours. Last, you pull those orders into a spreadsheet or dashboard and add up sales by post.

It works. It's also duct tape. Every new post means a new keyword, a new automation and a new tagged link. One copied automation with the old tag still on it and a month of sales gets credited to the wrong reel. And the dashboard is yours to build and keep alive.

High-ticket sales don't happen in an automation. The automation starts the conversation. A setter qualifies the lead, a person sends the booking link, and the sale closes on a call days later.

That's three places the trail breaks.

The setter sends the link. In the middle of a live conversation with 40 other threads open, they paste whatever link is handy. Nobody is building a fresh UTM tag per lead.

The sale happens later. The payment comes from an invoice after a call, with no click attached to it at all.

Someone has to write it down. The fallback is having setters update a spreadsheet after every booking and every sale. Every minute a setter spends updating a spreadsheet is a minute they're not sending DMs. And the sheet drifts from reality within a few weeks anyway.

This is the gap Ellipsend was built for. Tracking can't depend on a person remembering to do it.

How do you log a sale that happens on a sales call?

Automatically, through the tools the sale already runs through. The tracking tag on the link the setter sent travels with the lead into your booking tool and CRM. When something happens there, that tool sends the result back to your DM CRM, which is where the lead and their source post live.

Bookings come from your calendar tool. When a lead books through Calendly, the booking lands on that lead in the DM CRM.

Purchases come from your CRM or checkout. When a deal is marked won in GoHighLevel, or a payment comes through a tool connected with Zapier, the purchase lands on the same lead, with the amount.

The one trick for sales that close days later is to save the tag on the deal when the lead first books. When the deal closes, the purchase goes back with that saved tag, so it's credited to the post that started it. Even if the lead came in through two different posts that month.

Your team can still log a sale by hand when they need to. The point is that they shouldn't have to.

What should I measure once tracking is set up?

Revenue per post is the headline. A few numbers around it tell you why.

Metric What it tells you
Leads per post Which content starts conversations
Qualified leads per post Which content brings the right people
Booked calls per post Which content turns into pipeline
Revenue per post (cash collected) Which content actually pays
Revenue per 1,000 views Which content is worth making more of, adjusted for reach

Revenue per 1,000 views is the one I'd watch. It stops a viral post from hiding the fact that a quieter one sells better. Swap revenue for whatever result matters most to you, like bookings, qualified leads or email opt-ins, and the same math works.

How Ellipsend tracks revenue per post

Ellipsend does the whole chain without anyone touching a spreadsheet. Your automations set each lead's source the moment they comment or trigger. Every link sent as a button, by an automation or by a setter in the inbox, gets a tracking tag added automatically. Bookings and purchases come back in on their own from Calendly, GoHighLevel, Zapier or the API. Reports then show revenue, booked calls and qualified leads next to every post, story and ad, right beside the views.

The same setup works whether an automation sells a $27 guide or a setter books a $5,000 call.

Learn more about Ellipsend

Frequently asked questions

Does Instagram show sales from posts?

Not for organic posts. Instagram Insights reports reach, engagement, profile activity and link taps. It has no view of a booking or payment that happens off Instagram, so you need tagged links and a place that records the sale against the lead.

Can I track Instagram sales with UTM links alone?

Only partly. A UTM tag tells you which post a click came from. It doesn't tell you which lead clicked, and it can't follow a sale that closes later on a call or through an invoice. It works best when an automation sends the link and the buyer checks out right away.

Why doesn't manual tracking work for DM setter teams?

Because a person sends the link. Setters in live conversations don't add a fresh tracking tag to every link, and sales close days later on calls. Logging it all in a spreadsheet takes time setters should spend in the DMs.

Do story replies count toward a post's sales?

Yes, when the story has a call to action with a keyword or automation behind it. The automation is what turns a reply into a tracked lead. Without one, a reply is just a DM, and there's nothing tying the sale back to the story.

Can I track Instagram DM sales in GoHighLevel?

Yes, if the tracking tag travels with the lead. Build a GoHighLevel workflow that saves the tag on the opportunity when the lead first books, then sends the purchase back to your DM CRM with the same tag when the deal is won. That credits the revenue to the post the lead came from.

Why do my DM links get restricted on Instagram?

Meta doesn't publish exact thresholds. In our experience, plain-text links pasted into messages are the most common trigger we see. Sending links as buttons has cut that sharply on the accounts we work with.

Gabe Padilla

Co-founder and CEO of Ellipsend. Before that he ran one of the top ManyChat agencies globally.

Know which posts make you money

Ellipsend gives setter teams one DM inbox, a sales pipeline and revenue traced to every post.

Try Ellipsend

Keep reading

View all

Just Post. Ellipsend Handles the Rest.

The DM sales platform for setter teams. Keyword automations start the conversation, setters sell, and every sale is traced back to the post that started it.

Learn more about Ellipsend