Fix the things most likely to trip you up: a channel that won’t connect, an account that needs reconnecting, a post that failed, empty Results, and (with attribution on) a sale that wasn’t matched.
Most problems in seenpaid come down to one of these. Each section is a diagnosis-then-fix, in the order worth checking.
X is the one network that connects with keys from your own developer app. If the card asks for an API key, secret, access token and access token secret, create the app at developer.x.com and paste all four. See Connect your first channel.
2
Check whether it's gated today
Instagram and Facebook connect only for accounts added to seenpaid’s Meta app, because Meta’s review is in progress; full support is coming very soon; contact support from the dashboard if you’d like yours added. Pinterest connects but publishing currently fails on Pinterest’s side (Trial access). Reddit and VK aren’t available yet. Everything else connects today; see Supported platforms.
3
Retry the authorization cleanly
Pop-up blockers and strict cookie settings can interrupt the return trip from the platform. Try again in a normal (non-incognito) window and allow pop-ups for seenpaid.com.
Under Channels, click Reconnect. It re-runs the normal connect flow and updates the existing account in place, so history and scheduled posts stay attached. Nothing is duplicated.
2
Know when it's expected
LinkedIn needs this every 60 days (LinkedIn’s standard grant has no refresh); seenpaid emails you about a week before. Facebook and Instagram Page tokens don’t expire, Threads and Bluesky renew themselves, and the rest refresh in the background. A platform outage or rate limit never flips an account to this state; only a grant the platform has actually revoked or let expire does.
3
Retry the posts that missed
Open each affected post and retry the failed network; the other networks were unaffected.
Each post shows, per network, the live URL of the published copy or the exact error, with a Retry button. The message names the cause.
2
Look for an account that needs reconnecting
A publish that hits an expired token refreshes it once and retries on its own. If the platform refused the refresh, the account is flagged under Channels; reconnect it and retry the post.
3
Check the platform's own rules
A caption over the limit, missing required media (Instagram and Pinterest need an image, TikTok needs a video), or a video sent to LinkedIn, Facebook or Threads (no video support yet on those three) all fail that one network with a plain message. The composer flags these before you send.
TikTok never publishes automatically, by design. It lands as a draft in your TikTok inbox; open TikTok, write the caption and tap Post. That’s not a failure.
13 of the 21 platforms report engagement; Threads, LinkedIn and TikTok need permissions seenpaid doesn’t hold, and Slack, Telegram, Medium, Ghost and Webhook expose nothing to read. A dash means “not reported”, never zero. Table: Engagement metrics.
2
Give it time
Counts are read every 4 hours for a post’s first 48 hours, then daily until day 30. X is read once a day.
3
Looking for revenue?
Clicks, sales and revenue per post only appear with revenue attribution on and a revenue source connected. With it off, Results shows engagement only; that’s expected.
The reply “Revenue attribution is off for this workspace” is exactly that: the revenue tools (get_top_posts, get_analytics, get_channel_roi, create_tracked_link and the rest) need the switch on under Settings → Attribution. Scheduling tools work regardless.
On Results, Sales traced to a post shows how many of the payments seenpaid saw it could match. A low share means the tracking install has a gap, not that your posts failed.
2
Confirm a tracked link was actually used
A sale only matches when the buyer clicked a tracked link on a published post before paying. On Instagram and TikTok that has to be the link on your bio page.
3
Confirm the pixel is on the checkout page
If buyers land on your own site first, <script src="https://api.seenpaid.com/pixel.js"></script> must be in the <head> of the page where people actually pay, ideally site-wide. Test it: open your site via a tracked link and run window.seenpaidTrackingId in the console. It returns an id; on a direct visit it returns null, which is correct.
4
Custom-domain or server-side checkout
A Payment Link on your own domain needs data-seenpaid on the button. A server-side Checkout Session needs client_reference_id set from window.seenpaidTrackingId; that’s the only field the matcher reads. See Track your sales.
5
Widen the window
Revenue views summarise 7, 30 or 90 days. A sale older than the window you’re viewing isn’t in the totals.