Markdown

--- name: content-strategy description: > Analyzes sales data from PayPal and QuickBooks to find top performers and slow movers, layers in seasonality, and produces a prioritized 30-day content brief: what to push, what offers to run, what to hold. Strategic output only — no calendars or assets. Use when the user asks what to post, wants a content plan, asks what's selling, or what to promote this month. ---

Content Strategy

**Status:** MVP draft **Owner:** JJ **Version:** 0.2.0 · Phase MVP **Category:** Marketing & Sales

Quick start

When an SMB owner asks "what should I post this month?" or "what's my content plan?", this skill:

  1. **Pulls sales data** from QuickBooks or PayPal (transaction history, product/service revenue by date)
  2. **Identifies patterns** — top-selling products, slow movers, seasonal trends
  3. **Layers in context** — seasonality (user-provided or industry benchmarks), past performance
  4. **Produces a 30-day brief** — ranked recommendations of what to push, what to hold, what offers to consider
  5. **Gets owner approval** before the brief feeds into `canva-creator` for asset generation

The output is strategic only — no calendar scheduling, no creative assets.

---

Workflow

Step 1: Pre-flight check (QuickBooks only)

If using QuickBooks, verify the business profile is set up:

  1. Call `company-info` to check if `Industry` is populated
  2. If missing or "Unknown":
  • Ask: "I need your business category to pull the right seasonality benchmarks. What industry are you in?" (e.g., retail, services, SaaS)
  • Call `quickbooks-profile-info-update` with the user's industry
  • Confirm: "Profile updated. Ready to pull your sales data."
  1. If profile is set, proceed to Step 2

**Note:** PayPal and Square do not require profile setup.

Step 2: Clarify priorities & metrics

When triggered, ask the user:

  • **"How do you want me to measure 'top performers'?"**
  • By total revenue?
  • By profit margin?
  • By sales velocity (how fast they're selling)?
  • Combination of the above?
  • **"Do you have seasonality patterns in mind?"**
  • If yes: "Tell me about them" (capture user's known seasonality)
  • If no: "I'll use industry benchmarks for your category"

Step 3: Pull and analyze sales data

Fetch data from the authenticated connector (QuickBooks, PayPal, or Square, user's choice):

  • **Date range:** Last 90 days (or full history if <90 days available)
  • **Extract:** Product/service name, date sold, revenue, quantity

**Connector-specific notes:**

  • **QuickBooks:** Fetch invoice line items via `profit-loss-quickbooks-account` (pre-flight sets industry context)
  • **PayPal:** Fetch merchant transactions via `list_transactions`. *Rate-limiting:* If you hit rate limits, pause 30 seconds and retry once. If still blocked, gracefully offer: "PayPal is rate-limited. Would you like to switch to QuickBooks or Square instead, or I can continue with historical data I already pulled?"
  • **Square:** Requires location ID first. Call `make_api_request(service="locations", method="list")` to discover available locations, then fetch orders for each location. *Future enhancement:* Square integration is stubbed; full path documented in `reference/square-integration.md`.

**Fallback:** If <3 months of data, use industry seasonality benchmarks for the SMB's category (e.g., retail, services, e-commerce)

Identify:

  • **Top 3–5 performers** (by user's chosen metric)
  • **Bottom 3–5 slow movers** (consider holding or repositioning)
  • **Trending up** (gaining momentum in last 30 days)
  • **Trending down** (losing momentum)

Step 4: Layer in seasonality

  • **User-provided:** If they shared seasonal patterns, weight recommendations against them
  • **Industry benchmarks:** For categories without strong user data (e.g., "Q1 is strong for tax services")
  • **Timing:** Flag products that should ramp up/down in the next 30 days based on seasonal patterns

Step 5: Build the 30-day brief

Structure:

  • **Executive summary** (1–2 sentences: "Your best sellers are X and Y. Seasonal shift to Z is starting.")
  • **Push hard** (Top 2–3 products + recommended content angle, e.g., "Case study on ROI", "How-to video")
  • **Hold steady** (Middle performers; maintain visibility but no heavy lift)
  • **Reposition or pause** (Slow movers; consider discounting, bundling, or pausing)
  • **Seasonal opportunities** (What's coming next month that you should position for now)
  • **Recommended offers** (Bundle, discount, or free-trial strategy based on data)

Example length: **200–400 words** (brief and actionable, not essay-length).

Step 6: Owner approval & iteration

Present the brief to the owner. Ask:

  • "Does this match your gut?"
  • "Anything to adjust?"
  • "Ready to feed this to canva-creator for asset generation?"

Iterate if needed; once approved, return the final brief as structured JSON (ready for downstream tools).

---

Gotchas & edge cases

See [`reference/gotchas.md`](reference/gotchas.md) for common pitfalls.

---

Examples

See [`reference/examples/`](reference/examples/) for worked examples (SaaS, retail, services).