You are on page 1of 22

Jira – Google Sheets Integration Plugin

____________________________

Bablu Banik, Fadl Ghaddar, Javier Gonzalez

California State University, Monterey Bay

CST 499 Final Directed Capstone

Project Advisor SiFive

Summer B, 2022
1

Executive Summary

Our goal is to create a solution that enables SiFive (our client) to integrate Google Sheets

into their Jira workflow. Our solution will integrate Google Sheets and Jira such that SiFive can

read and load Jira data onto a Google Sheets spreadsheet, and our solution will also enable

SiFive to push and write any changes made to the data on said spreadsheet. The purpose behind

creating such an application is to increase efficiency, as SiFive can use our application to view

and edit multiple Jira issues all through one spreadsheet. To explain it more clearly, our

application improves workflow, because SiFive will not have to locate, open, and then edit each

issue independently; SiFive can simply just edit values on a spreadsheet and push those changed

values to Jira. Though we are developing our application for and with the help of SiFive, the

truth is any project management team can and should utilize our application when editing a large

amount of Jira issues, because simply put our application aims to save them time.
2

Table of Contents

Introduction……………………………………………………………………………….3

Project Description & End Users...…………………………………………………3

Feasibility…………………………………………………………………………………. 4

Environmental Scan/Literature Review / Justification ……………………………4

Mitigation of Ethical and Legal Issues…………….……………………………….5

Project Life and Enhancements after Project Completion…...…………….……….6

Design Requirements / Usability Testing………………………………………………….7

Platform……………...…...…...…...…………………………………………………7

Major Functions……...…...…...…...…………………………………………………7

Usability Test Plan / Usability Testing Evaluation…...………………………………8

Final Discussion and Reflection……………………………………………………………..10

Budget & Timeline……………...…………...….………………………………………10

Final implementation…...…...………………………………………………………….11

Discussion………………...…...……………………………………………………….18

References……………………………………………………………………………………..19

Appendix……………………………………………………………………………………..20
3

Introduction

Project Description and End Users

Our goal is to create an application that project managers go to when they want to sync

Google Sheets into their Jira workflow. Our application will be tested and used by SiFive, but

we aim to release this application as a re-usable library on GitHub so that any project

management team can benefit from this, and even modify it if need be. Therefore, our

application can be used by anybody looking to integrate Google Sheets and Jira.

We believe that the application would be sought out because the Jira dashboard is

time-consuming and inefficient when updating a significant amount of Jira issues. Without our

application, a Jira user would have to open up their dashboard, locate the appropriate issue, open

it, then locate the field they’d like to change before finally changing it. The preceding steps are

repeated for each field that the user wants to update, and so when updating a large number of

fields these steps become cumbersome. As opposed to doing it the traditional way, our

application aims to fetch and load all issues into a spreadsheet, with each issue occupying a row.

We will also load all the fields of these issues as columns, and so that way users can quickly

scroll up and down to locate the fields of issues they’d like to update, and modify them. Once

the user has modified all the fields they’d like to change, they would click a button to issue a

PUT request, and if the modifications are valid then the update is pushed onto Jira. To conclude,

it is the ease of which our application enables many updates that makes us believe this

application will be sought out after.


4

Feasibility

Environmental Scan/Literature Review and Justification

To date, project management teams and companies primarily use Atlassian’s Jira Cloud

for Google Sheets as a vital tool in agile project management (see picture below). Although

there are many advantages to using Jira Cloud for Google Sheets, including importing important

tracking data into Google Sheets, it does not allow users to update their Jira issues from Google

Sheets. In essence, Jira Cloud for Google Sheets is ideal for one-way communication (Jira to

Google Sheets) but not for two-way communication (Jira to Google Sheets, and Google Sheets

to Jira). Our Jira-Google Sheets Add-on Integration Solution will build upon Atlassian’s Jira

Cloud for Google Sheets because it will allow Google Sheets to communicate with Jira. Our

added functionality increases efficiency as it allows SiFive to update their data from Google

Sheets. To date, we are not aware of another application that allows two-way communication

between Google Sheets and Jira. In addition, though we are developing this application with the

help of SiFive, any project management team that uses Google Sheets and Jira should benefit

from our application because its scope is not limited to SiFive.


5

Mitigation of Ethical and Legal Issues

It’s safe to say that our project should not have any ethical or legal considerations, and

that is true during production and after our project is implemented. We arrive at this conclusion

because our project is a developer-friendly utility that is not tied to race, gender, or disability. In

addition, our project will use both Jira and Google's Apps Script REST APIs to accomplish our

goal of creating two-way communication between them. Not only do both platforms come with
6

their own terms and conditions that protect their respective products, but both monitor the use of

their APIs to enhance quality and verify compliance with their product terms. SiFive have

indicated that keeping their proprietary data confidential is a top priority for them and that all

communications between both platforms must conform to standard Google user security and

authentication methods. Jira REST APIs utilize the OAuth 1.0a authorization protocol for

authentication and will allow us to associate our project to an organization, handle client

credentials and user tokens securely, and prevent any data compromises while using our plugin.

Because we are following authentication best practices and creating the add-on using Google’s

secure and versatile Apps Script, the chances of a data breach are very low and permissions will

only be granted to those within their organization.   

Project Life and Enhancements after Project Completion

We hope and anticipate that our project will be used by project development many years

after its completion, and that its use will not be limited to SiFive alone. In order to fulfill this

ambition, our application will be released as a reusable library on GitHub so that teams other

than SiFive’s can access it. In addition, though our application will be the first to enable

two-way communication between Jira and Google Sheets, additional functionality can be added

to enhance said communication. Said more specifically, our application will be the first to

update Jira issues from Google Sheets, though it will not be able to create Jira issues from

Google Sheets. We have not added this functionality because it is not required by SiFive.

Therefore, teams that have an interest in creating Jira issues from Google Sheets should use our

library on GitHub as an origin point in order to build that functionality.


7

Design Requirements and Usability Testing

Platform

With their need to integrate Google Sheets and Jira, our client required us to implement

our platform using Google Apps Script within Google Sheet. Though other platforms might

have also accomplished this need, the use of Google Apps Script simplifies our development

process because Google Apps Script enables access to built-in libraries available specifically for

Google Sheets. In addition to having these libraries readily accessible, other benefits from using

Google Apps Script are that it provides us with an in-browser code editor and, and it also allows

us to run our code on Google's Servers.

Major Functions

Function User Requirement

Connecting Google Sheets and Jira ● Users will be able to access their Jira / Atlassian using their

Google Account.

● Access to Jira data must conform to Google Security

methods (OAuth2).

Read / Fetch functionality ● Users will be able to fetch Jira data and load that data into

a specific sheet within Google Sheets

Write / Update functionality ● After loading Jira data into Google Sheets, users can then

edit that data in sheets and issue an update back to Jira.


8

Usability Test Plan / Usability Testing Evaluation

Our usability test plan involves testing the major functions listed above. More

specifically, we want our users to be able to authorize access to their Atlassian account using

their Google account through clicking the button “Connect to Jira”, then we want our users to

fetch and load Jira data from their Atlassian account into their Google Sheet of choice through

clicking the button “Get data”, and finally after loading the data we want users to edit data in

Google Sheets and issue an update back to Jira by clicking the button “Send data”. After issuing

the update, if the changes made in Google Sheets are reflected in their Jira account, then we can

consider all test cases to have passed.

Our test plan mentioned above is the evaluation method that we requested our client,

SiFive, to perform. We have shared our application with them and we have instructed them to

provide feedback after following each part of the test plan. In addition to providing feedback on

the aforementioned steps, we asked SiFive to provide feedback on the user-friendliness of our

application, to provide additional feedback on whether the application meets their business

needs, and finally we asked them for any suggestions that would improve our application. We

requested this feedback in the form of a word document that we emailed to them. The questions

written in that word document are stated in the appendix of this paper. Since this application was

developed for SiFive, we will assume that SiFive speaks for all users interested in using our

application.

Their feedback to the results of the test prove that the application meets their safety and

security standards as OAuth2 authentication protocols are implemented correctly. Moreover, the
9

feedback they provided on getting data from Jira and loading it into Google Sheets was positive

as it met their immediate requirements, however suggestions for improvement include building a

more user friendly UI that facilitates the applications ability to issue specific get requests.

Finally, in regards to updating Jira data from Google Sheets, our client concluded that this

requirement was fully satisfied and they are pleased with this feature since they viewed this as

the most important functionality.

Besides providing feedback related to the major functions above, our client was kind

enough to provide additional feedback regarding the state of our application and the steps we

could potentially take to improve it. In regards to the user friendliness of our application, our

client indicated that the application is user friendly for the basic functionality that they required,

but that it should be even friendlier if we’d like to incorporate JQL queries into the application.

JQL queries allows the user to issue specific get requests, and this allows them to load specific

data onto Google Sheets. The suggestion for better a UI regarding the JQL queries is meant as a

suggestion for future improvements, rather than an immediate need. In addition, our client

indicated that our application has the potential to go beyond the academic scope, but in order for

it to be a perfect business-driven application it needs to issue specific JQL queries using a

friendlier UI, and so future updates regarding this application must factor in this need.
10

Final Discussion and Reflection

Budget

Our budget was non-existent and so we only relied on resources that were free or

readily available. For example, we used our own PC’s, we met virtually through Zoom’s

free plan, and we used Jira’s free Cloud for Google Sheets solution as inspiration.

Timeline

We divided our project into specific milestones and we developed a timeline to

ensure we completed all requirements within the deadline. Milestones along with our

timelines are below:

Dates Milestones Issues

06 / 28 / 22 Setting up the OAuth2 Though this milestone was successfully met, it

handshake using proved difficult and the difficulty is expanded upon

AppScript in the discussion section of this paper.

07 / 05 / 22 Importing data from Jira No issues as this milestone was met.

into Google Sheets

07 / 12 / 22 Issuing updates from We successfully completed this milestone, but it also

Google Sheets into Jira proved cumbersome and this difficulty is also
11

expanded upon in the discussion section of this

paper.

07 / 19 / 22 Focusing on improving No issues as this milestone was met

UI elements

07 / 26 / 22 Testing & Evaluation No issues as this milestone was met

Final Implementation

The final product is an application that allows secure and bi-directional flow of

data between Jira and Google Sheets, thus improving workflows for companies that rely

on the need for integrating both. Below you will find captioned images that explain the

steps that a user needs to take in order to accomplish the major functions and milestones

mentioned above.
12

Establishing OAuth2 handshake between Google and Jira:


13

The steps to load all Jira data onto a Sheet in Google Sheets can be found below.
14

Below we’ve edited the summary of a specific issue (CP-21) and are just about to issue

an update back to Jira.


15

Below you can see the result after we issue the update. Our application indicates that the

update was successful, and you can see that the update is reflected in Jira as well.
16

However, our application will also validate the data that the user is attempting to push

back to Jira. For example, as can be seen below, if a user attempts to update status to an

incorrect value, then our application will not issue the update and the user will be notified

that an error has occurred.


17

In addition, our application indicates what the error is. The error message is created and

written into a new sheet called “ERROR LOGS”, and so in order to view the error

message the user simply has to open that sheet. See example below.

Discussion

Our team met early and designed a roadmap to ensure that our requirements were

met within the deadline. Our roadmap is mentioned above under the timeline section.

Besides designing an early roadmap we also foresaw potential challenges and so we

started researching and developing solutions earlier than asked. In addition, we met up

frequently (three times a week) to overcome these challenges.


18

We accurately predicted that our biggest challenge would be incorporating the

OAuth2 framework in our application. Though the timeline above suggests that it took

one week to complete, the reality is that we started weeks ahead of time and so in fact, we

spent a total of 3-4 weeks working on this task in order to complete the requirements

within the deadline. The difficulties we faced when incorporating OAuth2 in our

application are two fold: one, it took us quite some time to find a reliable solution for

implementing OAuth2 using App Script; two, Jira-provided API documentation had

solutions which incorporated OAuth1 the framework, and so we had to build upon those

solutions in order to incorporate the OAuth2 framework. Besides our difficulties with the

OAuth2 framework, another significant challenge was validating the data being pushed

from Google Sheets into Jira, and this was difficult because some of Jira’s APIs do not

provide error messages for invalid updates. This issue is still a thorne in our application

and one of our goals is to come up with a solution for this problem. With those

difficulties being mentioned, we are proud that our application still met all of our client’s

requirements as that was our target, and now our next goal is to improve the application

beyond those requirements so that we can deploy it within Jira’s marketplace.


19

References

Atlassian (2019). Jira Clouds for Sheet (Version 03/27/2019) [Web app]. Jira
Marketplace.

https://marketplace.atlassian.com/apps/1220382/jira-cloud-for-google-she

ets-official?tab=overview&hosting=cloud
20

Appendix

Feedback/answers requested from SiFive:

1. Does the project meet the requirements? Yes.

2. Do you think the application is user friendly? Yes, but it can be improved. Incorporating a

friendlier UI for JQL queries should be a consideration.

3. Does this application meet your business needs? For the most part, yes. Easier implementation

of JQL queries would make the application more useful to us.

4. Does this project go beyond the academic scope? See above.

5. Did the team follow best practices and industry standards for this project? Yes, but there is

room for improvement by documenting the code better.

6. Was the team flexible to incorporate new features? Yes.

7. Does the application meet security and safety standards? Yes. OAuth2 protocols are correctly

implemented.

8. Does the application fetch and update data per your specifications? Yes.

9. Did the team get stuck along the way? Occasionally.


21

10. What are your suggestions for improving this application beyond the capstone? (A) increase

the understanding of JIRA (B) ensure that fields can be selected dynamically (C) need to

incorporate JQL

Team member roles and responsibilities:

Bablu Banik: Developing the application and writing reports.

Fadl Ghaddar: Writing reports and developing the application.

Javier Gonzalez: Project lead, developing the application, and writing reports.

You might also like