Microsoft Teams · Arazzo Workflow

Microsoft Teams Discover Channel Tabs

Version 1.0.0

List a team's channels and enumerate the tabs in a chosen channel.

1 workflow 1 source API 1 provider
View Spec View on GitHub ChatCollaborationCommunicationMicrosoft 365ProductivityVideo ConferencingArazzoWorkflows

Provider

microsoft-teams

Workflows

discover-channel-tabs
Resolve channels and list the tabs in a chosen channel.
Lists the team's channels and, when at least one exists, enumerates the tabs in the supplied channel.
2 steps inputs: accessToken, channelId, teamId outputs: tabs
1
listChannels
listChannels
List the channels in the team to confirm the target channel exists before listing its tabs.
2
listTabs
listChannelTabs
List the tabs configured in the chosen channel.

Source API Descriptions

Arazzo Workflow Specification

microsoft-teams-discover-channel-tabs-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Teams Discover Channel Tabs
  summary: List a team's channels and enumerate the tabs in a chosen channel.
  description: >-
    Tabs surface apps and content inside a channel. This workflow lists the
    channels in a team, branches on whether any channel exists, and enumerates
    the tabs configured in the chosen channel. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: teamsApi
  url: ../openapi/microsoft-teams-graph-api.yaml
  type: openapi
workflows:
- workflowId: discover-channel-tabs
  summary: Resolve channels and list the tabs in a chosen channel.
  description: >-
    Lists the team's channels and, when at least one exists, enumerates the tabs
    in the supplied channel.
  inputs:
    type: object
    required:
    - accessToken
    - teamId
    - channelId
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer token with Channel.ReadBasic.All and TeamsTab.Read.All scopes.
      teamId:
        type: string
        description: The unique identifier of the team.
      channelId:
        type: string
        description: The channel id to list tabs from.
  steps:
  - stepId: listChannels
    description: >-
      List the channels in the team to confirm the target channel exists before
      listing its tabs.
    operationId: listChannels
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: team-id
      in: path
      value: $inputs.teamId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      channels: $response.body#/value
    onSuccess:
    - name: channelsFound
      type: goto
      stepId: listTabs
      criteria:
      - context: $response.body
        condition: $.value.length > 0
        type: jsonpath
    - name: noChannels
      type: end
      criteria:
      - context: $response.body
        condition: $.value.length == 0
        type: jsonpath
  - stepId: listTabs
    description: >-
      List the tabs configured in the chosen channel.
    operationId: listChannelTabs
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: team-id
      in: path
      value: $inputs.teamId
    - name: channel-id
      in: path
      value: $inputs.channelId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tabs: $response.body#/value
  outputs:
    tabs: $steps.listTabs.outputs.tabs