From e9acff76c57ceaeb997cee8ec6e4637d9e11bf8e Mon Sep 17 00:00:00 2001 From: DJP Date: Fri, 14 Nov 2025 14:22:05 -0500 Subject: [PATCH] =?UTF-8?q?Add=20comprehensive=20A1=E2=86=92A4=20workflow?= =?UTF-8?q?=20diagram=20with=20A5-A6=20rejection=20cycle=20at=20top?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds master flowchart at document start showing complete workflow from campaign creation through approval, including legal/compliance rejection and rework cycles. Master Workflow Diagram Features: 7 Phases Visualized: 1. Campaign Creation (A1 setup) 2. A1→A2 Master Download (automated every 5 min) 3. Agency Localization + CreativeX Scoring 4. A2→A3 Derivative Upload (automated) 5. Legal/Compliance/Brand Approval 6. A5→A6 Rejection Download (automated) 7. Agency Rework + Re-upload Rejection Cycle Details: - Legal reviewer adds compliance comments - IA&CC reviewer adds brand guideline feedback - General approver adds creative feedback - All comments sent to agency in single email - Agency fixes issues - Re-scores with CreativeX (mandatory) - Re-uploads with SAME tracking ID but NEW job number - Re-enters A2→A3 flow (can repeat multiple times) Color Coding: 🟣 Purple - CreativeX scoring (CRITICAL, highlighted twice) 🔵 Blue - Tracking IDs (critical links) 🔴 Red - Rejection path and comments 🟢 Green - Success/completion 🟠 Orange - Rework loop warnings Critical Requirements Called Out: 1. "🔴 CRITICAL: Submit EVERY derivative to CreativeX" - 200 derivatives = 200 analyses required - Emphasized in agency phase 2. "🔴 Re-submit to CreativeX" - MUST get new score for fixed version - Emphasized in rework phase 3. Legal/IA&CC/Approver comment flow - Shows 3 different reviewer types - All feedback consolidated in email 4. Tracking ID reuse - Blue highlighting shows where tracking IDs critical - Same ID used throughout rework cycles Example Shown: - Original: 6666_NUT_SUMMER_OLV_30S_16x9_DE_de_pOiJ9s.mp4 - Rework: 7777_NUT_SUMMER_OLV_30S_16x9_DE_de_pOiJ9s.mp4 ↑ New job number, SAME tracking ID ↑ Decision Points Visualized: - All assets successful? (A1→A2) - Score found in database? (A2→A3) - Approved? (A3 review) - Loops back if rejected Placement: - At very top of document (lines 11-136) - Before Table of Contents - First thing users see - Sets context for entire guide Impact: Users immediately see complete workflow including rejection paths and understand CreativeX is required at TWO points: initial upload AND rework. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Python-Version/COMPLETE_WORKFLOW_GUIDE.md | 128 ++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/Python-Version/COMPLETE_WORKFLOW_GUIDE.md b/Python-Version/COMPLETE_WORKFLOW_GUIDE.md index adecac3..f60474d 100644 --- a/Python-Version/COMPLETE_WORKFLOW_GUIDE.md +++ b/Python-Version/COMPLETE_WORKFLOW_GUIDE.md @@ -8,6 +8,134 @@ --- +## Complete Workflow Overview: A1 → A4 (with A5-A6 Rejection Cycle) + +```mermaid +flowchart TB + subgraph Creation["PHASE 1: Campaign Creation"] + A1_START[Campaign Manager creates campaign in DAM] --> A1_UPLOAD[Creative team uploads master assets] + A1_UPLOAD --> A1_STATUS[Set campaign status to A1] + end + + subgraph A1toA2["PHASE 2: A1→A2 Master Download (AUTOMATED - Every 5 min)"] + A1_STATUS -->|Script detects A1 campaign| A1_DETECT[a1_to_a2_download.py] + A1_DETECT --> A1_DOWNLOAD[Download all master assets from DAM] + A1_DOWNLOAD --> A1_TRACKING[Generate unique tracking IDs
pOiJ9s, a7K9mP, bvSGyd] + A1_TRACKING --> A1_BOX[Upload to Box with tracking IDs
nutella_hero_pOiJ9s.mp4] + A1_BOX --> A1_DB[Store in database with full metadata] + A1_DB --> A1_CX{CreativeX in
master metadata?} + A1_CX -->|Yes| A1_CX_STORE[Store master score
status='master-cx-score'] + A1_CX -->|No| A1_CX_SKIP[Log: No CreativeX normal] + A1_CX_STORE --> A1_CHECK{All assets
successful?} + A1_CX_SKIP --> A1_CHECK + A1_CHECK -->|Yes| A1_UPDATE[Update DAM status A1 → A2] + A1_CHECK -->|No| A1_RETRY[Retry failed on next run] + A1_UPDATE --> A1_EMAIL[Email: Masters ready for localization] + A1_RETRY -.->|5 min later| A1_DETECT + end + + subgraph Agency["PHASE 3: Agency Localization + CreativeX Scoring"] + A1_EMAIL --> AG_RECEIVE[Agency receives Box URLs + tracking IDs] + AG_RECEIVE --> AG_DOWNLOAD[Download masters from Box] + AG_DOWNLOAD --> AG_CREATE[Create localized versions
DE, FR, IT versions + aspect ratios] + AG_CREATE --> AG_CREATIVEX[🔴 CRITICAL: Submit EVERY derivative to CreativeX
200 derivatives = 200 analyses required] + AG_CREATIVEX --> AG_PDF[Receive PDF scorecard for EACH asset] + AG_PDF --> AG_PDF_UP[Upload ALL PDFs to Box 350605024645] + AG_PDF_UP --> AG_SCORE_RUN[Run creativex_scoring_storing.py] + AG_SCORE_RUN --> AG_SCORE_DB[Scores stored in database
status='active'] + AG_SCORE_DB --> AG_VERIFY[Verify: derivative count = score count ✅] + AG_VERIFY --> AG_NAMING[Use Naming Tool for EACH derivative
Copy exact filename] + AG_NAMING --> AG_UPLOAD[Upload to Box A2→A3 folder
With job number + tracking ID] + end + + subgraph A2toA3["PHASE 4: A2→A3 Derivative Upload (AUTOMATED - Every 5 min)"] + AG_UPLOAD -->|Script detects files| A2_DETECT[a2_to_a3_upload_polling.py] + A2_DETECT --> A2_PARSE[Parse filename: Extract tracking ID] + A2_PARSE --> A2_LOOKUP[Load master metadata from database] + A2_LOOKUP --> A2_CX_LOOKUP[Lookup CreativeX score by filename] + A2_CX_LOOKUP --> A2_CX_CHECK{Score found?} + A2_CX_CHECK -->|Yes| A2_CX_USE[Score: 71, URL: actual] + A2_CX_CHECK -->|No| A2_CX_DEFAULT[⚠️ Score: 0, URL: placeholder
Email warning sent] + A2_CX_USE --> A2_BUILD[Build asset representation] + A2_CX_DEFAULT --> A2_BUILD + A2_BUILD --> A2_OVERRIDE[Override from filename:
Language, Asset Type, Description] + A2_OVERRIDE --> A2_MAP[Map asset type: EHI → heroimage] + A2_MAP --> A2_STRIP[Strip to clean filename] + A2_STRIP --> A2_UPLOAD[Upload to DAM Final Assets] + A2_UPLOAD --> A2_DELETE[Delete from Box] + A2_DELETE --> A2_EMAIL[Email: Upload successful] + A2_EMAIL --> A2_STATUS[Campaign status: A3] + end + + subgraph Approval["PHASE 5: Approval Process"] + A2_STATUS --> A3_REVIEW[Legal/Compliance/Brand review in DAM] + A3_REVIEW --> A3_CHECK[Check quality, compliance, guidelines] + A3_CHECK --> A3_DECISION{Approved?} + end + + subgraph Success["✅ APPROVED PATH"] + A3_DECISION -->|✅ All checks passed| A4_STATUS[Status updated to A4] + A4_STATUS --> A4_WEBHOOK[Webhook sent to Make.com] + A4_WEBHOOK --> A4_LIVE[Assets go LIVE] + A4_LIVE --> A4_DONE[🎉 Campaign Complete - Assets in market] + end + + subgraph Rejection["❌ REJECTED PATH - Rework Required"] + A3_DECISION -->|❌ Issues found| A5_MARK[Approver marks specific assets:
ECOMMERCE STATUS = NOT APPROVED] + A5_MARK --> A5_LEGAL[Legal reviewer adds comments:
Missing copyright, compliance issues] + A5_LEGAL --> A5_IACC[IA&CC reviewer adds comments:
Brand guideline violations] + A5_IACC --> A5_APPROVER[General approver adds comments:
Creative feedback] + A5_APPROVER --> A5_STATUS[Campaign status → A5] + end + + subgraph A5toA6["PHASE 6: A5→A6 Rejection Download (AUTOMATED)"] + A5_STATUS -->|Script detects A5| A5_DETECT[a5_to_a6_download.py] + A5_DETECT --> A5_FILTER[🔍 Filter: Download ONLY
NOT APPROVED assets] + A5_FILTER --> A5_APPROVED[✅ APPROVED assets: Skipped
Not re-downloaded] + A5_FILTER --> A5_TRACKING[Lookup EXISTING tracking ID
REUSE: pOiJ9s] + A5_TRACKING --> A5_DOWNLOAD[Download rejected assets from DAM] + A5_DOWNLOAD --> A5_BOX_UP[Upload to Box A5→A6 folder
Separate folder from A1→A2] + A5_BOX_UP --> A5_EMAIL_OUT[Email with ALL rejection comments:
Legal + IA&CC + Approver feedback] + A5_EMAIL_OUT --> A5_AGENCY[Agency receives detailed feedback] + end + + subgraph Rework["PHASE 7: Agency Fixes + Re-upload"] + A5_AGENCY --> RW_DOWNLOAD[Download rejected assets from Box] + RW_DOWNLOAD --> RW_REVIEW[Review ALL rejection comments] + RW_REVIEW --> RW_FIX[Fix issues based on feedback] + RW_FIX --> RW_CREATIVEX[🔴 Re-submit to CreativeX
MUST get new score for fixed version] + RW_CREATIVEX --> RW_PDF[Upload new PDF with updated score] + RW_PDF --> RW_SCORE_RUN[Run creativex_scoring_storing.py] + RW_SCORE_RUN --> RW_DB[Database updated with new score
Old score marked 'superseded'] + RW_DB --> RW_NAMING[Use Naming Tool:
NEW job number + SAME tracking ID] + RW_NAMING --> RW_EXAMPLE[Example: 7777_NUT_SUMMER_OLV_30S_16x9_DE_de_pOiJ9s.mp4
↑ New job | Same tracking ↑] + RW_EXAMPLE --> RW_UPLOAD_A2[Upload to A2→A3 folder] + RW_UPLOAD_A2 -.->|Re-enters A2→A3 automation| A2_DETECT + end + + subgraph ReworkLoop["🔄 Rework Can Repeat Multiple Times"] + RW_NOTE1[Rejected again? → Back to A5] -.-> A5_STATUS + RW_NOTE2[Assets can go through A5→A6
cycle 2, 3, 4+ times until approved] + end + + style A4_DONE fill:#4CAF50,stroke:#2E7D32,stroke-width:4px,color:#FFF + style A5_MARK fill:#EF5350,stroke:#C62828,stroke-width:3px + style RW_CREATIVEX fill:#9C27B0,stroke:#6A1B9A,stroke-width:3px + style AG_CREATIVEX fill:#9C27B0,stroke:#6A1B9A,stroke-width:3px + style A1_TRACKING fill:#2196F3,stroke:#1565C0,stroke-width:2px + style A5_TRACKING fill:#2196F3,stroke:#1565C0,stroke-width:2px + style RW_NOTE1 fill:#FFE082,stroke:#F57C00 + style RW_NOTE2 fill:#FFE082,stroke:#F57C00 +``` + +**🔴 CRITICAL REQUIREMENTS HIGHLIGHTED:** +1. **CreativeX Scoring (Purple):** Every derivative MUST be scored individually +2. **Tracking IDs (Blue):** Critical link between master and derivatives, reused in rework +3. **Rejection Comments (Red):** Legal, IA&CC, and approver feedback guide fixes +4. **Rework Loop (Orange):** Can repeat until approved - same tracking ID maintained + +--- + ## Table of Contents 1. [Executive Overview](#executive-overview)