Microsoft Teams · Arazzo Workflow

Microsoft Teams Provision Channel

Version 1.0.0

Confirm a team, create a channel in it, and post an opening message.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub ChatCollaborationCommunicationsMicrosoft-365ProductivityVideo ConferencingArazzoWorkflows

Provider

microsoft-teams

Workflows

provision-channel
Create a channel in an existing team and seed it with a first message.
Resolves the team, creates a standard channel, and immediately posts an opening message so the channel is not empty when members arrive.
3 steps inputs: accessToken, channelDescription, channelName, messageContent, teamId outputs: channelId, messageId
1
confirmTeam
Read the target team to confirm it exists and is reachable before creating a channel inside it.
2
createChannel
Create a new standard channel in the confirmed team using the supplied name and description.
3
postOpeningMessage
Post an opening HTML message into the newly created channel so it has initial content.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Teams Provision Channel
  summary: Confirm a team, create a channel in it, and post an opening message.
  description: >-
    A common onboarding pattern when standing up a new collaboration space. The
    workflow first confirms the target team exists, then creates a new channel
    inside it, and finally posts an opening message into the freshly created
    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: channelsApi
  url: ../openapi/microsoft-teams-channels-api-openapi.yml
  type: openapi
- name: messagesApi
  url: ../openapi/microsoft-teams-messages-api-openapi.yml
  type: openapi
- name: teamsApi
  url: ../openapi/microsoft-teams-teams-api-openapi.yml
  type: openapi
workflows:
- workflowId: provision-channel
  summary: Create a channel in an existing team and seed it with a first message.
  description: >-
    Resolves the team, creates a standard channel, and immediately posts an
    opening message so the channel is not empty when members arrive.
  inputs:
    type: object
    required:
    - accessToken
    - teamId
    - channelName
    - messageContent
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer token with Channel.Create and ChatMessage.Send scopes.
      teamId:
        type: string
        description: The unique identifier of the team to create the channel in.
      channelName:
        type: string
        description: The display name of the new channel.
      channelDescription:
        type: string
        description: A description for the new channel.
      messageContent:
        type: string
        description: The HTML body of the opening message to post.
  steps:
  - stepId: confirmTeam
    description: >-
      Read the target team to confirm it exists and is reachable before creating
      a channel inside it.
    operationId: getTeam
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: team-id
      in: path
      value: $inputs.teamId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      teamId: $response.body#/id
  - stepId: createChannel
    description: >-
      Create a new standard channel in the confirmed team using the supplied
      name and description.
    operationId: createChannel
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: team-id
      in: path
      value: $inputs.teamId
    requestBody:
      contentType: application/json
      payload:
        displayName: $inputs.channelName
        description: $inputs.channelDescription
        membershipType: standard
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      channelId: $response.body#/id
  - stepId: postOpeningMessage
    description: >-
      Post an opening HTML message into the newly created channel so it has
      initial content.
    operationId: sendChannelMessage
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: team-id
      in: path
      value: $inputs.teamId
    - name: channel-id
      in: path
      value: $steps.createChannel.outputs.channelId
    requestBody:
      contentType: application/json
      payload:
        body:
          contentType: html
          content: $inputs.messageContent
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      messageId: $response.body#/id
  outputs:
    channelId: $steps.createChannel.outputs.channelId
    messageId: $steps.postOpeningMessage.outputs.messageId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/microsoft-teams-provision-channel-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.