AI Creative QA

Set a field in Asana, get AI-reviewed comments back on the task. Catches spelling errors, wrong offers, and brief mismatches before human QA.

3
Projects Monitored
<60s
Per File Review
Auto
Re-reviewed Files Skipped
0
Copy-Paste Needed

How to Trigger AI Review

Three simple steps—no technical knowledge needed.

☝ Important: Always change the Task Status on the parent task only.

The system automatically scans all subtasks and their attachments. You never need to trigger on individual subtasks—just set the status on the main task and everything gets reviewed.

1

Designer Uploads Work

The designer uploads their deliverables to the task or subtask in Asana, as usual.

2

Set Task Status on Parent Task

On the parent task, change the Task Status field to "AI REVIEW".

3

Review Results

AI posts detailed comments on each file within minutes. The Task Status is automatically updated based on the results.

What Happens After Review

✔ All Files Pass

Task Status is automatically set to "Ready for Internal QA". The work is ready for human review.

✘ Any File Has Issues

Task Status is automatically set to "Needs Revisions". Each issue is posted as a comment on the task for the designer to address.

After the designer fixes the issues and uploads new files, simply set Task Status back to "AI REVIEW" again. The system will only review the new files—previously reviewed files are skipped automatically.

How It Works

When you change the Task Status field, a webhook triggers the automated pipeline.

flowchart LR
    A["Task Status changed\nto AI REVIEW"] --> B["Webhook fires"]
    B --> C["Worker identifies\ndeliverables vs references"]
    C --> D["Fan-out: 1 message\nper file"]
    D --> E["Tier 1: Fast Scan\n(spelling, offers, brief)"]
    E -->|Issues found\n+ small batch| F["Tier 2: Deep Analysis\n(cross-ref comments,\nlayout, brand)"]
    E -->|All clear| H["PASS comment\nposted to task"]
    F -->|Fixable issues| G["Tier 3: AI Fix\n(suggested correction\nimage)"]
    F --> I["FAIL comment\nwith details"]
    G --> I
    I --> J["Task Status\nupdated"]
    H --> J

    style A fill:#e2a04a,color:#1a1d27,stroke:none
    style E fill:#fdcb6e,color:#333,stroke:none
    style F fill:#e17055,color:#fff,stroke:none
    style G fill:#00b894,color:#fff,stroke:none
    style H fill:#00b894,color:#fff,stroke:none
    style I fill:#ff6b6b,color:#fff,stroke:none
    style J fill:#e2a04a,color:#1a1d27,stroke:none
    

The 3-Tier AI Pipeline

TierModelPurposeWhen It Runs
Tier 1: Fast Scan Gemini Flash Lite OCR text extraction, spell-check, offer verification, brief keyword matching Every file, always
Tier 2: Deep Review Gemini Pro Cross-references full comment history, verifies Tier 1 findings, checks layout and brand consistency Only when Tier 1 flags issues (small batches of 1-3 files)
Tier 3: AI Fix Gemini Flash Image Generates a suggested correction image showing what the fix might look like Only for fixable issues (spelling, wrong text) on small batches

Smart Reference Detection

The system automatically distinguishes client-provided references (logos, spec sheets, examples uploaded when the task was created) from designer deliverables (work uploaded days later). References are used for context but never flagged for errors.

Detection method: Any file attached within 60 seconds of task creation is classified as a reference. Everything uploaded later is treated as a deliverable to review.

💬 What Comments Look Like in Asana

Here's exactly what gets posted to your task. File names are clickable links that open the file directly.

When a File Passes

AI Creative QA — PASSED
• ✅ All visible text checked for spelling errors.
• ✅ Client name "Franklin Orthodontics" is correct.
• ✅ No placeholder text found.
• ✅ Tagline and contact information present and verified.

When Issues Are Found

AI Creative QA — 2 ISSUES FOUND
📄 File 1 of 8: Franklin Ortho_Sample Fee Estimate_BG.pdf  (from parent task)
• 🔴 CRITICAL: Treatment description contains "(copy) (copy)" artifact text that should be removed.
• 🟡 WARNING: Typo in Additional Details: "there is also am additional" should be "an additional."
• ✅ All other text appears to be spelled correctly.
• ✅ Required elements present.

Batch Summary (posted after all files are reviewed)

AI Creative QA — Review Complete
📊 8 files reviewed
❌ Issues were found in one or more files above.
Task Status → Needs Revisions

🔍 Real Examples: What It Catches

These are real results from actual creative tasks in our Asana projects.

Caught leftover rebranding artifacts and typos across 8 dense PDFs

8 rebranded PDF documents reviewed in under 2 minutes. Caught errors human reviewers might miss in dense text documents.

Critical Sample Fee Estimate: Contains redundant "(copy) (copy)" text that should have been removed during rebranding.
Warning Payment Options PDF: "a signification investment" should be "a significant investment".
Warning Payment Options PDF: "Downpayment" inconsistent casing—should match the rest of the document style.
Warning Insurance PDF: Heading "Insurance our office participates with" has a grammatical error—should be "Insurance plans our office participates with."
Critical Payment Options PDF: Contains handwritten corrections visible in the design that were not cleaned up.
3 of 8 files passed with no issues (Retainer Program, Insurance branded version, and one other).
Create Multi-Variations of Social Ads ↗ 3 of 7 variations had issues

Flagged "and" vs "or" offer wording drift across ad variations

7 social ad variations ($500 Off Braces or Invisalign campaign) reviewed. Caught offer wording discrepancies across variations.

Critical Ad variation BG-05: Brief says "$500 Off Braces or Invisalign" but ad reads "$500 OFF Braces and Invisalign". The word "and" vs "or" changes the offer meaning.
Warning Ad variation BG-04: Brief requested multiple subtitle variations including "FREE Orthodontic Consultation" and "FREE Treatment Quote"—this design only includes one.
4 of 7 variations passed—correctly matching the brief's offer text, spelling, and required elements.

Auto-separated 5 reference files from 5 deliverables on a 10-attachment task

10 total attachments on this task—but 5 were client-provided spec sheets and reference photos uploaded when the task was created. The system automatically identified those as references and only reviewed the 5 designer deliverables.

Smart reference detection correctly separated 5 reference files (spec sheets, example photos) from 5 deliverables (front/back PDFs, car tag, JPG exports). All deliverables passed with verified spelling, offers, and contact info.
March Braces Colors ↗ 4 of 4 files passed

Cross-referenced comment thread to verify color names matched requests

4 themed braces color images reviewed. AI cross-referenced the task comments to verify each image matched the specifically requested color names.

Verified each image text matched the requested names from comments: "Pot of Gold", "Shamrock Shake", "Lucky Charms", and "Irish Flag"—all correctly applied. Spelling, text placement, and brief requirements confirmed.

Correctly sourced deliverable from subtask, ignored parent task references

Multi-page PDF packet reviewed from subtask deliverable. AI pulled the correct file from the "revision #1" subtask, ignoring parent task references.

Spell-checked all content, verified formatting, and confirmed no placeholder text remained. Deliverable correctly sourced from subtask rather than parent task.

What Gets Checked

Text & Spelling

  • Spelling errors in all visible text
  • Grammar issues
  • Repeated words ("feel feel")
  • Leftover placeholder text ("(copy) (copy)")

Offer & Brief Match

  • Correct offer amount ($500 off, etc.)
  • "Or" vs "And" wording accuracy
  • Required elements from brief present
  • Phone numbers, URLs, addresses

Layout & Quality

  • Handwritten corrections left visible
  • Missing required variations
  • Subtitle/tagline accuracy
  • Reference vs deliverable awareness

🛠 System Architecture

flowchart TB
    subgraph Asana
        A[Task field changed] -->|Webhook| B[POST to Worker]
    end

    subgraph Cloudflare["Cloudflare Edge"]
        B --> C[Webhook Handler]
        C -->|Verify signature| D[Queue Producer]
        D --> E[Task Queue]
        E --> F[Discovery Worker]
        F -->|Fan-out N messages| G[File Queue]
        G --> H[File Worker 1]
        G --> I[File Worker 2]
        G --> J[File Worker N]
    end

    subgraph AI["Gemini AI"]
        H --> K[Tier 1 Flash Lite]
        K -.->|escalate| L[Tier 2 Pro]
        L -.->|fix| M[Tier 3 Image Gen]
    end

    subgraph Storage["KV State"]
        N[Job Progress]
        O[Reviewed Files]
        P[Dedup Locks]
    end

    H --> N
    I --> N
    J --> N

    style Asana fill:#2d2518,stroke:#e2a04a,color:#e2e4e9
    style Cloudflare fill:#1a2744,stroke:#74b9ff,color:#e2e4e9
    style AI fill:#2d3a1a,stroke:#00b894,color:#e2e4e9
    style Storage fill:#3a2a1a,stroke:#fdcb6e,color:#e2e4e9
    

Key Design Decisions

  • Fan-out per file: Each deliverable gets its own isolated worker invocation, preventing memory issues even with 12+ files.
  • Timestamp-based reference detection: Files uploaded within 60 seconds of task creation are automatically classified as references.
  • Race-safe finalization: Per-file result keys in KV (no shared mutable counters) ensure correct completion even with concurrent processing.
  • Tiered cost management: Flash Lite handles ~80% of files at low cost. Pro and Image Gen only run when needed on small batches.
  • Re-review support: Previously reviewed files are tracked in KV. Re-triggering only reviews newly uploaded files.

Frequently Asked Questions

How long does a review take?
Single files are reviewed in under 30 seconds. Multi-file tasks (8-12 files) typically complete within 2-4 minutes. Each file is processed in parallel.
What file types are supported?
PNG, JPG, GIF, WEBP images and PDF documents up to 20MB each. Native design files (.ai, .psd, .fig) are not supported—please export as PNG or PDF.
Will it review client reference files by mistake?
No. The system automatically detects reference files (those uploaded when the task was created via the form) and excludes them from review. They are used as context only.
What happens if the designer fixes issues and re-uploads?
Simply change the Task Status back to "AI REVIEW". The system will skip previously reviewed files and only analyze the new uploads.
Does this replace human QA?
No. It is a first-pass filter that catches common errors (spelling, wrong offers, missing elements) before human review. The human QA step remains in the workflow.
What if the AI flags something incorrectly?
False positives are possible but rare. The human QA step remains in the workflow. If the AI flags something that is actually correct, the reviewer can simply ignore that finding and approve the work.