Cross-Provider Workflow

YouTube Playlist Insert to Notion Log and Slack Share

Version 1.0.0

Create a YouTube playlist, log it to Notion, then share it in Slack.

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

Providers Orchestrated

youtube notion slack

Workflows

youtube-playlist-to-notion-slack
Create a YouTube playlist, log to Notion, share in Slack.
Inserts a new YouTube playlist, records it as a Notion page, then shares the playlist link in a Slack channel.
3 steps inputs: description, notionDatabaseId, slackChannel, title outputs: messageTs, pageId, playlistId
1
create-playlist
$sourceDescriptions.youtubeDataApi.youtube.playlists.insert
Create a new YouTube playlist with snippet metadata.
2
log-to-notion
$sourceDescriptions.notionApi.createPage
Record the new playlist as a Notion page.
3
share-slack
$sourceDescriptions.slackChatApi.postChatPostmessage
Share the playlist link in a Slack channel.

Source API Descriptions

Arazzo Workflow Specification

soc-youtube-playlist-insert-notion-log-slack-share-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: YouTube Playlist Insert to Notion Log and Slack Share
  summary: Create a YouTube playlist, log it to Notion, then share it in Slack.
  description: >-
    A content-curation workflow that creates a new YouTube playlist via the Data
    API, records it as a Notion page for the editorial team, and shares the
    playlist link in a Slack channel. Demonstrates curating video collections and
    distributing them across a knowledge base and a team channel 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: notionApi
    url: https://raw.githubusercontent.com/api-evangelist/notion/refs/heads/main/openapi/notion-openapi.yml
    type: openapi
  - name: slackChatApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-chat-openapi.yml
    type: openapi
workflows:
  - workflowId: youtube-playlist-to-notion-slack
    summary: Create a YouTube playlist, log to Notion, share in Slack.
    description: >-
      Inserts a new YouTube playlist, records it as a Notion page, then shares the
      playlist link in a Slack channel.
    inputs:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        notionDatabaseId:
          type: string
        slackChannel:
          type: string
    steps:
      - stepId: create-playlist
        description: Create a new YouTube playlist with snippet metadata.
        operationId: $sourceDescriptions.youtubeDataApi.youtube.playlists.insert
        requestBody:
          contentType: application/json
          payload:
            snippet:
              title: $inputs.title
              description: $inputs.description
            status:
              privacyStatus: public
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          playlistId: $response.body#/id
      - stepId: log-to-notion
        description: Record the new playlist as a Notion page.
        operationId: $sourceDescriptions.notionApi.createPage
        requestBody:
          contentType: application/json
          payload:
            parent:
              database_id: $inputs.notionDatabaseId
            properties:
              Name:
                title:
                  - text:
                      content: $inputs.title
              PlaylistId:
                rich_text:
                  - text:
                      content: $steps.create-playlist.outputs.playlistId
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          pageId: $response.body#/id
      - stepId: share-slack
        description: Share the playlist link in a Slack channel.
        operationId: $sourceDescriptions.slackChatApi.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.slackChannel
            text: New playlist https://www.youtube.com/playlist?list=$steps.create-playlist.outputs.playlistId
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
    outputs:
      playlistId: $steps.create-playlist.outputs.playlistId
      pageId: $steps.log-to-notion.outputs.pageId
      messageTs: $steps.share-slack.outputs.messageTs