Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Managed Teams are now available for Premium and Enterprise customers!

 

Hi everyone šŸ‘‹

My name is April, I'm a product manager working on Atlassian Teams.

I'm excited to announce that we're publicly releasing our new Team configuration called Managed Teams today. 

Currently, thereā€™s only one type of team, that can either be invite-only or open to all. From today onwards, you should be able to see Managed Teams.

All eligible customers will have access to Managed Teams by the end of March. 

**For those in the EAP, you will not experience any changes. 

managed-teams-config.png

This feature will be available for organizations with at least one Premium or Enterprise plan for Jira Cloud, Confluence Cloud, Loom, or Compass.

 

What are Managed Teams?

Managed Teams are teams that have been connected to a group, which becomes the source of truth for membership in that team. You can connect either an externally managed group or a local Atlassian group.

  • Managed Teams can only be created and deleted by organization admins in Atlassian Administration

  • The connected group acts as the source of truth membership, meaning:

    • Any membership changes to the group will be automatically reflected in the connected team

    • Team name will change to match the group, but organization admins can rename it on the team profile.

  • Since Managed Teams can only be changed by organization admins, they are given a Verified-1 verified indicator when shown across apps.

 

Why did we build this?

Your feedback was a big factor in this, as we heard from multiple organizations that were encountering these challenges:

  1. Having to manually create large Teams despite team structure existing in an external source already.

  2. Having to manually update Teams, which is unsustainable due to frequent reorganizations and employees joining or leaving.

  3. The risk of end users inadvertently connecting an 'unofficialā€™ Team to work used in critical reporting workflows.

Managed Teams are kept up-to-date with the connected group and remove the friction in keeping teams accurate and updated.

šŸ”Ø How to create a Managed Team

** The following can only be done if youā€™re an organization admin.

To create a managed team, you can either connect a group to an existing team or create a new one to connect to. The group you connect a team to can either be a SCIM-synced group or a local group.

  1. Find the group you want to connect in the Groups directory in Atlassian Admin.

  2. On the groupā€™s profile page, find the Create team or Connect team button near the members list.

    1. For teams connected to SCIM-synced groups, team membership will mirror the groupā€™s membership thatā€™s pulled from an external source.

    2. For teams connected to local groups, team membership mirrors the connected groupā€™s.

create-managed-team.gif

šŸ¤ Incorporate Managed Teams into your work

Associate your work with Managed Teams: Teams indicated by a Verified-1 are Managed Teams that have been ā€˜verifiedā€™ by an admin.

managed-team-product-dropdwon.gif

 

View the Managed Team and their work: End users and org admins can view Managed Teams and their activity in their own page indicated by Verified-1 .

view-managed-team.png

 

šŸ‘“ Oversee your Managed Teams

Keep your Managed Team secure: Managed Teams cannot be created, deleted, or managed by end users. It mirrors the metadata in the group - manage the membership in Atlassian Administration through the group.

oversee-managed-teams.png

 

šŸ“ View all Team activity in the audit log: View when your Teams are created, deleted, or edited in the audit log. This can be viewed for user managed Teams too if you have access to Atlassian Guard.

audit-log-managed-teams.png

Please comment below if you have any questions and I will endeavour to get back to you as soon as possible. 

Cheers,

April

10 comments

Filip Labarque
Contributor
March 3, 2025

This sounds great. Will a managed team also prevent the creation of teams with the same name?

Like ā€¢ 2 people like this
Christopher Franzke March 3, 2025

It is possible to add a Team to an Asset Object as attribute for automatically Team assignments? We are missing this Feature very hard :)

Like ā€¢ 2 people like this
Haddon Fisher
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 4, 2025

Hi April! I'd be curious if you could share Atlassian's long-term vision for "Teams".

With this change, the difference between a group and a managed team is (as far as I can tell) just where you can use them. If this is true, what is the intention of having two distinct and somewhat non-overlapping solutions to the same problem?

Like ā€¢ 3 people like this
Yatish Madhav
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 5, 2025

Thanks @April Chi  and @Atlassian!

This is great! I am looking forward to this change being rolled out to us!

I agree with @Haddon Fisher - there should be a good distinction between the 2 ... i would almost assume groups are only for org admin permissions while teams allows for some level of additional granular permissions down the road but again that would be something configurable on the same solution again.

When can I expect this to be rolled out on our instance? I thought I commented here yesterday but it didnt post - i searched our "Product updates" and I only see this

Screenshot from 2025-03-05 13-33-02.png

Like ā€¢ April Chi likes this
Lucas Knorr
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 6, 2025

As far as I understand, the improved interaction and collaboration opportunities are the main focus of "teams" in Atlassian. That's basically a good idea. However, I would like to see an option that allows you to prevent the creation of unmanaged teams. There should be an option for admins to be able to decide whether teams should be managed by their own team organizers or centrally by the admins. 

Like ā€¢ April Chi likes this
April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
yesterday at 5:05 PM

Hey @Filip Labarque ,

Thanks for reaching out and the question! There aren't any plans yet. From a user experience point of view, I understand it makes sense for team names to be unique though, but there are many steps required before we get to that point. 

So I can log this in our backlog, what's your use case and need for team names being unique? 

Like ā€¢ Filip Labarque likes this
April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
yesterday at 10:18 PM

Hey team, 

Adding to this, if you need to link teams <> groups in bulk, here's how to do it:

This new API enables you to automate the creation of group-linked teams, saving you time and effort. ā°

New Group Linked Team Creation API: POST /public/teams/v1/org/{orgId}/teams/external
Note: The API is available for customers using the new user management experience only. šŸ”’

We have also developed a script as a proof of concept for how admins can bulk create teams from groups using this new API. To do this, we will combine the Adminhub groups search API and our new group-linked teams API.

Walk through of script to bulk create grouped linked teams: Watch Video šŸŽ„

Below details are necessary for code: šŸ“‹

Replace your details from above in a .env file as well as the group names you are searching for. E.g., if you want to create linked teams for all groups that have ā€œmarketingā€ in their title, replace group_names_create_teams with ā€œmarketingā€.

Implementation šŸ› ļø

Here's a simplified python script to help you get started with the bulk team creation process. If you want to create a team for every group in your org, you could leave the group_name_to_teams string blank. This will iterate over all groups in your org. This script should only be used as a starting point and considered only as a proof of concept.


import os
from dotenv import load_dotenv
import requests
import json
from base64 import b64encode

# Load environment variables from .env file
load_dotenv()

# Retrieve environment variables
org_id = os.getenv("ORG_ID")
api_admin_key = os.getenv("API_ADMIN_KEY")
site_id = os.getenv("SITE_ID")
site_url = os.getenv("SITE_URL")
api_user_key = os.getenv("API_USER_KEY")
email = os.getenv("EMAIL")

group_name_to_create_teams = "cx"

def get_groups_and_create_team(org_id, api_admin_key, email, api_user_key):
    # Construct the initial URL for getting groups
    base_group_url = f"https://api.atlassian.com/admin/v1/orgs/{org_id}/groups/search"
    
    # Define headers for getting groups
    group_headers = {
        "Accept": "application/json",
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_admin_key}"
    }
    
    # Define payload for group search
    group_payload = json.dumps({
        "limit": 1000,  # Maximum number of groups to return
        "groupNames": {
            "contains": group_name_to_create_teams
        }
    })
    
    # Start with the base URL
    next_link = base_group_url
    
    while next_link:
        # Make the POST request to get groups
        group_response = requests.post(next_link, data=group_payload, headers=group_headers)
        
        # Check response status for group retrieval
        if group_response.status_code == 200:
            groups_data = group_response.json()
            groups = groups_data.get('data', [])
            
            print("Groups List Retrieved Successfully:")
            if (len(groups) == 0):
                print("No groups returned")

            for group in groups:
                # Print out group information
                group_id = group.get('id', 'Unknown ID')
                group_name = group.get('name', 'Unnamed Group')
                group_description = group.get('description', 'No description available')
                print(f"Group ID: {group_id}")
                print(f"Group Name: {group_name}")
                print(f"Group Description: {group_description}")

                # Constructing the basic authentication header for team creation
                auth_string = f"{email}:{api_user_key}"
                auth_header = b64encode(auth_string.encode()).decode()

                # Define the URL for creating a team
                external_team_url = f'https://{site_url}/gateway/api/public/teams/v1/org/{org_id}/teams/external'
                # Define headers for creating a team
                team_headers = {
                    "Accept": "application/json",
                    "Authorization": f"Basic {auth_header}",
                    "Content-Type": "application/json"
                }
                # Define payload for creating a team based on group data
                team_payload = json.dumps({
                    "description": group_description,
                    "externalReference" : {
                        "id": group_id,
                        "source": "ATLASSIAN_GROUP"
                    },
                    "siteId": site_id,
                })

                # Make the POST request to create a team
                team_response = requests.post(external_team_url, data=team_payload, headers=team_headers)

                # Check response status for team creation
                if team_response.status_code == 201:
                    team = team_response.json()
                    print(f"Team Created Successfully for {group_name}:")
                    print(json.dumps(team, sort_keys=True, indent=4, separators=(",", ": ")))
                else:
                    print(f"Failed to create team for {group_name}. Status Code: {team_response.status_code}")
                    print(f"Response: {team_response.text}")

            # Update the next link for pagination
            next_link = groups_data.get('links', {}).get('next', None)
            if next_link:
                next_link = f"{base_group_url}?cursor={next_link}"
        else:
            print(f"Failed to retrieve groups. Status Code: {group_response.status_code}")
            print(f"Response: {group_response.text}")
            # Exit the loop if there's an error
            break

# Call the function
get_groups_and_create_team(org_id, api_admin_key, email, api_user_key)
    

Feedback: šŸ’¬
We would love to hear your questions, feedback, and any ways we can continue to support admins who are managing teams!

Like ā€¢ Yatish Madhav likes this
April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
yesterday at 10:19 PM

Hey @Christopher Franzke ,

Not yet. Are you able to share how you do this and your use case? Also happy to chat about it if needed and see where we can start in the Assets world.

Regards,

April

Filip Labarque
Contributor
3 hours ago

@April Chi, by having duplicate teams we can't assure the correct team is selected when filling in that field. Neither can we trust the reporting to show the correct results, since some issues might contain a different team with the same name. For us there are essential. This problem is already on the backlog since 2023: https://jira.atlassian.com/browse/JRACLOUD-81901

Please give it the necessary priority.

Yatish Madhav
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
22 minutes ago

Thanks for that @April Chi 

Comment

Log in or Sign up to comment
TAGS
atlassian, team '25, conference, certifications, bootcamps, training experience, anaheim ca,

Want to make the most of Team ā€˜25?

Spend the day sharpening your skills in Atlassian Cloud Organization Admin or Jira Administration, then take the exam onsite. Already ready? Take one - or more - of 12 different certification exams while youā€™re in Anaheim at Team' 25.

Learn more
AUG Leaders

Upcoming Jira Events