Cross-Provider Workflow

YouTube Search to Notion Log and Slack Share

Version 1.0.0

Search YouTube for content, log the results to Notion, then share in Slack.

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

Providers Orchestrated

youtube notion slack

Workflows

youtube-search-to-notion-slack
Search YouTube, log the top result to Notion, share in Slack.
Searches YouTube for a query, records the top result's video id as a Notion page, then shares the video link in a Slack channel.
3 steps inputs: notionDatabaseId, query, slackChannel outputs: messageTs, pageId, topVideoId
1
search-youtube
$sourceDescriptions.youtubeDataApi.youtube.search.list
Search YouTube for matching content via the Data API.
2
log-to-notion
$sourceDescriptions.notionApi.createPage
Record the top search result as a Notion page.
3
share-slack
$sourceDescriptions.slackChatApi.postChatPostmessage
Share the top result in a Slack channel.

Source API Descriptions

Arazzo Workflow Specification

soc-youtube-search-to-notion-log-slack-share-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: YouTube Search to Notion Log and Slack Share
  summary: Search YouTube for content, log the results to Notion, then share in Slack.
  description: >-
    A content-discovery workflow that searches YouTube via the Data API search
    operation, records the top result as a Notion page, and shares it to a Slack
    channel. Demonstrates surfacing relevant video content into a knowledge base
    and broadcasting it to a team 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-search-to-notion-slack
    summary: Search YouTube, log the top result to Notion, share in Slack.
    description: >-
      Searches YouTube for a query, records the top result's video id as a Notion
      page, then shares the video link in a Slack channel.
    inputs:
      type: object
      properties:
        query:
          type: string
        notionDatabaseId:
          type: string
        slackChannel:
          type: string
    steps:
      - stepId: search-youtube
        description: Search YouTube for matching content via the Data API.
        operationId: $sourceDescriptions.youtubeDataApi.youtube.search.list
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          topVideoId: $response.body#/items/0/id/videoId
          topTitle: $response.body#/items/0/snippet/title
      - stepId: log-to-notion
        description: Record the top search result as a Notion page.
        operationId: $sourceDescriptions.notionApi.createPage
        requestBody:
          contentType: application/json
          payload:
            parent:
              database_id: $inputs.notionDatabaseId
            properties:
              Name:
                title:
                  - text:
                      content: $steps.search-youtube.outputs.topTitle
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          pageId: $response.body#/id
      - stepId: share-slack
        description: Share the top result in a Slack channel.
        operationId: $sourceDescriptions.slackChatApi.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.slackChannel
            text: Found and logged https://youtu.be/$steps.search-youtube.outputs.topVideoId
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
    outputs:
      topVideoId: $steps.search-youtube.outputs.topVideoId
      pageId: $steps.log-to-notion.outputs.pageId
      messageTs: $steps.share-slack.outputs.messageTs