Content - Expression (Connect API)

POST Create expression content

POST /services/data/{apiVersion}/connect/cms/contents

Operation ID: createExpression. Tags: Expression.

Creates an expression content item.

Request body (required)

Media type: application/json. Schema: ExpressionRequest.

Example: simpleExpression Simple expression with one group referencing a data graph resource.

{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__expression",
  "contentBody": {
    "expression": {
      "definition": "sfdc_cms__multiLevelExpression",
      "label": "Sales Order Filter",
      "sfdcExpressionKey": "salesOrderFilter",
      "default": "",
      "expressionGroups": [
        {
          "name": "group0",
          "resource": "{!$dataGraph.Sales_Order_Product__dlm}",
          "expressionRule": {
            "name": "rule0",
            "description": "",
            "criteriaType": "AllCriteriaMatch",
            "expressionCriteria": [
              {
                "resource": "Name__c",
                "operator": "CONTAINS",
                "value": "premium",
                "criterionNumber": 1
              },
              {
                "resource": "DataSourceObject__c",
                "operator": "IS_NOT_NULL",
                "value": "",
                "criterionNumber": 2
              }
            ]
          },
          "expressionSort": {
            "orderBy": "Name__c",
            "sortOrder": "ASC"
          }
        }
      ]
    }
  }
}

Example: multiGroupExpression Multi-group expression with chained references.

{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__expression",
  "contentBody": {
    "expression": {
      "definition": "sfdc_cms__multiLevelExpression",
      "label": "Customer Segmentation",
      "sfdcExpressionKey": "customerSegment",
      "default": "",
      "expressionGroups": [
        {
          "name": "group0",
          "resource": "{!$dataGraph.Sales_Order_Product__dlm}",
          "expressionRule": {
            "name": "rule0",
            "criteriaType": "AllCriteriaMatch",
            "expressionCriteria": [
              {
                "resource": "Name__c",
                "operator": "CONTAINS",
                "value": "aaaa",
                "criterionNumber": 1
              },
              {
                "resource": "DataSourceObject__c",
                "operator": "IS_NOT_NULL",
                "value": "",
                "criterionNumber": 2
              }
            ]
          },
          "expressionSort": {
            "orderBy": "Name__c",
            "sortOrder": "ASC"
          }
        },
        {
          "name": "group1",
          "resource": "{!group0.Name__c}"
        }
      ]
    }
  }
}

Example: withSelectionIndex Expression group with selectionIndex.

{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__expression",
  "contentBody": {
    "expression": {
      "definition": "sfdc_cms__multiLevelExpression",
      "label": "First Match",
      "sfdcExpressionKey": "firstMatch",
      "default": "N/A",
      "expressionGroups": [
        {
          "name": "group0",
          "resource": "{!$dataGraph.Product__dlm}",
          "selectionIndex": 0,
          "expressionRule": {
            "name": "rule0",
            "criteriaType": "AnyCriterionMatches",
            "expressionCriteria": [
              {
                "resource": "Status__c",
                "operator": "EQUALS",
                "value": "Active",
                "criterionNumber": 1
              }
            ]
          }
        }
      ]
    }
  }
}

Example: customLogicExpression Expression with custom formula logic.

{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__expression",
  "contentBody": {
    "expression": {
      "definition": "sfdc_cms__multiLevelExpression",
      "label": "Complex Filter",
      "sfdcExpressionKey": "complexFilter",
      "default": "",
      "expressionGroups": [
        {
          "name": "group0",
          "resource": "{!$dataGraph.Contact__dlm}",
          "expressionRule": {
            "name": "rule0",
            "criteriaType": "CustomLogicMatches",
            "customFormula": "1 AND 2 AND (3 OR 4)",
            "expressionCriteria": [
              {
                "resource": "Region__c",
                "operator": "EQUALS",
                "value": "AMER",
                "criterionNumber": 1
              },
              {
                "resource": "Tier__c",
                "operator": "EQUALS",
                "value": "Gold",
                "criterionNumber": 2
              },
              {
                "resource": "Revenue__c",
                "operator": "GREATER_THAN",
                "value": 100000,
                "criterionNumber": 3
              },
              {
                "resource": "Employees__c",
                "operator": "GREATER_THAN",
                "value": 500,
                "criterionNumber": 4
              }
            ]
          }
        }
      ]
    }
  }
}

Responses

  • 201 Expression created successfully.

    Media type: application/json. Schema: ExpressionResponse.

    Example: complete Complete response.

    {
      "apiName": "MCJUR5WKNRHZFP7NAUQOMMNJ7CI4",
      "contentBody": {
        "expression": {
          "definition": "sfdc_cms__multiLevelExpression",
          "label": "Sales Order Filter",
          "sfdcExpressionKey": "salesOrderFilter",
          "default": "",
          "expressionGroups": [
            {
              "name": "group0",
              "resource": "{!$dataGraph.Sales_Order_Product__dlm}",
              "expressionRule": {
                "name": "rule0",
                "description": "",
                "criteriaType": "AllCriteriaMatch",
                "expressionCriteria": [
                  {
                    "resource": "Name__c",
                    "operator": "CONTAINS",
                    "value": "premium",
                    "criterionNumber": 1
                  },
                  {
                    "resource": "DataSourceObject__c",
                    "operator": "IS_NOT_NULL",
                    "value": "",
                    "criterionNumber": 2
                  }
                ]
              },
              "expressionSort": {
                "orderBy": "Name__c",
                "sortOrder": "ASC"
              }
            }
          ]
        }
      },
      "contentFqn": "marketing--Default_Content_Workspace.sfdc_cms__expression--MCJUR5WKNRHZFP7NAUQOMMNJ7CI4",
      "contentKey": "MCJUR5WKNRHZFP7NAUQOMMNJ7CI4",
      "contentSpace": {
        "id": "0ZuSB000002FYzW0AW",
        "resourceUrl": "/services/data/v65.0/connect/cms/spaces/0ZuSB000002FYzW"
      },
      "contentType": {
        "fullyQualifiedName": "sfdc_cms__expression"
      },
      "createdBy": {
        "id": "005SB00000eaki1YAA",
        "name": "Admin User",
        "resourceUrl": "/services/data/v65.0/chatter/users/005SB00000eaki1YAA"
      },
      "createdDate": "2026-06-16T20:34:56.000Z",
      "externalId": null,
      "folder": {
        "id": "9PuSB000002KUDo0AO",
        "resourceUrl": "/services/data/v65.0/connect/cms/folders/9PuSB000002KUDo0AO"
      },
      "isPublished": false,
      "language": "en_US",
      "lastModifiedBy": {
        "id": "005SB00000eaki1YAA",
        "name": "Admin User",
        "resourceUrl": "/services/data/v65.0/chatter/users/005SB00000eaki1YAA"
      },
      "lastModifiedDate": "2026-06-16T20:34:56.000Z",
      "managedContentId": "20YSB000004SkOz2AK",
      "managedContentVariantId": "9PsSB0000045XAj0AM",
      "managedContentVersionId": "5OUSB000004K7np4AC",
      "status": {
        "label": "Draft",
        "status": "Draft"
      },
      "title": "Content Item",
      "urlName": "content-item",
      "versionNumber": "1.1"
    }
  • 400 Invalid request body.

    Media type: application/json. Schema: Error.

    Example: missingExpression Missing required expression field.

    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'expression' is missing",
      "details": [
        {
          "field": "contentBody.expression",
          "message": "This field is required"
        }
      ]
    }

    Example: missingExpressionGroups Missing required expressionGroups.

    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'expressionGroups' is missing",
      "details": [
        {
          "field": "contentBody.expression.expressionGroups",
          "message": "This field is required"
        }
      ]
    }

    Example: missingResource Missing required resource on expression group.

    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'resource' is missing",
      "details": [
        {
          "field": "contentBody.expression.expressionGroups[0].resource",
          "message": "This field is required"
        }
      ]
    }

    Example: duplicateGroupName Duplicate group names.

    {
      "error": "VALIDATION_ERROR",
      "message": "Expression group names must be unique",
      "details": [
        {
          "field": "contentBody.expression.expressionGroups",
          "message": "Duplicate group name 'group0'"
        }
      ]
    }
  • 401 Unauthorized.

    Media type: application/json. Schema: Error.

    Example: response Example response.

    {
      "error": "UNAUTHORIZED",
      "message": "Authentication credentials are missing or invalid"
    }
  • 403 Forbidden.

    Media type: application/json. Schema: Error.

    Example: response Example response.

    {
      "error": "FORBIDDEN",
      "message": "Insufficient permissions to create expression content"
    }
  • 500 Internal server error.

    Media type: application/json. Schema: Error.

    Example: response Example response.

    {
      "error": "INTERNAL_SERVER_ERROR",
      "message": "An unexpected error occurred while processing the request"
    }
  • 503 Service unavailable.

    Media type: application/json. Schema: Error.

    Example: response Example response.

    {
      "error": "SERVICE_UNAVAILABLE",
      "message": "The service is temporarily unavailable. Please try again later"
    }