<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mortise Apps</title>
    <description>The latest articles on DEV Community by Mortise Apps (@mortiseapps).</description>
    <link>https://dev.to/mortiseapps</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4151652%2Fecc581ed-7297-494d-bf76-0b0aa4c371b9.png</url>
      <title>DEV Community: Mortise Apps</title>
      <link>https://dev.to/mortiseapps</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mortiseapps"/>
    <language>en</language>
    <item>
      <title>See the whole blocker chain in Jira: from a flat list of issue links to a dependency graph</title>
      <dc:creator>Mortise Apps</dc:creator>
      <pubDate>Fri, 02 Oct 2026 05:30:48 +0000</pubDate>
      <link>https://dev.to/mortiseapps/see-the-whole-blocker-chain-in-jira-from-a-flat-list-of-issue-links-to-a-dependency-graph-18k8</link>
      <guid>https://dev.to/mortiseapps/see-the-whole-blocker-chain-in-jira-from-a-flat-list-of-issue-links-to-a-dependency-graph-18k8</guid>
      <description>&lt;p&gt;A blocker chain in Jira is a sequence of issues joined by &lt;em&gt;blocks / is blocked by&lt;/em&gt; links: F1 blocks F2, F2 blocks F3, F3 blocks F4. Jira records every link faithfully but shows them as a flat list inside one issue at a time, so the fact that F4 is ultimately waiting on F1 is never visible anywhere. A dependency graph draws the whole chain as cards and arrows on one canvas, blockers on the left and blocked work on the right. LinkLens for Jira draws that graph for a whole project or for the issue you are looking at.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Jira gives you today
&lt;/h2&gt;

&lt;p&gt;Atlassian's documentation is clear that linked work items exist "to surface, understand, and manage dependencies". Each link type has two labels, one per direction: &lt;em&gt;blocks&lt;/em&gt; seen from the blocker, &lt;em&gt;is blocked by&lt;/em&gt; seen from the blocked issue. It is one link, one type, read from two sides.&lt;/p&gt;

&lt;p&gt;The issue view lists those links under &lt;strong&gt;Linked work items&lt;/strong&gt;, grouped by label. Boards can show a small linked-items icon on cards. Plans (Advanced Roadmaps) draws dependency lines on a timeline for the issues in a plan. All three show what is directly attached to the issue in front of you. None of them follows the chain.&lt;/p&gt;

&lt;p&gt;The request for a project-wide picture is not new. JRASERVER-2544, "Graph link dependency map", was filed in 2003 and eventually closed as won't fix. Twenty years later the flat list is still the default, which is why a whole category of Marketplace apps exists to draw the graph.&lt;/p&gt;

&lt;h2&gt;
  
  
  A real example: the payments feature and the infrastructure ticket
&lt;/h2&gt;

&lt;p&gt;A storefront team is shipping "Apple Pay and Google Pay in checkout" this sprint. On the issue view it shows one link: &lt;em&gt;is blocked by&lt;/em&gt; "Save payment method for next purchase", which is in progress. Looks fine.&lt;/p&gt;

&lt;p&gt;Open that blocker and it has its own link: &lt;em&gt;is blocked by&lt;/em&gt; "Rotate API keys for payment gateway", a task in the platform team's project, still in the backlog. Open that one and there is a fourth hop: the key rotation waits on "Shared auth service upgrade" in a third project, owned by a team that is not in the sprint review.&lt;/p&gt;

&lt;p&gt;Nobody lied and nobody forgot to link anything. The chain is four issues long, spans three projects and two teams, and the only way to discover it is to click through issue after issue. The sprint review is where it gets discovered, three hops too late.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to do it with LinkLens
&lt;/h2&gt;

&lt;p&gt;LinkLens adds two views and one rule: pick one link type, and both of its directions are used automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Dependencies page (whole project)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the project and select &lt;strong&gt;Dependencies&lt;/strong&gt; in the project sidebar.&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;Link type&lt;/strong&gt;, pick &lt;em&gt;Blocks (blocks / is blocked by)&lt;/em&gt;. It is preselected on most sites.&lt;/li&gt;
&lt;li&gt;Read the canvas left to right. An arrow from A to B means &lt;em&gt;A blocks B&lt;/em&gt;. The legend under the canvas restates the rule for whatever type you picked.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the storefront project the payments chain appears as one row: key rotation, then save-payment-method, then Apple Pay, then the guest checkout story it blocks in turn. The "Shared auth service upgrade" issue from the other project shows as a dimmed, dashed card labelled &lt;em&gt;outside scope&lt;/em&gt;, so the cross-project blocker is visible without leaving the page. Widen the &lt;strong&gt;JQL scope&lt;/strong&gt; to &lt;code&gt;project in (SHOP, PLAT)&lt;/code&gt; and its own chain is drawn too.&lt;/p&gt;

&lt;p&gt;Only issues that have at least one link of the chosen type are drawn; the rest are counted in the stats line ("17 issues in scope, 16 in chains") so the picture stays readable. &lt;strong&gt;Hide Done&lt;/strong&gt; removes finished issues and their links. Click a card to pin its whole upstream and downstream chain while everything else fades; double-click to open the issue. &lt;strong&gt;PNG&lt;/strong&gt; exports the graph with a legend for a Confluence page or a slide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Dependency chain panel (one issue)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open any issue. Select the apps button under the title and choose &lt;strong&gt;Dependency chain&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Depth&lt;/strong&gt; to 3 to 5 hops.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The current issue sits highlighted in the middle. Everything to its left blocks it directly or indirectly; everything to its right waits on it. For the Apple Pay story that is the whole four-issue chain on one small canvas, including the other projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choosing the link type&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Choose the type whose outward label means "must happen first". &lt;em&gt;Blocks&lt;/em&gt; is the usual one. If your admins created a custom type such as &lt;em&gt;Depends on&lt;/em&gt;, check which side is the outward label; if the arrows look reversed, the type's labels are defined the other way round.&lt;/p&gt;

&lt;h2&gt;
  
  
  What LinkLens cannot do
&lt;/h2&gt;

&lt;p&gt;It is read-only in this version: it draws links and does not create or delete them, so use Jira's &lt;strong&gt;Link work item&lt;/strong&gt; action to fix a chain. It draws one link type at a time by design; a chain that mixes &lt;em&gt;blocks&lt;/em&gt; and &lt;em&gt;depends on&lt;/em&gt; has to be viewed twice. Parent and child relationships (epic to story, story to sub-task) are not drawn as edges yet. The project page caps at 2,000 issues per graph and the issue panel at 300 issues and 5 hops. Links to issues on a different Atlassian site are not followed, and it is Jira Cloud only.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does it work across projects?
&lt;/h3&gt;

&lt;p&gt;Yes. Linked issues outside the current scope are shown as dimmed cards so cross-project blockers never hide. Set the JQL scope to several projects to draw their chains in full. The issue panel follows cross-project links by default.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does it show issues I am not allowed to see?
&lt;/h3&gt;

&lt;p&gt;No. Every read runs as the person viewing the graph, so Jira's permissions apply and hidden issues are absent, including as external ends.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does it cost?
&lt;/h3&gt;

&lt;p&gt;Free for sites with up to 10 users. Above that about USD 0.20 per user per month, roughly USD 10 a month for a 50-user site, billed by Atlassian with a 30-day trial. It is on the &lt;a href="https://marketplace.atlassian.com/apps/4159212316" rel="noopener noreferrer"&gt;Atlassian Marketplace&lt;/a&gt;; details are on the &lt;a href="https://www.mortiseapps.com/linklens/" rel="noopener noreferrer"&gt;LinkLens page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://support.atlassian.com/jira-software-cloud/docs/link-issues/" rel="noopener noreferrer"&gt;Link work items, Atlassian Support&lt;/a&gt; - link types have outward and inward descriptions; where links are shown.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jira.atlassian.com/browse/JRASERVER-2544" rel="noopener noreferrer"&gt;JRASERVER-2544, Graph link dependency map&lt;/a&gt; - the 2003 request for a project-wide dependency map, closed won't fix.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://confluence.atlassian.com/jirasoftwareserver/dependencies-in-advanced-roadmaps-1044784190.html" rel="noopener noreferrer"&gt;Dependencies in Advanced Roadmaps, Atlassian Documentation&lt;/a&gt; - incoming and outgoing dependencies as blocks / is blocked by.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.mortiseapps.com/blog/see-the-whole-blocker-chain-in-jira-dependency-graph/" rel="noopener noreferrer"&gt;Mortise Apps blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>jira</category>
      <category>projectmanagement</category>
      <category>agile</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to see every dependency chain on a monday.com board</title>
      <dc:creator>Mortise Apps</dc:creator>
      <pubDate>Thu, 01 Oct 2026 20:42:26 +0000</pubDate>
      <link>https://dev.to/mortiseapps/how-to-see-every-dependency-chain-on-a-mondaycom-board-5nl</link>
      <guid>https://dev.to/mortiseapps/how-to-see-every-dependency-chain-on-a-mondaycom-board-5nl</guid>
      <description>&lt;p&gt;To see how work on a monday.com board depends on other work, you add a &lt;strong&gt;Dependency&lt;/strong&gt; column and pick, for each item, the items it waits on. monday.com then draws each link as a line in the Gantt view and can push dates when a predecessor moves. What it does not show is the structure: which item sits at the start of a chain, how many items a slip would drag along, and where two items wait on each other in a loop. This article covers what the built-in tools do, how far you get with them, and how to see the whole picture with LinkLens Dependency Map, our board view.&lt;/p&gt;

&lt;h2&gt;
  
  
  What monday.com gives you out of the box
&lt;/h2&gt;

&lt;p&gt;The Dependency column stores, for each item, the items it depends on. Three things use it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Gantt view&lt;/strong&gt; draws a connector line from each predecessor to the item that waits on it, laid out on the Timeline column. Good for one release plan on one screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency automations&lt;/strong&gt;, such as "when a date changes, push the dependent items". These keep dates consistent but say nothing about risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect boards columns&lt;/strong&gt;, which link items across boards. They are not dependencies by themselves, but many teams use them that way: a vendor contract on one board that a launch on another board waits for.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href="https://support.monday.com/hc/en-us/articles/360007402599-Dependencies-on-monday-com" rel="noopener noreferrer"&gt;monday.com support article on dependencies&lt;/a&gt; covers the setup. It is quick, and for a short plan it is enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the Gantt view stops
&lt;/h2&gt;

&lt;p&gt;The Gantt view answers "what comes before this bar". It struggles with three questions that project managers ask every week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How far does a delay spread?&lt;/strong&gt; If &lt;em&gt;CMS setup&lt;/em&gt; slips, the Gantt shows the line to &lt;em&gt;Content migration&lt;/em&gt;. It does not show that &lt;em&gt;SEO redirects&lt;/em&gt;, &lt;em&gt;QA testing&lt;/em&gt; and &lt;em&gt;Launch&lt;/em&gt; are behind that, five items deep. You follow the lines by hand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which item is the real bottleneck?&lt;/strong&gt; The item with the most work behind it is rarely the one that looks urgent. A small task that three chains pass through is the one to staff first, and nothing in the Gantt ranks items that way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where are the loops?&lt;/strong&gt; A loop (A waits on B, B waits on C, C waits on A) means none of the three can finish first. Loops usually arrive through Connect boards columns, imports, automations or the API rather than by hand, and a Gantt line has no way to say "this one goes backwards".&lt;/p&gt;

&lt;p&gt;Items on other boards add a fourth problem: the Gantt only shows one board, so a cross-board dependency is invisible until someone opens the other board.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can do natively
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Built-in answer&lt;/th&gt;
&lt;th&gt;Effort&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What comes right before this item?&lt;/td&gt;
&lt;td&gt;Dependency column, Gantt connector&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What is everything upstream of this item?&lt;/td&gt;
&lt;td&gt;Follow Gantt lines by hand, or a formula per hop&lt;/td&gt;
&lt;td&gt;High, breaks past two hops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Which items block the most work?&lt;/td&gt;
&lt;td&gt;No native view&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Are there circular dependencies?&lt;/td&gt;
&lt;td&gt;No native check for chains longer than two&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dependencies across boards&lt;/td&gt;
&lt;td&gt;Enterprise cross-project dependencies, or Connect boards columns read by hand&lt;/td&gt;
&lt;td&gt;Plan-dependent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A report for stakeholders&lt;/td&gt;
&lt;td&gt;Export the Gantt as an image&lt;/td&gt;
&lt;td&gt;Shows lines, not risks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you only need the first row, stop here; monday.com does it well.&lt;/p&gt;

&lt;h2&gt;
  
  
  See the whole structure: LinkLens Dependency Map
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.mortiseapps.com/linklens-monday/" rel="noopener noreferrer"&gt;LinkLens Dependency Map&lt;/a&gt; is a monday.com board view. Add it to a board, pick the Dependency column (or a Connect boards column) and it draws every chain on the board as one graph: blockers on the left, blocked work on the right, separate chains stacked, items without links counted but not drawn. Each card shows the item's group and status.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqnrh6u9wm4ghht75zewh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqnrh6u9wm4ghht75zewh.png" alt="LinkLens Dependency Map on a monday.com board, with a circular dependency in red" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What that gives you, using the questions above:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Delay spread.&lt;/strong&gt; Hover any item and its whole chain lights up, upstream and downstream. Double-click to open the item.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bottlenecks.&lt;/strong&gt; The layout puts the first blockers on the left; the item with the most cards to its right holds up the most work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loops.&lt;/strong&gt; A circular dependency is drawn with a red dashed arrow and every loop is listed under the map.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Other boards.&lt;/strong&gt; With a Connect boards column, linked items on other boards appear as dashed outside cards with their board name and status.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus.&lt;/strong&gt; Hide done removes finished items and their links, so what remains is the work that is really blocked today.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The dependency health report
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Report&lt;/strong&gt; button turns the same data into a document you can hand to stakeholders: a 0-100 dependency health score, every risk found on the board explained in plain English with the items involved and a suggested fix (circular dependencies, overdue and stuck blockers, bottlenecks, stale blockers, date conflicts), which items are predicted to finish late and by how many days, when the open linked work is likely to clear at the recent pace, and 8-week trends of links added against blockers finished. It downloads as PDF or HTML.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6fbxsx8x81kd30b3yiag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6fbxsx8x81kd30b3yiag.png" alt="The dependency health report: score, risks with fixes, predictions and trends" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The predictions come from the board, not from guesses: LinkLens follows each chain forward from today using the Timeline or Date column, and if a blocker ends after the item behind it is due, that item is predicted late by the difference. Everything is calculated in your browser; no board data leaves monday.com.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask Sidekick instead of opening the view
&lt;/h2&gt;

&lt;p&gt;LinkLens also adds a tool to monday Sidekick, monday.com's AI assistant. Turn the LinkLens tool on and ask, in the chat, "What is blocking Launch?", "What does CMS setup delay?" or "Are there circular dependencies on this board?". Sidekick calls LinkLens for the answer, which comes from the board's real links.&lt;/p&gt;

&lt;h2&gt;
  
  
  What LinkLens does not do
&lt;/h2&gt;

&lt;p&gt;It does not change dates, create links or write to your board; it is read-only. It does not replace the Gantt view for scheduling. And it reads items as the person viewing the board, so it never shows anyone an item they could not already open.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do I need the Enterprise plan for cross-board dependencies?
&lt;/h3&gt;

&lt;p&gt;Not for LinkLens: it reads Connect boards columns, which exist on every plan that has them, and shows linked items on other boards as outside cards. monday.com's own cross-project dependencies feature is separate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does the Dependency column allow circular dependencies?
&lt;/h3&gt;

&lt;p&gt;Loops rarely come from typing them in by hand. They arrive through Connect boards columns, board imports, automations and the API. LinkLens draws them in red and lists them so you can remove the link that points backwards.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can viewers and guests see the map?
&lt;/h3&gt;

&lt;p&gt;Yes. The view is read-only, so viewers and guests get the same map and report; only their view settings are not saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://support.monday.com/hc/en-us/articles/360007402599-Dependencies-on-monday-com" rel="noopener noreferrer"&gt;Dependencies on monday.com&lt;/a&gt;, monday.com support: setting up the Dependency column and how the Gantt view and automations use it.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.monday.com/api-reference/docs/working-with-dependency-column" rel="noopener noreferrer"&gt;Working with the dependency column&lt;/a&gt;, monday.com developer documentation: how dependency data is stored and read.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://monday.com/blog/project-management/task-dependencies/" rel="noopener noreferrer"&gt;Task dependencies in project management&lt;/a&gt;, monday.com blog: dependency types and why chains matter.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.mortiseapps.com/blog/see-every-dependency-chain-monday-board/" rel="noopener noreferrer"&gt;Mortise Apps blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>projectmanagement</category>
      <category>productivity</category>
      <category>monday</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Search Jira by team name: teamIn() and noTeam() instead of Team UUIDs in JQL</title>
      <dc:creator>Mortise Apps</dc:creator>
      <pubDate>Wed, 30 Sep 2026 14:35:07 +0000</pubDate>
      <link>https://dev.to/mortiseapps/search-jira-by-team-name-teamin-and-noteam-instead-of-team-uuids-in-jql-4n1g</link>
      <guid>https://dev.to/mortiseapps/search-jira-by-team-name-teamin-and-noteam-instead-of-team-uuids-in-jql-4n1g</guid>
      <description>&lt;p&gt;In Jira Cloud, a JQL search on the Atlassian &lt;strong&gt;Team&lt;/strong&gt; field has to use the team's UUID, not its name. &lt;code&gt;"Team[Team]" = 36885b3c-1bf0-4f85-a357-c5b858c31de4&lt;/code&gt; works; &lt;code&gt;"Team[Team]" = "Payments"&lt;/code&gt; returns nothing. TeamLens for Jira adds two JQL functions that remove the copy-and-paste: &lt;code&gt;issue in teamIn("Payments")&lt;/code&gt; matches issues by team name, with a trailing &lt;code&gt;*&lt;/code&gt; for prefixes, and &lt;code&gt;issue in noTeam()&lt;/code&gt; returns every issue whose Team field is empty. Both work in filters, boards, dashboards, Jira Service Management queues and Automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why names do not work in JQL
&lt;/h2&gt;

&lt;p&gt;The Team field is a custom field (typically &lt;code&gt;customfield_10001&lt;/code&gt;) whose stored value is a team id, a UUID such as &lt;code&gt;36885b3c-1bf0-4f85-a357-c5b858c31de4&lt;/code&gt;. Atlassian's developer documentation for the field shows the JQL form directly: &lt;code&gt;"Team[Team]" = &amp;lt;uuid&amp;gt;&lt;/code&gt;. The team's display name is metadata attached to that id; JQL never compares against it.&lt;/p&gt;

&lt;p&gt;Atlassian recorded the consequence years ago in JRACLOUD-84663, "JQL Search for Team does not Recognize Team Names". The ticket is now closed, and a related ticket (JSWCLOUD-19523) notes that Jira has been rolling out team name lozenges in the JQL editor, which helps when you type a query interactively. It does not help when the query lives in a saved filter, a board, an Automation rule or a queue definition, where you still see and maintain the raw UUID.&lt;/p&gt;

&lt;p&gt;Finding a team's UUID means opening the team's profile page and copying the last segment of its URL. Do that for eight teams, paste them into a filter, and you have a query nobody can read and nobody dares to edit.&lt;/p&gt;

&lt;h2&gt;
  
  
  A real example: one JSM queue per support team
&lt;/h2&gt;

&lt;p&gt;A service desk has three tiers of support, each an Atlassian Team so that Jira Plans and the Team field on requests line up. The service manager wants a queue per tier and a board per tier that only shows that team's open requests.&lt;/p&gt;

&lt;p&gt;The native version of each queue filter looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Team[Team]" = 5f2a0c1e-8f4b-4b2e-9c6d-2c1a4f7b9d31 AND statusCategory != Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Six months later the Tier 2 team is renamed and merged with a new team. Whoever inherits the queues has three UUIDs and no idea which is which. The filter for "requests nobody has picked up" is worse: there is no function for "empty Team", so it is written as &lt;code&gt;"Team[Team]" is EMPTY&lt;/code&gt;, which works but is not something a queue owner will discover on their own, and it cannot be combined with "or belongs to any tier whose name starts with Tier".&lt;/p&gt;

&lt;h2&gt;
  
  
  How to do it with TeamLens
&lt;/h2&gt;

&lt;p&gt;TeamLens registers two functions. Because Jira exposes app functions through the &lt;code&gt;issue in ...&lt;/code&gt; form, that is how they are written.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Queue per team&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;issue in teamIn("Tier 1 Support") AND statusCategory != Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Names are matched case-insensitively against the team's display name. If no team matches, JQL shows an error naming the value, so a typo fails loudly instead of returning an empty queue. A raw UUID is also accepted, so existing filters can be migrated one clause at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All support tiers at once&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;issue in teamIn("Tier*") AND status = Open
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The trailing &lt;code&gt;*&lt;/code&gt; matches every team whose name starts with the prefix. New "Tier 4 Support" team next year? The queue picks it up with no edit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Everything except one team&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;issue not in teamIn("Tier 1 Support")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Work nobody owns&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;issue in noTeam() AND statusCategory != Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Put that one behind a scheduled Automation rule that runs every Monday and comments or emails the service manager, and unowned work stops hiding.&lt;/p&gt;

&lt;p&gt;Steps in Jira:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install TeamLens from the Marketplace (Jira admin, under a minute, no configuration).&lt;/li&gt;
&lt;li&gt;Open the issue navigator, switch to &lt;strong&gt;JQL&lt;/strong&gt;, and type &lt;code&gt;issue in teamIn("Your Team Name")&lt;/code&gt;. The autocomplete lists the app functions after the first character.&lt;/li&gt;
&lt;li&gt;Save it as a filter, then use the filter for a board, a JSM queue, a dashboard gadget or an Automation condition exactly as you would any other filter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The team list is cached for ten minutes, so a team renamed a moment ago may still resolve under its old name for a short while.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating existing UUID filters
&lt;/h2&gt;

&lt;p&gt;You do not have to rewrite every filter on day one. Because &lt;code&gt;teamIn()&lt;/code&gt; accepts a raw UUID as well as a name, a filter such as &lt;code&gt;"Team[Team]" in (uuid-a, uuid-b)&lt;/code&gt; can become &lt;code&gt;issue in teamIn("uuid-a", "uuid-b")&lt;/code&gt; first, then have each id swapped for the team's name as you touch it. Keep one saved filter per team with a clear name ("Team: Tier 1 Support, open") and point boards, queues and gadgets at the filter rather than repeating the JQL, so a rename means editing one place. A useful check after migration is a dashboard gadget with &lt;code&gt;issue in noTeam() AND created &amp;gt;= -30d&lt;/code&gt;: if it is not close to zero, the Team field is not being set on new work and the per-team views are undercounting.&lt;/p&gt;

&lt;h2&gt;
  
  
  What TeamLens cannot do
&lt;/h2&gt;

&lt;p&gt;The functions match team names and ids; they cannot match team members, because the Teams API only answers a human's API token, not an app's own auth context, so apps cannot read Atlassian Team membership on their own yet (app access is tracked as JRACLOUD-92072). A &lt;code&gt;myTeams()&lt;/code&gt; function that returns the issues of every team the current user belongs to is planned for when that API opens. The functions are also written as &lt;code&gt;issue in teamIn(...)&lt;/code&gt;, not &lt;code&gt;Team in teamIn(...)&lt;/code&gt;, because that is how Jira Cloud exposes every app-provided JQL function. And they are Cloud only.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does teamIn() work in Jira Service Management queues?
&lt;/h3&gt;

&lt;p&gt;Yes. Queues are JQL filters, and app functions are allowed in them. &lt;code&gt;issue in teamIn("Tier 2 Support") AND status = Open&lt;/code&gt; is a valid queue definition.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use these functions in Automation rules?
&lt;/h3&gt;

&lt;p&gt;Yes, both as a JQL condition inside a rule and in the JQL of a scheduled trigger. The weekly "unowned work" rule above is the typical use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is this cheaper than building it myself?
&lt;/h3&gt;

&lt;p&gt;There is no do-it-yourself route: JQL functions can only be added by apps. TeamLens is free for sites with up to 10 users and USD 1 per user per month above that, with a 30-day trial, on the &lt;a href="https://marketplace.atlassian.com/apps/1146332802" rel="noopener noreferrer"&gt;Atlassian Marketplace&lt;/a&gt;. Details are on the &lt;a href="https://www.mortiseapps.com/teamlens/" rel="noopener noreferrer"&gt;TeamLens page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://developer.atlassian.com/platform/teams/components/team-field-in-jira-rest-api/" rel="noopener noreferrer"&gt;Team field in Jira REST API, Atlassian Developer&lt;/a&gt; - the UUID value and the &lt;code&gt;"Team[Team]" = uuid&lt;/code&gt; JQL form.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jira.atlassian.com/browse/JRACLOUD-84663" rel="noopener noreferrer"&gt;JRACLOUD-84663, JQL Search for Team does not Recognize Team Names&lt;/a&gt; - JQL accepts team ids, not names.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jira.atlassian.com/browse/JSWCLOUD-19523" rel="noopener noreferrer"&gt;JSWCLOUD-19523, JQL Search for Team does not Recognize Team Names&lt;/a&gt; - team name lozenges in the JQL editor.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jira.atlassian.com/browse/JRACLOUD-87808" rel="noopener noreferrer"&gt;JRACLOUD-87808, Team field not supported for sorting on gadgets, JQL or boards&lt;/a&gt; - the wider Team field JQL limitations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://support.atlassian.com/platform-experiences/docs/using-atlassian-teams-in-jira-projects/" rel="noopener noreferrer"&gt;Teams in Jira projects, Atlassian Support&lt;/a&gt; - UUIDs must be used when referencing teams in workflows.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://www.mortiseapps.com/blog/search-jira-by-team-name-teamin-noteam-jql/" rel="noopener noreferrer"&gt;Mortise Apps blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>jira</category>
      <category>atlassian</category>
      <category>agile</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
