3 Ways to Add Users to a Team in Microsoft Teams

Adding people to a team in Microsoft Teams can be quick or controlled. Maybe you’re onboarding a project group, inviting external guests, or keeping membership aligned with policy.
We’ll cover three practical paths: owner adds inside Teams, shareable join links or codes for self-serve, and admin-led changes via Microsoft 365 groups/Azure AD for scale. You’ll know when to use each and the permissions required.
Table of Contents
Use Microsoft Teams’s UI
Here, you’ll use the Microsoft Teams app to add people to a team. These steps follow Microsoft’s own guidance for adding members and guests through the Teams UI.
Open Teams and find your team
- Open the desktop or web app.
- Select Teams on the left.
- Point to the team you want to update.
Open the team menu and choose Add member
- Select More options (…) next to the team name.
- Choose Add member.
Search for the person or enter an email
- For someone in your organization:
- Start typing their name. Pick the right person from the list.
- For a guest outside your organization:
- Enter their full email address.
- Teams will label them as Guest after you add them.
Choose their role
- After you add them, set their role:
- Member is the default for most people.
- Owner can manage settings, members, and channels.
- You can change roles anytime under More options (…) > Manage team > Members.
Finish and confirm
- Select Add, then Close.
- What they see:
- Members get a notification in Teams.
- Guests get an email invitation. They join after accepting it.
If Add member is missing or grayed out
- Only team owners can add people. Ask an owner to promote you or add the person for you.
- If you cannot add guests, your admin may have guest access turned off.
- If search does not find a coworker, they may not have a Microsoft 365 account in your tenant yet.
Edit or remove later
- Go to More options (…) > Manage team.
- Use the Members tab to:
- Change a person’s role.
- Remove someone from the team.
Use Torii
Instead of working directly in Microsoft Teams, you can use Torii, a SaaS Management Platform, to add user to teams in Microsoft Teams. SMPs let you centrally manage SaaS subscriptions and integrations, making it simple to programmatically onboard/offboard users, review subscription and license details, and more.
Where Microsoft Teams requires manual steps, Torii enables automation so the action runs automatically once a trigger is met. Triggers could include a new hire, an employee departure, a contract renewal, etc. This can save significant time when the task is repeated regularly.
To add user to teams in Microsoft Teams directly from Torii, follow these steps:
1. Sign up for Torii
Contact Torii, and ask for your free two-week proof-of-concept.
2. Connect your Microsoft Teams account to Torii
Once your account is live, connect Microsoft Teams to Torii (assuming you already have an account). Here are the instructions for the Microsoft Teams integration.

3. Create a Torii workflow for Microsoft Teams
In Torii, create an automated workflow to add user to teams in Microsoft Teams. Go to the Workflows tab, choose a trigger, and configure an action that will add user to the appropriate team. From then on, whenever the trigger is met, Microsoft Teams will be updated automatically.

Use Microsoft Teams’s API
Use Microsoft Graph to add a user to a team in Microsoft Teams. You’ll call the Teams endpoints in Microsoft Graph to authenticate, find the right IDs, and add the member. No UI clicks needed.
1) Get an access token for Microsoft Graph
You need a bearer token with the right permissions. The Teams docs call out these scopes:
- Application permissions: TeamMember.ReadWrite.All
- Delegated permissions: TeamMember.ReadWrite.All or Group.ReadWrite.All
Choose an auth flow:
- App-only: client credentials for daemon or service apps.
- Delegated: authorization code flow when acting as a signed-in user.
Example token request (client credentials):
curl -X POST "https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-D "client_id={client-id}&client_secret={client-secret}&grant_type=client_credentials&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default"
2) Find the team ID and the user ID
Teams are backed by Microsoft 365 groups. The team ID is the group ID.
Get the team (group) ID by display name:
curl -X GET "https://graph.microsoft.com/v1.0/groups?$filter=resourceProvisioningOptions/Any(x:x%20eq%20'Team')%20and%20displayName%20eq%20'Marketing'" \
-H "Authorization: Bearer $TOKEN"
Get the user’s ID by UPN (email):
curl -X GET "https://graph.microsoft.com/v1.0/users/[email protected]?$select=id,displayName,userPrincipalName" \
-H "Authorization: Bearer $TOKEN"
3) Add the user to the team
Use the Teams “Add member to team” endpoint. The request body uses aadUserConversationMember. Set roles to [“owner”] for an owner, or [] for a member.
Example curl:
curl -X POST "https://graph.microsoft.com/v1.0/teams/{team-id}/members" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-D '{
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": [],
"[email protected]": "https://graph.microsoft.com/v1.0/users('\''{user-id}'\'')"
}'
Expected result: 201 Created with the new member resource in the response.
Make the user an owner:
-D '{
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": ["owner"],
"[email protected]": "https://graph.microsoft.com/v1.0/users('\''{user-id}'\'')"
}'
4) Add multiple users in one request (batch)
You can batch several member adds. Use $batch and include each “add member” as a sub-request.
Example batch:
curl -X POST "https://graph.microsoft.com/v1.0/$batch" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-D '{
"requests": [
{
"id": "1",
"method": "POST",
"url": "/teams/{team-id}/members",
"headers": { "Content-Type": "application/json" },
"body": {
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": [],
"[email protected]": "https://graph.microsoft.com/v1.0/users('\''{user-id-1}'\'')"
}
},
{
"id": "2",
"method": "POST",
"url": "/teams/{team-id}/members",
"headers": { "Content-Type": "application/json" },
"body": {
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": ["owner"],
"[email protected]": "https://graph.microsoft.com/v1.0/users('\''{user-id-2}'\'')"
}
}
]
}'
5) Add the user to a private or shared channel (optional)
Standard channels inherit team membership. For private or shared channels, add members at the channel level after the user is in the team.
curl -X POST "https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}/members" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-D '{
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": [],
"[email protected]": "https://graph.microsoft.com/v1.0/users('\''{user-id}'\'')"
}'
6) Verify the membership
List team members:
curl -X GET "https://graph.microsoft.com/v1.0/teams/{team-id}/members" \
-H "Authorization: Bearer $TOKEN"
Get a single member (by team member resource ID from the add response):
curl -X GET "https://graph.microsoft.com/v1.0/teams/{team-id}/members/{membership-id}" \
-H "Authorization: Bearer $TOKEN"
7) Common errors and quick fixes
- 403 Forbidden:
- Missing permission. For app-only, grant and admin-consent TeamMember.ReadWrite.All.
- 404 NotFound:
- The team ID or user ID is wrong, or the team isn’t provisioned yet.
- 409 Conflict or 400 BadRequest with “member already exists”:
- The user is already in the team. Treat as success in your workflow.
- 400 BadRequest “ConversationMemberReferencesNotExist”:
- For guests, invite them to the tenant first using the invitations API. Then add them to the team.
- 401 Unauthorized:
- Token expired or wrong audience. Request a new token with the Graph .default scope.
Notes from the Microsoft Graph Teams docs:
- Use POST /teams/{team-id}/members with microsoft.graph.aadUserConversationMember to add people to a team.
- Set roles to [“owner”] to promote owners. Empty roles makes them members.
- For private or shared channels, use POST /teams/{team-id}/channels/{channel-id}/members.
Frequently Asked Questions
You have three primary options to add people to a Microsoft Teams team: use the Teams app (owners add members/guests), enable join links or codes for self-serve, or manage membership at scale via Microsoft 365/Azure AD, including automation with Torii or Graph API.
Only team owners can add members in the Teams UI; admins control guest access via tenant settings. For API automation, grant TeamMember.ReadWrite.All (app or delegated) and admin consent for app-only flows.
Open the Teams desktop or web app, select Teams and point to the team, choose More options > Add member, search a coworker or enter an external email for a guest, set role (member or owner), then Add and Close.
Use Torii to build workflows that add users on triggers like new hires, departures, or renewals, or script Microsoft Graph calls. Connect your Teams account to Torii, create a workflow, or implement Graph-based automation with tokens and scheduled jobs.
Get a bearer token with TeamMember.ReadWrite.All, find the team (group) ID and user ID, then POST to /teams/{team-id}/members with microsoft.graph.aadUserConversationMember. Set roles to [owner] to promote or leave empty for members.
403 Forbidden: missing permissions or lack of admin consent. 404: wrong team or user ID or unprovisioned team. 409/400: member exists or invalid request; invite guests first. 401: expired or wrong token audience.