Inspiration

The idea was inspired by my duty, whereby, I often find it time-consuming, and sometimes hard to read and understand company policies. The goal is to address this problem while solving the whole end-to-end process by creating a centralized system to facilitate policy management and to help the company achieve its compliance status.

Policy management is crucial for the company's success. It requires experienced consultants to craft policies to protect the company (this includes adhering to the compliance framework). I frequently have to deal with complex terminologies along the way. As a policy maker, this can be rather challenging to develop a well-coverage policy and make sure everyone in the company is adhering to it.

What it does

This project addresses the problem mentioned above. It comes with:

  1. Smart onboarding - to help users to onboard to the corporate policy. Like assisting in deciphering the policy context for the user to easily understand the changes or things that are specific to their role.
  2. Intelligent policy generation - assisting in creating and addressing policy gaps. That's why this project is suitable for addressing all of the problems mentioned above.
  3. Compliance tools - to help the admin manage the policy changes revision, and monitor the users' policy acknowledgment.

How we built it

We built using all the Atlassian ecosystem tools. Primarily, Atlassian's Forge and Rovo. Forge to handle the interactive element to manage the policy and Rovo as a virtual consultant to assist with anything related to policies.

Because all the necessary components are already within the Atlassian ecosystem, the app is fully isolated from egress, thus, making it secure for the company to use and deal with sensitive info within the company.

Challenges we ran into

One of the main challenges faced was working with the Confluence API. which took me quite a while to get the format right for the POST call. One of the reasons is, that there are no built-in or public libraries available to parse markdown format text into storage, wiki, or adf format. Luckily, we have LLMs to quickly build a helper function to solve the formatting issue.

Secondly, working with the Rovo action, whereby it also took some trial and error only to figure out that there was a bug with the CREATE and UPDATE action verbs that prevented it from getting called. There is a known ticket here. The creation of policy was one of the core features we wanted, thus approaching it by using GET as a workaround for this.

Sending out notifications for policy acknowledgment. This is due to the lack of API for this functionality. Workarounds such as @mention users in the comment might be possible. However, it might not be a scalable approach if the organization uses a group that consists of a large group of users.

Accomplishments that we're proud of

The app worked as we expected and ahead of schedule. The agent is able to work flawlessly, coupled with all the necessary actions. This helps to support the agent with a wide range of conversations about policies.

What we learned

The core of this application is the AI agent. Atlassian's Rovo makes it easy to learn, and this allowed us to get a feel for building an AI-assisted app.

Policy governance. To be able to wear the shoe beyond just reviewing policy was an interesting journey. Even better, is able to understand the gaps and create the tools to solve them.

What's next for Policy officer

  • Exporting the acknowledgment transaction from the detail view. This can greatly help with the audit process in providing evidence for it.
    • [Added] Able to download through the detail page.
  • Handling change in members for grouping. This is to make sure the integrity of the acknowledgment progress is accurate at all times - even when employees move in and out of the company.
  • Setting multiple groups for the policy acknowledgment.
  • Need acknowledgment notification for the target users. This helps send out reminders to the users so that it can help fulfill the compliance score.
Share this project:

Updates