Skip to main content

What It Is

The Closed Loop is Korvex's fully automated pipeline from recommendation to measured outcome. Unlike traditional SEO workflows where recommendations sit in spreadsheets, Korvex's closed loop connects every stage: SCIS generates a recommendation → you approve it → the CMS bridge deploys the change to your website → the outcome tracker measures the impact → that outcome calibrates future predictions. It's a self-improving system.

Why It Matters for Your SEO

The #1 failure mode in SEO is the "recommendation gap" — insights that never get implemented, and implementations that never get measured. The closed loop solves both:

  • No implementation gap: Approved recommendations are automatically pushed to your CMS (WordPress, Shopify, or Webflow)
  • No measurement gap: Changes are tracked from deployment through to ranking/traffic outcome
  • Self-improving accuracy: Every measured outcome makes future predictions more accurate

How Korvex Measures It

The Lifecycle

SCIS Recommendation → User Approval → CMS Deployment → Outcome Measurement → Prediction Calibration
      (pending)        (in_progress)     (deployed)        (completed)           (feedback loop)

Workflow Statuses

StatusMeaningHow It's Set
PendingBacklog — awaiting prioritisationDefault on creation
In ProgressBeing worked on — baseline metrics capturedUser drags card on Strategy Board
DeployedLive on website, being monitoredAuto-promoted by CMS executor
CompletedOutcome measured, proven effectiveAuto-promoted by outcome tracker
DismissedWon't implementUser drags card
Rolled BackWas deployed, then revertedCMS rollback action
FailedImplementation attempted but erroredCMS executor error

Auto-Promotion Rules

  • In Progress → Deployed: Automatic when CMS executor successfully pushes changes. Sets deployed_at.
  • Deployed → Completed: Automatic when daily outcome tracker (12:00 UTC) measures success. Requires time_to_impact_days to have elapsed since implementation.
  • Dismissed → Unblocks dependents: Dismissing a recommendation removes it from dependent recommendations' blocking lists.

How to Improve Your Score

  1. Connect your CMS — link WordPress, Shopify, or Webflow in Client Settings for automated deployment
  2. Approve recommendations promptly — the sooner changes deploy, the sooner outcomes are measured
  3. Don't skip the board — drag cards through the kanban stages to ensure proper lifecycle tracking
  4. Review the timeline — the Strategy Timeline shows causal relationships between changes and outcomes
  5. Be patient with outcomes — impact measurement requires time_to_impact_days to elapse (typically 14-30 days)
<details> <summary>Technical Deep Dive</summary>

CMS Executor Configuration

  • Task: execute_recommendation on queue="default"
  • Time limits: 9 minutes soft, 10 minutes hard
  • Retries: 3 attempts with exponential backoff (5s → 10s → 20s, max 300s)
  • Error classification: RetryableError (network, rate limit) → retry; PermanentError (invalid credentials) → mark failed

Execution Strategies

TypeStrategyComplexity
schema_additionHTML parsingComplex — injects JSON-LD
heading_restructureHTML parsingComplex — modifies DOM
content_refreshHTML parsingComplex — replaces body content
internal_linkingHTML parsingComplex — inserts anchor tags
All othersField mappingSimple — updates CMS fields directly

Execution Workflow (7 Steps)

  1. Load recommendation + CMS mapping (multi-tenant filter)
  2. Guard: skip beacon-channel recommendations (delivered client-side)
  3. Set status to implementing, record implementation_started_at
  4. Determine strategy: ACF generation, HTML parsing, or field mapping
  5. Execute CMS API call (WordPress REST, Shopify Admin, or Webflow API)
  6. Create version snapshot (audit trail)
  7. Update status to implemented, auto-promote workflow_status to deployed

Outcome Tracker

The daily outcome tracker (12:00 UTC):

  • Compares current metrics to baseline captured at implementation
  • Evaluates: ranking change, traffic change, CTR change, Koray score change
  • Outcome classification: success, partial_success, no_change, negative
  • Auto-promotes workflow_status to completed when outcome is success/partial_success

Key Tables

  • page_recommendations — the primary recommendation store
  • cms_recommendations — CMS-specific execution details
  • cms_page_mappings — maps recommendation page IDs to CMS page IDs

Key Files

  • Transitions: services/api/services/workflow_orchestrator.py
  • CMS execution: services/cms/recommendation_executor.py
  • Outcome measurement: services/analyzers/recommendation_outcome_tracker.py
  • Frontend: frontend/src/utils/strategyConstants.ts
</details>
Last updated: 2026-03-20