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.
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.
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.
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.
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.
- 1Check AI crawler accessibility (robots.txt, noindex, CDN rules)
- 2Measure Core Web Vitals against LLM citation thresholds
- 3Validate schema markup presence and correctness
- 4Assess content structure and citation readiness
- 5Evaluate E-E-A-T signals (Expertise, Authoritativeness, Trustworthiness)
- 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.
- 1Audit crawler access, vitals, and schema in parallel
- 2Score citation readiness against AI engine patterns
- 3Identify content gaps that prevent LLM citation
- 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.
- 1Parse page HTML for content type signals
- 2Match content to applicable Schema.org types
- 3Generate ready-to-paste JSON-LD markup snippets
- 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.
- 1Fetch live page and extract title, description, OG tags
- 2Score each field against length, keyword density, and click-through best practices
- 3Identify missing or duplicate metadata across the site
- 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.
- 1Receive optimization report as input context
- 2Authenticate to CMS via Management API
- 3Patch the target content item's SEO fields
- 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.
- 1Query Graph for all published pages sorted by last-edit date
- 2Flag pages not updated within a configurable staleness window
- 3Detect duplicate or near-duplicate content using semantic similarity
- 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
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.
- 1Accept topic brief, target keywords, and tone-of-voice guidelines
- 2Research and outline sections using web context
- 3Draft headline variants optimized for click-through
- 4Write full article body maintaining brand voice throughout
- 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.
- 1Fetch live page and extract all copy blocks
- 2Score each block for clarity, action orientation, and audience fit
- 3Generate optimized variant for each block
- 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.
- 1Parse all text content from draft page or CMS item
- 2Match claims against prohibited and regulated language patterns
- 3Flag missing required disclosures by jurisdiction
- 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.
- 1Accept a topic brief, product details, and target audience
- 2Generate structured content with headline, body, and CTA
- 3Apply brand kit assets (logo, color, tone references)
- 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.
- 1Extract intent and key themes from source material
- 2Generate question-answer pairs ranked by user need
- 3Format output as CMS-compatible FAQ block structure
- 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.
- 1Analyze current page composition and existing variations
- 2Propose element-level modifications (headline, CTA, layout)
- 3Generate variation copy and save it as a CMS variation
- 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.
User sends a message in the Opal chat - on-demand automation, good for ad hoc analysis tasks
HTTP request from an external system - content publish events, form submissions, CI pipeline hooks
Runs automatically at a fixed time or on a cron schedule - weekly audits, nightly refresh checks
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.
Each agent runs after the previous one completes - output is passed as context to the next step
Multiple agents run simultaneously - results are merged before the next sequential step
Branching based on a field value or agent output - route to different sub-workflows per condition
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
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#.
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.
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();
},
});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.
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);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.
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
Related Demo
Management API →
How Opal's Implementation Agent authenticates and writes content back to the CMS programmatically
Related Demo
Feature Experimentation →
How Opal's Variation Development Agent creates A/B test variants that FX routes to the right audience
Related Demo
SEO & Metadata →
How Next.js generates metadata fields that Opal's SEO agents audit and the Implementation Agent writes back