PRD: AI-Powered Ecommerce Ad Generation & Store Management Platform

v1.0 📅 April 2026 👤 Rashida Mendes 🏗️ RevEngine Platform
🚨 Immediate Priority Family Gift Studio is severely behind schedule. Phase 1 begins with an emergency FGS remediation sprint before any new feature development.

01Executive Summary

This document defines the full product requirements for RevEngine — Rashida's unified AI-powered platform for ad generation, ecommerce store management, and autonomous revenue operations.

The platform solves a single core problem: Rashida is a solo operator managing two Shopify POD stores, multiple ad channels, GHL funnels, and a growing content operation. Without a unified system with maximum automation, she cannot compete at scale.

RevEngine integrates every tool in Rashida's existing stack:

  • Family Gift Studio (FGS) and FTK (For The Kids) — Shopify stores
  • Printify POD fulfillment
  • Go High Level (GHL) for all digital checkout/funnels (never Gumroad)
  • Seedance 2.0 (ByteDance) as the primary video ad engine
  • Nano Banana 2 (Gemini 3.1 Flash) for illustrations/FTK imagery
  • Fal.ai Dev for hyperrealistic product shots
  • Claude.ai/design for static image ads
  • Google Sheets as the batch input layer → Seedance 2.0 at scale
  • Manus.ai for Facebook Ads, TikTok Ads, Google Ads deployment
  • Supabase (self-hosted at supabase.insightprofit.live)
  • Vercel (rashida-mendes-projects team) for hosting
  • ClickUp for task management and escalation
  • GitHub: viral-comedy-ad-generator
⚠️ Diversity Requirement (Non-Negotiable) ALL imagery generated by this platform must feature ethnically diverse subjects across multiple ages. No all-white imagery is ever permitted.

02User Persona

Primary User: Rashida Mendes

AttributeDetail
RoleSolo ecommerce operator & media buyer
StoresFamily Gift Studio (FGS) + FTK — both Shopify + Printify POD
Sales platformGo High Level exclusively (no Gumroad, no Stripe direct)
DeviceMobile-first — most tasks on iPhone; needs 5" screen UI
Time budgetMaximum 30 minutes/day on platform management
Technical levelIntermediate-advanced: APIs, Sheets, Zapier-style logic; does NOT want to write code daily
Pain pointsToo many tabs, context switching, manual ad creation, forgetting pending items
Success stateWake up, check one dashboard, see AI agent overnight work, approve 3 ads, close app — stores running
Revenue goal$10K+/month from FGS + FTK combined within 90 days of launch
Ad philosophyComedy-first, emotional storytelling, never generic; diverse representation always

03Problem Statement

Current State (Broken)

AreaProblem
Family Gift StudioBehind schedule — products not properly loaded, collections incomplete, no active ads
Ad creationManual: write copy → find image → Canva → upload → schedule. 2–4 hours per ad
Video adsNot yet being created; Seedance 2.0 available but no pipeline
Store managementShopify/Printify sync manual, mockups created one at a time
GHLOffers exist but funnel pages need cleanup; no automated trigger from store sales
Knowledge$1,000+ in courses sitting in MEGA, never searched
MonitoringNo alerting when campaign goes off-budget; Rashida discovers problems by accident
ToolsArcads.ai at $110–220/month being evaluated vs in-house Seedance 2.0

Desired State

  • One dashboard shows all store KPIs, active campaigns, pending tasks
  • Batch generate 50–100 ads from a Google Sheet in one click
  • AI agent runs overnight audits and posts findings to ClickUp by 6am
  • Course KB is searchable in natural language
  • FGS fully operational within 24 hours (Phase 1 emergency sprint)

04Goals & Success Metrics

Phase 1 Goals (Days 1–14)

GoalMetricTarget
FGS emergency fixStore operational24 hours
Ad engine MVPFirst batch of 20 video ads generated7 days
Sheets → Seedance pipelineEnd-to-end working7 days
Supabase schemaAll core tables live3 days

Phase 2 Goals (Days 15–45)

GoalMetricTarget
Ad throughput100+ ads/week generated30 days
KB searchableAll 4 courses ingested21 days
CRO agent v1Nightly audit running21 days
GHL automationAutomated funnel trigger from Shopify sale30 days

Phase 3 Goals (Days 46–90)

GoalMetricTarget
Full agent autonomyAgent handles 80% of daily decisions60 days
Revenue$10K/month combined FGS + FTK90 days
Ad ROASAverage 2.5x ROAS across all campaigns90 days
Time on platformMax 30 min/day operator time60 days

05Technical Architecture

System Overview

┌─────────────────────────────────────────────────────────────────┐
│                        REVENGINE PLATFORM                        │
│                   (Vercel — rashida-mendes-projects)             │
├─────────────────┬───────────────────┬────────────────────────────┤
│   FRONTEND      │   BACKEND API     │   DATABASE                 │
│   Next.js 14    │   Next.js API     │   Supabase (self-hosted)   │
│   Tailwind CSS  │   Routes +        │   supabase.insightprofit   │
│   Mobile-first  │   Edge Functions  │   .live                    │
│   PWA           │                   │                            │
├─────────────────┴───────────────────┴────────────────────────────┤
│                        INTEGRATION LAYER                          │
├────────────┬────────────┬────────────┬────────────┬──────────────┤
│  Shopify   │  Printify  │    GHL     │  Seedance  │  Manus.ai   │
│  FGS + FTK │  POD sync  │  Funnels   │  2.0 Video │  Ad Deploy  │
├────────────┴────────────┴────────────┴────────────┴──────────────┤
│                        AI/ML LAYER                                │
├──────────────┬────────────────┬───────────────┬───────────────────┤
│ Claude.ai    │ Nano Banana 2  │  Fal.ai Dev   │  Seedance 2.0    │
│ Static ads + │ Gemini 3.1     │  Hyperreal    │  Video engine    │
│ Copy gen     │ Flash Image    │  product shots│                   │
└──────────────┴────────────────┴───────────────┴───────────────────┘

Frontend Architecture

  • Framework: Next.js 14 (App Router) deployed on Vercel
  • Styling: Tailwind CSS + shadcn/ui
  • Auth: Supabase Auth (email magic link — mobile-friendly)
  • State: Zustand for client state; React Query for server state
  • PWA: Service worker for mobile home screen install

Key Pages

/dashboard          — Morning briefing: KPIs, CRO agent report, pending tasks
/ads/generate       — Google Sheets upload → batch ad generation
/ads/library        — All generated ads, filterable by store/format/status
/stores/fgs         — Family Gift Studio manager
/stores/ftk         — FTK manager
/ghl                — GHL offers and funnel status
/kb                 — Knowledge base search (PopeBot interface)
/agent              — CRO agent activity log and settings
/settings           — API keys, integrations, preferences

Backend Architecture

  • Runtime: Next.js API routes + Vercel Edge Functions
  • Queue: Inngest (serverless job queue) for batch ad generation
  • Cron: Vercel Cron for nightly CRO agent audit (2am ET)
  • Storage: Supabase Storage for generated ad assets
  • Secrets: Vercel Environment Variables (never committed to GitHub)

06API Integrations Map

IntegrationPurposeAuthRate LimitsPriority
Shopify Admin API (FGS)Products, collections, orders, inventoryOAuth2 / API key40 req/sP0
Shopify Admin API (FTK)Products, collections, orders, inventoryOAuth2 / API key40 req/sP0
Printify APIPOD products, mockups, fulfillmentBearer token120 req/minP0
Go High Level API v2Contacts, funnels, offers, pipelinesOAuth2100 req/10sP0
Seedance 2.0 APIVideo ad generationAPI keyConcurrent job limit TBDP0
Google Sheets API v4Batch product/copy data inputOAuth2 service account300 req/minP0
Supabase (self-hosted)Database, auth, storage, realtimeService role keySelf-managedP0
Claude API (Anthropic)Copy gen, static ad layout, KB Q&AAPI key50 req/minP0
Nano Banana 2Illustration gen for FTKAPI keyPer-quotaP1
Fal.ai DevHyperrealistic product shotsAPI key + secretQueue-basedP1
Manus.aiFacebook/TikTok/Google Ads deploymentAccount OAuthPlatform-dependentP1
ClickUp API v2Task creation, escalation, CRO agent outputPersonal token100 req/minP1
TikTok Shop APIFTK TikTok Shop product syncOAuth2100 req/minP1
Vercel APIDeployments, env vars managementBearer token3000 req/hourP2
GitHub APIRepo sync, deployment triggersPAT5000 req/hourP2

Data Flow: Ad Generation

Google Sheets (product data + copy angles)
         │
         ▼
Sheet Parser (/lib/sheets)
  - Validates required columns: product_id, product_name, store, angle, format
  - Enriches with Shopify product data via Shopify API
  - Fetches product image URLs from Printify (if POD) or Shopify CDN
         │
         ▼
Prompt Builder (/lib/prompts)
  - Selects template based on angle: comedy | emotional | testimonial | demo | comparison
  - Applies diversity directive: "Diverse cast — multiple ethnicities, ages 25-65"
         │
         ├──── Static ad? ──── Claude API → Returns ad layout JSON + copy → Canvas PNG/JPG
         │
         └──── Video ad? ───── Seedance 2.0 API → MP4 → Supabase Storage
         │
         ▼
Ad Library (Supabase: ad_creatives table)
  Status: pending_review | approved | rejected | published
         │
         ▼
Manus.ai Deployment → Facebook / TikTok / Google

07Feature Specifications

7.1 Ad Generation Engine

P0 — Must Have at Launch (Phase 1)

Google Sheets Batch Input

Rashida uploads or connects a Google Sheet with product data and copy angles. Up to 200 rows per sheet upload. Jobs queued via Inngest (~3–5 min per video ad, 30s per static).

ColumnTypeExampleRequired
product_idStringshopify_fgs_7823
product_nameStringCustom Family Portrait Mug
storefgs | ftkfgs
anglecomedy | emotional | testimonial | demo | comparisoncomedy
formattiktok_916 | meta_11 | meta_45 | youtube_169tiktok_916
ad_typevideo | staticvideo
priceNumber34.99
hookStringPOV: Your mom opens this on Mother's DayOptional
offer_ctaStringBuy 2 Get 1 FreeOptional
voiceover_styleupbeat | emotional | dry_comedy | narratorupbeatOptional

Seedance 2.0 Video Ad Generation

The core video generation engine. All video ads route through Seedance 2.0 (ByteDance). Replaces Arcads.ai at $110–220/month.

PlatformAspect RatioDurationNotes
TikTok9:1615s or 30sCaption-ready
Meta Feed1:115s or 30s
Meta Stories/Reels4:5 or 9:1615s
YouTube Pre-roll16:915s or 30s

Prompt Template Library

Template 1: COMEDY

HOOK (0-3s): [Relatable frustration or absurd situation related to {product_use_case}]
MIDDLE (3-12s): Product appears as the "obvious solution" — played for laughs
CTA (12-15s): "{offer_cta}" — direct address to camera, confident
VOICEOVER STYLE: Dry, slightly sarcastic, like a friend giving advice
VISUAL: UGC-style, slightly shaky cam, lived-in environment — NOT studio
CAST: Mix of ethnicities, ages 30-55, everyday clothes

Template 2: EMOTIONAL

HOOK (0-5s): [Heartfelt moment — parent/child, couple, milestone]
MIDDLE (5-20s): The gift arrives/is opened — genuine reaction shown
CTA (20-30s): Soft, warm — "Give them something they'll never forget"
VOICEOVER STYLE: Warm, slow, intimate — like a memory
VISUAL: Golden hour lighting, natural settings, candid feel
CAST: Multi-generational — grandparent + parent + child at minimum

Template 3: TESTIMONIAL

HOOK (0-3s): Real person holds product to camera — "Okay I have to show you this"
MIDDLE (3-20s): Unboxing + reaction + benefit explanation in their own words
CTA (20-30s): "{offer_cta}" overlay + link in bio instruction
VOICEOVER STYLE: Authentic, slightly imperfect — NOT polished corporate
VISUAL: Phone-filmed, bedroom or kitchen background, natural lighting

Template 4: PRODUCT DEMO

HOOK (0-3s): Product feature shown in 3 seconds flat
MIDDLE (3-15s): Three key features, each demonstrated once — show don't tell
CTA (15-20s): "Order yours at [store]" — clean product shot on white
VOICEOVER STYLE: Energetic narrator — "Feature 1. Feature 2. Feature 3."
CAST: Hands of diverse operators using product

Template 5: COMPARISON

HOOK (0-3s): "Still ordering from {competitor_category}?" — skeptical look to camera
MIDDLE (3-20s): Side-by-side: generic gift vs. {product_name} — clear winner visual
CTA (20-30s): "{offer_cta}" — urgency + price shown on screen
CAST: Mixed gender, ethnically diverse, 25-50

7.2 Ecommerce Store Manager

🚨 P0 — Phase 1 Emergency: Family Gift Studio Fix Checklist This is the immediate priority. Complete before any new feature work.
  • Audit FGS Shopify store — list all products, identify unpublished/incomplete
  • Printify sync — verify all POD products have active blueprints
  • Collections — ensure all products assigned to correct collections
  • Product descriptions — Claude generates SEO-optimized for any missing
  • Pricing audit — confirm pricing covers Printify base cost + desired margin
  • Theme check — verify FGS theme is mobile-optimized (critical for TikTok traffic)
  • Analytics — Shopify Analytics + Facebook Pixel verified firing
  • First ad — at minimum one FGS video ad live on TikTok or Meta within 24 hours

Printify Mockup Generation Workflow

New product request (design file URL + blueprint ID)
    │
    ▼
Printify: POST /v1/shops/{shop_id}/products.json
    │ (creates product with all variants)
    ▼
Printify: POST /v1/mockup-generator/generate.json
    │ (generates 4-6 mockup angles)
    ▼
Best mockup auto-selected (Fal.ai enhances for hero image)
    │
    ▼
Shopify: product images updated with mockups
    │
    ▼
ClickUp task: "New product live — create ad batch" (auto-created)

7.3 AI Agent — Chief Revenue Officer (CRO)

Nightly Audit — Runs 2am ET via Vercel Cron Monitors all connected systems and surfaces actionable intelligence by 6am.

Audit Checklist (Automated)

1. AD PERFORMANCE AUDIT
   - Pull last 24h metrics from Manus.ai (Facebook, TikTok, Google)
   - Flag any campaign with CPC > $2.50 (alert: pause?)
   - Flag any campaign with CTR < 0.5% (alert: creative refresh needed)
   - Identify top-performing ad of the day — note angle + format
   - Calculate daily ad spend vs. daily revenue (micro-ROAS)

2. STORE HEALTH AUDIT
   - FGS: Check for any out-of-stock variants (Printify)
   - FTK: Same
   - Any Shopify products with no active ad campaign → flag as "orphaned product"
   - Check that all product pages load (HTTP 200) — flag any 404s

3. GHL FUNNEL AUDIT
   - Check all active GHL funnel pages return 200
   - Flag any funnel with 0 pageviews in 48 hours
   - Check GHL pipeline: any leads stuck in stage >7 days → escalate

4. GENERATE MORNING REPORT
   - Summary of all findings, formatted for mobile reading
   - Top 3 recommended actions for the day
   - Posted to ClickUp as comment on "Daily Operations" task

7.4 Knowledge Base System

4 Courses to Ingest

Course IDLikely ContentPriority
RAF3RQyKShopify/ecommerce fundamentalsP1
RJ1hUYBDMixed contentP2
AZ9DUY6ZMedia buying / ecommerce scalingP0
IRNT0QrS"Sam" — top 1% media buyer strategiesP0

PopeBot Query Flow

Rashida asks: "What does Sam say about scaling ad budgets past $1k/day?"
    │
    ▼
Generate query embedding
    │
    ▼
Supabase vector similarity search: kb_articles WHERE course_id = 'IRNT0QrS'
  SELECT * FROM kb_articles ORDER BY embedding <-> query_embedding LIMIT 5
    │
    ▼
Top 5 chunks passed to Claude as context
    │
    ▼
Claude response: "Based on Sam's training, he recommends..."
  + Source citations: [IRNT0QrS, Module 4, Lesson 2]

7.5 Relational Database Schema (Supabase)

Connection: supabase.insightprofit.live  |  Extension required: pgvector for KB embeddings

Table: products

CREATE TABLE products (
  id              UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  store           TEXT NOT NULL CHECK (store IN ('fgs', 'ftk')),
  shopify_id      TEXT UNIQUE,
  printify_id     TEXT,
  title           TEXT NOT NULL,
  price           NUMERIC(10,2),
  status          TEXT DEFAULT 'draft' CHECK (status IN ('active', 'draft', 'archived')),
  collections     TEXT[],
  mockup_urls     TEXT[],
  hero_image_url  TEXT,
  printify_synced BOOLEAN DEFAULT false,
  shopify_synced  BOOLEAN DEFAULT false,
  tiktok_shop_id  TEXT,
  seo_title       TEXT,
  seo_description TEXT,
  created_at      TIMESTAMPTZ DEFAULT NOW(),
  updated_at      TIMESTAMPTZ DEFAULT NOW()
);

Table: ad_creatives

CREATE TABLE ad_creatives (
  id              UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  product_id      UUID REFERENCES products(id),
  store           TEXT NOT NULL CHECK (store IN ('fgs', 'ftk')),
  ad_type         TEXT NOT NULL CHECK (ad_type IN ('video', 'static')),
  angle           TEXT NOT NULL CHECK (angle IN ('comedy', 'emotional', 'testimonial', 'demo', 'comparison')),
  format          TEXT NOT NULL CHECK (format IN ('tiktok_916', 'meta_11', 'meta_45', 'youtube_169')),
  asset_url       TEXT,
  status          TEXT DEFAULT 'pending_review'
                    CHECK (status IN ('queued', 'generating', 'pending_review',
                                      'approved', 'rejected', 'published', 'paused')),
  diversity_applied BOOLEAN DEFAULT true,
  batch_id        UUID,
  created_at      TIMESTAMPTZ DEFAULT NOW()
);

Table: campaigns

CREATE TABLE campaigns (
  id              UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  store           TEXT NOT NULL CHECK (store IN ('fgs', 'ftk')),
  platform        TEXT NOT NULL CHECK (platform IN ('facebook', 'tiktok', 'google', 'tiktok_shop')),
  manus_campaign_id TEXT,
  ad_creative_id  UUID REFERENCES ad_creatives(id),
  name            TEXT NOT NULL,
  status          TEXT DEFAULT 'draft' CHECK (status IN ('draft', 'active', 'paused', 'ended')),
  daily_budget    NUMERIC(10,2),
  total_spent     NUMERIC(10,2) DEFAULT 0,
  objective       TEXT,
  target_audience JSONB,
  created_at      TIMESTAMPTZ DEFAULT NOW()
);

Table: performance_metrics

CREATE TABLE performance_metrics (
  id              UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  campaign_id     UUID REFERENCES campaigns(id),
  ad_creative_id  UUID REFERENCES ad_creatives(id),
  date            DATE NOT NULL,
  platform        TEXT NOT NULL,
  impressions     INTEGER DEFAULT 0,
  clicks          INTEGER DEFAULT 0,
  ctr             NUMERIC(6,4),
  spend           NUMERIC(10,2) DEFAULT 0,
  cpc             NUMERIC(10,2),
  purchases       INTEGER DEFAULT 0,
  revenue         NUMERIC(10,2) DEFAULT 0,
  roas            NUMERIC(6,3),
  cpm             NUMERIC(10,2),
  video_views     INTEGER,
  video_pct_25    NUMERIC(6,4),
  video_pct_100   NUMERIC(6,4),
  created_at      TIMESTAMPTZ DEFAULT NOW()
);

Table: kb_articles (pgvector)

CREATE TABLE kb_articles (
  id              UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  course_id       TEXT NOT NULL,
  source_file     TEXT,
  module_title    TEXT,
  chunk_index     INTEGER,
  chunk_text      TEXT NOT NULL,
  embedding       vector(1536),      -- pgvector — 1536 dims
  topic_tags      TEXT[],
  search_count    INTEGER DEFAULT 0,
  created_at      TIMESTAMPTZ DEFAULT NOW()
);

CREATE INDEX kb_articles_embedding_idx ON kb_articles
  USING ivfflat (embedding vector_cosine_ops)
  WITH (lists = 100);

08Tool Comparison & Recommendations

ToolCost/MoBatch GenSheets IntegrationVerdict
Arcads.ai$110–220Limited (15–50/mo)NoREPLACE
Blotato$49–99YesNoSKIP
Motion$99–249N/A (analytics only)NoDEFER to Phase 2
Seedance 2.0~$0.05–0.15/videoYes (unlimited)Yes (via platform)PRIMARY ENGINE ✅

In-House Platform Cost Breakdown

ComponentEst. Monthly Cost
Seedance 2.0 API (100 videos)~$10–30
Claude API (copy gen + static ads)~$20–40
Fal.ai Dev (product shots)~$15–30
Nano Banana 2 / Gemini API~$10–20
Vercel hosting~$20
Supabase self-hosted$0 (already running)
TOTAL~$75–140/month
💰 Net Result Build in-house. Cancel Arcads. Save $70–180/month while generating 5–10x more ads.

093-Phase Roadmap

Phase 1: FGS Emergency Fix + Ad Engine MVP (Days 1–14)

Priority: CRITICAL — FGS store is behind schedule
TimelineFocusDeliverables
Day 1–2FGS Emergency RemediationAll products active, Printify synced, first ad live
Day 1–3Supabase SchemaAll 8 tables created, RLS policies set
Day 3–7Google Sheets → Seedance PipelineWorking end-to-end pipeline, first batch of 20 ads
Day 7–10Ad Library UIMobile-friendly review queue, approve/reject flow
Day 10–14Manus.ai IntegrationApproved ads deploy to TikTok/Meta via Manus.ai
Day 10–14GHL CleanupAll existing funnels audited, broken pages fixed
Phase 1 Success Gate20 ads live across platforms, FGS fully operational, Seedance pipeline generating ads from Google Sheets.

Phase 2: Automation + Knowledge Base (Days 15–45)

TimelineFocusDeliverables
Day 15–21Course Ingestion PipelineAll 4 MEGA courses ingested into KB
Day 15–21CRO Agent v1Nightly audit running, morning report in ClickUp
Day 21–28PopeBot UIKB search interface live on /kb
Day 28–35GHL AutomationPost-purchase upsell trigger from Shopify order
Day 35–45TikTok Shop SyncFTK products live on TikTok Shop
Phase 2 Success Gate100+ ads generated in one week, KB answering questions accurately, CRO agent running nightly.

Phase 3: Full Agent + Revenue Optimization (Days 46–90)

TimelineFocusDeliverables
Day 46–55CRO Agent v2Ad angle recommendations based on performance data
Day 55–65Auto-OptimizationAgent can pause underperformers (with opt-in)
Day 65–75Pricing IntelligenceCompetitor price scraping + margin optimization
Day 75–90Scale & TuneHit $10K/month target, optimize every system
Phase 3 Success Gate$10K/month combined revenue, 30 min/day operator time, agent handling 80% of routine decisions.

10Risk Register

RiskLikelihoodImpactMitigation
Seedance 2.0 API instabilityMediumHighKeep Arcads.ai as backup until 30-day validation complete
Supabase self-hosted downtimeLowHighEnable auto-backups; add health check to CRO agent
Manus.ai ad account revokedLowCriticalDocument all manual Manus.ai processes as fallback SOPs
Printify blueprint discontinuedMediumMediumCRO agent monitors inventory, alerts when provider changes
Google Sheets quota exceededLowLowImplement exponential backoff; cache sheet data in Supabase
TikTok Shop approval delaysHighMediumSubmit FTK shop application Day 15, anticipate 7–14 day review
Course content copyright in KBLowMediumKB is internal-only, never exposed publicly

11Appendix: Prompt Template Library

11.1 Full Video Ad Script Generation Prompt

You are an expert direct-response video ad scriptwriter for ecommerce.

PRODUCT: {product_name}
STORE: {store_name} ({store_url})
PRICE: ${price}
OFFER: {offer_cta}
TARGET AUDIENCE: {target_demo}
AD ANGLE: {angle}
DURATION: {duration_seconds} seconds
FORMAT: {format} ({aspect_ratio})

DIVERSITY REQUIREMENT (MANDATORY):
All cast members must be ethnically diverse. Include people of multiple
ethnicities and ages (range 25-65). NEVER use an all-white cast.
This is a non-negotiable creative directive.

Generate:
1. SCRIPT (with timecodes for each scene)
2. STORYBOARD (4-6 scene descriptions)
3. VOICEOVER TEXT (exact words spoken)
4. DIRECTOR NOTES (setting, lighting, energy, camera style)
5. ON-SCREEN TEXT (captions, price reveals, CTA overlays)

Output as structured JSON for API submission to Seedance 2.0.

11.2 Product Description Generation Prompt

Write an SEO-optimized Shopify product description for:

PRODUCT: {product_name}
STORE: {store} (Family Gift Studio | FTK For The Kids)
KEY FEATURES: {features}
PRICE: ${price}
TARGET BUYER: {buyer_persona}

Requirements:
- 150-250 words
- Lead with emotional benefit, not the feature
- Include 2-3 natural keyword phrases for SEO
- End with soft CTA that creates urgency without being pushy
- Tone: warm, genuine, not corporate
- For FGS: gift-giving occasion focus
- For FTK: child development / parent benefit focus
- Diverse, inclusive language — avoid assuming family structure

11.3 GHL Sales Page Copy Prompt

Write high-converting sales page copy for a Go High Level funnel page.

OFFER: {offer_name}
PRICE: ${price}
KEY BENEFIT: {key_benefit}
AUDIENCE: {audience}
GUARANTEE: {guarantee}

Generate:
1. HEADLINE (power word + benefit + curiosity, max 10 words)
2. SUBHEADLINE (who this is for + what changes, max 20 words)
3. LEAD PARAGRAPH (hook — identify the pain, 2-3 sentences)
4. BENEFIT BULLETS (5 bullets, each starting with action verb)
5. WHAT'S INCLUDED (offer stack list)
6. GUARANTEE COPY (1 paragraph, confident, eliminates risk)
7. CTA BUTTON TEXT (3-5 words, urgency-driven)
8. CLOSING LINE (1 sentence, FOMO-based)

Rules:
- No clichés ("game-changer", "revolutionary")
- Specific and concrete — use numbers where possible
- Written in 2nd person (you/your)
- GHL delivery — no Gumroad, no third-party checkout
Document Info Version 1.0 · April 17, 2026 · Owner: Rashida Mendes · Next review: May 17, 2026

SOP: AI-Powered Ad Platform — Standard Operating Procedures

v1.0 📅 April 2026 👤 Rashida Mendes ⏱️ 30 min/day max
Core Principle The CRO agent runs overnight and does the heavy lifting. Your morning job is to review, decide, and approve. Maximum 30 minutes/day.

01Daily Operator Workflow (30 Min/Day Max)

Target time: 30 minutes maximum — mobile-optimized
Best time to run this: 7:00–7:30am daily

Morning Briefing (7:00–7:10am) — 10 minutes

Step 1: Open Dashboard (RevEngine /dashboard)

┌─────────────────────────────────┐ │ GOOD MORNING, RASHIDA │ │ Thursday, April 17 │ ├─────────────────────────────────┤ │ YESTERDAY'S REVENUE │ │ FGS: $XXX | FTK: $XXX │ │ Total: $XXX (↑X% vs last week) │ ├─────────────────────────────────┤ │ 🤖 CRO AGENT REPORT │ │ [3 actions recommended] │ │ [2 alerts requiring attention] │ ├─────────────────────────────────┤ │ ADS PENDING REVIEW: XX │ │ [Review Now →] │ ├─────────────────────────────────┤ │ ACTIVE CAMPAIGNS: XX │ │ Best performing: [Ad Name] │ │ Worst performing: [Ad Name] │ └─────────────────────────────────┘

Step 2: Read CRO Agent Report

Tap "CRO Agent Report." Read the 3 recommended actions formatted as ClickUp tasks — decide: Do Now, Schedule, or Dismiss.

  • "Campaign X CTR below 0.5% — suggest pausing" → Tap Approve to pause via Manus.ai
  • "FGS has 3 products with no active campaign" → Tap to pre-fill Google Sheet
  • "TikTok CPM spiking — audience fatigued" → Tap to start new batch job
  • "GHL funnel page 404 detected" → Tap to view, then fix in GHL

Step 3: Check Revenue Snapshot

  • Note total revenue yesterday (both stores combined)
  • Note best-performing ad (click through to see metrics)
  • Note worst-performing ad (candidate for pause)
  • If daily revenue is $0 for 2+ consecutive days: escalate immediately (see SOP-06)

Ad Review (7:10–7:20am) — 10 minutes

Step 4: Review Pending Ads

Navigate to /ads/library → filter by "pending_review." For each ad:

  1. Watch/view the ad (play video inline on mobile)
  2. Diversity check — ethnically diverse subjects? If all-white: REJECT immediately with note "diversity requirement not met — regenerate"
  3. Quality check — is the hook strong? Does the CTA match the offer?
  4. Approve (green) or Reject (red with reason)
Routing (Automatic)tiktok_916 → TikTok Ads  |  meta_11/meta_45 → Facebook/Instagram  |  youtube_169 → Google Ads

Target: Review minimum 5 ads per morning session.

Task Management (7:20–7:30am) — 10 minutes

Step 5: ClickUp Quick Scan

  1. Mark tasks as "In Progress" that you're starting today
  2. Reassign due dates on anything overdue
  3. Add one new task if you thought of something during ad review

Step 6: New Ad Batch (if needed)

If the ad queue has fewer than 20 pending/approved ads total:

  1. Open Google Sheets → "RevEngine Ad Batch Template"
  2. Add 10–20 rows (products + angles to test)
  3. Platform → /ads/generate → Upload Sheet → Submit
  4. Batch queued. Results ready by next morning.

02SOP-01: Ad Creation

Complete Flow: Product → Brief → Google Sheet → Seedance → Review → Publish

Phase A: Product Brief Preparation

Step A1: Identify Products to Advertise

Pull product list from RevEngine (/stores). Sort by: products with no active campaigns → highest priority, products with recent Printify updates, products in seasonal demand.

Step A2: Choose Angles to Test

For each new product, start with these 3 angles minimum:

  1. Comedy — best for TikTok cold traffic
  2. Emotional — best for Facebook warm/lookalike audiences
  3. Product Demo — best for Google Shopping / YouTube

Step A3: Decide Formats

Platform TargetFormat CodeSizeDuration
TikTok Adstiktok_9169:1615s or 30s
Facebook/Instagram Feedmeta_454:515s or 30s
Facebook/Instagram Squaremeta_111:115s
YouTube Pre-rollyoutube_16916:915s or 30s
Batch Size Guide Minimum viable: 3 products × 3 angles × 2 formats = 18 ads
Efficient weekly: 5 products × 3 angles × 3 formats = 45 ads

Phase B: Google Sheets Batch Setup

Step B2: Fill in Required Columns

ColumnWhat to EnterExample
product_idFrom RevEngine product listshopify_fgs_7823
product_nameFull product nameCustom Grandma Portrait Mug
storefgs or ftk (lowercase)fgs
anglecomedy / emotional / testimonial / demo / comparisoncomedy
formatFormat code from table abovetiktok_916
ad_typevideo or staticvideo
priceSelling price34.99
offer_ctaCurrent offer textBuy 2 Get Free Shipping

Step B3: Validate Sheet

  • No empty required cells (product_id, product_name, store, angle, format, ad_type, price)
  • store column only contains fgs or ftk (exact lowercase)
  • format column uses exact format codes (copy/paste from table)
  • No duplicate rows for exact same product + angle + format combination

Phase C: Submitting the Batch

Batch: fgs-2026-04-17 (45 ads) Progress: ████████░░ 38/45 complete Status: 35 pending review | 3 generating | 4 failed ETA: ~12 minutes

Failed Job Error Reference

  • "Invalid product_id" → Product doesn't exist in Shopify; fix the ID
  • "Seedance API timeout" → Retry (one-click)
  • "Image fetch failed" → Product has no Shopify image; upload one first

Phase D: Review Process

Mobile Review Checklist — VIDEO ads

  • Plays correctly (no glitch in first 3 seconds)
  • Hook is visible and compelling in first 3 seconds
  • Ethnically diverse cast — multiple ethnicities, 25–65 age range
  • Product is clearly featured
  • CTA visible in final 3 seconds
  • No competitor brand names or logos visible
  • Audio quality acceptable (if voiceover present)

Mobile Review Checklist — STATIC ads

  • Text is readable on mobile screen
  • Product image is sharp, not pixelated
  • Price/offer clearly visible
  • CTA button contrasts with background
  • Diverse imagery (if people shown)

Phase E: Publishing via Manus.ai

SettingFGS DefaultFTK Default
Daily budget$10–20 (start small)$10–20
ObjectiveConversionsConversions
BiddingLowest costLowest cost
AudienceBroad (let platform optimize)Parents of kids 0–12
Naming conventionFGS-[ANGLE]-[FORMAT]-[YYYYMMDD]FTK-[ANGLE]-[FORMAT]-[YYYYMMDD]

Phase F: Performance Monitoring Triggers

MetricThresholdAction
CTR<0.3% after 500+ impressionsPause ad — creative not resonating
ROAS<1.0 after $50 spendPause campaign immediately
CPM>$30Try new audience or pause
Video completion rate<10%Hook is failing; test new hook

03SOP-02: Store Management (Shopify + Printify)

Adding a New Product (Full Workflow)

Time required: 20–30 minutes per product

Step 3: Set Variants & Pricing

Pricing Formula Selling Price = (Printify Base Cost × 2.8) + $3.00 shipping buffer — Round to nearest $0.99

Example: Mug base $10.50 → $10.50 × 2.8 = $29.40 + $3 = $32.40 → Set price: $34.99

Collection Structures

FGS Collection Structure

Gift By Recipient:
  └── For Grandma / For Mom / For Dad / For Grandpa
  └── For Kids / For Couples / For Teachers / For Best Friends

Gift By Occasion:
  └── Mother's Day / Father's Day / Birthday / Christmas
  └── Valentine's Day / Just Because / New Baby

Product Type:
  └── Mugs & Drinkware / Wall Art & Prints / Apparel / Accessories

FTK Collection Structure

By Age:
  └── Baby (0-2) / Toddler (3-5) / Early Learner (6-8) / Tween (9-12)

By Product Type:
  └── Clothing / Educational Toys / Books & Learning / Room Decor / Activity Sets
⚠️ Collection Rule Each product should be in exactly 2–3 collections. Having a product in 8+ collections dilutes collection pages.

04SOP-03: GHL Offer Creation

⛔ Critical Rule GHL is the ONLY checkout platform. No Gumroad. No Stripe direct. No Gumroad "just this once." All digital offers, upsells, and courses sell through GHL exclusively.

Step-by-Step New Digital Offer

Step 1: Define the Offer in RevEngine

Fill in offer name (benefit-first), price (use psychology: $97, $197, $297), offer type, key benefit, target audience, and guarantee.

Step 2: Claude Generates Sales Copy (Automatic)

Claude generates 2 headline options (A/B test), subheadline, lead paragraph, 5–7 benefit bullets, offer stack, guarantee copy, 2 CTA options, and closing urgency line. The AI gets 85% there — you polish the last 15%.

Step 5: Create Post-Purchase Automation (GHL Workflow)

  1. Tag contact: fgs_customer or ftk_customer
  2. Send confirmation email (branded template)
  3. If digital: Send access/download email immediately
  4. Wait 3 days → Send follow-up: "Did you love it?"
  5. Wait 7 days → Send upsell email (related product)
  6. Tag for retargeting audience in Facebook Ads

Step 6: Test Before Going Live

  • Preview page on mobile (iPhone) — loads in <3 seconds?
  • All images load correctly
  • Checkout button works (place $0 test order or GHL test mode)
  • Confirmation email arrives within 5 minutes
  • Thank you page redirect works
  • Pixel fires correctly (check Facebook Events Manager)

GHL Monthly Maintenance

  • Any funnel with 0 sales in 30 days → archive or rewrite copy
  • Any funnel with >5% checkout abandonment → add urgency element / simplify form
  • Any automation with broken email links → fix immediately
  • Price test: Try $10 increase on top-selling offers

05SOP-04: AI Agent (CRO) Monitoring

Agent Schedule

  • Nightly audit: 2:00am ET every day
  • Morning report: Ready by 6:00am ET in ClickUp
  • Real-time alerts: Immediately when thresholds exceeded

Reading the Morning Report (5 Sections)

Section 2: Ad Performance Flags

⚠️ ATTENTION NEEDED: - Campaign FGS-COMEDY-TIKTOK-0415: CTR 0.2% (below 0.5% threshold) Recommendation: Pause + request new creative [Pause campaign] [Create new batch] ✅ TOP PERFORMER: - Campaign FGS-EMOTIONAL-META45-0412: ROAS 3.8x Recommendation: Increase budget by 50% [Increase budget]

Section 4: GHL Funnel Status

Active Funnels: 4 ✅ Family Portrait Bundle — 12 visits/day, 2 sales ✅ Custom Mug Gift Set — 8 visits/day, 1 sale ⚠️ Kids Art Bundle — 0 visits in 48 hours (no active ad?) ✅ FTK Learning Kit — 3 visits/day, 0 sales (check copy/price)

Configuring CRO Agent Thresholds

ThresholdDefaultNotes
CTR alert (below)0.5%Adjust based on your norms
ROAS alert (below)1.5xLower if testing phase
CPM alert (above)$25Higher for Q4/holidays
Daily spend spike150% of normalLower for tighter control
Funnel dead (0 visits)48 hoursKeep at 48h
ClickUp overdue escalation3 days past dueKeep at 3 days

06SOP-05: Content Calendar & Posting Cadence

Platform Strategy Overview

PlatformStoreContent TypeFrequencyGoal
TikTok AdsFGS + FTKVideo (Seedance 2.0)3–5 creatives/weekCold traffic acquisition
Meta Ads (FB + IG)FGSVideo + Static5–8 creatives/weekRetargeting + lookalike
Meta AdsFTKVideo + Static3–5 creatives/weekRetargeting + lookalike
TikTok OrganicFTKBehind-scenes, unboxing1–2 posts/weekOrganic + Shop integration
Google AdsFGSStatic + Shopping2–3 creatives/weekHigh-intent search
GHL EmailFGS + FTKPromotional + nurture2 emails/week per listRepeat purchase

Weekly Content Calendar

DayMorning TaskAfternoon Task
MondayReview weekend performance (CRO report)Start new Google Sheet batch
TuesdaySubmit batch to platform (generate ads)GHL email draft for week
WednesdayAd review session (20–30 mins)Approve + submit to Manus.ai
ThursdayCheck new campaigns launched WednesdayTikTok organic post (FTK)
FridayWeekly performance snapshotCRO agent: request weekly strategy brief
SaturdayMinimal — check revenue onlyIf Q4/holiday: launch weekend sale
SundayRead CRO weekly strategy briefPlan next week's ad batch

Monthly Content Themes (FGS)

MonthPrimary ThemeSecondary Theme
January"New Year, New You" giftsAppreciation gifts
FebruaryValentine's DayGalentine's / Friendship
AprilEaster / SpringTeacher Appreciation prep
MayMother's Day (PEAK)Teacher Appreciation
JuneFather's DayGraduation gifts
NovemberBlack Friday / Cyber MondayEarly Christmas gifting
DecemberChristmas (PEAK)Last-minute gifts (Dec 18–22)
📚 Key Insight from IRNT0QrS (Sam's Course) Start holiday ad campaigns 6–8 weeks before the peak date. For Mother's Day, ads should launch in mid-March. For Christmas, launch in mid-October. Waiting until 2 weeks before means competing at 3–5× higher CPM.

Ad Creative Rotation Schedule

  • Retirement rule: Any ad running 21+ days with declining CTR (>20% week-over-week drop) should be retired and replaced
  • TikTok: Refresh creatives every 2–3 weeks
  • Facebook/Instagram: Refresh every 3–4 weeks
  • Google: Refresh every 4–6 weeks (intent-based, less fatigue-sensitive)
  • Evergreen ads: Identify 3–5 best-performing ads. Never retire them — rotate back after 4-week breaks

07SOP-06: Emergency Procedures

Emergency A: Family Gift Studio Down / $0 Sales for 2+ Days

Step 1: Diagnose (15 minutes)

□ Is the Shopify store loading? → shopify.com/admin (FGS)
  If No: Check Shopify status page + contact support

□ Are all products active?
  RevEngine → /stores/fgs → filter by Status=Draft
  If products are in Draft: Activate immediately

□ Is the Facebook Pixel firing?
  Facebook Events Manager → check last event
  If no events: Pixel may have broken

□ Are active campaigns spending?
  Manus.ai → check campaign status
  If campaigns paused: Why? Budget depleted? Account issue?

□ Is the GHL checkout working?
  Manually visit GHL funnel URL on your phone

□ Any Printify issues?
  Printify dashboard → any supplier alerts?

Most Common Causes of $0 Days

  1. Ad campaign paused/out of budget → Add budget in Manus.ai
  2. Facebook Ad account flagged → Check Ads Manager for policy violations
  3. Shopify products set to Draft → Activate in bulk via RevEngine
  4. Pixel broken → Reinstall via Shopify app or theme code

Emergency B: Manus.ai Account Issue

  1. Log into Manus.ai directly → check for notifications/warnings
  2. If Facebook Ads issue: Log into Facebook Business Manager directly
  3. Backup plan: RevEngine exports ads in correct format for manual upload
  4. Create ClickUp task: "Manus.ai issue — manual ad management required"

Emergency C: Supabase Database Down

  1. Check supabase.insightprofit.live → admin panel
  2. Platform will gracefully degrade — read-only cached data still accessible
  3. Most write operations queue and retry automatically
  4. If extended outage (>4 hours): contact server host and restore from latest backup

Emergency D: Seedance 2.0 API Not Responding

  1. Check ByteDance API status page for Seedance 2.0
  2. Existing approved ads not affected — only new generation paused
  3. Temporary fallback: use Claude.ai/design to create static ads
  4. If outage >24 hours and time-sensitive campaigns: temporarily reactivate Arcads.ai (keep credentials in 1Password)

08SOP-07: Weekly & Monthly Rituals

Weekly Ritual (Every Friday — 45 Minutes)

15 min: Performance Review

  1. RevEngine → /dashboard → Weekly Report
  2. Note: Which 3 ads performed best? (Save as reference for next batch)
  3. Note: Which store had better ROAS this week?
  4. Note: What was the combined 7-day revenue?

15 min: KB Check-in

PopeBot → ask 2–3 strategic questions relevant to current challenges:

  • "What does Sam's course say about scaling past $200/day ad spend?"
  • "What's the recommended product research method from AZ9DUY6Z?"
  • "How does RAF3RQyK suggest structuring collections for gift stores?"

15 min: Next Week Planning

  1. Decide which 3–5 products to feature next week
  2. Decide which occasions/themes to focus on
  3. Rough out next Google Sheet batch
  4. Update ClickUp priorities for next week

Monthly Ritual (Last Friday — 90 Minutes)

  • Revenue Analysis (20 min): Compare month-over-month, identify best-performing store and ad angle
  • Product Audit (20 min): Archive 0-sale products, scale variants of breakout products
  • Tool & Cost Audit (15 min): Compare API costs to revenue; re-evaluate Arcads.ai monthly until confirmed cancelled
  • KB Update (15 min): Tag stale KB articles as "needs_update"
  • Next Month Planning (20 min): Major gift occasions, campaign prep timeline, set revenue target

09Quick Reference

Platform URLs

PlatformURLNotes
RevEngine Dashboard[your-vercel-url]/dashboardBookmark on mobile home screen
Shopify FGSfamilygiftstudio.myshopify.com/admin
Shopify FTKftkforthekids.myshopify.com/admin
Printifyprintify.comBoth shops from one login
Go High Levelapp.gohighlevel.com
Manus.aimanus.aiAd account management
ClickUpapp.clickup.com
Supabasesupabase.insightprofit.liveSelf-hosted admin panel
Vercelvercel.com/rashida-mendes-projectsHosting dashboard
GitHubgithub.com/rtmendes/viral-comedy-ad-generatorSource code

API Keys Location

⛔ Never store API keys in: Google Sheets · ClickUp comments · Claude.ai conversations · Email or messaging apps

All API keys → Vercel Environment Variables (rashida-mendes-projects → RevEngine project → Settings → Environment Variables)

Key NameService
SHOPIFY_FGS_API_KEY + SHOPIFY_FGS_API_SECRETShopify FGS
SHOPIFY_FTK_API_KEY + SHOPIFY_FTK_API_SECRETShopify FTK
PRINTIFY_API_TOKENPrintify
GHL_CLIENT_ID + GHL_CLIENT_SECRETGo High Level
SEEDANCE_API_KEYSeedance 2.0
ANTHROPIC_API_KEYClaude API
FAL_KEY + FAL_KEY_SECRETFal.ai Dev
NANO_BANANA_API_KEYGemini 3.1 Flash
GOOGLE_SHEETS_SERVICE_ACCOUNT_JSONGoogle Sheets API
CLICKUP_PERSONAL_TOKENClickUp
SUPABASE_URL + SUPABASE_SERVICE_ROLE_KEYSupabase
MANUS_API_KEYManus.ai

Escalation Contacts

IssueContactHow
Shopify store downShopify SupportLive chat in admin
Printify order issuePrintify Supportsupport.printify.com
GHL billing/accountGHL SupportLive chat in app
Manus.ai issueManus.ai supportIn-app support
Vercel deployment failureVercel Supportvercel.com/support
Facebook Ads accountMeta Business Supportbusiness.facebook.com

Diversity Checklist

AD DIVERSITY REVIEW — Run this for every ad
□ Are people shown in this ad?
  If No → diversity check N/A (pass)
  If Yes → continue below

□ Is the cast exclusively one ethnicity?
  If Yes → REJECT — "Diversity requirement not met"
  If No → continue

□ Is there a reasonable age range shown (not exclusively 20-somethings)?
  If No → note for improvement but don't reject unless severe

□ Are the people shown in natural, non-stereotyped situations?
  If No → REJECT — "Stereotyped representation"

□ Does the casting reflect who actually buys gifts?
  (Parents, grandparents, adult children — ages 25-65)
  If No → note for improvement

PASS → Approve the ad
FAIL on any REJECT item → Reject with specific reason

Emergency Contact Card

REVENGINE EMERGENCY PROCEDURES

Store down + $0 sales:
→ Check: Shopify status / Campaigns paused / Pixel broken
→ SOP-06 Section A

Manus.ai account issue:
→ Log into Facebook Business Manager directly
→ Manual ad upload fallback
→ SOP-06 Section B

Supabase down:
→ Platform degrades gracefully (read-only)
→ Contact server host
→ SOP-06 Section C

Seedance API down:
→ Pause batch jobs
→ Use Claude static ads as fallback
→ Reactivate Arcads.ai if >24h outage
→ SOP-06 Section D
Document Info SOP Version 1.0 · April 17, 2026 · Owner: Rashida Mendes · Review cycle: Monthly (last Friday) · Next review: May 30, 2026