Skip to main content

How Team Capacity and Group By work with Jira and Azure DevOps assignees

Written by Kendis Team

Kendis links items to people in two views on the Program Board:

  1. Team Capacity: shows each team member's planned story-point load for the active sprint(s). Cards count toward a user's row when the card's assignee matches that user.

  2. Group By → Assignee: groups all cards under their assignee's row, so you can scan everyone's workload at once.

In both views, Kendis needs to answer one question for every card: which user is this card assigned to?

Where the assignee comes from

The assignee is read from your Jira and Azure DevOps items.

  • Jira-backed boards read the assignee from the issue's Assignee field.

  • Azure DevOps-backed boards read it from the work item's Assigned To field.

That value is a name string (and sometimes an email, depending on Jira version). Kendis then looks for a Kendis user whose name matches.

How the name match works

Kendis does NOT require the Jira/Azure DevOps name and the Kendis user name to be character-identical. Instead, both names are normalised the same way and compared. Two names match if, after normalisation, they contain the same words in any order.

Normalisation rules:

  • Case is ignored. JOHN SMITH matches John Smith matches john smith.

  • Common separators are treated as spaces — commas, periods, underscores, dashes, apostrophes, and curly quotes all collapse to a space. So Smith, John, John.Smith, and John_Smith all become John Smith.

  • Extra whitespace is collapsed. John Smith and John Smith are the same.

  • Word order doesn't matter. Smith John matches John Smith. This is what lets Last, First formats line up with First Last records.

A user's firstName + lastName (as stored in Kendis) is compared to the Jira/Azure DevOps assignee using these rules. When they match, the card lands on that user's row in Team Capacity or under their group in Group By.

Worked examples

Kendis user

Jira/Azure DevOps assignee value

Result

John Smith

John Smith

Matches — exact.

John Smith

Smith, John

Matches — surname-first format.

John Smith

john smith

Matches — case ignored.

John Smith

John.Smith

Matches — period treated as space.

Mary O'Brien

Mary O Brien

Matches — apostrophe ignored.

Mary-Jane Doe

Mary Jane Doe

Matches — hyphen treated as space.

John Smith

Jane Smith

Does NOT match — different first name.

John Smith

John Q. Smith

Does NOT match — middle initial is an extra word. (Add it in Kendis to make it match.)

John Smith

JSmith

Does NOT match — first name not present as a separate word.

When the match still fails

A small number of cases still don't match automatically:

  • Middle names or initials present on one side but not the other. John Q. Smith in Jira will not match a Kendis user stored as John Smith. Bring the two records into line — either add the middle initial to the Kendis user or remove it from the Jira display name.

  • Nicknames or shortened first names. Bob Smith won't match Robert Smith.

  • Different family-name spellings. Müller and Mueller are treated as different words. Pick one spelling and use it on both sides.

  • Service or system accounts. Cards assigned to bots, integration accounts, or unmapped Jira users have no matching Kendis user and will not appear under anyone — they remain unassigned in the capacity / group view.

How to fix unmatched cards

If you find cards that should be on a person's row but aren't:

  1. Open the card and note the assignee value exactly as your ALM shows it.

  2. Open Settings → Users or Non-Kendis Users in Kendis and find the corresponding user.

  3. Make sure the user's firstName and lastName between them contain the same words as the ALM assignee, order doesn't matter, punctuation doesn't matter, but every word does. Add or remove middle names / initials as needed.

  4. Refresh the Program Board. The cards should now appear under the right user.

What about the assignee email?

Where the ALM also supplies an email for the assignee (typical for Jira Cloud), Kendis additionally looks for a Kendis user with a matching email. Email match takes priority — if the email matches a Kendis user, that user's row is used even if the name doesn't match. This is the most reliable way to ensure correct association: keep the ALM user's email in sync with the Kendis user's email and the name format becomes less important.

Best-practice summary

  • First choice: make sure each ALM user's primary email matches the Kendis user's email. Email match is exact and never fails.

  • Second choice: keep the same first-name + last-name words on both sides. Order, case, punctuation, and spacing all flex automatically.

  • Avoid: middle initials on one side only, nicknames vs full names, and alternative spellings.

What's unchanged

  • Existing assignments, story-point totals, sprint commitments, and Resync flows behave exactly as before.

  • Cards continue to follow their ALM assignee — Kendis does not rewrite ALM data.

  • Users who appear on a team but have no assigned cards still show on Team Capacity with a zero load .

Troubleshooting checklist

Symptom

Likely cause

Fix

One person's stories show under "unassigned"

Name in ALM has a middle name or extra initial absent from Kendis

Bring the two name spellings into line, or set the user's email in both systems.

Whole sprint shows zero capacity used

Team has no users mapped, or all assignees are system accounts

Confirm the team in Kendis has the right Kendis users; map ALM users to Kendis users via Settings → People.

Some cards appear, others don't, for the same person

The "missing" cards have a different name spelling in ALM (e.g. nickname)

Standardise the assignee display in ALM, or use an email-matched user.

Numbers changed after upgrade

The smarter match now picks up cards that were previously dropped because of a name mismatch

This is the intended fix — the new totals are correct.

Did this answer your question?