Salesforce Experience Cloud · Arazzo Workflow

Salesforce Experience Cloud Site Provision and Publish

Version 1.0.0

Create an Experience Cloud site, read it back, then publish it.

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

Provider

salesforce-experience-cloud

Workflows

site-provision-publish
Provision a new Experience Cloud site and publish it.
Creates a site from a template, reads it back to confirm its details, and publishes it.
3 steps inputs: accessToken, description, name, templateName, urlPathPrefix outputs: communityId, publishStatus, siteUrl
1
createSite
createExperienceCloudSite
Create a new Experience Cloud site from the supplied template and prefix.
2
getSite
getExperienceCloudSite
Read the new site back to confirm its name, status, and URL.
3
publishSite
publishExperienceCloudSite
Publish the site to make its initial configuration live.

Source API Descriptions

Arazzo Workflow Specification

salesforce-experience-cloud-site-provision-publish-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Salesforce Experience Cloud Site Provision and Publish
  summary: Create an Experience Cloud site, read it back, then publish it.
  description: >-
    An end-to-end site provisioning flow. The workflow creates a new Experience
    Cloud site from a template and URL path prefix, retrieves the created site
    to confirm its details, then publishes the site to make its initial
    configuration live. 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: sitesApi
  url: ../openapi/salesforce-experience-cloud-sites-openapi.yml
  type: openapi
workflows:
- workflowId: site-provision-publish
  summary: Provision a new Experience Cloud site and publish it.
  description: >-
    Creates a site from a template, reads it back to confirm its details, and
    publishes it.
  inputs:
    type: object
    required:
    - accessToken
    - name
    - templateName
    - urlPathPrefix
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer token for the Salesforce instance.
      name:
        type: string
        description: Name for the new Experience Cloud site.
      templateName:
        type: string
        description: Template to base the site on (e.g. Customer Service).
      urlPathPrefix:
        type: string
        description: URL path prefix for the site.
      description:
        type: string
        description: Description for the new site.
  steps:
  - stepId: createSite
    description: Create a new Experience Cloud site from the supplied template and prefix.
    operationId: createExperienceCloudSite
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        templateName: $inputs.templateName
        urlPathPrefix: $inputs.urlPathPrefix
        description: $inputs.description
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      communityId: $response.body#/id
  - stepId: getSite
    description: Read the new site back to confirm its name, status, and URL.
    operationId: getExperienceCloudSite
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: communityId
      in: path
      value: $steps.createSite.outputs.communityId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      siteUrl: $response.body#/siteUrl
  - stepId: publishSite
    description: Publish the site to make its initial configuration live.
    operationId: publishExperienceCloudSite
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: communityId
      in: path
      value: $steps.createSite.outputs.communityId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      publishStatus: $response.body#/status
  outputs:
    communityId: $steps.createSite.outputs.communityId
    siteUrl: $steps.getSite.outputs.siteUrl
    publishStatus: $steps.publishSite.outputs.publishStatus