Skip to main content

Bulk Teams Setup

Who is this for?

This is for those that joined Middleware recently, and would like to add a whole lot of people to see related insights as quickly as possible.

Creating teams and members one at a time - from scratch, can be repetitive and tedious.

So we have a solution for you to bulk create a bunch of teams along with members and managers added to them.

Note: Simply adding members and managers to a team won't be enough. You'll have to go into the various teams later to set up their repos, projects, and incident sources. Further instructions in the Teams documentation.

Instructions

Getting Started

  1. Find and click the button that says “Bulk create teams” on this screen.
    Click to expand
  2. A modal should open, which would look like this:
    Click to expand
  3. The UI should feel pretty self explanatory, but this document would cover a few possible caveats.

Obtaining the CSV

  1. Click the tile that says “Download”, to download a “Template CSV” file which will basically be the template that you need to fill in.
    You can also download the file from this link: Template CSV
  2. The contents of the file are basically this:
    Team NameRoleNameEmailGitHub
    My First Team - REPLACE THIS ROWManagerMember Namereplace-this@emailgithub-username-or-blank
    My First Team - REPLACE THIS ROWMemberMember Namereplace-this@email
  3. In case you don't use Github, you can ignore that column altogether.

Correctly adding data to the CSV

Examples are shared at the end.

  1. Each row (other than the first/header one) represents one person to be added to Middleware, to a given team.
    1. One person may be present in multiple rows. For details, go here.
  2. There's 5 columns, each explained below:
    1. Team Name - If you have multiple people in the same team, ensure the team name value is identical. Best keep it case sensitive too.
    2. Role - The only accepted values here are “Member”, or “Manager”.
      1. This isn't their role in the organization. This is the role w.r.t. the teams created in Middleware.
    3. Name - Their full name.
      1. It's best if the name matches exactly (case sensitive) what they have on Jira, or Gitlab, or other integrations you use.
      2. In case it doesn't, it won't be too much of a problem. But if it does, it'll be quite convenient.
        Go to “Linking Users” documentation for details.
    4. Email - Their work email, ideally belonging to the same domain as your Google/Microsoft/etc. workspace organization.
    5. Github - Their Github username. In case you do not use Github, or don't wish to use Github - you can skip this.

Uploading the CSV to Middleware

  1. Back on Middleware, return this this modal:
    Click to expand
  2. Step 2 was defining your teams, which you've already done above.
  3. Now, click the big purple area to upload your CSV file, or just drag your file over into that area.
  4. You should now be presented with a preview of what you've uploaded.
    For example, for illustrative purposes, we uploaded the template CSV right back up, and this was the preview:
    Click to expand
  5. Click the big “Create teams” button you see there, and in a few seconds your teams should be ready to edit further on the UI!

Next steps

Creating teams with some members is only part of creating a team. But you're not ready to see insights yet.

You'd want to go here to do the rest of the setup for each team.
If you're an older user of Middleware, or if the UI in the above doc looks different for you - go here instead.

Constraints

  1. When defining different teams in the CSV, ensure that for a single team - the “Team Name” column values are identical (case sensitive).
    1. Differences in spelling will result in those rows being processed as different teams.
  2. People are identified based on their email addresses.
    1. Rows having the same name but different emails will be created as different people.
    2. Rows having different names but the same email might throw errors, or might just use one of the names for the person during creation.
    3. This behaviour may change in the future so it's best to ensure that if some rows point to the same person, the name and emails are identical (case sensitive).
  3. One person can belong to multiple teams, as a manager, or a member.
  4. Important: Cycles in hierarchy are not allowed.
    1. If you have a manager Mgr1, who manages a team Team1 - then Mgr1 can't be added as a member to Team1.
    2. If Mgr1 manages some Mgr2, who then manages Team1 - even then Mgr1 can't be added as a member to Team1.

CSV Examples

Correct CSV Setups

Example 1

Team NameRoleNameEmailGitHub
DevOps TeamManagerAlice Doealice@example.comaliceGit
DevOps TeamMemberBob Smithbob@example.com

Example 2: Multiple teams with no people overlap

Team NameRoleNameEmailGitHub
Alpha TeamManagerHenry Leehenry@example.comhenryGit
Alpha TeamMemberIda Westida@example.com
Beta TeamManagerJacob Bluejacob@example.comjacobGit
Beta TeamMemberKaren Blackkaren@example.com

Example 3: Multiple teams with shared people across teams (as member or manager)

Team NameRoleNameEmailGitHub
Gamma TeamManagerLiam Reedliam@example.comliamGH
Gamma TeamMemberMia Rosemia@example.commiaGH
Delta TeamManagerNoah Stonenoah@example.comnoahGH
Delta TeamMemberLiam Reedliam@example.comliamGH
Delta TeamMemberOlivia Kingolivia@example.comoliviaGH

Example 4: No Github usernames specified

Team NameRoleNameEmailGitHub
Gamma TeamManagerLiam Reedliam@example.com
Gamma TeamMemberMia Rosemia@example.com
Delta TeamManagerNoah Stonenoah@example.com
Delta TeamMemberLiam Reedliam@example.com
Delta TeamMemberOlivia Kingolivia@example.com

Incorrect CSV Setups

Example 1: Mismatch in team name spelling (creates different teams)

Team NameRoleNameEmailGitHub
Sales TeamManagerDavid Roedavid@example.comdavidGit
sals teamMemberEva Kingeva@example.com

Example 2: Same email with different names

Team NameRoleNameEmailGitHub
Support TeamManagerFiona Applefiona@example.comfionaGit
Support TeamMemberF. Applefiona@example.com

Example 3: Manager added as a member

Team NameRoleNameEmailGitHub
EngineeringManagerGreg Grantgreg@example.comgregGH
EngineeringMemberGreg Grantgreg@example.com