Salesforce Experience Cloud · Arazzo Workflow

Salesforce Experience Cloud Headless Content Delivery

Version 1.0.0

Resolve a delivery channel, query its published content, then fetch one item.

1 workflow 1 source API 1 provider
View Spec View on GitHub CMSCommunitiesCRMCustomer PortalDigital ExperienceExperience CloudPartner PortalArazzoWorkflows

Provider

salesforce-experience-cloud

Workflows

headless-content-delivery
Query a delivery channel and fetch a published content item.
Lists delivery channels, queries published content for the first channel by content type, and retrieves the first returned content item.
3 steps inputs: accessToken, language, managedContentType outputs: channelId, contentKey, title
1
listChannels
listDeliveryChannels
List the available delivery channels and capture the first channel ID.
2
queryContent
queryChannelContent
Query published managed content for the channel filtered by content type.
3
getContentItem
getChannelContentItem
Retrieve the first returned content item by its content key.

Source API Descriptions

Arazzo Workflow Specification

salesforce-experience-cloud-headless-content-delivery-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Salesforce Experience Cloud Headless Content Delivery
  summary: Resolve a delivery channel, query its published content, then fetch one item.
  description: >-
    A headless content delivery flow on the Managed Content API. The workflow
    lists the available delivery channels, queries published managed content
    versions for the first channel filtered by content type, then retrieves a
    single content item by its content key. Each step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: cmsManagedContentApi
  url: ../openapi/salesforce-experience-cloud-cms-managed-content-openapi.yml
  type: openapi
workflows:
- workflowId: headless-content-delivery
  summary: Query a delivery channel and fetch a published content item.
  description: >-
    Lists delivery channels, queries published content for the first channel by
    content type, and retrieves the first returned content item.
  inputs:
    type: object
    required:
    - accessToken
    - managedContentType
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer token for the Salesforce instance.
      managedContentType:
        type: string
        description: Developer name of the managed content type to query (e.g. news).
      language:
        type: string
        description: Language code to filter content (e.g. en_US).
  steps:
  - stepId: listChannels
    description: List the available delivery channels and capture the first channel ID.
    operationId: listDeliveryChannels
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstChannelId: $response.body#/channels/0/channelId
  - stepId: queryContent
    description: Query published managed content for the channel filtered by content type.
    operationId: queryChannelContent
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: channelId
      in: path
      value: $steps.listChannels.outputs.firstChannelId
    - name: managedContentType
      in: query
      value: $inputs.managedContentType
    - name: language
      in: query
      value: $inputs.language
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstContentKey: $response.body#/items/0/contentKey
  - stepId: getContentItem
    description: Retrieve the first returned content item by its content key.
    operationId: getChannelContentItem
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: channelId
      in: path
      value: $steps.listChannels.outputs.firstChannelId
    - name: contentKeyOrId
      in: path
      value: $steps.queryContent.outputs.firstContentKey
    - name: language
      in: query
      value: $inputs.language
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      title: $response.body#/title
      managedContentId: $response.body#/managedContentId
  outputs:
    channelId: $steps.listChannels.outputs.firstChannelId
    contentKey: $steps.queryContent.outputs.firstContentKey
    title: $steps.getContentItem.outputs.title