HubSpot · Arazzo Workflow

HubSpot Create and Publish a CMS Page

Version 1.0.0

Create a CMS site page in draft, then publish its draft live.

1 workflow 1 source API 1 provider
View Spec View on GitHub AnalyticsCommerceContentCRMCustomer ServiceEmail MarketingMarketingMarketing AutomationOperationsSalesArazzoWorkflows

Provider

hubspot

Workflows

create-cms-page
Create a draft site page and publish it live.
Creates a site page in draft state, captures its identifier, and publishes the draft so the page is live and publicly accessible.
2 steps inputs: domain, htmlTitle, language, metaDescription, name, slug, templatePath outputs: pageId, url
1
createPage
createSitePage
Create a new site page in draft state using the supplied content, slug, domain, and SEO settings.
2
publishPage
publishSitePage
Push the draft version of the page live, making all pending content changes publicly accessible at the page URL.

Source API Descriptions

Arazzo Workflow Specification

hubspot-create-cms-page-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: HubSpot Create and Publish a CMS Page
  summary: Create a CMS site page in draft, then publish its draft live.
  description: >-
    A two-step CMS page authoring flow. The workflow creates a new site page in
    draft state with the supplied content and SEO settings, then pushes the draft
    live so the page becomes publicly accessible at its URL. Every 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: cmsPagesApi
  url: ../openapi/hubspot-cms-pages-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-cms-page
  summary: Create a draft site page and publish it live.
  description: >-
    Creates a site page in draft state, captures its identifier, and publishes
    the draft so the page is live and publicly accessible.
  inputs:
    type: object
    required:
    - name
    - slug
    - domain
    properties:
      name:
        type: string
        description: The internal name of the site page.
      htmlTitle:
        type: string
        description: The HTML title tag content for the page.
      slug:
        type: string
        description: The URL slug for the page.
      domain:
        type: string
        description: The domain the page will be published under.
      metaDescription:
        type: string
        description: The meta description for SEO.
      language:
        type: string
        description: The language code for the page (e.g. en).
      templatePath:
        type: string
        description: The path to the template used to render the page.
  steps:
  - stepId: createPage
    description: >-
      Create a new site page in draft state using the supplied content, slug,
      domain, and SEO settings.
    operationId: createSitePage
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        htmlTitle: $inputs.htmlTitle
        slug: $inputs.slug
        domain: $inputs.domain
        metaDescription: $inputs.metaDescription
        language: $inputs.language
        templatePath: $inputs.templatePath
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      pageId: $response.body#/id
      state: $response.body#/state
  - stepId: publishPage
    description: >-
      Push the draft version of the page live, making all pending content
      changes publicly accessible at the page URL.
    operationId: publishSitePage
    parameters:
    - name: objectId
      in: path
      value: $steps.createPage.outputs.pageId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      publishedPageId: $response.body#/id
      url: $response.body#/url
  outputs:
    pageId: $steps.createPage.outputs.pageId
    url: $steps.publishPage.outputs.url