Connect your store over Shopify's own OAuth, read-only, and paid orders match back to the posts that sent the shopper. Revenue totals are on Creator; orders next to each post are on Pro.
Revenue totals on Creator, $24/mo. Revenue next to the post on Pro, $49/mo. Both start with a 7-day free trial.
Ecommerce social is where attribution matters most and gets done least: you post the product, orders happen, and the connection between a specific post and a specific order lives in your gut instead of your reports.
planpo.st connects to Shopify the proper way, OAuth from your shop domain, and subscribes to paid orders. Every order that started from a tracked link in a post gets matched back to that post, and the product photo you scheduled on Tuesday gets credit for the Thursday order it caused.
Three steps, and no code on your side.
Enter your shop domain
planpo.st sends you to Shopify's own consent screen. The requested scopes are read-only: orders, customers, products. Nothing that can edit your store.
Approve the connection
Shopify hands back an access token and planpo.st registers a webhook on paid orders, signature-verified so forged calls are dropped.
Schedule posts with tracked links
Product links in your posts become tracked redirects. Orders start attributing on their own.
Connect Shopify and see your revenue totals over time, with the transactions behind them.
Tracked links in your posts, and revenue next to the post that earned it, matched by the steps below.
Both plans start with a 7-day free trial. The free plan schedules posts but does not read revenue.
A paid order matches to the click that led to it, directly or through a 30-day last-click window. Orders with no traceable social click stay unattributed, which keeps the per-post numbers trustworthy: when the revenue view puts an order next to Tuesday's Facebook post, that order actually walked in through that post's link.
A product post publishes with a tracked link
The link points at your product page through a redirect that records the post, platform and campaign behind every click before passing the shopper through.
An order gets paid in Shopify
Shopify fires the orders/paid webhook planpo.st registered during OAuth. The signature is verified (HMAC) so forged calls are dropped, then the order is parsed.
The matcher connects order to click
Direct match to the recorded click when the trail held, 30-day last-click window when it did not, honestly unattributed when neither applies.
The post shows its orders
Attributed order revenue sits next to the post that drove it, in the dashboard and over MCP for any connected agent.
The webhook fires on paid orders: one-time purchases, repeat customers, subscription apps billing through Shopify. If the order reached paid, it counts.
Amounts come from the order itself, in the currency your store charged, so the attribution view agrees with your Shopify admin.
Refunds are not automatically subtracted here: the paid event already fired. Reconcile refunds in Shopify as usual; the per-post signal stays directionally right, and we would rather tell you that than fake precision.
Each drop's posts carry their own tracked links across networks, and by the weekend the revenue view has ranked the networks by orders, not by likes.
Every special gets its own link; the attribution view becomes a menu ranked by what actually sells, which beats any poll you could run.
Every new piece gets a post with its own tracked link. The revenue view shows which posts and which networks sold, which tells you what to make next and where to post it.
The manual alternative for stores is UTM-tagging every link and reading Shopify's own analytics next to GA4, two dashboards that rarely agree and neither of which knows which social post a tag belonged to. It produces channel-level guesses on a good week.
Post-level attribution needs the scheduler and the order stream in one system, which is the entire design here: the tool that published the post is the tool the webhook reports to, so the join is automatic and labeled by confidence rather than assembled by hand at month-end.
Where manual still wins
You schedule the same product to Facebook and Threads for launch week, each post with a tracked link to the product page, and put the same tracked link in your Instagram bio.
Orders attribute per post, and by Friday each post shows its own orders, so you can see which network sold and which only collected likes (with the usual caveat that Instagram converts through search too, so its number is a floor). Next launch gets planned from that, not from which post felt good.
Other payment sources
The rest of planpo.st
Free plan, no card: 2 accounts, 30 posts a month, your agent included. X needs a paid plan.