Confluence · Arazzo Workflow

Confluence Reply to a Page Comment Thread

Version 1.0.0

List the footer comments on a page, read the thread being answered, post a reply, and read the thread back.

1 workflow 1 source API 1 provider
View Spec View on GitHub CollaborationContent ManagementDocumentationKnowledge BaseWikiArazzoWorkflows

Provider

confluence

Workflows

reply-to-comment-thread
Post a threaded reply to an existing footer comment on a Confluence page.
Lists a page's footer comments, reads the parent comment, creates a nested reply, and reads the parent's children back to verify the reply is attached.
4 steps inputs: pageId, parentCommentId, replyBody outputs: replies, replyId, webui
1
listPageComments
getFooterComments
List the footer comments on the page in storage format so the caller can see the thread it is about to join.
2
readParentComment
getCommentById
Read the comment being answered to confirm it exists, is still current, and is anchored to the page the caller supplied.
3
postReply
createFooterComment
Create the reply as a footer comment nested under the parent by supplying both the pageId and the parentCommentId.
4
readThreadBack
getChildComments
Read the parent comment's children to confirm the new reply is attached to the thread rather than orphaned at the page level.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Confluence Reply to a Page Comment Thread
  summary: List the footer comments on a page, read the thread being answered, post a reply, and read the thread back.
  description: >-
    Bots and integrations that answer questions in Confluence need to reply into
    an existing thread rather than start a new one. The flow lists the footer
    comments on a page, reads the specific comment being answered to confirm it
    is still open and belongs to that page, posts a reply carrying the
    parentCommentId that nests it under the original, and then reads the
    thread's children back to confirm the reply landed. 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: confluenceCloudV2
  url: ../openapi/confluence-cloud-v2.yml
  type: openapi
workflows:
- workflowId: reply-to-comment-thread
  summary: Post a threaded reply to an existing footer comment on a Confluence page.
  description: >-
    Lists a page's footer comments, reads the parent comment, creates a nested
    reply, and reads the parent's children back to verify the reply is attached.
  inputs:
    type: object
    required:
    - pageId
    - parentCommentId
    - replyBody
    properties:
      pageId:
        type: string
        description: The id of the page carrying the comment thread.
      parentCommentId:
        type: string
        description: The id of the comment being replied to.
      replyBody:
        type: string
        description: The reply body in Confluence storage format (XHTML).
  steps:
  - stepId: listPageComments
    description: >-
      List the footer comments on the page in storage format so the caller can
      see the thread it is about to join.
    operationId: getFooterComments
    parameters:
    - name: id
      in: path
      value: $inputs.pageId
    - name: body-format
      in: query
      value: storage
    - name: limit
      in: query
      value: 250
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      comments: $response.body#/results
      nextCursor: $response.body#/_links/next
  - stepId: readParentComment
    description: >-
      Read the comment being answered to confirm it exists, is still current,
      and is anchored to the page the caller supplied.
    operationId: getCommentById
    parameters:
    - name: id
      in: path
      value: $inputs.parentCommentId
    - name: body-format
      in: query
      value: storage
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.status == 'current'
      type: jsonpath
    outputs:
      parentPageId: $response.body#/pageId
      parentAuthorId: $response.body#/authorId
      resolutionStatus: $response.body#/resolutionStatus
      parentVersion: $response.body#/version/number
  - stepId: postReply
    description: >-
      Create the reply as a footer comment nested under the parent by supplying
      both the pageId and the parentCommentId.
    operationId: createFooterComment
    requestBody:
      contentType: application/json
      payload:
        pageId: $inputs.pageId
        parentCommentId: $inputs.parentCommentId
        body:
          representation: storage
          value: $inputs.replyBody
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      replyId: $response.body#/id
      replyStatus: $response.body#/status
      replyVersion: $response.body#/version/number
      webui: $response.body#/_links/webui
  - stepId: readThreadBack
    description: >-
      Read the parent comment's children to confirm the new reply is attached to
      the thread rather than orphaned at the page level.
    operationId: getChildComments
    parameters:
    - name: id
      in: path
      value: $inputs.parentCommentId
    - name: body-format
      in: query
      value: storage
    - name: limit
      in: query
      value: 250
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.results.length > 0
      type: jsonpath
    outputs:
      replies: $response.body#/results
  outputs:
    replyId: $steps.postReply.outputs.replyId
    webui: $steps.postReply.outputs.webui
    replies: $steps.readThreadBack.outputs.replies