# Content Pipeline Workflow **Last Verified:** December 25, 2025 --- ## Overview The IGNY8 content pipeline transforms raw keywords into published WordPress articles through a multi-stage workflow. This can run manually (step-by-step) or automatically via the Automation module. --- ## Pipeline Stages ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ CONTENT PIPELINE │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ KEYWORDS │───►│ CLUSTERS │───►│ IDEAS │───►│ TASKS │ │ │ │ Stage 1 │ │ Stage 2 │ │ Stage 3 │ │ Stage 4 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ CONTENT │───►│ IMAGES │───►│ REVIEW │───►│ PUBLISH │ │ │ │ Stage 5 │ │ Stage 6 │ │ Stage 7 │ │ Stage 8 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` --- ## Stage 1: Keywords **Module:** Planner **Status Values:** `pending`, `clustered`, `used`, `archived` ### Input - Seed keywords (manually added or from SEO tools) - Optional: search volume, difficulty, CPC data ### Process 1. User adds keywords via UI or bulk import 2. Keywords validated and deduplicated 3. Assigned to site + sector ### Output - Keyword records in `Keyword` model - Status: `pending` ### Credit Usage - None (free operation) --- ## Stage 2: Clustering **Module:** Planner **AI Function:** `AutoClusterKeywords` ### Input - Selected pending keywords (2-100) ### Process 1. AI analyzes semantic relationships 2. Groups keywords by topic/intent 3. Creates cluster with name + description ### Output - `Cluster` records created - Keywords linked to clusters - Keyword status → `clustered` ### Credit Usage - 1 idea credit per clustering operation --- ## Stage 3: Ideas **Module:** Planner **AI Function:** `GenerateContentIdeas` ### Input - Cluster with 2+ keywords ### Process 1. AI generates content idea titles 2. Creates brief description for each 3. Suggests primary + secondary keywords ### Output - `ContentIdea` records created - Status: `pending` ### Credit Usage - 1 idea credit per idea generated --- ## Stage 4: Tasks **Module:** Writer **Status Values:** `pending`, `in_progress`, `completed`, `cancelled` ### Input - Selected content ideas ### Process 1. Ideas converted to tasks 2. Task gets content brief + keywords 3. Optional: set due date, assign user ### Output - `Task` records created - Status: `pending` - Ideas status → `used` ### Credit Usage - None (free operation) --- ## Stage 5: Content Generation **Module:** Writer **AI Function:** `GenerateContent` ### Input - Task with title + keywords + brief ### Process 1. AI generates full article content 2. Creates structured HTML output 3. Adds meta title + description ### Output - `Content` record created - Full HTML body - SEO metadata - Task status → `completed` ### Credit Usage - 1 content credit per generation --- ## Stage 6: Image Generation **Module:** Writer **AI Function:** `GenerateImages` ### Input - Content record - Number of images (default: 1-3) ### Process 1. AI analyzes content for image prompts 2. Generates images via DALL-E/Runware 3. Creates thumbnail + full versions ### Output - `ContentImage` records created - Image URLs + alt text - Featured image assigned ### Credit Usage - 1 image credit per image generated --- ## Stage 7: Review **Module:** Writer **Status Values:** `draft`, `review`, `approved`, `published` ### Input - Generated content + images ### Process 1. Content displayed in rich editor 2. User reviews + edits if needed 3. User approves for publishing ### Output - Content status → `approved` - Any manual edits saved ### Credit Usage - None (free operation) - Regeneration costs additional credits --- ## Stage 8: Publishing **Module:** Publisher **Integration:** WordPress REST API ### Input - Approved content - WordPress integration credentials ### Process 1. Content formatted for WordPress 2. Images uploaded to WP media 3. Post created with categories/tags 4. Status set to draft/published ### Output - `PublishingRecord` created - WordPress post ID stored - Content status → `published` ### Credit Usage - None (free operation) --- ## Automation Mode When running via Automation module: 1. **Configuration** - Set limits per stage 2. **Execution** - Pipeline runs automatically 3. **Pacing** - Configurable delays between operations 4. **Monitoring** - Real-time status updates ### Automation Config Options ``` Stage Limits: - clustering_limit: Max keywords to cluster - ideas_limit: Max ideas to generate - content_limit: Max content to generate - image_limit: Max images to generate - publish_limit: Max content to publish Timing: - delay_between_operations: Seconds between API calls - max_runtime: Maximum run duration Behavior: - auto_approve: Skip review stage - auto_publish: Publish immediately - stop_on_error: Halt pipeline on failure ``` --- ## Data Flow Diagram ``` Seed Keywords │ ▼ ┌─────────────────┐ │ Keyword │ status: pending │ Model │ belongs_to: site, sector └────────┬────────┘ │ AI: AutoCluster ▼ ┌─────────────────┐ │ Cluster │ keywords: [...] │ Model │ belongs_to: site, sector └────────┬────────┘ │ AI: GenerateIdeas ▼ ┌─────────────────┐ │ ContentIdea │ primary_keyword, secondaries │ Model │ cluster_id, status └────────┬────────┘ │ Convert to Task ▼ ┌─────────────────┐ │ Task │ idea_id, brief │ Model │ assigned_to, status └────────┬────────┘ │ AI: GenerateContent ▼ ┌─────────────────┐ │ Content │ task_id, body, meta │ Model │ status: draft └────────┬────────┘ │ AI: GenerateImages ▼ ┌─────────────────┐ │ ContentImage │ content_id, url │ Model │ alt_text, is_featured └────────┬────────┘ │ User Review ▼ ┌─────────────────┐ │ Content │ status: approved │ (updated) │ └────────┬────────┘ │ WordPress API ▼ ┌─────────────────┐ │PublishingRecord │ content_id, wp_post_id │ Model │ status, published_at └─────────────────┘ ``` --- ## Error Handling | Stage | Common Errors | Recovery | |-------|---------------|----------| | Clustering | API timeout | Retry with smaller batch | | Ideas | API rate limit | Wait and retry | | Content | Insufficient credits | Add credits, retry | | Images | Image API failure | Skip images, continue | | Publish | WordPress auth fail | Reauth integration | --- ## Monitoring ### Pipeline Stats (Dashboard) - Keywords pending clustering - Ideas pending task creation - Tasks pending generation - Content pending review - Content pending publish ### Automation Logs - Run ID + timestamps - Stage + item processed - Success/failure status - Credit deductions - Error messages