Retrieval-augmented generation (RAG) gives Optimizely Opal access to your Content Marketing Platform (CMP) data, campaigns, tasks, assets, and briefs. Opal uses this data to generate content and answer questions grounded in your organization's information, not general knowledge. Use RAG when you want AI-generated content to reflect your brand, your campaigns, and your approved messaging. See Retrieval-Augmented Generation (RAG) overview.
How RAG helps marketing teams
- Create personalized content – Tailors messaging by customer segments.
- Maintain brand voice – Keeps AI-generated outputs on-message.
- Scale content creation – Automates content creation for blogs, emails, ads, social posts.
- Use approved messaging – Enforces compliance with brand and legal rules.
Example
A clothing retailer using RAG can complete the following:
- Retrieve customer purchase history and approved product data.
- Generate personalized recommendations.
- Write a branded campaign email with new arrivals.
This approach results in higher engagement, conversions, and loyalty.
Enable RAG
Optimizely RAG is a managed solution. Optimizely manages data sync internally and automatically provisions RAG for the following:
- Existing Opal enhanced and advanced tier customers with an active CMP instance.
- Partner accounts.
- New customers with both Opal and CMP.
If your account does not qualify for automatic provisioning, contact your Customer Success Manager (CSM).
Verify RAG
Confirm CMP RAG is active after provisioning completes. In Opal, complete the following as an administrator:
- Go to Settings > Rag Configuration.
-
Verify your CMP's instance is Active.
The RAG Configuration section includes the following two tabs:
- Configurations – Displays the RAG configuration for your instances, including connection status.
- Backpop Jobs – Displays the status of backpopulation jobs, which index your existing CMP data for RAG retrieval.
Use RAG
RAG is available throughout the Opal interface.
- In Opal Chat – Ask questions about your CMP data. Opal automatically retrieves the relevant information from your campaigns, tasks, assets, and briefs to answer your questions. See Optimizely Opal Chat in CMP.
-
In a specialized agent – Use the
{retrieval:}and{retrieval+:}directives in your prompt template. See Prompts for specialized agents for instructions.
RAG limitations
The following limitations apply to CMP RAG:
- Each CMP instance maps to one Opal instance. One Opal instance supports connections to multiple CMP instances.
- Enabling CMP RAG on the main Opal instance removes support for sandbox Opal instances.
Supported data
When RAG retrieves data, it draws from the following fields. Use this reference to understand which CMP properties Opal can access and query when responding to prompts.
Assets
From the CMP Digital Asset Management (DAM) platform (and related field data).
- Core fields
-
id,object_type(asset by default) asset_type-
url,gcs_file_path,converted_pdf_path mime_type-
metadata(JSON, flexible custom data) -
fields(JSON, user-definedfieldsfrom thefieldstable) owner_id-
title,title_tokens_substr(for search) -
created_at,last_modified
-
- Embeddings (
asset_embeddings)-
title,description,chunk_text -
file_path,mime_type,duration,start_offset_sec,end_offset_sec,page -
text_embedding,multimodal_embedding text_embedding_model
-
- Versioning and renditions
-
asset_version(withmetadata,asset_type,created_at) -
rendition(name,url,mime_type,status,size,metadata, and so on)
-
- Labels (
label_asset)- Link multiple labels to an asset.
Campaigns
From the campaign table (and related tables).
- Core fields
-
campaign_id,object_type(campaign by default) -
title,title_tokens_substr(searchable) parent_campaign-
metadata(JSON) -
field(JSON, user-defined) -
creator_user_id,owner_id -
created_at,last_modified -
start_date,end_date health_statusbrief_converted_pdf_pathreference_id
-
- Embeddings (
campaign_embeddings)-
title,description,chunk_text -
file_path,mime_type,page -
text_embedding,multimodal_embedding text_embedding_model
-
- Labels (
label_campaign)- Multiple labels per campaign are supported.
Tasks
From the task table (and related tables).
- Core fields
-
task_id,object_type(task by default) -
campaign_id(tasks belong to campaigns) -
owner_id,creator_user_id,workflow_id,workflow_title -
name,name_tokens_substr(for search) -
metadata(JSON) -
fields(JSON, user-defined) -
steps(JSON) -
current_assignee_ids(array of user IDs) -
created_at,last_modified -
start_date,due_date,completed_date statusbrief_converted_pdf_pathreference_id
-
- Embeddings (
task_embeddings)-
title,description,chunk_text -
file_path,mime_type,page -
text_embedding,multimodal_embedding text_embedding_modelcurrent_assignee_ids
-
- Labels (
label_task)- Tag tasks with labels.
If you use Opti ID, administrators can turn off generative AI in the Opti ID Admin Center. See Turn generative AI off across Optimizely applications.
Article is closed for comments.