Cross-Provider Workflow

YouTube Comment Reply to Slack React and Notify

Version 1.0.0

Post a reply comment on YouTube, then react and notify in Slack.

1 workflow 3 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

youtube slack

Workflows

youtube-reply-slack-react
Reply to a YouTube comment, post to Slack, then add a reaction.
Inserts a reply comment on a YouTube comment thread, posts a Slack message noting the reply, then adds a reaction emoji to that Slack message.
3 steps inputs: parentId, replyText, slackChannel outputs: commentId, messageTs, reactionStatus
1
post-reply
$sourceDescriptions.youtubeDataApi.youtube.comments.insert
Post a reply to the YouTube comment thread.
2
notify-slack
$sourceDescriptions.slackChatApi.postChatPostmessage
Post a Slack message noting the comment reply.
3
add-reaction
$sourceDescriptions.slackReactionsApi.postReactionsAdd
Add a reaction emoji to the Slack message to mark it handled.

Source API Descriptions

Arazzo Workflow Specification

soc-youtube-comment-reply-slack-react-notify-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: YouTube Comment Reply to Slack React and Notify
  summary: Post a reply comment on YouTube, then react and notify in Slack.
  description: >-
    A community-engagement workflow that posts a reply to a YouTube comment via
    the Data API, then posts a Slack message and adds a reaction emoji to mark the
    engagement as handled. Demonstrates closing the loop on audience interaction
    across a video platform and a team messaging provider in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: youtubeDataApi
    url: https://raw.githubusercontent.com/api-evangelist/youtube/refs/heads/main/openapi/youtube-data-api-openapi.yml
    type: openapi
  - name: slackChatApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-chat-openapi.yml
    type: openapi
  - name: slackReactionsApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-reactions-openapi.yml
    type: openapi
workflows:
  - workflowId: youtube-reply-slack-react
    summary: Reply to a YouTube comment, post to Slack, then add a reaction.
    description: >-
      Inserts a reply comment on a YouTube comment thread, posts a Slack message
      noting the reply, then adds a reaction emoji to that Slack message.
    inputs:
      type: object
      properties:
        parentId:
          type: string
        replyText:
          type: string
        slackChannel:
          type: string
    steps:
      - stepId: post-reply
        description: Post a reply to the YouTube comment thread.
        operationId: $sourceDescriptions.youtubeDataApi.youtube.comments.insert
        requestBody:
          contentType: application/json
          payload:
            snippet:
              parentId: $inputs.parentId
              textOriginal: $inputs.replyText
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          commentId: $response.body#/id
      - stepId: notify-slack
        description: Post a Slack message noting the comment reply.
        operationId: $sourceDescriptions.slackChatApi.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.slackChannel
            text: Replied to YouTube comment $inputs.parentId with reply $steps.post-reply.outputs.commentId
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
      - stepId: add-reaction
        description: Add a reaction emoji to the Slack message to mark it handled.
        operationId: $sourceDescriptions.slackReactionsApi.postReactionsAdd
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.slackChannel
            timestamp: $steps.notify-slack.outputs.messageTs
            name: white_check_mark
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          reactionStatus: $statusCode
    outputs:
      commentId: $steps.post-reply.outputs.commentId
      messageTs: $steps.notify-slack.outputs.messageTs
      reactionStatus: $steps.add-reaction.outputs.reactionStatus