Case Study: Frontend Mentioning for Confluence

October 20, 2016
#Confluence#Case Study
8 min

We were looking for a seamless integration of a major performance improvement for the usage of Confluence. The StiltSoft team provided a fast approach and delivered in time, in cost and in quality. Now, we are looking forward to working again with Stiltsoft for the next release.

P. Eckelmann

About the Customer

Some time ago we completed a challenging project for Philipp Eckelmann, the private owner of several add-ons in the Atlassian Marketplace. Philipp has worked for a long time as the consultant and manager. Today, he is board member of a midsized company with 270 employees. Over these years he has got great experience in communication with business partners and establishment of new contacts when doing business.

Several months ago Philipp decided to bring his experience to real life in the form of several add-on for Atlassian Confluence. We already published the case study about one of the completed add-ons bundled within CRM Suite.

His choice was not accidental, as his expertise and experience were closely connected to Confluence and he wanted to continue using it. Additionally, there were dozens of contacts on his own Confluence where he wanted to keep them further.

Project Overview

Development of this project was caused by the necessity to automate replacement of text names of contacts with the new contact mentions that became available with the release of CRM Suite: Contact List. This add-on allows insertion of contact mentions in the page edit mode, but doing this in the page view mode should improve the overall efficiency.

The large list of business contacts was already available in Confluence, so our customer wanted to have a solution that will enable quick insertion of these contacts or replacement of text snippets.

Our customer needed a solution that will allow him to select some name of the contact on the page and the add-on would try to match it to the existing contacts in the contact list. If matched, the engine replaces this text snippet with the contact mention looking like #John Doe. If not the user can try to manually search for the contact. In addition to this, our customer also wanted to have the similar functionality for generic user mentions too.

As an option, our customer needed a mechanism to convert the selected text snippets into the standard date stamps in the page view mode. The add-on should be able to treat different date formats and respond according to the defined time zone.

After discussion of all project details and analysis of the requirements, we agreed with the customer on the project scope and proceeded to the development.

Inserting Contact and User Mentions

CRM Suite: Contact List added a capability to manage the list of contacts and insert contact mentions on Confluence pages while editing their contents. This was possible due to the usage of the reserved key #, which opened the contextual input form for entry of the contact’s first and last name.

Our customer already had a lot of contact names in plain text on Confluence pages and wanted to simplify the overall process of inserting them without the continuous page editing. Philipp wanted to get a new add-on that would be bundled within CRM Suite and will work as an enhancement for the existing CRM Suite: Contact List add-on. This solution would add a capability to quickly process plain text contact names and replace them with the convenient contact mentions showing contact details when you hover over them.

The new add-on was closely integrated with CRM Suite: Contact List and used its list for matching contacts to the selected text snippets on Confluence pages. By default, Frontend Mentioning replaces the selected text with the matched contact, but in some situations it prompts users to select the appropriate contact if multiple matches are found. In case if no matches are found, the user can enter the appropriate contact’s name for its insertion. The add-on also supports the contact matching by custom fields, so when you highlight some company name or Skype name, the add-on will try to match it and insert the corresponding contact.

Converting the Date Stamps

Our customer had a lot of dates in plain text on Confluence pages and it was difficult to read them when surrounded  by a lot of text. The date stamps inserted by entering the double slash ‘//’ on Confluence pages were a better solution and it was easy to find the date of the appointment or meeting when reading a page. So our customer needed an easy way to transform generic text dates into these date stamps. As editing the page each time and selecting the appropriate date through the date picker was not a good approach 🙂

The main problem with this was a variety of date formats that were used on Confluence pages, so it was necessary to support the most popular time formats and process them on the fly.

After selecting the text snippet that contains a date, the user can click the corresponding icon in the pop-up contextual menu and get the date stamp inserted on the page. Format of the date is determined automatically and depends on the time zone specified in the preferences of the user profile.

The user can replace the selected text snippets with the date stamp but in this case he will need to pick the appropriate date manually.

Project Results

The current project was a real challenge for our development team as every day it revealed different issues and architecture restrictions that we had to overpass during development.

The add-on and the mechanism for inserting contacts and date stamps were optimized for operation with different Confluence themes and in different browsers. Insertion of mentions and date stamps was also optimized for work with the major page elements and native Confluence macros.

Its functionality was adjusted to work with the native Confluence mechanism of resolving page editing conflicts. Performance and operation of the add-on was significantly optimized for different databases, which ensures reliability and instant response of the add-on in any situation and under any server load.

We got excellent experience in extending the native capabilities of Atlassian Confluence and adding features that simplify work in this team collaboration platform. Quick insertion of user and contact mentions, as well as date stamps, will be a good feature when you plan meetings and record the conference results.