Cross-Provider Workflow

Notion Page to Asana Task to Slack

Version 1.0.0

Create a Notion spec page, an Asana task, then notify Slack.

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

Providers Orchestrated

notion asana slack

Workflows

page-to-task-to-slack
Create a Notion page, create an Asana task, then notify Slack.
Creates a Notion page in a database, creates an Asana task referencing the page url, and posts a Slack notification announcing the new task.
3 steps inputs: asanaProjectId, parentDatabaseId, slackChannel, title outputs: messageTs, pageUrl, taskId
1
create-page
$sourceDescriptions.notionApi.createPage
Create the Notion spec page.
2
create-task
$sourceDescriptions.asanaTasksApi.createTask
Create an Asana task to execute the spec.
3
notify-slack
$sourceDescriptions.slackChatApi.postChatPostmessage
Notify the team about the new task in Slack.

Source API Descriptions

Arazzo Workflow Specification

prod-notion-page-to-asana-task-to-slack-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Notion Page to Asana Task to Slack
  summary: Create a Notion spec page, an Asana task, then notify Slack.
  description: >-
    A productivity and internal-ops workflow that creates a Notion page to
    capture a spec or brief, creates an Asana task to execute it, and notifies
    the team in Slack. Demonstrates orchestrating a knowledge-base provider, a
    task-management provider, and a messaging provider in a single Arazzo
    workflow.
  version: 1.0.0
sourceDescriptions:
  - name: notionApi
    url: https://raw.githubusercontent.com/api-evangelist/notion/refs/heads/main/openapi/notion-openapi.yml
    type: openapi
  - name: asanaTasksApi
    url: https://raw.githubusercontent.com/api-evangelist/asana/refs/heads/main/openapi/asana-tasks-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
workflows:
  - workflowId: page-to-task-to-slack
    summary: Create a Notion page, create an Asana task, then notify Slack.
    description: >-
      Creates a Notion page in a database, creates an Asana task referencing the
      page url, and posts a Slack notification announcing the new task.
    inputs:
      type: object
      properties:
        parentDatabaseId:
          type: string
        title:
          type: string
        asanaProjectId:
          type: string
        slackChannel:
          type: string
    steps:
      - stepId: create-page
        description: Create the Notion spec page.
        operationId: $sourceDescriptions.notionApi.createPage
        requestBody:
          contentType: application/json
          payload:
            parent:
              database_id: $inputs.parentDatabaseId
            properties:
              title:
                title:
                  - text:
                      content: $inputs.title
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          pageUrl: $response.body#/url
      - stepId: create-task
        description: Create an Asana task to execute the spec.
        operationId: $sourceDescriptions.asanaTasksApi.createTask
        requestBody:
          contentType: application/json
          payload:
            data:
              name: $inputs.title
              notes: $steps.create-page.outputs.pageUrl
              projects:
                - $inputs.asanaProjectId
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          taskId: $response.body#/data/gid
      - stepId: notify-slack
        description: Notify the team about the new task in Slack.
        operationId: $sourceDescriptions.slackChatApi.postChatPostmessage
        requestBody:
          contentType: application/json
          payload:
            channel: $inputs.slackChannel
            text: $steps.create-page.outputs.pageUrl
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
    outputs:
      pageUrl: $steps.create-page.outputs.pageUrl
      taskId: $steps.create-task.outputs.taskId
      messageTs: $steps.notify-slack.outputs.messageTs