Cross-Provider Workflow

Slack Channel Create to Notion Page

Version 1.0.0

Create a Slack channel, then document it as a Notion page.

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

Providers Orchestrated

slack notion

Workflows

channel-to-notion
Create a Slack channel, then create a Notion page documenting it.
Creates a new Slack channel and creates a Notion page that documents the channel name and id in a parent database.
2 steps inputs: channelName, parentDatabaseId outputs: channelId, pageUrl
1
create-channel
$sourceDescriptions.slackConversationsApi.postConversationsCreate
Create the new Slack channel.
2
document-channel
$sourceDescriptions.notionApi.createPage
Create a Notion page documenting the new channel.

Source API Descriptions

Arazzo Workflow Specification

prod-slack-channel-create-to-notion-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Slack Channel Create to Notion Page
  summary: Create a Slack channel, then document it as a Notion page.
  description: >-
    A productivity and internal-ops workflow that creates a new Slack channel
    for a project or incident and documents it as a Notion page so the channel
    has a written home in the knowledge base. Demonstrates chaining a messaging
    provider and a knowledge-base provider in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: slackConversationsApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-conversations-openapi.yml
    type: openapi
  - name: notionApi
    url: https://raw.githubusercontent.com/api-evangelist/notion/refs/heads/main/openapi/notion-openapi.yml
    type: openapi
workflows:
  - workflowId: channel-to-notion
    summary: Create a Slack channel, then create a Notion page documenting it.
    description: >-
      Creates a new Slack channel and creates a Notion page that documents the
      channel name and id in a parent database.
    inputs:
      type: object
      properties:
        channelName:
          type: string
        parentDatabaseId:
          type: string
    steps:
      - stepId: create-channel
        description: Create the new Slack channel.
        operationId: $sourceDescriptions.slackConversationsApi.postConversationsCreate
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            name: $inputs.channelName
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          channelId: $response.body#/channel/id
          channelName: $response.body#/channel/name
      - stepId: document-channel
        description: Create a Notion page documenting the new channel.
        operationId: $sourceDescriptions.notionApi.createPage
        requestBody:
          contentType: application/json
          payload:
            parent:
              database_id: $inputs.parentDatabaseId
            properties:
              title:
                title:
                  - text:
                      content: $steps.create-channel.outputs.channelName
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          pageUrl: $response.body#/url
    outputs:
      channelId: $steps.create-channel.outputs.channelId
      pageUrl: $steps.document-channel.outputs.pageUrl