Explain post analytics
explain_post_analytics_stateDiagnostic — returns one of eight concrete states explaining why a post's analytics look the way they do. Use this instead of inferring from raw zeros / nulls in get_post_analytics; it collapses the (platform supports analytics?) × (connection healthy?) × (sync ran?) × (metrics zero?) matrix into a single state plus a human-readable explanation.
Possible states:
platform_not_supported: no analytics exist for this platform (Telegram, Discord). The zero row is a permanent placeholder.account_not_supported: the platform reports nothing for this post andexplanationcarries the reason: a personal account where only business accounts or pages have analytics (LinkedIn personal profile, personal Pinterest account), an X post when the workspace hasn't added its own X API key, or a Google Business Profile post (Google only has profile-level stats; get_workspace_analytics returns them).connection_needs_reconnect— the token that published this post is expired / revoked; the sync cannot refresh it until the user reconnects.sync_never_ran— no post_analytics row, OR the row is still the publish-time placeholder. No sync has run since the post was published; check thesyncfield for whether this call started one.sync_failed— the fetch ran and errored out;fetch_errorcarries the upstream message.synced_zero— real fetch, real zeros. The platform genuinely reports no engagement yet.synced_populated— real fetch, at least one non-zero metric.post_not_published— the post is still a draft or scheduled; no analytics can accrue yet.
Returns actionable: true when there's a user-facing next step (usually reconnect or wait), plus a next_step string spelling it out.
Freshness: if the workspace's analytics were last synced over an hour ago (or never), this call also starts a background sync and reports it in the response's sync field (status started or in_progress, plus last_synced_at). The numbers in that response are from the previous sync; call again in a few minutes for fresh ones. sync.status of free_plan_limit or daily_limit means no sync could run, so the numbers may not be current.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| video_post_id | Yes | The video_posts.id to diagnose. Get it from list_video_uploads or the return value of other analytics tools. |