Workflow backup

A convenient way to make and manage workflow backups

Case description

Workflows are at the heart of the application, and they can be messed up. If you would like to prevent yourself of having to restore the whole environment, it might be smart to create individual backups of workflows before you start modifying them. The native way of doing so is by exporting them as a package, or to duplicate them. A marketeer that has simple operator rights will probably pick the latter one, creating lot's of workflows that only make your system slower.

An idea I had for a while was ... what if we add a backup feature to the workflow itself. A tab under the workflow properties where you can create a backup of your workflow with a single click, and restore it with another click. It's not too hard to create this form, but you also need to manage the backups. Luckily you can create packages of workflows with code, allowing us to store the backup outside Adobe Campaign. The feature was defined.

The workflow backup feature will allow you to create a backup with a single click. See a list of all back-ups that exist for that specific workflow, and restore the latest one, or any other one on demand. There's an automated cleanup on the backups and the backups are stored on the location that WSB Acato uses for it's files. So yes, they are stored on the servers hard disk and not in the database, so you can even grab them from the disk to share with for example client care.

Let's have a look

The workflow backup feature is added to the workflow properties.
The modifications to the workflow input form are minimal to avoid issues.

How it works?

Functional description

You click on the button create backup under the workflow properties. The workflow will be exported in a package and safely stored on the disk. A reference to this file is added to the workflow backup table behind this feature. When you restore a backup, the associated file will be imported behind the scenes. With a simple refresh, you'll get to see the restored version of your workflow. Automated cleanup to remove older backups is foreseen.

Technical description

When you install the serverConf package, the following objects will be created.

Workflows

wsbServerConf
This workflow gets triggered by the page.

Dynamic JavaScript Pages

wsb:serverConf
This page is show you the content of your serverConf file in a nice way.

wsb:serverConfRaw
This page represents the raw content of your file.

Installation and usage

You can simply download the package using the link above and install it on your instance. Be however informed that this feature requires the springboard to be installed. I recommend you to re-install the springboard whenever you install a new feature that relies on it, this to make sure you have the latest version of the springboard and it's global supportive libraries (like CSS).

Once you've installed both packages, navigate to the "WSB Toolkit" workflow folder under Administration > Technical workflows and start it.

Now go to the JSSP page in your browser. The url of your server you'll need to construct yourself, but as a reference, use this one: https://localhost:8080/wsb/serverConf.jssp
You might need to play around with http(s) and the port.

The source code of this feature is available on Azure DevOps

Find out more

Usage

You can use it all for free, but you need to be aware of the following 

You are allowed.
  • to install the packages or implement the ideas on your own instance
  • to use and modify the features on your own instance
  • to promote this website to your clients
You are not allowed.
  • to redistribute the packages or ideas
  • to embed the concepts or packages in the software as native or add-on packages
  • to earn money based on these features
You agree.
  • that you are installing the packages / implementing the features at your own risk
  • that any damage to your instance is for your own account
You are aware.
  • that we use the "wsb" namespace for our features
  • that there's no active support, but feel free to drop a mail