Forums

Articles
Create
cancel
Showing results forĀ 
Search instead forĀ 
Did you mean:Ā 

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

  • 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

22 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 • # people like this
Christopher Franzke
Contributor
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 • # 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 • # 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 • # people like this
April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 9, 2025

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.
March 9, 2025

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 • # people like this
April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 9, 2025

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
March 10, 2025

@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.
March 10, 2025

Thanks for that @April Chi 

Rodney Dsouza (Atlassian Certified Expert)
Contributor
March 10, 2025

@April Chi  do you know if there are any plans to have these Teams restrict the Jira 'Assignee' field to only members of the selected Team on an issue?    If not the Jira 'Assignee' field then any other custom field where the options are restricted to only members of the selected Team on an issue?   Thanks in advance.

 

Todd Thomas
Contributor
March 11, 2025

@April Chi , any updates on support for Teams using JQL? https://jira.atlassian.com/browse/JRACLOUD-81400

Until Teams are supported via JQL, they will continue to be a feature we can't utilize since it can't be used for reporting, filtering, queues, etc.

I love building in a Teams field (Atlassian is a team-based company after all), but we need this new metadata to support the existing structures for getting work done. Until then we'll need to rely on a homegrown solution to notify people about their work.

I'm happy to chat about this further if understanding our situation would be useful to you- just let me know. Thanks for your work making Teams more useful!

Like • # people like this
April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 11, 2025

Hey @Haddon Fisher @Yatish Madhav and @Lucas Knorr ,

Thanks for the response and appreciate the question. Acknowledging that I've read these response and will get back to you on this one properly by the end of the week!

 

Like • Haddon Fisher likes this
Daniel Bagiński
Contributor
March 17, 2025

Hello,

I'm glad to see this finally introduced! However, there are still a few missing features that are crucial for full functionality:

  • permission to limit who can create new Teams
  • Teams support in JQL (membersof)
  • unified Teams across the system – Teams in Plans should be fully integrated so we use only one "Team" entity.

Without the first two points, Teams still lack essential functionality.

Additional requested features:

cc @April Chi 

Like • # people like this
April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 18, 2025

 @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.

 

Thanks @Filip Labarque . We've added this to our backlog and will be discussing the priority of it. Let me know if you're fine with us reaching out here in the future to learn more about this.

April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 18, 2025

Hey @Todd Thomas ,

Until Teams are supported via JQL, they will continue to be a feature we can't utilize since it can't be used for reporting, filtering, queues, etc.

I love building in a Teams field (Atlassian is a team-based company after all), but we need this new metadata to support the existing structures for getting work done. Until then we'll need to rely on a homegrown solution to notify people about their work.

I'm happy to chat about this further if understanding our situation would be useful to you- just let me know. Thanks for your work making Teams more useful!

Appreciate you taking the time out too give this feedback. Based on the ticket you have linked, I assume that is specific to a `membersOf` JQL function rather than being able to search for the issues linked to a Team in JQL, is that correct?

April Chi
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 18, 2025

Hey @Rodney Dsouza (Atlassian Certified Expert) ,

@April Chi  do you know if there are any plans to have these Teams restrict the Jira 'Assignee' field to only members of the selected Team on an issue?    If not the Jira 'Assignee' field then any other custom field where the options are restricted to only members of the selected Team on an issue?   Thanks in advance.

This is on our radar but our roadmap in the next few months will be focussed on giving Teams more controls so that customers can reflect their organisation more accurately. You might be able to use an automation for this albeit it may only be set to a certain user of a particular team: https://community.atlassian.com/forums/Jira-questions/Using-the-new-Team-Field-in-automation-condition/qaq-p/2570404.

Happy to discuss this and see how your organisation works and the use case behind this feature. Let me know. 

Filip Labarque
Contributor
March 19, 2025

Thanks @Filip Labarque . We've added this to our backlog and will be discussing the priority of it. Let me know if you're fine with us reaching out here in the future to learn more about this.

@April Chi , no problem

Todd Thomas
Contributor
March 19, 2025

Appreciate you taking the time out too give this feedback. Based on the ticket you have linked, I assume that is specific to a `membersOf` JQL function rather than being able to search for the issues linked to a Team in JQL, is that correct?

@April Chi Yes and more. There absolutely needs to be some JQL to filter on Teams since JQL powers so many other things. Additionally, the Teams field needs to be supported through gadgets in dashboards so you could use them for things like Two Dimensional Filter, Pie Chart, and Issue Statistics gadgets. Without this support, we don't have visibility on understanding the work being performed by teams and the trends related to their work.

Currently, we rely on the Components field to act like Teams which can either be HR teams (Networking, Security, etc.) or service owners (Productivity, Service Desk, ERP system, etc.). It's also very useful since you can have more than one Component assigned, since often work can be divided between a variety of teams. And since the Component field is supported by dashboard gadgets, that makes it useful.  This also allows it to be leveraged through notification apps like Watch It to trigger emails when new, updated, or resolved issues come in for teams.

We'd love to see Teams replace this functionality natively. It starts with JQL support, needs to be extended to dashboard gadgets, and then have some sort of notification-based triggers on either JQL or Team ownership to make it truly useful.

Happy to meet to talk further if this would be helpful, too, April.

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 19, 2025

@Todd Thomas hit the nail on the head here - this concept is so exciting, but it's hard to build a process on top of something when it's support is so piecemeal.

To pile on some things to Todd's list:

- Instead of the 'Team' custom field, a 'Team Picker (Single Select)' and 'Team Picker (Multi-Picker)'. Ideally we'd be able to constrain the teams, but if nothing else we'd be able to link to the right object.

- It would be great to be able to link Confluence spaces and\or Jira projects to teams. If nothing else, it'll be way easier than hoping they've named their project something related, but the possibilities through Automation are pretty exciting.

Like • Todd Thomas likes this
Ronny Katzenberger
Contributor
March 27, 2025

This is great and will help us create a clean list of "official" teams.
I've brought this up with you guys directly: We need to have the ability to restrict the team field to only select from managed teams. Maybe this wouldn't be the existing team field and introducing a new field called "Managed Teams" would be the better fit.

In essence, we only want managed teams to appear on the list when assigning Roadmap Initiatives (or sub-initiatives) to a team.

Like • Todd Thomas likes this
Elle Longwell
Contributor
April 1, 2025

Managed Teams finally showed up in our tenant this week only for us to find out we can't actually use it. šŸ˜ž It looks like it forces you to rename the team to match the IdP group, which wouldn't work for us as we use a specific naming schema for groups (for automation and search purposes). Making the Jira team match our internal naming schema for Okta groups just doesn't make sense for end users and would make things more complicated.

I guess we're going to have to go back to managing teams via the api. 😫 @April Chi is renaming going to be optional eventually or is going to stay this way?

image (18).png

Like • Connor likes this

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events