HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityAcademySubmit a ticketLog In
Dev Guide

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.

    ParameterTypeRequiredDescription
    baseTypestringNoFilter 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.

    ParameterTypeRequiredDescription
    contentTypeKeystringYesThe 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 like string, richtext, number, boolean, contentReference, and contentArea.

    ParameterTypeRequiredDescription
    keystringYesUnique machine-readable key (for example, NewsArticle).
    displayNamestringYesHuman-readable name (for example, News Article).
    descriptionstringNoDescription of the content type's purpose.
    baseTypestringYesBase type: _page, _block, _component, _media, _image, or _video.
    propertiesstringNoJSON 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.

    ParameterTypeRequiredDescription
    contentTypeKeystringYesThe key of the content type to update.
    displayNamestringNoDisplay name.
    descriptionstringNoDescription.
    propertiesstringNoJSON 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.

    ParameterTypeRequiredDescription
    contentTypeKeystringYesThe 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.

    ParameterTypeRequiredDescription
    keystringYesUnique machine-readable key (for example, SEO_Settings).
    sortOrderintegerNoDisplay 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.

  • ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    contentVersionintegerNoSpecific version number (omit for latest published).
  • paas_cms_update_content_item – Creates or updates a content item. Omit contentKey to create a item and set its properties in a single call (requires contentType, displayName, and locale). Provide contentKey and contentVersion to update an existing item. Returns the contentKey and contentVersion for subsequent operations such as publishing.

    ParameterTypeRequiredDescription
    contentKeystringNoGUID of the content item to update. Omit to create an item.
    contentVersionintegerNoVersion number to update. Required when updating an existing item. Use 0 for published content (a draft is created automatically). Omit when creating.
    propertiesobjectYesJSON object of property name and value pairs. Uses JSON Merge Patch semantics: only provided properties are updated.
    compositionobjectNoComposition layout for Experience content types. Contains a nodes array of section/row/column/component hierarchy. Uses REPLACE semantics: the entire composition is replaced. Read the existing layout first, then send the complete structure.
    contentTypestringNoContent type name. Required when creating (that is, contentKey is omitted).
    displayNamestringNoDisplay name for the content item. Required when creating.
    containerstringNoGUID of the parent container. Omit for default placement. Only used when creating.
    routeSegmentstringNoURL segment for page routing (for example, about-us). Only used when creating.
    localestringNoLocale code (for example, en or sv). Required when creating.
  • paas_cms_delete_content_item – Moves a content item to the waste basket. An editor can restore the item.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID 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.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    contentVersionintegerYesVersion number to publish.
    scheduledPublishDatestringNoISO 8601 date and time for scheduled publishing.

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, use paas_cms_update_content_item to set properties that differ from the default version.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    variationKeystringYesUnique key for the variation (for example, Holiday2024).
    localestringNoLocale code for the variation.
    displayNamestringNoDisplay 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.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    contentVersionintegerYesVersion 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.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    questionstringNoFocus area for the analysis.
    previewUrlstringNoPreview 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.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    recommendedValuesstringNoJSON object of recommended SEO values.
    actualPropertyNamesstringNoJSON 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.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    previewUrlstringYesPreview URL for the rendered page.
    questionstringNoFocus area for the analysis.
  • paas_cms_geo_apply – Applies JSON-LD schema templates to the content's JsonLdTemplates property. Creates a draft version with the schema markup.

    ParameterTypeRequiredDescription
    contentKeystringYesGUID of the content item.
    jsonLdTemplatesstringYesJSON-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, HeroBlock or ArticlePage.

  • A Visual Builder base type. Section or Experience (the _section and _experience forms are also accepted).

  • A layout node type. experience, section, row, or column.

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 either Key or Keys.

    ParameterTypeRequiredDescription
    KeystringNo*Key of a single template to retrieve. Maximum 256 characters.
    KeysstringNo*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 of NodeType, BaseType, or ContentType.

    ParameterTypeRequiredDescription
    DisplayNamestringYesHuman-readable display name. Maximum 255 characters.
    KeystringNoUnique key (for example, HeroBlockWide). Auto-generated if omitted. Maximum 256 characters.
    NodeTypestringNoLayout node type: experience, section, row, or column (case-insensitive). experience and section are stored as the corresponding base type automatically. Maximum 50 characters.
    BaseTypestringNoVisual Builder base type: Section or Experience (_section or _experience also accepted).
    ContentTypestringNoContent type key (for example, HeroBlock). Maximum 256 characters.
    IsDefaultbooleanNoWhether this is the default template for the scope. Defaults to false.
    SettingsobjectNoSettings as a JSON object. Each key maps to an object with displayName and choices (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.

    ParameterTypeRequiredDescription
    KeystringYesKey of the template to update. Maximum 256 characters.
    DisplayNamestringNoDisplay name. Maximum 255 characters.
    NodeTypestringNoLayout node type (experience, section, row, or column). Leave blank to keep it unchanged. If BaseType is also provided, BaseType takes precedence and the node type is cleared. Maximum 50 characters.
    BaseTypestringNoBase type: Section or Experience (_section or _experience accepted).
    ContentTypestringNoContent type key association. Maximum 256 characters.
    IsDefaultbooleanNoWhether this is the default template for the scope.
    SettingsobjectNoUses 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.

    ParameterTypeRequiredDescription
    FileUrlstringYesHTTP or HTTPS URL of a publicly accessible file to download and upload.
    FileNamestringYesFilename with extension (for example, photo.jpg). The extension determines the MIME type. Maximum 255 characters.
    DisplayNamestringNoDisplay name in CMS. Defaults to FileName. Maximum 255 characters.
    ContentTypestringNoCMS media content type name. If omitted, auto-selected by matching the file extension to registered media types. Maximum 256 characters.
    ContainerstringNoParent container GUID. Defaults to the global shared asset folder. Maximum 68 characters.


Did this page help you?