Case Study: Keeping Business Contacts in CRM within Confluence

January 27, 2016
#Case Study#Confluence
8 min

The overall perception of the collaboration with StiltSoft can be summarized in the word “professionalism”. We were able to establish a very agile approach with a high response rate (within a few hours). Together, we created the requirements for the final product in a very straight forward process. StiltSoft provided valuable input to the value proposition of the product as well as structure to the development process. The final piece of software is well documented and has been thoroughly tested by StiltSoft and us. Most important: the final product meets the requirements, we defined at first.

P. Eckelmann, Eckelmann AG

About the Customer

We completed an interesting custom project for Philipp Eckelmann, the representative of Eckelmann AG company. This company specializes in machine and system engineering, including development of cooling technologies and automation software. The company was founded in 1977 at the start of automation engineering era. They manufacture the wide range of tools from compact device controls and to full-fledged and completely automated industrial systems.

The key manufactured solutions for enterprise include:

  • Hard­ware and soft­ware for ma­chine au­toma­tion
  • Reg­u­la­tion and con­trol sys­tems for com­mer­cial cool­ing sys­tems and build­ing tech­nol­o­gy
  • Sys­tem in­te­gra­tion and soft­ware de­vel­op­ment for sys­tem au­toma­tion

The highest quality, usage of the proven industry standards, adaptation of the newest technologies allow the company to be one of the leaders in enterprise solution systems in European Union. A rich set of tools and services, customer attention and innovative technologies drive the continuous growth and development of the company.

Project Overview

The customer uses Confluence as a team collaboration platform for sharing information about new projects and tracking the meeting protocols. The sales team writes short protocols after meeting with customer for outlining the project and its requirements. While writing a protocol, they need to mention customers in description of business trips or meetings. For the continuous tracking of customers and viewing where they were already mentioned they needed some tool that will keep track of this information. So the manager will be able to view the whole list of pages where a specific business contact was mentioned.

Within the project scope, we had to create the separate section where the customer could manage contacts and perform basic operations, such as creation of new contacts, editing contact details or deleting contacts. For each contact, the customer wanted to specify the contact information, such as email, company, position, address, contact phones and so on. Once added, Confluence users can mention business contacts on Confluence pages the way similar to the one for user mentioning in Confluence.

Managers can instantly see where the particular contact was mentioned on the page and browse the other pages for viewing details of meetings with this business contact. Additionally, the customer needed a way to differentiate access to management of contact details and viewing contact details. All this functionality and other enhancements were completed by our company, so let’s see the project in details.

Management of Contacts in Confluence

After installation, the add-on adds the Contact List item into the Confluence menu, so users can quickly access the list of contacts and manage them. All contacts are shown as a grid, you can easily browse the available contacts and perform basic operations on them, such as adding contacts, editing or deleting them. The removed contacts are not removed from Contact List forever, they are just grayed out you can always restore them. Contacts that have been mentioned there prior to deletion will remain on the pages.

crm 1

Creation of contact is performed in the pop-up form, you can specify all the required information about the contact and leave the optional notes, as well.

contact creation form in Confluence

Additionally. you can search for business contacts by name, email or company name.

Mentioning Contacts on Confluence Pages

While creating or editing Confluence pages, you can add mentions of your business contacts by typing # following name, email or company name. The add-on automatically fetches the list of contacts matching the entered text snippet and prompts you to select the appropriate contact.

confluence page contact mentioning

After saving the page, contacts are displayed similar to user mentions. Once your colleagues hover over the contact, they can view contact details.

contact details in Confluence

Viewing the List of Pages with Contact Mentions

While viewing the contact on the page or in Contact List, you or your colleagues can open the page that lists all Confluence pages where this contact was mentioned.

crm 5

Contacts can be sorted by page title, page creation or modification date. Right from here, you can proceed to the contact’s details or edit the profile. When clicking a particular Confluence page, you will be redirected to the first mention of the contact on the page, so you can instantly see the contact in the context without scrolling the page and looking for the contact.

Configuration of the Add-on

Management of the add-on’s settings is pretty simple and will not take much time of yours. All you need is just to enter the list of users and user groups who can manage Contact List and view details of contacts.

crm 6

Users who are not allowed to manage contacts can only view the list of contacts without a capability to edit or delete them. If viewing the contact details is not allowed for users, so only the full name of the contact will be shown on Confluence pages and in Contact List for these people.

Project Results

This custom project set a range of challenges of how to preserve the native Confluence experience and provide the user-friendly interface for efficient management of CRM listing in Confluence. We used the design and user workflow patterns available in Confluence so the customer can do a quick start with the add-on.

We hope that the add-on will simplify the customer’s work with business contacts in Confluence and will save him and his employees a bit of time on inserting mentions of business contacts. The existing solution brings all the necessary features for keeping a consistent list of business contacts and keeping track of any meetings or business trips for discussion of company issues with this or that customer.

How to encrypt your Confluence or JIRA server disk

January 6, 2016
#How To#Confluence#Jira
7 min

Why do you need to encrypt your Confluence or JIRA server disk?

Confluence and JIRA usually contain confidential information which can be commercially sensitive information or just your private data (of course, you don’t want to share it with other people). Data protection against loss and unauthorized access can be achieved by managing user access and using the TLS encryption protocol for accessing your Confluence and JIRA servers. Disk encryption helps to protect your data even if your server (especially if you use a virtual server) or its disks were stolen.

How to encrypt a disk in Linux

A lot of Linux distributives offer disk encryption (or user home directory encryption) during installation. But sometimes you need to encrypt your disks after installation, or you need to encrypt only one of your disks – in this case the unencrypted data can be used before your administrator enters the password to decrypt the encrypted data (this procedure is usually required after the server reboot).  .

We’ll use LUKS to encrypt one disk on the server. You need to install a cryptsetup package on your Linux server, if it is not installed yet:

apt-get install cryptsetup

or

yum apt-get install cryptsetup

If you’re reusing a disk (here and below in this article it will be ‘sdb’) that contained important data, you can rewrite your disk with random data to destroy the information on it:

dd if=/dev/urandom of=/dev/sdb

Let’s enable the /dev/sdb encryption. This irretrievably destroys all data on the disk:

cryptsetup luksFormat /dev/sdb

You need to confirm your actions by entering YES in the uppercase:

image2015 12 7 16 59 44

Then, you need to enter the password for the /dev/sdb decryption.

All data on /dev/sdb will be encrypted starting from this moment. But you also need to create a file system to start using an encrypted device on your server.

How to prepare an encrypted disk to use it on server

You need to open an encrypted device:

cryptsetup luksOpen /dev/sdb storage

where ‘storage’ is the device name that will be used in the system (/dev/mapper/storage). You need to enter the decryption password at this step.

Let’s format the disk before the first use:

mke2fs -j /dev/mapper/storage

You need a mount point to use the disk. Let’s create it:

mkdir /storage

After that, just mount your drive and start using it.

mount /dev/mapper/storage /storage

What happens after server reboot?

After reboot, your /dev/sdb will be unmounted and encrypted. You need the commands below to decrypt and mount your drive and start working with it:

cryptsetup luksOpen /dev/sdb storage
mount /dev/mapper/storage /storage

The drive will be decrypted, mounted and ready to go.

How to encrypt Confluence or JIRA data

If you want to encrypt your Confluence or JIRA instance, you just need to install them into the /storage directory, also you need to place the Confluence or JIRA home directory there as well. If your instance is already installed – you can move your Confluence or JIRA files into /storage and change the startup scripts settings and Confluence or JIRA home settings in configuration. Your data will be encrypted. Don’t forget to set up correct user permissions for the moved files using ‘chown’.

Please note that a significant part of settings and all text content of your Confluence or JIRA instance are located in the database. The file system of your server contains major Confluence or JIRA system settings, attachments, exported data and backups. To be sure your instance is fully protected, you need to setup your database encryption. The most popular databases (MySQLPostgreSQLOracleSQL Server) support encryption to protect your data.

Some automation magic

It is insecure to set up automatic disk decryption and mounting, but it is annoying to enter a lot of commands in server console every time after restart. This problem can be solved by simple actions:

  • disable automatic startup for all services that use an encrypted drive (Confluence, JIRA and so on)
  • create a simple script to decrypt and mount the drive with data and starting related services (below you can see an example script to decrypt and mount the drive into /storage and then start Confluence and JIRA instances)
cryptsetup luksOpen /dev/sdb storage
mount /dev/mapper/storage /storage
/etc/init.d/confluence start
/etc/init.d/jira start

Such script can simplify the start process for your encrypted Confluence or JIRA instances after the server reboot. You just start the script and enter your drive decryption password, and the automation magic does the rest.

Sponsored Development: How We Improved No Email Storm Add-on

October 2, 2015
#Confluence
5 min

Mercy Ships uses Confluence as a way to collaborate between our 16 offices around the world and our Hospital Ship off the coast of Africa. Keeping informed and aware of documentation, processes, and policies is crucial in our work. StiltSoft’s No Email Storm has made it easier for our users to Save & Notify watchers when important changes are being made and Save for repeated or minor changes reducing the unnecessary and overwhelming notifications in each person’s inbox. In addition, StiltSoft worked with us to make a minor change to their product that made it an even better tool for us. Thank you StiltSoft for a great and easy to use product and for being very helpful and responsive in your services!

Michelle Vincent,
Mercy Ships

Release of No Email Storm 2.1.0 has been coordinated with Mercy Ships organization that requested a change in the user exeperience of the add-on. The client wanted to have a capability to alternate the prominence of Save and Save & Notify buttons in Confluence editor. Our company willingly provides the options of crowdfunding and sponsored development, but for this organization the requested functionality was added for free as a bit of help from our side for their noble activities. Our company will also appreciate if users of No Email Storm make small donations to Mercy Ships organization as these people are doing really great things.

About the Customer

Mercy Ships uses hospital ships to deliver free, world-class healthcare services, capacity building and sustainable development to those without access in the developing world. Founded in 1978 by Don and Deyon Stephens, Mercy Ships has worked in more than 70 countries providing services valued at more than $1 billion, treating more than 2.5 million direct beneficiaries. Each year Mercy Ships has more than 1,600 volunteers from more than 40 nations. Professionals including surgeons, dentists, nurses, healthcare trainers, teachers, cooks, seamen, engineers, and agriculturalists donate their time and skills to the effort. Mercy Ships seeks to transform individuals and serve nations one at a time. For more information click on https://www.mercyships.org/.

Details of the Release

As everybody knows, No Email Storm was created to allow better user experience while saving the page with minor updates that are not needed to share with the rest of the team through email notifications.

The current release of the add-on was decided to make public and available in the Marketplace as we at StiltSoft think that this new feature will be in-demand. So what was actually added and updated?

The configuration section of the add-on has received a new option to set the primary button for Confluence editor. So if you deal with thousands of Confluence pages, but you only add light corrections and updates so you woud not like to distract other colleagues of yours with the constant stream of notifications about added letter or corrected word. Using the native Notify Watchers option is quite inconvenient as you need all the time not to forget check or uncheck it depending on the updates you added.

With the current release of the add-on you can select which button to make prominent in Confluence editor. The other thing about this is that the key combination Ctrl + S is automatically mapped to this prominent button. So if you are a fan of hotkeys but you do not want to notify page watchers, you can set the Save button as pominent and keep pressing Ctrl + S keys for saving pages. No notifications will be sent in this case.

If you always want everybody to be updated on the page updates you made, select the Save & Notify button as prominent.

Want new functionality in our add-on in the nearest time? Send the request to us and we will discuss details of this custom enhancement with you.

Posting GIF Screencasts to Atlassian Confluence and JIRA

July 28, 2015
#How To#Confluence
9 min

All of us, amateurs of Confluence and JIRA, post a lot of information to Atlassian ecosystem. In most cases, Confluence is used to store documentation with instructions, and JIRA for keeping bugs and issue reports. While working with documentation or issues, sometimes you realize that posting a video file is much more convenient than describe all instructions or issue reproduction steps. But if you has not uploaded your video to YouTube, you will encounter some difficulties with storing this video file in your JIRA or Confluence. So is there any solution that can simplify this experience? Yes, there is – animated screencasts in GIF.

They are good to capture attention of your readers with some animated images and save some time page space on images and text description. Animated files and screencasts are also ideal to show dynamics and changes that occur on the screen. So screencasts will be perfect to present some instructions or how-to-do steps on the pages of your web blog. In the current blog post we will review tools and applications that can facilitate your experience with screencasts and speed up your work on their production.

GIF animations allow you to captivate your readers and viewers with the visually appealing content that they are also easy to percept and understand. In the real life you can create a series of screencasts to show how this or that option works, for example, as we did for Table Filter add-on. Here we combined the instructions with the output result. This helps our customers to better understand how the add-on options work and affect the overall customer experience with data tables.

Our company works much with Atlassian Confluence and JIRA, so GIF files help us to embed the screencasts with the feature overview in documentation or issue reproduction steps to the issue tracking system. This saves a lot of time as we do not write long instructions or issue explanations, so employee have more time for other activities.

Advantages of GIF Files

Usage of GIF animation files can bring several benefits to you and your content. They are usually short and highly compressed, so do not require so much traffic as videos. They are quickly loaded in the browser and can work on different devices with different operating systems, so almost all your visitors and readers will be able to get your information at once if comparing against videos or Flash files.

Pivot table aggregation

Short animated clips are an excellent way to point someone’s attention to the required piece of information. It is not accidentally that online ads are usually GIF files for capturing viewers’ attention and promoting some idea.

The only limitations of GIF files are the insufficient range of available colors and lower recording quality in comparison to video files.

Online GIF Animation Tools

If you do not have an opportunity to install some GIF animation application but you have access to the Internet, you can try online tools. Such services as as GIFMaker.meEZGIFPicasionGICKR or imgflip allow you to upload a series of images that are further converted into a GIF animation file. You can configure dimensions of your output file, set the appropriate animation speed or playback pattern and perform additional manipulations on the file and its assets.

Image uploading

Other services allow you to convert the already available video files to GIF format. For example, makeagifgifyt or Imgur allow you to convert the manually uploaded videos or videos from YouTube to GIF files. Such services usually impose limits on duration of your GIF files, so avoid long cinematographic intros (smile).

Mageagif screenshot

If you do not have some source files, such as a series of images or a video file, you can try to record your screen and save as a GIF file. You can try Screenr for doing this.

Making a screenshot

Simple Offline Animation Tools

As an alternative to online tools, you can try offline applications that can record screencasts and save them to GIF files or automatically publish to the Internet.

Here you have a variety of tools and applications that can help you to capture the defined area of your screen and instaly output it to a GIF animation file. The simple and free tools do not have many options, so in most cases you will be able to define the frame rate and dimensions of the outputted file, and that’s all (smile).

Pivot table in Confluence

For example, you can start with ScreenpressoLICEcapRecorditScreenToGIF or Gyazo. These applications are quite simple and will not take much time before you get the desired result.

Confluence chart

Advanced Offline Animation Tools

As one of the most powerful tools to work with your GIF animations is Camtasia Studio. This is a universal multimedia tool that can help you with almost all procedures starting from screencast recording, further cross-cutting and production, and final output to the appropriate file format.

Besides editing the timeline of your screencast, you can clip or extend duration of the screencast, add callouts and optional text. With this tool you can achieve great results and your screencasts will be always memorable and highly impressive.

Camtasia gif recording

And remember that It is better one time to see things than one hundred times to hear about them. So if you use images it is cool, but why not to add some animations…

Integration of Yellowfin and Confluence

April 21, 2015
#How To#Confluence
13 min

The modern world abounds with enormous amounts of data that remain just characters and digits without a tool that can aggregate, process and visualize this data for better perception of information. Yellowfin is an analytic software solution that allows you to maximize efficiency of your business intelligence with numerous reports and dashboards. It supports multiple data sources, such as relational databases, multi-dimensional cubes or in-memory analytical databases.

In this blog post we will review integration between Yellowfin reporting platform and Atlassian Confluence for quicker team collaboration.

Standard Integration Capabilities

Yellowfin is equipped with JavaScript API, which allows you to embed JavaScript code snippets onto your web pages. You can embed either reports or dashboards onto your pages with the JS code snippets automatically generated in Yellowfin.

Yellowfin and Confluence

A generic code snippet will look like the following one:

//JS code to embed the report
<script type="text/javascript" src="http://yellowfin_server/JsAPI?reportUUID=370cf271-0b78-4e55-ba81-cf4a71e29acf&width=829&height=295"></script>

//JS code to embed the dashboard
<script type="text/javascript" src="http://yellowfin_server/JsAPI?dashUUID=9a31442d-d8a6-4aad-ad11-d342db606b64&width=800&height=400"></script>

The basic script includes address of the Yellowfin server, path to JavaScript API and the size of the reporting area in pixels. As usual, you will have to include the login and password in the JS code if you want to embed it into some external resource.

//JS code to embed the report
<script type="text/javascript" src="http://yellowfin_server/JsAPI?reportUUID=370cf271-0b78-4e55-ba81-cf4a71e29acf&width=829&height=295&username=admin@yellowfin.com.au&password=test"></script>

So what can you do with this JavaScript code in Confluence? You can create a new page and add HTML macro, which you can further paste your report or dashboard code into.

Yellowfin and Confluence

Once you save the page, you will be required to enter the credentials once again and then the report will be generated.

Yellowfin and Confluence

You can embed multiple reports per Confluence page and get data visualized in one place.

This way of embedding Yellowfin data is not very convenient as it exposes your credentials and all the time you need to verify JavaScript code as you can make any mistake in it.

Inserting Yellowfin Reports via User Macro

A better way to embed Yellowfin reports and dashboards into your Confluence pages is to write a user macro with the interface for entering parameters.

Navigate to Administration console > Configuration and select User macros. Once the page opens, click Create a user macro.

On the opened page, specify the basic information about the user macro. You need to enter the user macro name which will be used for inserting the macro on the page, define its visibility and select the category, which the your user macro will be associated with.

Yellowfin and Confluence

For the Macro Body Processing, select ‘Rendered’ so Confluence will render the content received from Yellowfin API.

Yellowfin and Confluence

As the macro template enter the following code:

## @param elementId:title=Element ID|type=string|required=true|desc=Enter the Element iD
## @param reportUUID:title=UUID|type=string|required=false|desc=Enter the report UUID
## @param showFilters:title=Show Filters|type=boolean|required=false|desc=Enable the information showing
## @param showExport:title=Show Export|type=boolean|required=false|desc=Enable display of page links
## @param height:title=Height|type=int|required=false|desc=Enter height of the report
## @param width:title=Width|type=int|required=false|desc=Enter height of the report
 
<ac:structured-macro ac:name="html">
    <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
    <ac:plain-text-body><![CDATA[<div id="$paramelementId">

//Both Confluence and Yellowfin are installed on the local computer. If instances are installed on different servers enter the appropriate address of Yellowfin server.
<script src="http://127.0.0.1:8087/JsAPI" type="text/javascript"></script>
<script type="text/javascript">
	var options = {};
		options.elementId = '$paramelementId';
		options.reportUUID = '$paramreportUUID';
		options.username = 'youremail@example.com';
		options.password = 'yourpassword';
		options.showFilters = '$paramshowFilters';
		options.showExport = '$paramshowExport';
		options.width = '$paramwidth';
		optionsheight = '$paramheight';
	yellowfin.loadReport(options);
</script>

</div> </ac:plain-text-body>

So let’s divide this code into snippets and see what each piece of it does.

This code snippet defines the set of input elements available in the macro browser. For each input element you need to define its name, title in the macro browser, type, required or not, and text description of the input element. You can find detailed information about parameters in user macros in Confluence documentation.

## @param elementId:title=Element ID|type=string|required=true|desc=Enter the Element iD
## @param reportUUID:title=UUID|type=string|required=false|desc=Enter the report UUID
## @param showFilters:title=Show Filters|type=boolean|required=false|desc=Enable the information showing
## @param showExport:title=Show Export|type=boolean|required=false|desc=Enable display of page links
## @param height:title=Height|type=int|required=false|desc=Enter height of the report
## @param width:title=Width|type=int|required=false|desc=Enter height of the report

The screenshot below illustrates these input elements in the macro browser.

Yellowfin and Confluence
The next code snippets is our macro body that inserts the HTML macro that will be used for output of reports and dashboards from Yellowfin server.

//Inserts the HTML macro that will be used to wrap our Yellowfin script.
<ac:structured-macro ac:name="html">
    <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
    <ac:plain-text-body><![CDATA[<div id="$paramelementId">

//Calls Yellowfin script that will fetch the report or dashboard from Yellowfin server.
<script type="text/javascript">
	YELLOWFIN SCRIPT GOES HERE
</script>

</div> </ac:plain-text-body>

We want to point your attention to the specific HTML element that will be used for output of Yellowfin report/dashboard stored in the tag shown below. Our user macro will allow you to enter its ID right in the macro browser, so you will be able to insert multiple reports and dashboards on the same page without any issues. The $paramelementId parameter will take the value entered as Element ID and paste it into our user macro.

<ac:plain-text-body><![CDATA[<div id="$paramelementId">
</div> </ac:plain-text-body>

And the last part of out user macro is the call of Yellowfin script that will make a request to its JavaScript API on the server and fetch the required report with the defined parameters. As you can see $param+parameterName is used to fetch the value defined in the macro browser and insert it into the script. In Yellowfin documentation you can find the fullt list of parameters for reports and dashboards. The example below provides a range of basic parameters required for output of the report, the similar code can be used for dashboards. You can alternate the parameters or remove the unnecessary ones if needed. Some parameters are mutually exclusive so please consult Yellowfin API documentation before you start.

<script src="http://127.0.0.1:8087/JsAPI" type="text/javascript"></script>
<script type="text/javascript">
	var options = {};
		options.elementId = '$paramelementId';
		options.reportUUID = '$paramreportUUID';
		options.username = 'youremail@example.com';
		options.password = 'yourpassword';
		options.showFilters = '$paramshowFilters';
		options.showExport = '$paramshowExport';
		options.width = '$paramwidth';
		optionsheight = '$paramheight';
	yellowfin.loadReport(options);
</script>

Once you complete save the user macro.

Inserting User Macro

Open the necessary Confluence page and switch it to the edit mode.

Start entering {Ylbrep} and select your user macro. Name of your user macro may vary if you set a different one.

Yellowfin and Confluence

Then just enter the required Element ID and insert report UUID from Yellowfin server and that’s it. If needed, enable display of filters and report export, and specify the required width and height of the report.

Once you save the macro, its parameters will be saved in its body.

9 yellowfin

When you save the page the report will appear on it and you can work with it as in Yellowfin itself. The report will be updated upon each reload of Confluence page, so if new data is continuously supplied to Yellowfin you will get all the time the updated data.

Yellowfin and Confluence

As you can see it is not a problem to quickly and easily integrate Yellowfin and Confluence. Yellowfin Javascript API is easy to understand, use and customize. Besides the generic embedding of the report or dashboard, you can insert them with the already filtered results and save a bit of your time.

Top 5 Most Requested Features for Confluence

March 12, 2015
#Confluence
21 min

The modern IT world cannot imagine its existence without a collaboration and interaction platform. Confluence has become known as one of the most reliable and featured wiki-systems with a plenty of out-of-the-box capabilities and options. Its popularity is continuously growing, but and users’ requirements to Confluence are also increasing.

Atlassian is open to interaction with end users and provides the open JIRA stand where everyone can report an issue or request a new feature that is missing in their products. Some features are added, the others are postponed or rejected. Anyway the declined and postponed features get their life in the form of custom enhancements that you can download as add-ons for Atlassian products in the Marketplace.

Some time ago company Adaptavist made an attempt to create the list of Top 5 Requested Features for Confluence written in 2011. It included the following features:

After all, only the third feature request change of usernames has been completed. The forth request has been rejected at all, but now most browsers support the spelling checkup so it is not a problem anymore. The rest of requests are still open and it is unknown when they will be completed.

We will retry their experiment and will present the updated Top 5 Most Requested Features for Confluence – Year 2015. The updated list look like this:

#5 – Numbered Headings

This feature has preserved its fifth position on the list. 368 votes, 198 watchers, more than 80 comments did not make Atlassian ready to start development of this feature.

The original feature request sounded like:

Would like the ability to display numbered, formatted headers. Same test style as existing headers (h1., h2., etc), but with dot-notation nested numbering.

Maybe something like: h#., h##., h###., etc.

So markup like:

h#. One
h##. One-one
h##. One-two
h#. Two
h##. Two-one
h###. Two-one-one

Nevertheless, this feature is available as an add-on for Confluence. Numbered Headings developed by Avisi B.V. is a free add-on that allows you insert your text with headings into a macro, which automatically adds the required numbering for each heading depending on its level.

You can select the appropriate numbering format from the available ones or create your custom format. Additionally you can enter the number to start with your numbered list and add heading levels that should be skipped by the add-on. Configuration is pretty simple and the interface is intuitive even for newbies in Confluence.

An alternative solution, is Engineering Essentials add-on from Precision Plugins. The add-on allows you to select the space where headings will be automatically converted to numbered headings. You have no other options as in the previous add-on, but you needn’t place your headings into the macro all the time. The add-on also shows numbered headings in the view mode, unlike Numbered Headings add-on showing numbers in both view and edit modes.

This add-on is paid, but it has an extra feature that makes addition of change comments as required when you save the page.

#4 – Complete Space Duplication

This feature request was added almost 10 years ago. 376 votes, 173 watchers, about 60 comments and this feature is still not complete. Frankly speaking it is complete, but still open for Confluence Cloud.

The original user’s request sounded like:

It’d be really very handy to be able to duplicate a space. Export/import only works on 1 space I think (it seems to have lots of integer ids in there so I dare not try exporting, twiddling things and reimporting).

What would be really nice would be a ‘copy space’ option where you can duplicate an entire space as a different name/key.

e.g. setting up projects at codehaus; it’d be good to use an existing space as a base, then copy the entire thing, then after that either export/import to search/replace, or just manually modify pages after that.

Your can use the native add-on from Atlassian Labs – Copy Space for Confluence Server 4.2 – 5.5.7. Unfortunately, it is no longer supported but you can try to manually install it on your Confluence version.

When you open the content tools for the definite space you can make a copy of your space including all comments, attachments and personal labels. If needed you can also keep the original authors and dates for the page copies. During duplication you need to enter a new space name and its space key.

After clicking the Save button you will get an exact copy of your space. The only problem is that it copies the latest revision of the page skipping all the other revisions, it also excludes blog posts and emails. The other major problem is space permissions. which are not considered during space duplication and all your restricted pages become open for all users.

An alternative solution for Confluence Cloud is Copy Space OnDemand from Artemis Software. It is similar to Atlassian’s add-on, but has some modifications.such as progress of the copying procedure and the log with of operation. It has the same limitations as Copy Space for hosted instances.

If you do not want to use any add-ons you can do use the native functionality of exporting Confluence spaces to XML. Here you will have to change the space name in the exported XML files and then you can restore this space in Confuence as a new space. The similar procedure can be performed with the Archiving Plugin.

#3 – Inheritance of page edit permissions from the parent page

Confluence has the built-in permissions for viewing and editing pages. The view restrictions are automatically applied to the child pages from the parent page. But this does not work for edit permissions when you have set edit restrictions for each page in particular. 421 votes, more than 250 watchers and around 90 comments from users waiting for this feature get done.

This feature is mostly needed for companies sharing their content and documentation with their customers. Without this feature you need to manually define the edit restrictions for each page of yours instead of automatic inheritance of restrictions from the parent page. Unfortunately, there is no add-on that can provide the similar capabilities for now.

The possible workaround for this issue is Run CLI Actions in Confluence add-on being developed by Bob Swift. You can use a custom command to automatically apply the edit restrictions to the page descendants.

#2 – Sectional Editing

This feature was added almost 9 years ago and it is still open. 438 votes, more than 220 watchers and about 130 comments from users waiting for the desired feature.

It is not a secret that Confluence pages can be long, can be very long, can be extremely long, and here’s the main reason for this feature request. When you deal with such pages and edit them, sooner or later you came to conclusion that you waste much time on scrolling pages up and down, up and down, again and again. The possible solution here is a capability to edit page sections divided by headings of different levels.

One of the most convenient and easiest-to-use solutions is InPlace Editor for Confluence developed by StiltSoft. It allows you to enable sectional editing for the appropriate headings levels and spaces.

An additional Pencil icon is shown next to the allowed heading levels, which when clicked will open a visual editor for adding, editing or updating text, inserting images and macros. InPlace Editor uses the similar editor as Confluence does, so you will not have to acquire new experience with some over-complicated editor.

Just work with page sections and do not scroll anymore.

#1 – Copying page hierarchy with attachments

And the last, so better the first, the most requested feature for Confluence is a capability to copy the page hierarchy including all the attachments.

About 750 votes, more than 320 watchers, 160 comments from users looking forward to getting this feature in Confluence. This feature is very useful when you deal with the similar information in different places of your Confluence. You can quickly copy the source data, updated it in some other place with new information and save a plenty of time for other activities.

The most convenient solution for you is to use Copy Page Tree add-on developed by Artemis Software It is available for both hosted and Cloud versions of Confluence. It is paid but its price is reasonable and you will not go bankrupt with it installed.

The add-on adds its own action into the Tools menu. When you activate the add-on, it allows you to select the new location for the page tree. Then you can select the pages that you want to copy to a new place. To avoid the problem with identical page names within the same space you can use page prefix and suffix or replace word or part of the title with the new text.

As an alternative, you can use the Atlassian’s native add-on – Confluence Copy Pages. It has fewer options than the latter add-on but it is free. Its main con that it does not allow you to choose which pages to copy as it allows you to select copy of one page or copy of the page with all its childs, so in the result you may get a lot of rubbish pages for removal.

Another solution is to use Run CLI Actions in Confluence add-on and use the command similar to the one displayed below.

confluence --action copyPage  --space "confluencecli"  --title "Home"  --newTitle "This is new title 1"  --newSpace "confluencecli2"  --parent "Home" --replace --descendents --copyAttachments --copyComments --copyLabels

So you have multiple ways to copy your page hierarchy to a new place, and which to choose depends on your preferences.

Conclusions

As you can understand, Atlassian uses their own approach for development of particular features. It provides a gap for Atlassian Experts and other development vendors to develop add-ons that provide options to fulfill the opened positions in the market. This stimulates development of Atlassian products and Marketplace with the more tools to improve your user experience.