---
sharksapi_version: p-78b84ae0d4
name: social-media-plan
description: Create a social media strategy using Facebook and LinkedIn analytics. Identifies best-performing content types, optimal posting times, and creates an action plan.
allowed-tools: [list_connections, get_facebook, get_linkedin, get_ga4_channels, get_ga4, create_dashboard, update_dashboard, update_strategy_task, get_strategy_status, submit_social_post, list_social_posts, get_social_post, cancel_social_post, submit_draft]
---

# Social Media Plan

## When to use

User says: "social media plan", "improve our social", "Facebook strategy", "LinkedIn plan", "social media audit".

## Phase 1: Data Collection

0. **Connections**: `list_connections` -- note which social channels are connected. A `facebook` / `facebook_page` / `instagram` connection means the agent can publish itself via `submit_social_post` (approval-first). LinkedIn and X have no publishing tool.
1. **Facebook**: `get_facebook` (last 30 days) -- reach, engagement, fans, page views
2. **LinkedIn**: `get_linkedin` (last 30 days) -- impressions, engagement, followers
3. **Social traffic**: `get_ga4_channels` -- how much traffic comes from social
4. **Overall context**: `get_ga4` (aggregate: true) -- social vs total traffic ratio

## Phase 2: Analysis

- **Engagement rate**: Is it above 5% (good) or below 2% (needs work)?
- **Reach vs followers**: What % of followers see posts? (<10% = algorithm problem)
- **Content mix**: Which post types get most engagement (video, carousel, link, image)?
- **Traffic value**: Does social actually drive website visits and conversions?
- **Growth trend**: Followers growing, flat, or declining?
- **Platform comparison**: Where is the audience more engaged -- Facebook or LinkedIn?

## Phase 3: Strategy Card

**Set dashboard password:** Ask the user for a dashboard password (required — `create_dashboard` rejects requests without one). Pass it via the `password` field.

**Card mode rule:** if a Facebook or Instagram connection exists, the card is `ai_controlled` and its tasks are phrased as agent actions the agent executes with `submit_social_post` (the human only approves/schedules on the dashboard — never "post it manually"). Use `human_controlled` ONLY for channels without a publishing tool (LinkedIn, X) -- and even there, deliver the copy with `submit_draft` so the human just clicks.

**Facebook / Instagram connected -- `ai_controlled` card:**

```json
{
  "type": "strategy_card",
  "title": "Social Media Plan -- Week {N}",
  "content": "## Social Audit\n\nFacebook: {reach} reach, {engagement_rate}% engagement\nInstagram: {reach} reach\nSocial drives {pct}% of total traffic",
  "source": {
    "mode": "ai_controlled",
    "tasks": [
      {"title": "submit_social_post for 3 Facebook posts this week (Tue/Thu/Sat)", "description": "Pillars: industry insight, case study, team/culture. publish_mode=schedule with scheduled_at; check list_social_posts(status=pending_approval) first to avoid duplicates"},
      {"title": "submit_social_post type=carousel on Instagram about {topic from GSC data}", "description": "Carousels get 3x engagement vs link posts; JPEG images only; put the link in first_comment"},
      {"title": "submit_social_post: customer success story from {company}", "description": "Social proof; Facebook link post + Instagram image version"},
      {"title": "submit_social_post 2 posts scheduled_at 08:30 instead of 12:00", "description": "Test morning slot; compare reach after 7 days via get_facebook"},
      {"title": "Draft replies to unreplied comments from last week (currently {N})", "description": "Submit reply texts via submit_draft; the manager posts replies (no comment-reply tool yet)"}
    ]
  }
}
```

A submitted post that is waiting for approval keeps its task `in_progress` with a note -- never `needs_human`. Mark the task done only after `get_social_post` shows `scheduled` or `published`.

**LinkedIn / X only (no publishing tool) -- `human_controlled` card:**

```json
{
  "type": "strategy_card",
  "title": "LinkedIn Plan -- Week {N}",
  "content": "## Social Audit\n\nLinkedIn: {impressions} impressions, {engagement_rate}% engagement\nSocial drives {pct}% of total traffic",
  "source": {
    "mode": "human_controlled",
    "tasks": [
      {"title": "Post 3x this week on LinkedIn (Tue/Thu/Sat) -- copy delivered via submit_draft", "description": "Focus on: industry insights, case study, team/culture"},
      {"title": "Publish the approved carousel about {topic from GSC data}", "description": "Carousels get 3x engagement vs link posts"},
      {"title": "Reply to all comments from last week (currently {N} unreplied)", "description": "Engagement signals boost reach"},
      {"title": "Test posting at 8:30 AM instead of 12:00 PM", "description": "LinkedIn data suggests morning posts perform better for B2B"}
    ]
  }
}
```
