Provisioning Microsoft Teams channels manually is fine for a handful of teams, but it quickly becomes unsustainable when onboarding projects at scale. Using the Microsoft Graph API through PowerShell, you can create teams, add channels, and assign members programmatically — turning a 15-minute task into a 15-second script.
Prerequisites
Connect to Microsoft Graph with the Team.Create, Channel.Create, and TeamMember.ReadWrite.All scopes.
Connect-MgGraph -Scopes "Team.Create","Channel.Create","TeamMember.ReadWrite.All","Group.ReadWrite.All" Creating a New Team
Create the team from scratch using the standard template.
$team = New-MgTeam -DisplayName "Project Phoenix" `
-Description "Cross-functional project team" `
-Visibility "Private" `
-AdditionalProperties @{
"[email protected]" = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')"
}
Write-Host "Team created: $($team.Id)" Adding Standard Channels
Provision a consistent set of channels that every project team should have.
$channels = @("Architecture","Deployments","Incidents","Documentation")
foreach ($channel in $channels) {
New-MgTeamChannel -TeamId $team.Id `
-DisplayName $channel `
-MembershipType "standard"
Write-Host "Created channel: $channel"
} Adding Members in Bulk
Import a list of UPNs from CSV and add each as either an owner or a member.
$members = Import-Csv "project-team.csv" # columns: UPN, Role
foreach ($m in $members) {
$user = Get-MgUser -UserId $m.UPN
$roles = if ($m.Role -eq "Owner") { @("owner") } else { @() }
New-MgTeamMember -TeamId $team.Id `
-AdditionalProperties @{
"@odata.type" = "#microsoft.graph.aadUserConversationMember"
"[email protected]" = "https://graph.microsoft.com/v1.0/users('$($user.Id)')"
roles = $roles
}
} Summary
Automating Teams provisioning through the Graph API ensures every project team starts with the same structure, membership, and channel layout. Wrap this into a self-service request backed by a Power Automate flow and your end users get instant, consistent team provisioning without raising a support ticket.