Inspiration
As software engineers, we mainly work in IDEs and resolve issues in Jira. However, we often neglect to update our documentation. To address this, we're linking Jira issues to corresponding Confluence pages as related work. This integration will serve as a reminder during the release process, helping us maintain up-to-date documentation.
What it does?
Upon the release of a version, Confluence Recommendations creates a "Related Work" segment on Jira's Release display. For each issue of that version, it highlights the most relevant page from the designated Confluence space.
How we built it
We built the configuration page using Atlaskit and React for the frontend. For the backend, we chose to use the 'openai' npm package for making OpenAI requests. When users configure the application, we retrieve all the pages associated with the selected Confluence space. We obtain the text embeddings for these page contents using the OpenAI model "text-embedding-ada-002". Additionally, we implemented a Forge function that triggers upon a version release, utilizing the "Jira Events" feature. Within this function, we fetch all the issues associated with that version and embed the summary and description of each issue using OpenAI. Subsequently, we employ cosine similarity to determine the most pertinent page for each issue. Finally, through the Jira REST API, we generate "Related Works" for this release, complete with page links
Challenges we ran into
Instead of getting the page embeddings from one of the openAI models, we wanted to get them from a lightweight model that can run in Forge run time. That model was Universal Sentence Encoder. Although we managed to run the model in Forge run time and the application seemed to work properly at first, over time our already running functions started to throw exceptions. We think this is due to the limited memory provided by the Forge run time.
Accomplishments that we're proud of
We began our journey to integrate AI into our development for the first time, gaining valuable insights into its complexities and potential. This experience transformed our approach, highlighting AI's capability to enhance software and user interactions. Proud of our progress, we believe this foundation in AI-driven development will be instrumental for our team's future projects and ideation sessions.
What we learned
Starting our journey, we had limited insights into AI-powered app development. However, working on Confluence Recommendations proved enlightening. We delved deep into Natural Language Processing (NLP), uncovering the mechanics behind sentence embeddings and how machines interpret text. Through this project, we familiarized ourselves with key techniques for comparing documents, such as cosine similarity, TF-IDF, and the Bag-of-Words model. This experience has been invaluable, broadening our understanding of AI and equipping us with practical tools for future projects.
What's next for the Confluence Reccomendations
We are considering adding Confluence Recommendations as a sub-feature to our other Atlassian products. Besides, we only used Forge storage during the hackathon development process. Since we are working on text embedding, we plan to use vector database externally for our other applications to be more efficient.


Log in or sign up for Devpost to join the conversation.