HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Common workflows with CMS tools

Example workflows using Optimizely Opal tools in CMS 13.

Practical examples of how Optimizely Opal uses CMS tools to accomplish common content management tasks.

Create a page with content

A typical content creation workflow involves creating the content type (if needed), creating a content item, populating its properties, and publishing it.

List available content types

  • Toolpaas_cms_list_content_types
  • Parameters
    { "baseType": "_page" }

Returns all page content types with their names, keys, and property counts.

Create a content item

  • Toolpaas_cms_create_content_item
  • Parameters
    {
      "contentType": "StandardPage",
      "displayName": "About Us",
      "routeSegment": "about-us",
      "locale": "en"
    }

Returns contentKey (GUID) and contentVersion for subsequent operations.

Populate content properties

  • Toolpaas_cms_update_content_item
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "contentVersion": 1,
      "properties": "{\"MainBody\": \"<p>Welcome to our company...</p>\", \"TeaserText\": \"Learn about our mission and values.\"}"
    }

Publish the page

  • Toolpaas_cms_publish_content_item
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "contentVersion": 1
    }

Create a custom content type

Build a new content type and organize properties into groups.

Check current property groups

  • Toolpaas_cms_list_property_groups

Returns available property groups (tabs) you can use to organize properties.

Create a property group (if needed)

  • Toolpaas_cms_create_property_group
  • Parameters
    {
      "key": "SEO_Settings",
      "sortOrder": 200
    }

Create the content type

  • Toolpaas_cms_create_content_type
  • Parameters
    {
      "key": "BlogPost",
      "displayName": "Blog Post",
      "description": "A blog post with author, date, and rich content",
      "baseType": "_page",
      "properties": "[{\"name\": \"Author\", \"type\": \"string\", \"group\": \"Content\"}, {\"name\": \"PublishDate\", \"type\": \"string\", \"group\": \"Content\"}, {\"name\": \"MainBody\", \"type\": \"richtext\", \"group\": \"Content\"}, {\"name\": \"MetaTitle\", \"type\": \"string\", \"group\": \"SEO_Settings\"}, {\"name\": \"MetaDescription\", \"type\": \"string\", \"group\": \"SEO_Settings\"}]"
    }

Verify the content type

  • Toolpaas_cms_get_content_type_details
  • Parameters
    { "contentTypeKey": "BlogPost" }

Returns the full content type definition with all properties.

Create a localized version

Create a translated version of existing content for a different locale.

Get the original content

  • Toolpaas_cms_get_content_data
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5"
    }

Create a locale variation

  • Toolpaas_cms_create_content_variation
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "variationKey": "Swedish",
      "locale": "sv",
      "displayName": "Om oss"
    }

Set translated properties

  • Toolpaas_cms_update_content_item
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "contentVersion": 2,
      "properties": "{\"MainBody\": \"<p>Välkommen till vårt företag...</p>\", \"TeaserText\": \"Läs om vårt uppdrag och våra värderingar.\"}"
    }

Publish the variation

  • Toolpaas_cms_publish_content_item
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "contentVersion": 2
    }

Optimize content for SEO

Analyze existing content and apply Search Engine Optimization (SEO) improvements.

Get a preview URL

  • Toolpaas_cms_get_content_preview_url
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "contentVersion": 1
    }

Run SEO analysis

  • Toolpaas_cms_seo_analysis
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "previewUrl": "https://mysite.com/about-us",
      "question": "How can I improve search rankings for this page?"
    }

Returns detailed analysis with recommended values for SEO fields.

Apply SEO recommendations

  • Toolpaas_cms_seo_edit
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "recommendedValues": "{\"MetaTitle\": \"About Us | Company Name\", \"MetaDescription\": \"Learn about our mission, values, and team.\"}",
      "actualPropertyNames": "{\"MetaTitle\": \"MetaTitle\", \"MetaDescription\": \"MetaDescription\"}"
    }

Add schema markup

Improve content discoverability for AI and search engines using JSON-LD structured data.

Run Generative Engine Optimization (GEO) analysis

  • Toolpaas_cms_geo_analysis
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "previewUrl": "https://mysite.com/about-us"
    }

Returns a comprehensive LLM discoverability audit with JSON-LD schema recommendations.

Apply JSON-LD templates

  • Toolpaas_cms_geo_apply
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "jsonLdTemplates": "{\"Organization\": {\"@context\": \"https://schema.org\", \"@type\": \"Organization\", \"name\": \"Company Name\", \"url\": \"https://mysite.com\"}}"
    }

Schedule content for future publish

Create content now and schedule it to go live at a specific date and time.

Create and populate content

Follow the Create a Page with Content workflow (steps 1-3).

Schedule publish

  • Toolpaas_cms_publish_content_item
  • Parameters
    {
      "contentKey": "c3558e08-00a6-45d0-bfff-5bd2bda3acb5",
      "contentVersion": 1,
      "scheduledPublishDate": "2026-04-01T09:00:00Z"
    }

Optimizely automatically publishes the content at the specified date and time.