> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Group Resources by Team

> Collapse the Nextedy GANTT resource view into one header row per team, with each team's aggregated allocation on the header and its resources beneath it.

export const LastReviewed = ({date, state}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  const label = state === "reviewed" ? `Last reviewed and confirmed up to date on ${formatted}` : `Last updated on ${formatted}`;
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      {label}
    </p>;
};

By default the resource view is a flat list: one row per resource. Grouping folds that list into one collapsible row per team, so a plan with forty resources across six teams opens as six rows.

Grouping is available since version **26.9.0**.

## Prerequisites

Before you begin, ensure that:

* Team and Team Assignment work item types are configured and each Team Assignment is linked to its parent Team -- see [Set Up Team Assignments Gantt](/gantt/guides/resources/team-assignments-gantt)
* **Show Resource View** is set to **Yes** in the widget parameters
* **Load Team Assignments** is set to **Yes** in the **Working Calendar** section
* No single team is selected in the team filter -- grouping applies when the view is showing all teams

The toolbar button carries one further condition of its own: it is hidden where the **Resource Field** is the team custom field, because a resource that already *is* the team has nothing to group under.

<Steps>
  <Step title="Turn Grouping On in the Widget Parameters">
    Open the Gantt page in **Edit mode**, click the widget gear icon to open **Widget Parameters**, and in the **Resource View** section set **Group Resources By Teams** to **Yes**.

    The parameter name follows your configured team label. If teams are called Squads in your installation, the parameter reads **Group Resources By Squads**.

    Its starting value comes from the project property `nextedy.gantt.resourceView.groupResourcesByTeam`, which is `true` unless you set it otherwise.
  </Step>

  <Step title="Or Toggle It from the Toolbar">
    Grouping can also be switched without editing the page. The Gantt toolbar carries a grouping button next to the resource-view controls:

    | Current state                  | Button tooltip                    |
    | ------------------------------ | --------------------------------- |
    | Resources shown as a flat list | **Group assignees by teams**      |
    | Resources grouped under teams  | **Show assignees as a flat list** |

    Switched off, the same resources appear once each as a flat list:

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/3MB-2ioU53W9y729/gantt/images/group-resources-by-team/flat-resource-list.png?fit=max&auto=format&n=3MB-2ioU53W9y729&q=85&s=0376450c725f7e33c2230de9790d5589" alt="Resource view as a flat list, one row per resource" style={{ maxWidth: "820px", width: "100%" }} width="2682" height="1834" data-path="gantt/images/group-resources-by-team/flat-resource-list.png" />
    </Frame>

    Your choice is remembered per user alongside the other resource-view settings, so the view opens the way you left it the next time you visit the page.

    The button is hidden whenever grouping does not apply -- on a Plan-based Gantt, while a single team is filtered, when the resource view is not shown, when **Load Team Assignments** is off, and when the resource field is the team custom field.
  </Step>

  <Step title="Read a Team Header Row">
    Each team becomes a header row you can collapse and expand. The header carries the team's **own allocation**, aggregated from the resource rows beneath it, so you can judge a team's load without opening it.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/3MB-2ioU53W9y729/gantt/images/group-resources-by-team/team-header-rows.png?fit=max&auto=format&n=3MB-2ioU53W9y729&q=85&s=4a929bd3fec1e90628e563167590cb9a" alt="Resource view with a collapsible header row per team, each expanded over its resource rows, and the toolbar grouping button showing its tooltip" style={{ maxWidth: "820px", width: "100%" }} width="1341" height="917" data-path="gantt/images/group-resources-by-team/team-header-rows.png" />
    </Frame>

    <Warning>
      **A Resource Can Appear Under Several Teams**

      Someone assigned in more than one team gets a row under each of them, showing only what that team allocated. Their combined load across teams is what the flat list shows, so switch grouping off to check whether a person is overallocated overall.
    </Warning>
  </Step>

  <Step title="Show Teams That Have No Assignments Yet">
    While the view is showing all teams **and resources are taken from `assignee`**, a team with no assignments at all still gets a header row rather than disappearing. An empty row is the signal that the team exists and nothing has been planned for it -- which is the state you most need to see when you are building next year's plan.

    That comes from enumerating the project's teams rather than the plan's assignments, and it is the one thing the `assignee` resource field still does that a custom one does not: where **Resource Field** names a custom field, the header rows are built from the assignments that exist, so a team nobody is assigned to has no row.
  </Step>
</Steps>

## Grouping with a Custom Resource Field

Grouping is no longer limited to the `assignee` field. When the **Resource Field** points at a custom field -- a user-typed field, an enumeration, or a resource work item from a [Resource Breakdown Structure](/gantt/concepts/resource-breakdown-structure) -- those resources group under their teams in the same way.

The one case where grouping is switched off automatically is when the configured **Resource Field** is the team custom field itself.

## Resource Column Label

While grouping is on and the view is showing all teams, the resource column header reads **Teams & Assignees** (again following your configured team word) unless you have set the **Resource Label** parameter to something of your own.

Switching to the flat list puts the configured **Resource Label** back on the column -- **Name**, where you have not set one.

## Troubleshooting

| Symptom                                                                                                            | Cause                                                                                                                       | Fix                                                                                            |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| The grouping parameter is missing from the widget parameters                                                       | The resource view is off, **Load Team Assignments** is off, or a single team is filtered                                    | Set **Show Resource View** and **Load Team Assignments** to **Yes**, and clear the team filter |
| The parameter is there but the toolbar button is not                                                               | The **Resource Field** is the team custom field, or the Gantt is Plan-based -- neither hides the parameter, only the button | Point **Resource Field** at a different field, or use the widget parameter instead             |
| A resource row shows `This user has no allocated capacity in this team within the currently displayed time range.` | The person has no Team Assignment covering the dates on screen in this team                                                 | Add or extend a Team Assignment, or widen the visible time range                               |
| A bar shows `No capacity allocated for <name> in the <team> team during the scheduled period.`                     | The task is scheduled outside every Team Assignment that gives that person capacity in the team                             | Adjust the task dates or the assignment period                                                 |
| A team's header row shows an allocation you cannot account for                                                     | A resource assigned in several teams contributes to each header separately                                                  | Switch to the flat list to see the person's combined load                                      |

## Verification

You should now see:

* One collapsible header row per team in the resource view, expandable to its resource rows
* An aggregated allocation value on each team header
* A header row for every team, including ones with no assignments yet, where resources are taken from `assignee`

## See Also

* [Resource Breakdown Structure](/gantt/concepts/resource-breakdown-structure)
* [Set Up Team Assignments Gantt](/gantt/guides/resources/team-assignments-gantt)
* [Set Up the Resource View](/gantt/guides/resources/resource-view)
* [Configure Resource Fields](/gantt/guides/resources/resource-field-configuration)
* [Resource View Parameters](/gantt/reference/widget-parameters/resource-view)

<LastReviewed date="2026-09-15" />
