Developer Demo

Opal: AI Agent Platform

Opal is Optimizely's agent orchestration layer. It ships a library of pre-built specialized agents for GEO, SEO, content review, and compliance - and lets you build custom agents and multi-step automated workflows on top of your CMS, experimentation, and data stack.

Pre-built agent libraryNo-code workflow builderDeveloper SDKPrivacy-first

Platform Overview #

Opal sits above your entire Optimizely stack - reading content via Graph, writing updates back through the Management API, and triggering experiments via Feature Experimentation. It exposes three building blocks that compose into any automation pattern your team needs.

1

Pre-built Agents

A curated library of specialized agents for GEO, SEO, content creation, compliance review, FAQ generation, and competitive analysis. Each agent has a domain-specific knowledge base and a defined input/output contract - ready to use or chain together.

2

Custom Agents

Build agents without writing a prompt template from scratch. Define the agent's goal in natural language, attach tools it can call, and add brand kit assets or customer data as context. The Opal Tools SDK lets developers expose any HTTP endpoint as a callable tool.

3

Workflow Orchestration

Chain agents into multi-step workflows using a drag-and-drop builder. Combine sequential steps, parallel branches, conditional logic, and loops. Trigger workflows from a chat message, webhook, schedule, or inbound email - no engineering handoff required.

GEO & SEO Agents #

Traditional SEO optimizes content for search engine crawlers. GEO (Generative Engine Optimization) extends that to AI-powered search surfaces - ChatGPT, Perplexity, and Google AI Overviews. Opal ships agents for both layers, and the implementation agent at the end of the chain writes changes directly back to your CMS.

GEO Agents

GEO Auditor Agent

Audits a page for AI search readiness end-to-end and delivers a prioritized action plan.

  1. 1Check AI crawler accessibility (robots.txt, noindex, CDN rules)
  2. 2Measure Core Web Vitals against LLM citation thresholds
  3. 3Validate schema markup presence and correctness
  4. 4Assess content structure and citation readiness
  5. 5Evaluate E-E-A-T signals (Expertise, Authoritativeness, Trustworthiness)
  6. 6Output prioritized action plan with severity scores

GEO Recommendations Agent

Runs a full GEO audit and produces a branded report with ranked recommendations for LLM discoverability and retrievability.

  1. 1Audit crawler access, vitals, and schema in parallel
  2. 2Score citation readiness against AI engine patterns
  3. 3Identify content gaps that prevent LLM citation
  4. 4Generate branded PDF/Markdown report with ranked recommendations

GEO Schema Optimization Agent

Analyzes page content and recommends JSON-LD schema markup to increase SEO richness and AI citation potential.

  1. 1Parse page HTML for content type signals
  2. 2Match content to applicable Schema.org types
  3. 3Generate ready-to-paste JSON-LD markup snippets
  4. 4Flag missing or incomplete existing schema

SEO Agents

SEO Metadata Optimization Agent

Evaluates a URL for SEO metadata quality and surfaces specific opportunities for improvement.

  1. 1Fetch live page and extract title, description, OG tags
  2. 2Score each field against length, keyword density, and click-through best practices
  3. 3Identify missing or duplicate metadata across the site
  4. 4Output ranked list of improvement recommendations

SEO Metadata Implementation Agent

Takes the Optimization Agent's recommendations and writes the improved metadata directly to your CMS content fields - no manual copy-paste.

  1. 1Receive optimization report as input context
  2. 2Authenticate to CMS via Management API
  3. 3Patch the target content item's SEO fields
  4. 4Publish the updated version or submit for editorial review

Content Refresh Analysis Agent

Identifies stale and duplicate content across your site to improve SEO health and site credibility.

  1. 1Query Graph for all published pages sorted by last-edit date
  2. 2Flag pages not updated within a configurable staleness window
  3. 3Detect duplicate or near-duplicate content using semantic similarity
  4. 4Output a prioritized refresh queue with CMS edit links

How GEO + SEO agents chain together

Page URL

input to chain

GEO Auditor

crawler + schema audit

SEO Metadata Optimization

metadata gaps

Implementation Agent

writes to CMS

CMS Updated

published or in review

Propose then write. The Optimization and Implementation agents are designed to be paired. The Optimization Agent proposes changes with explanations; the Implementation Agent executes them via the Management API. You can insert a human approval step between them in the workflow builder before any write happens.

Content Creation & Review Agents #

Opal includes agents for the full content lifecycle - from generating first drafts and optimizing existing copy to checking for legal/compliance issues before publish. All agents respect your brand kit assets and tone-of-voice guidelines.

Blog Content Creation Agent

Generates complete blog posts - headlines, introduction, body sections, and conclusion - while staying within your defined brand voice and tone.

  1. 1Accept topic brief, target keywords, and tone-of-voice guidelines
  2. 2Research and outline sections using web context
  3. 3Draft headline variants optimized for click-through
  4. 4Write full article body maintaining brand voice throughout
  5. 5Output ready-to-publish CMS content item

Page Copy Optimization Agent

Analyzes the live copy on any URL and generates improved variants optimized for clarity, conversion rate, and target market fit.

  1. 1Fetch live page and extract all copy blocks
  2. 2Score each block for clarity, action orientation, and audience fit
  3. 3Generate optimized variant for each block
  4. 4Produce side-by-side diff showing original vs improved copy

Legal / Compliance Review Agent

Checks copy for legal or regulatory issues before it goes live - flagging claims, disclaimers, and jurisdiction-specific requirements.

  1. 1Parse all text content from draft page or CMS item
  2. 2Match claims against prohibited and regulated language patterns
  3. 3Flag missing required disclosures by jurisdiction
  4. 4Return annotated report with severity levels and suggested rewrites

Content Generation Agent

Creates product announcements, landing page copy, and marketing content directly inside the CMS from a brief or outline.

  1. 1Accept a topic brief, product details, and target audience
  2. 2Generate structured content with headline, body, and CTA
  3. 3Apply brand kit assets (logo, color, tone references)
  4. 4Save draft directly to CMS via Management API

FAQ Creation Agent

Generates FAQ content from a topic, page URL, or product brief - ready to slot into a CMS FAQ block.

  1. 1Extract intent and key themes from source material
  2. 2Generate question-answer pairs ranked by user need
  3. 3Format output as CMS-compatible FAQ block structure
  4. 4Optionally append schema.org FAQPage markup

AI Variation Development Agent

Creates new A/B test variations by modifying existing page elements and suggesting enhancement ideas while maintaining brand consistency.

  1. 1Analyze current page composition and existing variations
  2. 2Propose element-level modifications (headline, CTA, layout)
  3. 3Generate variation copy and save it as a CMS variation
  4. 4Name the variation to match the FX variation key for automatic routing

Workflow Agents & Orchestration #

Individual agents answer one question or complete one task. Workflows chain them into autonomous pipelines that run without manual intervention - triggered by a schedule, an incoming webhook, a chat message, or an email.

Triggers

Every workflow starts with a trigger that defines when it runs. Triggers can be combined with filter conditions to scope them to specific content types, authors, or data fields.

Chat Input

User sends a message in the Opal chat - on-demand automation, good for ad hoc analysis tasks

Webhook

HTTP request from an external system - content publish events, form submissions, CI pipeline hooks

Scheduler

Runs automatically at a fixed time or on a cron schedule - weekly audits, nightly refresh checks

Email

Sends to a dedicated address - lets non-technical stakeholders kick off a workflow from their inbox

Logic Types

Agents inside a workflow can be arranged with four composition patterns. These can be nested - a sequential chain can include a parallel block, which itself contains a conditional branch.

Sequential

Each agent runs after the previous one completes - output is passed as context to the next step

Parallel

Multiple agents run simultaneously - results are merged before the next sequential step

Conditional

Branching based on a field value or agent output - route to different sub-workflows per condition

Loop

Repeat an agent or sub-workflow for each item in a list - process every page in a site audit iteratively

Example: weekly content quality workflow (6 steps, fully automated)

Runs every Monday at 07:00. No manual intervention required between trigger and CMS update.

Scheduler Trigger

Mon 07:00

Content Refresh Analysis

find stale pages

SEO Optimization

metadata gaps

Legal Review

compliance check

Implementation Agent

write to CMS

Publish Webhook

ISR revalidation

Agents pass context forward. Each agent in a sequential workflow receives the full output of every preceding agent as context. The Legal Review Agent at step 4 above already has the SEO optimization suggestions from step 3 - it can check that the proposed rewrites don't introduce compliance issues before anything is written to the CMS.

Developer Tools - Opal Tools SDK #

Opal's built-in agents can read from Graph and write via the Management API, but your internal systems - pricing databases, PIM, analytics APIs - are not reachable by default. The Opal Tools SDK lets you expose any HTTP endpoint as a callable tool that agents can discover and invoke at runtime. SDKs are available for TypeScript/Node, Python, and C#.

1

Define a tool

A tool is an object with a name, description, typed parameters, and an async execute function. The description is what Opal reads to decide whether to call this tool - write it from the agent's perspective, not the developer's.

The execute function receives validated, typed parameters and can make any async call - fetch, database query, third-party API - before returning a result that becomes the agent's tool-call output.

tools/productData.ts
import { OpalTool, param } from "optimizely-opal/sdk";

export const productDataTool = new OpalTool({
  name: "fetch_product_data",
  description:
    "Fetches live product pricing and stock availability " +
    "from the internal PIM for a given SKU.",
  params: [
    param("productId", "string", "The product SKU to look up"),
  ],
  execute: async ({ productId }) => {
    const res = await fetch(`/api/products/${productId}`);
    return res.json();
  },
});
2

Expose the discovery and execution endpoints

Opal calls /discovery when you register the tool server to learn what tools are available and what parameters each one accepts. At runtime it calls /execute/:toolName with the resolved parameters.

The Express middleware handles JSON serialization, parameter validation, and error formatting automatically. You only write the execute logic.

server.ts
import express from "express";
import { opalToolsMiddleware } from "optimizely-opal/sdk";
import { productDataTool } from "./tools/productData";

const app = express();
const tools = [productDataTool];

// GET /discovery - Opal reads this at registration time
// POST /execute/:toolName - Opal calls this at runtime
app.use(opalToolsMiddleware({ tools }));

app.listen(3001);
3

Register in Opal and attach to an agent

In the Opal UI, register the tool server URL under Tools. Opal fetches /discovery immediately to validate the schema. Then, when editing any agent, select the tool from the agent's available tools list. The agent will call it whenever its reasoning determines the tool is needed to complete the task.

TypeScript SDKPython SDKC# SDKExpress middlewareParameter validationAuth helpers

How Opal Complements This Stack #

Opal does not replace any layer of the Optimizely stack - it orchestrates across all of them. Agents read content through Graph, write updates via the Management API, create experiment variations that FX can route to, and segment by ODP audiences.

Opal's position in the stack

Opal Agent

orchestration layer

Graph API

reads content + structure

Management API

writes updates back

Feature Experimentation

creates A/B variations

Visitor sees variant

routed by FX + Graph