Available tools for CMS 13
Lists the tools available in Optimizely Opal for CMS 13 including any required or optional parameters.
The CMS Opal Tools package provides AI-powered tools for content management. Opal invokes all tools and requires Opti ID authentication.
Content type tools
Manage content type definitions in CMS. These tools require CMS administrator permissions.
-
paas_cms_list_content_types– Lists all content types in CMS, optionally filtered by base type (_page,_component,_media,_image,_video). Returns type name, key, base type, and property count.Parameter Type Required Description baseTypestring No Filter by base type: _page,_component,_media,_image,_video -
paas_cms_get_content_type_details– Retrieves detailed information about a specific content type, including all property definitions with types, validation rules, and group assignments.Parameter Type Required Description contentTypeKeystring Yes The key (name) of the content type -
paas_cms_create_content_type– Creates a content type with a key, display name, base type, and property definitions. Properties support types likestring,richtext,number,boolean,contentReference, andcontentArea.Parameter Type Required Description keystring Yes Unique machine-readable key (for example, NewsArticle).displayNamestring Yes Human-readable name (for example, News Article).descriptionstring No Description of the content type's purpose. baseTypestring Yes Base type: _page,_block,_component,_media,_image, or_video.propertiesstring No JSON array of property definitions. -
paas_cms_update_content_type– Modifies an existing content type's display name, description, or property definitions. Can add, update, or remove properties.Parameter Type Required Description contentTypeKeystring Yes The key of the content type to update. displayNamestring No Display name. descriptionstring No Description. propertiesstring No JSON array of property definitions to add or update. -
paas_cms_delete_content_type– Deletes a content type from CMS. The content type must not have any existing content instances.Parameter Type Required Description contentTypeKeystring Yes The key of the content type to delete.
Property group tools
Manage property groups (tabs) used to organize content type properties in the editing UI. These tools require CMS administrator permissions.
-
paas_cms_list_property_groups– Lists all property groups in CMS with their names and sort order. -
paas_cms_create_property_group– Creates a property group with a unique key and optional sort order.Parameter Type Required Description keystring Yes Unique machine-readable key (for example, SEO_Settings).sortOrderinteger No Display sort order in the CMS UI (default: 100).
Content item tools
Create, read, update, and delete content items. All operations respect the authenticated user's CMS permissions.
-
paas_cms_get_content_data– Retrieves a content item's data including all non-metadata properties. Fetches a specific version or the latest published version. -
Parameter Type Required Description contentKeystring Yes GUID of the content item. contentVersioninteger No Specific version number (omit for latest published). -
paas_cms_update_content_item– Creates or updates a content item. OmitcontentKeyto create a item and set its properties in a single call (requirescontentType,displayName, andlocale). ProvidecontentKeyandcontentVersionto update an existing item. Returns thecontentKeyandcontentVersionfor subsequent operations such as publishing.Parameter Type Required Description contentKeystring No GUID of the content item to update. Omit to create an item. contentVersioninteger No Version number to update. Required when updating an existing item. Use 0for published content (a draft is created automatically). Omit when creating.propertiesobject Yes JSON object of property name and value pairs. Uses JSON Merge Patch semantics: only provided properties are updated. See Property write outcomes. compositionobject No Composition layout for Experience content types. Contains a nodesarray that describes the section, row, column, and component hierarchy. See Composition writes.allowNodeRemovalboolean No Permits a composition write that detaches nodes stored on the experience. Defaults to false, so the tool refuses such a write and names the nodes that would be lost.contentTypestring No Content type name. Required when creating (that is, contentKeyis omitted).displayNamestring No Display name for the content item. Required when creating. containerstring No GUID of the parent container. Omit for default placement. Only used when creating. routeSegmentstring No URL segment for page routing (for example, about-us). Only used when creating.localestring No Locale code (for example, enorsv). Required when creating. -
paas_cms_delete_content_item– Moves a content item to the waste basket. An editor can restore the item.Parameter Type Required Description contentKeystring Yes GUID of the content item to delete. -
paas_cms_publish_content_item– Publishes a content item immediately or schedules it for a future date and time. Requires a content version number.Parameter Type Required Description contentKeystring Yes GUID of the content item. contentVersioninteger Yes Version number to publish. scheduledPublishDatestring No ISO 8601 date and time for scheduled publishing.
Composition writes
A composition write updates the stored layout of an Experience content item. Read the layout with paas_cms_get_content_data, change the parts you want, and send it back. A layout written back exactly as read stays unchanged. You do not have to send the whole tree on every write (see the following paragraph on omitting nodes).
Each node keeps its identity through propertyBinding on sections and components, or id on rows and columns. A node that carries a resolvable identity keeps its stored content, display template, and display settings. The tool creates a new node when the identity cannot be resolved.
Omitting the nodes array on a section, row, or column keeps the children stored under it. Sending "nodes": [] empties it. This distinction lets you edit one branch of the layout without listing the whole tree.
The tool refuses a write that would detach stored nodes and names up to 10 of them. Re-list the missing nodes, or omit nodes on their parent to keep its children. Set allowNodeRemoval to true when you intend to remove the nodes. Removed nodes stay in CMS 13 and lose their place on the experience.
A response that includes a composition reports the counts of added, removed, and retained nodes.
Property write outcomes
paas_cms_update_content_item confirms that each property you supply is stored. When you supply properties, the response includes a properties array with one entry per property. Read it to confirm a write took effect without fetching the content item again.
The properties array reports one of three outcomes per property:
written– A value is stored, or you supplied an empty value and the stored value is empty.notPersisted– You supplied a value and nothing is stored. The tool reports the update as a failure.unverified– The stored value could not be read back. The tool reports the update as a success.
The check confirms that a value is stored, not that it matches what you sent. CMS 13 reshapes some values as it saves them, such as normalizing rich text or reducing date precision. Those values still report written.
A notPersisted property sets "success": false on the response. The save still happened, and the other properties are stored. For the causes and what to do next, go to Troubleshoot Optimizely Opal tools.
Content variation tool
Create locale variations (translations) of existing content items.
-
paas_cms_create_content_variation– Creates a locale variation of a page or experience content item. After creation, usepaas_cms_update_content_itemto set properties that differ from the default version.Parameter Type Required Description contentKeystring Yes GUID of the content item. variationKeystring Yes Unique key for the variation (for example, Holiday2024).localestring No Locale code for the variation. displayNamestring No Display name (defaults to variation key).
Preview tool
Generate preview URLs for content items.
-
paas_cms_get_content_preview_url– Generates a preview URL for a specific content version, letting Opal fetch and analyze the rendered HTML.Parameter Type Required Description contentKeystring Yes GUID of the content item. contentVersioninteger Yes Version number to preview.
SEO tools
AI-powered Search Engine Optimization (SEO) analysis and editing capabilities.
-
paas_cms_seo_analysis– Analyzes content SEO performance and provides AI-powered recommendations. Extracts all content properties and metadata for comprehensive analysis including title tags, meta descriptions, heading structure, and keyword optimization.Parameter Type Required Description contentKeystring Yes GUID of the content item. questionstring No Focus area for the analysis. previewUrlstring No Preview URL for rendered HTML analysis. -
paas_cms_seo_edit– Applies SEO recommendations to CMS content. Provides an interactive form for editing SEO fields such as meta titles, descriptions, and social media tags. Use after running SEO analysis.Parameter Type Required Description contentKeystring Yes GUID of the content item. recommendedValuesstring No JSON object of recommended SEO values. actualPropertyNamesstring No JSON object mapping SEO field names to CMS property names.
GEO tools
Analyze content for large language model (LLM) discoverability and apply JSON-LD schema markup for Generative Engine Optimization (GEO).
-
paas_cms_geo_analysis– Performs an AI-powered audit of content for LLM discoverability. Analyzes reachability, robots controls, structured data, content clarity, performance signals, and so on. Generates JSON-LD schema recommendations.Parameter Type Required Description contentKeystring Yes GUID of the content item. previewUrlstring Yes Preview URL for the rendered page. questionstring No Focus area for the analysis. -
paas_cms_geo_apply– Applies JSON-LD schema templates to the content'sJsonLdTemplatesproperty. Creates a draft version with the schema markup.Parameter Type Required Description contentKeystring Yes GUID of the content item. jsonLdTemplatesstring Yes JSON-LD schema templates to apply.
Display template tools
Manage display templates (Visual Builder styles and layouts).
A display template is scoped to exactly one of the following:
-
A specific content type. For example,
HeroBlockorArticlePage. -
A Visual Builder base type.
SectionorExperience(the_sectionand_experienceforms are also accepted). -
A layout node type.
experience,section,row, orcolumn.
Tools list
-
paas_cms_list_display_templates– Lists all display templates. Takes no parameters. -
paas_cms_get_display_template– Retrieves one or more display templates by key. Provide eitherKeyorKeys.Parameter Type Required Description Keystring No* Key of a single template to retrieve. Maximum 256 characters. Keysstring No* Comma-separated list of keys for a batch fetch (maximum 20), for example, HeroBlockWide,DefaultSection.
-
paas_cms_create_display_template– Creates a display template. Scope the template to exactly one ofNodeType,BaseType, orContentType.Parameter Type Required Description DisplayNamestring Yes Human-readable display name. Maximum 255 characters. Keystring No Unique key (for example, HeroBlockWide). Auto-generated if omitted. Maximum 256 characters.NodeTypestring No Layout node type: experience,section,row, orcolumn(case-insensitive).experienceandsectionare stored as the corresponding base type automatically. Maximum 50 characters.BaseTypestring No Visual Builder base type: SectionorExperience(_sectionor_experiencealso accepted).ContentTypestring No Content type key (for example, HeroBlock). Maximum 256 characters.IsDefaultboolean No Whether this is the default template for the scope. Defaults to false.Settingsobject No Settings as a JSON object. Each key maps to an object with displayNameandchoices(a map of choice key to display name). -
paas_cms_update_display_template– Updates an existing display template. Only provided fields are updated. Omitted fields are unchanged.Parameter Type Required Description Keystring Yes Key of the template to update. Maximum 256 characters. DisplayNamestring No Display name. Maximum 255 characters. NodeTypestring No Layout node type ( experience,section,row, orcolumn). Leave blank to keep it unchanged. IfBaseTypeis also provided,BaseTypetakes precedence and the node type is cleared. Maximum 50 characters.BaseTypestring No Base type: SectionorExperience(_sectionor_experienceaccepted).ContentTypestring No Content type key association. Maximum 256 characters. IsDefaultboolean No Whether this is the default template for the scope. Settingsobject No Uses REPLACE semantics. When provided, the entire settings collection is replaced. Omit to leave settings unchanged.
Media tool
Upload media assets into CMS.
-
paas_cms_upload_media– Downloads a file from a publicly accessible URL and uploads it as a media asset in CMS.Parameter Type Required Description FileUrlstring Yes HTTP or HTTPS URL of a publicly accessible file to download and upload. FileNamestring Yes Filename with extension (for example, photo.jpg). The extension determines the MIME type. Maximum 255 characters.DisplayNamestring No Display name in CMS. Defaults to FileName. Maximum 255 characters.ContentTypestring No CMS media content type name. If omitted, auto-selected by matching the file extension to registered media types. Maximum 256 characters. Containerstring No Parent container GUID. Defaults to the global shared asset folder. Maximum 68 characters.
Updated 10 days ago