Visualizing Jira in GraphXR

Ben Goosman
Kineviz
3 min readAug 30, 2022

--

Being a fully remote, globally distributed company, I have limited visibility into my colleagues’ day-to-day activities. What are they working on right now? Who is supporting which clients? Can we find clusters of collaboration on specific issues? Between a variety of work tracking apps (Jira, Airtable, Confluence), it’s difficult to answer any of these questions at a glance. By creating and visualizing a knowledge graph in GraphXR, an overview of the company comes into focus.

To achieve this data fabric, we use the Airtable module from NPM and the Jira Cloud REST API. Both Airtable and Jira offer us JSON, which we can map into nodes and edges and then insert into the graph (see Mapping JSON to graph with GraphXR written by Weidong Yang for more). We define clients and members in Airtable, and link them to Jira issues in the graph by connecting equivalent names. For a team member named Shelley, we link her to her Jira issues by finding the issues with assignee equal to “Shelley”. (There’s no one named Shelley at Kineviz — I’ve anonymized team members and clients for this blog)

It’s easy to create custom workflows for GraphXR using Grove. I created some buttons in Grove to fetch JSON from Airtable and Jira, map the JSON into a graph, and then insert the graph into the workspace. After that, we apply a circle layout to the Member nodes and a force layout to the Jira issues so they cluster.

The result is a simple graph with three categories, “Member”, “Client”, and “Jira”, and a few relationships like “ASSIGNED_TO” and “SUPPORTS”. This is standard graph parlance, e.g. Member is ASSIGNED_TO Jira and Member SUPPORTS Client. Or in Cypher, for example: (:Member)-[:SUPPORTS]-(:Client).

What follows is a tour of some actions you can take and insights to make from the resulting graph:

Open a Jira issue from a node using the link button in the quick toolbar. If GraphXR detects that a value is a link, it will present a link button.
Tracy, Karishma, and Jan are supporting the Sasi.io client.
All Jira issues are colored from dark (low priority) to bright (high priority) and arranged in a ring layout, with the Member name as a caption. I could sort the nodes in the rings by priority as well, but I preferred this result visually because seeing a big chunk of high priority work is a tad overwhelming.
What’s Shelley up to? Here we see an area of improvement for this visualization. Since we don’t yet pull in work Shelley does on Airtable or Confluence, it looks like she isn’t doing anything, when actually she’s doing quite a lot.
Who is assigned the most issues? After running the degree algorithm, it’s clear that Tracy has the most issues. You can see in the legend in the top right that we selected Tracy’s node by the degree property (value is 124).
We can save this graph directly to Neo4j. I set up a free neo4j instance on Neo4j Aura and used the Data > Save Neo4j button in GraphXR.
Lastly, we can print the schema in Neo4j Browser.

Thank you for reading. :) I hope that it inspires you with the possibilities of knowledge graph visualization. Check out our website for more applications of GraphXR to different problem spaces. You can contact me at ben@kineviz.com for more information as well!

Further information:
* Kineviz GraphXR: visual analytics, graph BI, and more…
* White Papers — Kineviz
* Kineviz on YouTube
* Kineviz on Medium
* Airtable on npmjs
* Jira Cloud REST API

--

--

Ben Goosman
Kineviz
Editor for

I’m a senior software engineer at Kineviz, where I help create data workflows and visualizations. I’m really deep into dance and music production too!