I built revenue attribution into Planpost because my own reporting kept failing the same test. I could tell you which post got the most likes last month. I could not tell you whether any post had sold anything.
The engagement numbers lived in the platforms. The money lived in Stripe. Nothing connected them, and "the launch went well, I think" is not a report.
This is a walkthrough of how the connection works: tracked short links, UTM tags, and webhooks from Stripe and Shopify that tie payments back to individual posts. I covered the general model in how to track revenue from social media posts. This is the concrete version, with the actual wiring.
The chain, end to end
An attributed sale passes through five stages. If any one of them is missing, you are back to guessing.
The first three stages are ordinary link tracking. The last two are the part most schedulers skip, and they are what this post is about.
What you need before you start
Not much. A Stripe account or a Shopify store. A destination you control, like a pricing page, a landing page, or a product page. And posts that link somewhere, which sounds obvious until you audit your own calendar and find three weeks of posts with no link in any of them. Mine failed that audit the first time I ran it.
Every post gets its own short link
When you schedule a post in Planpost and attach a destination URL, you get a short link back:
https://planpo.st/r/k3F9m
The code is unique to that post on that platform. Behind it, Planpost stores the destination, the platform, the campaign, and the UTM values it appends on redirect. The person clicking sees a short clean URL. Your reporting sees everything else.
Order matters here. The click is recorded first, then the redirect happens. So the click exists in Planpost's own data even when the visitor blocks analytics scripts on your site, and post-level attribution does not depend on Google Analytics being configured correctly. GA still receives the UTM tags for whatever broader reporting you run there.
If your UTM naming is currently a mess, fix that before you turn attribution on. I wrote up a naming system for UTM links that takes about ten minutes to adopt and saves you from having three spellings of "linkedin" in your data forever.
Connecting Stripe
This is the half for SaaS, digital products, coaching, and anything else that checks out through Stripe.
Setup is one step: connect your Stripe account from the revenue settings. That registers a webhook, and from then on Stripe notifies Planpost whenever a payment succeeds.
The interesting part is the match. When a payment event arrives, Planpost looks for a tracked click that belongs to the same visitor journey. Someone clicks planpo.st/r/k3F9m in your LinkedIn post, lands on your pricing page, starts a trial, converts a few days later. When the payment webhook fires, that revenue lands on the exact post that carried the link.
Two things I want to be straight about, because attribution vendors usually are not.
The match is only as good as the trail. If someone clicks on their phone and then buys on their laptop three days later from a bookmark, the payment still arrives, but there may be no click to pin it to. That sale shows up in your totals, just not against a post.
And a subscription is not one payment. Planpost attributes the conversion at the moment it happens. Whether you then count the first month or a year of value against that post is a reporting decision. Make it once, write it down, and stop re-deciding it at every review.
Connecting Shopify
Shopify is the same chain, order-shaped. Connect the store and Planpost subscribes to order webhooks. When an order is paid, the order total comes through and the same matching runs: was there a tracked click from one of your posts earlier in this journey?
Two habits make the ecommerce version work much better.
Give every post its own link, even when the destination repeats. Five posts about the same product should be five short links pointing at one page. Otherwise you learn that the product page converted and still cannot say which post did the work, which was the whole point of the exercise.
Link to the product, not the homepage. Every extra step between the click and the checkout loses people, and every lost person weakens both your revenue and your data.
What the report looks like
At the end of the chain you get a revenue view at the post level: clicks, conversions, and revenue next to each post, with campaign totals when you group posts into campaigns.
The comparisons worth making are the ones engagement metrics get backwards. A reel with a few thousand views and zero orders. A plain text post with twelve likes and three sales. In my own posting, the posts that convert are rarely the posts that perform, and I would never have seen that pattern from platform analytics alone.
Give it a few weeks before drawing conclusions. One attributed sale is an anecdote. The same topic converting across four different posts is a strategy.
Read attributed revenue as a floor
The chain misses dark social, cross-device buyers, and the person who saw your post and searched your brand a week later. When the report says a post drove $300, the true number is at least that. Act on the direction, not the decimal.
Where the chain breaks, honestly
No attribution system sees everything, including this one.
People copy links instead of clicking them. They screenshot posts into group chats. They watch you for a month and then type your URL by hand. All of that is real influence with no click attached to it.
There is also time. Social sells slowly more often than it sells instantly. A founder post can create the trust in March and the payment in May, and by then the trail can be cold.
None of this makes the data useless. It makes it conservative. The posts that show attributed revenue really did drive it, and the pattern across those posts is the most honest signal you can get about what your audience pays for. Just resist the urge to treat the untracked remainder as proof that nothing else worked.
What it costs
Revenue attribution is a Pro feature. I would rather say that plainly here than have you discover it at the paywall. Tracked short links with revenue matching, the Stripe and Shopify connections, and the post-level revenue report all sit on the Pro plan. There is a 7-day free trial, so you can connect your store, publish a week of tracked posts, and look at your own numbers before paying anything. Details are on the pricing page.
The setup is roughly an afternoon: connect Stripe or Shopify, build the link habit, let the webhooks do the rest. "Which post made money" should be a boring question with a boring answer sitting next to the post. Once it is, next month's calendar gets planned from buyer data instead of applause.
