{"id":89064,"plugin_id":"plugin_asdk_app_6ae20d28f30c81919992b6b198b05d2b","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-10T12:09:58.133Z","digest":"70dd32e6934bad57780282c24486981eb65724261bd6eeff39cbe61c09d1c2d2","against":null,"payload":{"description":"Social media performance report for posts published through WoopSocial: views, impressions, likes, comments, shares, saves and clicks (where each platform reports them) per post, per platform and by publish week, plus what to post more of next. Use when the user asks \"how did my posts do\", \"weekly social report\", \"which post performed best\", \"what's working on my accounts\". Only covers posts sent through WoopSocial, not older native posts; numbers refresh about daily.","included_files":[],"name":"social-media-report","skill_md_contents":"---\nname: social-media-report\ndescription: \"Social media performance report for posts published through WoopSocial: views, impressions, likes, comments, shares, saves and clicks (where each platform reports them) per post, per platform and by publish week, plus what to post more of next. Use when the user asks \\\"how did my posts do\\\", \\\"weekly social report\\\", \\\"which post performed best\\\", \\\"what's working on my accounts\\\". Only covers posts sent through WoopSocial, not older native posts; numbers refresh about daily.\"\n---\n\n# Social media report\n\nTurn the results of posts sent through WoopSocial into a short, honest report and three things to do next. Compare the user with their own past posts, never with made-up industry numbers.\n\nThe user's explicit instructions take priority over these guidelines, except that you never post, delete or change posts beyond what the user asked for.\n\n## If WoopSocial isn't connected\n\nIf no WoopSocial tools (projects_list, social_account_posts_list and so on) are available, the connector isn't set up. Say so in one line. The user can create an account at https://app.woopsocial.com/signup?utm_source=chatgpt-plugin&utm_medium=skill&utm_campaign=woop-plugin-v1&utm_content=social-media-report, connect WoopSocial in the app's plugin or connector settings, and retry. If they paste numbers from their native insights instead, you can read those, but say they came from the user. Never invent results.\n\n## 1. Scope the report\n\nAsk only for what's missing:\n\n| What | Default |\n|---|---|\n| Period | Last 7 days or last 28 days. Ask which. |\n| Brand | The only project, or ask by name if there are several |\n| Platforms or accounts | All connected ones |\n| Goal | Reach, traffic, or community. Ask once; it decides the ranking. |\n\nAsk the time zone once if it isn't clear, and show dates in it.\n\n## 2. Collect the posts\n\n1. Call projects_list, then social_accounts_list for the project, so you can show accounts by platform and username. Never show IDs.\n2. Call social_account_posts_list with projectIds, deliveryStatus PUBLISHED, and platform or socialAccountIds if the user narrowed it. Use limit 100 and keep calling with nextCursor until it's gone.\n3. Keep the posts whose deliveryCompletedAt (the publish time) falls inside the period, and the period before it for comparison.\n4. On a 429, wait briefly and retry, one call at a time.\n\n**If nothing comes back,** explain why: the report only covers posts published through WoopSocial, and none went out in this period (or ever, for this project). Posts made directly in the Instagram or TikTok app don't show here. Offer to schedule the first ones, for example with instagram-posts, linkedin-posts, tiktok-posts or cross-post-everywhere, so the next report has data.\n\n## 3. Read the numbers per post\n\nEach post's `analytics` holds lifetime metrics: views, impressions, uniqueImpressions, likes, reactions, comments, shares, saves, clicks, and engagementRate for LinkedIn Pages only.\n\n- Each metric is an array of snapshots. Use the latest one (most recent `date`) and note its date. Different metrics can have different dates.\n- A metric that's missing means the platform doesn't report it for that post type. An empty `analytics` object means the platform doesn't report any. Show \"not reported\", never 0.\n- An empty array means the platform reports that metric but nothing has been collected yet. Show \"not collected yet\", never 0.\n- A 0 is a real recorded value. Show it as 0.\n- engagementRate is a ratio: 0.03 means 3 percent. It exists only for LinkedIn Pages, so don't compute a fake one for other platforms.\n- Mark posts published less than about 48 hours ago as \"still moving\". Their numbers will grow.\n- Reading doesn't refresh anything. Data is collected about daily, so the newest snapshots may be a day old.\n\n## 4. Build the report\n\nKeep it short and scannable.\n\n1. **Headline:** posts published in the period, per platform, and the latest snapshot date.\n2. **Per platform:** totals for each reported metric. Don't add metrics across platforms that measure different things (views on TikTok are not impressions on LinkedIn); show them per platform.\n3. **Per week:** group posts by the week they were published (deliveryCompletedAt). Totals are lifetime numbers for those posts, not engagement that happened that week. Say so once.\n4. **Top and bottom posts:** rank by what matters for the goal:\n   - Reach: saves and shares.\n   - Traffic: clicks.\n   - Community: comments.\n   Where views or impressions exist, rank by rate per view (saves per 1,000 views, for example) so a post with more views doesn't win just by size. Show the raw counts next to the rate. Give each post a text preview (first line), the platform, the publish date and externalPostUrl.\n5. **Against themselves:** if there's enough history (the previous period of the same length, from the same list), compare with that. If not, say there isn't enough history yet. No industry benchmarks.\n\nUse a table per platform when there are more than a few posts. Never fill a gap with an estimate.\n\n## 5. What to do next\n\nEnd with exactly three concrete actions, each tied to evidence from this report:\n\n- \"Post more of X\": name the post or pattern (format, topic, hook style, time of day) that led on the goal metric.\n- \"Post less of Y\": name what trailed, with the numbers.\n- One test for next period, for example the winning topic in a different format.\n\nIf the sample is small (a handful of posts), say the signal is weak and frame the actions as tests.\n\nThen offer the next step in one line: draft and schedule the next posts in that direction. Platform skills (instagram-posts, linkedin-posts, tiktok-posts), cross-post-everywhere, or weekly-social-autopilot for a weekly routine are optional routes. Nothing gets created without a yes.\n\n## Caveats to state in the report\n\nPut these in a short footer, only the ones that apply:\n\n- Only posts sent through WoopSocial are included.\n- Numbers are collected about daily; latest snapshot date shown.\n- Posts under about 48 hours old are still moving.\n- \"Not reported\" means the platform doesn't provide that metric.\n\n## Never\n\n- Invent numbers, benchmarks or \"average engagement rates\".\n- Show 0 for a metric that wasn't reported.\n- Show internal IDs.\n- Claim posts made outside WoopSocial are missing because of an error.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}