• 24
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      Atlassian Update - Mar 4, 2025

      Hi everyone,
      We're currently rolling this out and you should be able to access this feature by the end of March 2025. Please see more in this post community post here


      Update from Nov 2024

      The ability to sync Atlassian Teams from an identity provider is currently in progress. Once this feature is available, admins will be able to create Atlassian Teams that have their membership managed only through groups synced from your identity provider directory via SCIM.

      We will update our Cloud roadmap when we have more information on the timeline for this feature.

      Problem Definition

      Atlassian Access currently does not support provisioning users to an Atlassian team.

      Suggested Solution

      Support syncing users to an Atlassian team.

          Form Name

            [ACCESS-1240] Sync Atlassian teams from identity provider via SCIM

            Pinned comments

            Pinned by April Chi

            April Chi added a comment -

            Hi all 👋

            Apologies, this request was incorrectly closed.

            I'm excited to announce that this is now being rolled out - we've introduced a new Team configuration called Managed Teams.

            Currently, there’s only one type of team, that can either be invite-only or open to all. By the end of March, eligible customers should start being able to use Managed Teams. For more information about the feature, please see this community post here.

            For support documentation on how to use the feature, please see here.

            I will post another update when we have rolled out this feature to 100% of customers.

            Thank you once again for your contributions and support in bringing this to life 🙏

            Your feedback, questions, and thoughts are invaluable to us - please feel free to comment below.

            Cheers,
            April

            April Chi added a comment - Hi all 👋 Apologies, this request was incorrectly closed. I'm excited to announce that this is now being rolled out - we've introduced a new Team configuration called Managed Teams . Currently, there’s only one type of team, that can either be invite-only or open to all. By the end of March, eligible customers should start being able to use Managed Teams. For more information about the feature, please see this community post here . For support documentation on how to use the feature, please see here . I will post another update when we have rolled out this feature to 100% of customers. Thank you once again for your contributions and support in bringing this to life 🙏 Your feedback, questions, and thoughts are invaluable to us - please feel free to comment below. Cheers, April

            All comments

            Don't really need this for our customer, But! Since "user list" macro is to be deprecated we need this.. Will it be ready before user list macro is removed in september?

            Lise Wåsjø added a comment - Don't really need this for our customer, But! Since "user list" macro is to be deprecated we need this.. Will it be ready before user list macro is removed in september?

            April Chi added a comment -

            Hey 121b87ce6f8e,

            Thanks for reaching out and appreciate the feedback. Yes, you would connect a team to a group.

            Currently, we have an API that allows you to automate the creation of these group-linked teams. See below and let me know if it fits your use case. Any feedback appreciated!

            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.

            Below details are necessary for code:

            • SiteId: Go to https:// {SiteName}.atlassian.net/_edge/tenant_info
            • User API Key: Go to Site → Profile → Settings → Manage Account → Security → Manage API Keys → Create API Token
            • OrgId & Admin API Key: Admin Hub → Settings → API Keys → Create API Key.

            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

            1. Load environment variables from .env file
              load_dotenv()
            1. 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):

            1. Construct the initial URL for getting groups
              base_group_url = f"https://api.atlassian.com/admin/v1/orgs/
              Unknown macro: {org_id}
              /groups/search"
            2. Define headers for getting groups
              group_headers =
              Unknown macro: { "Accept"}
            1. Define payload for group search
              group_payload = json.dumps(
              Unknown macro: { "limit"}
              )
            1. Start with the base URL
              next_link = base_group_url

            while next_link:

            1. Make the POST request to get groups
              group_response = requests.post(next_link, data=group_payload, headers=group_headers)
            1. 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:

            1. 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:
              Unknown macro: {group_id}
              ")
              print(f"Group Name:
              Unknown macro: {group_name}
              ")
              print(f"Group Description:
              Unknown macro: {group_description}
              ")
            1. Constructing the basic authentication header for team creation
              auth_string = f"
              Unknown macro: {email}
              :
              Unknown macro: {api_user_key}
              "
              auth_header = b64encode(auth_string.encode()).decode()
            1. Define the URL for creating a team
              external_team_url = f'https://
              Unknown macro: {site_url}
              /gateway/api/public/teams/v1/org/

            /teams/external'

            1. Define headers for creating a team
              team_headers =
              Unknown macro: { "Accept"}
            2. Define payload for creating a team based on group data
              team_payload = json.dumps(
              Unknown macro: { "description"}
              )
            1. Make the POST request to create a team
              team_response = requests.post(external_team_url, data=team_payload, headers=team_headers)
            1. Check response status for team creation
              if team_response.status_code == 201:
              team = team_response.json()
              print(f"Team Created Successfully for
              Unknown macro: {group_name}
              :")
              print(json.dumps(team, sort_keys=True, indent=4, separators=(",", ": ")))
              else:
              print(f"Failed to create team for

            . Status Code:
            Unknown macro: {team_response.status_code}
            ")
            print(f"Response:
            Unknown macro: {team_response.text}
            ")

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

            April Chi added a comment - Hey 121b87ce6f8e , Thanks for reaching out and appreciate the feedback. Yes, you would connect a team to a group. Currently, we have an API that allows you to automate the creation of these group-linked teams. See below and let me know if it fits your use case. Any feedback appreciated! — 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. Below details are necessary for code: SiteId: Go to https:// {SiteName}.atlassian.net/_edge/tenant_info User API Key : Go to Site → Profile → Settings → Manage Account → Security → Manage API Keys → Create API Token OrgId & Admin API Key: Admin Hub → Settings → API Keys → Create API Key. 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/ Unknown macro: {org_id} /groups/search" Define headers for getting groups group_headers = Unknown macro: { "Accept"} Define payload for group search group_payload = json.dumps( Unknown macro: { "limit"} ) 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: Unknown macro: {group_id} ") print(f"Group Name: Unknown macro: {group_name} ") print(f"Group Description: Unknown macro: {group_description} ") Constructing the basic authentication header for team creation auth_string = f" Unknown macro: {email} : Unknown macro: {api_user_key} " auth_header = b64encode(auth_string.encode()).decode() Define the URL for creating a team external_team_url = f'https:// Unknown macro: {site_url} /gateway/api/public/teams/v1/org/ /teams/external' Define headers for creating a team team_headers = Unknown macro: { "Accept"} Define payload for creating a team based on group data team_payload = json.dumps( Unknown macro: { "description"} ) 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 Unknown macro: {group_name} :") print(json.dumps(team, sort_keys=True, indent=4, separators=(",", ": "))) else: print(f"Failed to create team for . Status Code: Unknown macro: {team_response.status_code} ") print(f"Response: Unknown macro: {team_response.text} ") Update the next link for pagination next_link = groups_data.get('links', {}).get('next', None) if next_link: next_link = f" Unknown macro: {base_group_url} ?cursor= Unknown macro: {next_link} " else: print(f"Failed to retrieve groups. Status Code: Unknown macro: {group_response.status_code} ") print(f"Response: Unknown macro: {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)

            s.weber added a comment - - edited

            HI Atlassian Team & 4b7910ae10b4 ,

             

            I just had a look on the documentation on how to implement this.

            Once you Mentioned "Sync Teams via SCIM Provisioning", I figured it would generate Teams out of an Attribute out of the user-profile, which represents the Team a user is in.

            With this we would see the benefit of a very high efficiency, as no team or group need to be created or maintained manually. It always represents the Org Data Live.

             

            If I understood correctly, in the current implementation we need to create a Group for each Team, and have the members Synchronized with the Group somehow. Additionally, we need to manually link each Team to an AD-Group, correct?

            In our case, talking a few hundred Teams, this would cause a massive amount of manual work, not just once - FOREVER....

             

            Is this really the approach you chose? Am I missing something here?

             

            Thanks a lot

            Sascha

            s.weber added a comment - - edited HI Atlassian Team & 4b7910ae10b4 ,   I just had a look on the documentation on how to implement this. Once you Mentioned "Sync Teams via SCIM Provisioning", I figured it would generate Teams out of an Attribute out of the user-profile, which represents the Team a user is in. With this we would see the benefit of a very high efficiency, as no team or group need to be created or maintained manually. It always represents the Org Data Live.   If I understood correctly, in the current implementation we need to create a Group for each Team, and have the members Synchronized with the Group somehow. Additionally, we need to manually link each Team to an AD-Group, correct? In our case, talking a few hundred Teams, this would cause a massive amount of manual work, not just once - FOREVER....   Is this really the approach you chose? Am I missing something here?   Thanks a lot Sascha

            April Chi added a comment -

            680c8aa44991

            Thanks for reaching out and apologies for the delayed response! I believe this ticket was closed incorrectly, it's currently being rolled out - see the pinned comment. The relevant public roadmap item is here.

            Please let me know if you have any feedback when your client adopts this feature.

            April Chi added a comment - 680c8aa44991 Thanks for reaching out and apologies for the delayed response! I believe this ticket was closed incorrectly, it's currently being rolled out - see the pinned comment. The relevant public roadmap item is here . Please let me know if you have any feedback when your client adopts this feature.

            Pinned by April Chi

            April Chi added a comment -

            Hi all 👋

            Apologies, this request was incorrectly closed.

            I'm excited to announce that this is now being rolled out - we've introduced a new Team configuration called Managed Teams.

            Currently, there’s only one type of team, that can either be invite-only or open to all. By the end of March, eligible customers should start being able to use Managed Teams. For more information about the feature, please see this community post here.

            For support documentation on how to use the feature, please see here.

            I will post another update when we have rolled out this feature to 100% of customers.

            Thank you once again for your contributions and support in bringing this to life 🙏

            Your feedback, questions, and thoughts are invaluable to us - please feel free to comment below.

            Cheers,
            April

            April Chi added a comment - Hi all 👋 Apologies, this request was incorrectly closed. I'm excited to announce that this is now being rolled out - we've introduced a new Team configuration called Managed Teams . Currently, there’s only one type of team, that can either be invite-only or open to all. By the end of March, eligible customers should start being able to use Managed Teams. For more information about the feature, please see this community post here . For support documentation on how to use the feature, please see here . I will post another update when we have rolled out this feature to 100% of customers. Thank you once again for your contributions and support in bringing this to life 🙏 Your feedback, questions, and thoughts are invaluable to us - please feel free to comment below. Cheers, April

            4b7910ae10b4, I'd @kanguyen but I don't seem to be able to search for her.

            Are you able to advise when this will be rolled out to customers? We have a couple of clients who are interested in this feature, as I can't find it in the roadmap.

            Justin Deutsch added a comment - 4b7910ae10b4 , I'd @ kanguyen but I don't seem to be able to search for her. Are you able to advise when this will be rolled out to customers? We have a couple of clients who are interested in this feature, as I can't find it in the roadmap.

            April Chi added a comment -

            Hi everyone,

            My name is April and I'm a product manager at Atlassian 👋

            We’re excited to announce the launch of SCIM-synced Atlassian Teams. We’re inviting you to join our Early Access Program (EAP) where you'll be among the first to use and provide feedback on it.

            Why join this Early Access Program

            Participating will give you the opportunity to influence the development of Atlassian Teams. By joining, you’ll gain the ability to:

            • Connect Atlassian Teams to Groups SCIM-synced to an external directory such as ActiveDirectory 
            • Connect Atlassian Teams to local groups (later down the track)
            • Provide feedback on Admin-Managed Teams

            About the Early Access Program

            We're looking for a select group of organizations who are enthusiastic about shaping our product's direction. You are:

            • Using at least 1 Premium or Enterprise edition of Jira Cloud, Confluence Cloud, or Compass (not Server/DC)
            • Enthusiastic about shaping Atlassian Team’s direction by regularly participating in the Community Group and providing feedback

            How to join

            1. Fill out this form with your details (~2 minutes)

            2. We’ll reach out with a confirmation email with further instructions if you qualify.

            Important note: Filling in the form doesn’t guarantee participation in the EAP.

            Look forward to hearing from you. Let me know if you have any questions by commenting on this thread.

            April Chi added a comment - Hi everyone, My name is April and I'm a product manager at Atlassian 👋 We’re excited to announce the launch of SCIM-synced Atlassian Teams. We’re inviting you to join our Early Access Program (EAP) where you'll be among the first to use and provide feedback on it. Why join this Early Access Program Participating will give you the opportunity to influence the development of Atlassian Teams. By joining, you’ll gain the ability to: Connect Atlassian Teams to Groups SCIM-synced to an external directory such as ActiveDirectory  Connect Atlassian Teams to local groups (later down the track) Provide feedback on Admin-Managed Teams About the Early Access Program We're looking for a select group of organizations who are enthusiastic about shaping our product's direction. You are: Using at least 1 Premium or Enterprise edition of Jira Cloud, Confluence Cloud, or Compass (not Server/DC) Not planning a  Cloud to Cloud migration  in the next 6 months Not planning a  organization consolidation or merge  in the next 6 months Enthusiastic about shaping Atlassian Team’s direction by regularly participating in the Community Group and providing feedback How to join 1. Fill out  this form   with your details (~2 minutes) 2. We’ll reach out with a confirmation email with further instructions if you qualify. Important note: Filling in the form doesn’t guarantee participation in the EAP. Look forward to hearing from you. Let me know if you have any questions by commenting on this thread.

            Bhavya Nag added a comment -

            Hi everyone,

            Thanks for all your feedback on this ticket. 

            The ability to sync Atlassian Teams from an identity provider is currently in progress. Once this feature is available, admins will be able to create Atlassian Teams that have their membership managed only through groups synced from your identity provider directory via SCIM.

            We will update our Cloud roadmap when we have more information on the timeline for this feature.

            Thanks,

            Bhavya Nag
            Product Manager, Atlassian Cloud

            Bhavya Nag added a comment - Hi everyone, Thanks for all your feedback on this ticket.  The ability to sync Atlassian Teams from an identity provider is currently in progress. Once this feature is available, admins will be able to create Atlassian Teams that have their membership managed only through groups synced from your identity provider directory via SCIM. We will update our  Cloud roadmap  when we have more information on the timeline for this feature. Thanks, Bhavya Nag Product Manager, Atlassian Cloud

            April Chi added a comment -

            Hey everyone,

            Thanks for all your comments and votes on this. We're conducting research on how admins use Atlassian Teams across their organisation. We're inviting admins to participate in our upcoming customer research where you'll receive $100USD after completing the session.

            What's involved:

            • Sessions will be 1 hour and conducted over Zoom
            • During the session, we'll get to know you and your organisation and we'll ask about your experience with this feature request

            If you're interested in participating, please contact me at achi@atlassian.com and we can organise a time that works.

            If you have any other questions, please reach out to me directly or comment in this thread. 

            Regards,

            April

            April Chi added a comment - Hey everyone, Thanks for all your comments and votes on this. We're conducting research on how admins use Atlassian Teams across their organisation. We're inviting admins to participate in our upcoming customer research where you'll receive $100USD after completing the session. What's involved: Sessions will be 1 hour and conducted over Zoom During the session, we'll get to know you and your organisation and we'll ask about your experience with this feature request If you're interested in participating, please contact me at  achi@atlassian.com  and we can organise a time that works. If you have any other questions, please reach out to me directly or comment in this thread.  Regards, April

            The usability of the Teams would increase greatly if we could provision members from our idp.

            Rune Rasmussen added a comment - The usability of the Teams would increase greatly if we could provision members from our idp.

              4b7910ae10b4 April Chi
              tbrothers Tyler B [Atlassian]
              Votes:
              42 Vote for this issue
              Watchers:
              39 Start watching this issue

                Created:
                Updated: