Which WYSIWYG editor to use in ServiceNow?

In the last two projects I have worked on the TinyMCE editor plays a huge part of the applications I developed for the Service Portal (a dynamic pdf generator and a new email client supporting secure emails).

I found the editor to be very difficult to customize and prevent it from altering the html content. The latest issue I have encountered is an issue with new lines. The editor inserts either P or BR. The problem is that when BR is inserted it is the version <br /> and we found that in rare cases this can actually lead to loss of editor content.

So I am looking for alternative editors for future projects.

So far I have tested following alternatives very briefly. The tests consists of only a few things so far:

  • Can I instantiate the editor and edit content?
  • Can I get the content via event when user has modified it?
  • Can I set the content for example when user clicks a button?
  • Can I insert images from clipboard

TinyMCE 5CommercialNoNot compatibletiny.cloud
CKeditor 5Commercial NoUnable to testckeditor.com
Froala 4Commercial YesEasy pdf exportfroala.com
QuillOpen SourceYesquilljs.com
PellOpen SourceYesjaredreich.com/pell

I still need to do more thourough testing but I kind of like Froala.

As for TinyMCE 5. This seems like the obvious choice since ServiceNow is already using version 4. However version 5 requires the page to be rendered in standards mode and that is not the case in ServiceNow.

Do You know any editors that will work in Service Portal or as a component in Now Experience Framework ?

If you do please comment below or send me a message on LinkedIn.

Containerizing MID Server

From Rome release it is now possible to run MID servers in containers.

This means maintaining and deploying extra MID servers now can be done very fast.

Official documentation HERE.

In the old days setting up multiple MID servers on the same host would require going through the installation multiple times. Now you just build the MID server image one time for the relevant ServiceNow release and push it to a repository such as Docker Hub.

In the following I will describe how I setup an image for running multiple MID servers.

Step one: Download the correct recipe from your ServiceNow instanse. I choose the linux recipe as I could not get the windows recipe to work. It might be an issue only with the first release of Rome.

Step two: Unzip the downloaded zip-file and maybe rename / move to a suitable folder.

Step three: Build. Now begins the fun stuff. My preferred way is to open the folder with Visual Studio Code, then open a terminal window. You can also open a command prompt or powershell window.

Then run the command: docker build . –tag dockerid/midserver-rome

Replace ” dockerid ” with your docker hub id if you want to push the image to the hub.

Building first time will take a while so go grab a cup of coffe and enjoy the fact that your are going to save time setting up mid servers in the future 🙂

Step four: Setup an env file with the parameters to start the MID server so it can connect to your instanse.

Filename: mid1.env

Add following parameters in the file and save:

MID_INSTANCE_USERNAME=userid setup with mid server roles
MID_INSTANCE_PASSWORD=password for userid
MID_SERVER_NAME=the name you see inside ServiceNow

Step five: Run. Then you can start the MID server with

docker run –env-file mid1.env dockerid/midserver-rome

After a few minutes you can see the server in serivcenow. You validate it the usual way.

To run a second mid server just copy mid1.env to mid2.env and adjust the server name then run the container agian with this file as env file instead.

Step six: Push to docker hub.

First login with docker login

Then run docker image push dockerid/midserver-rome

And now you can run it on other hosts.