> This is part 1 of 2 of the full documentation (pages 1–100 of 146).
> The content is paginated: fetch every part to see all of it.
> Next part: https://knowledgebase.qommentary.com/llms-full.txt/1
> Page index: https://knowledgebase.qommentary.com/llms.txt

# Welcome

Welcome to the **Qommentary Knowledge Base**!

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNwo-hZWjfqTHpCYAI%2F-MZNyGU5XK9XY6Soi8fd%2FImg_hero%20\(1\).png?alt=media\&token=74858338-d0a7-4131-84de-69b6febcbb47)

&#x20;


# Prerequisites

A list of software/hardware prerequisites required before installing Qommentary

Before installing Qommentary on-premises we recommend completing the following prerequisites checklist to ensure your host environment is ready for installation:

* [ ] Review minimum System requirements
* [ ] Open ports 5004 and 5006 inbound in Qommentary Server
* [ ] Open port 4242 (QRS) inbound in Qlik Sense Server
* [ ] Open port 4243 (QPS) inbound in Qlik Sense Server
* [ ] Install and configure IIS (*see* [*Software dependencies*](/getting-started/prerequisites/software-dependencies))
* [ ] Install QlikClient certificate (*see* [*Client Certificates*](/getting-started/prerequisites/client-certificates))
* [ ] Install SSL certificate to be applied to Qommentary server-hosted applications

#### System Requirements

| Requirement                                                                                                                                                                                                                                                                                 | Version                          |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4UA8mcYABE9s9G8Ov-%2F-M4UCM40Ny30PXxyP7xv%2Fwindows-logo.png?alt=media&amp;token=86bdeb6e-6b41-4260-94c4-20bb815d5a2f" alt="" data-size="original"> Windows              | Microsoft Windows 2008 or higher |
| <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4UA8mcYABE9s9G8Ov-%2F-M4UCVkWFUx-yKQxbbRz%2FIIS.png?alt=media&amp;token=36127a5b-ab0b-483d-9a95-9a79e8c23ff5" alt="" data-size="original"> Internet Information Services | 8.0 or higher                    |

{% hint style="warning" %}
IIS need to be enabled on the server where Qommentary will be hosted. For a full list of required IIS features, please refer to our guide.
{% endhint %}

#### Database

Qommentary support the following databases:

| Database                                                                                                                                                                                                                                                                                  | Version       |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4UMjFKcJ0XfPLkEk7q%2F-M4UNLo3MnqT1oExjOfi%2Fpostgresql.png?alt=media&amp;token=29b44cad-9257-4af7-94ac-cd49e4971e5e" alt="" data-size="original"> PostgreSQL (default) | 9.0 or higher |

{% hint style="info" %}
If desired, a new PostgreSQL instance can be fresh installed or connect to an excising instance during the installation wizard.
{% endhint %}

#### Ports

A Qommentary deployment requires 2 components to be hosted on-premises: the Qommentary Engine and the Qommentary Manager.&#x20;

These components communicate internally behind the firewall via dedicated ports and **no connection to the internet** is required.

The following ports need to be opened **inbound** on the server where Qommentary would be hosted:

| Qommentary Engine  | 5004 |
| ------------------ | ---- |
| Qommentary Manager | 5006 |

{% hint style="info" %}
If desired, ports can be changed during installation.
{% endhint %}

The following ports need to be opened **inbound** on the server where Qlik Sense is hosted:

| Qlik Repository Service (QRS) | 4242 |
| ----------------------------- | ---- |
| Qlik Proxy Service (QPS)      | 4243 |


# Client Certificates

The Qlik Sense Client certificate is required for Qommentary Engine to authenticate successfully with the Qlik Sense APIs.

### Exporting Qlik Sense certificates

Firstly, let's export the Qlik Sense certificates to a new folder:

1\. Login to QMC\
2\. Go to the **Certificates** section\
3\. Fill out the required Export information

![Export certificates](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4h34pt456HUSRw6uTG%2F-M4hW7Uc8Ag1rCUk_0iE%2Finstallation-certificates-1.png?alt=media\&token=b45d9e05-e2db-40d8-ba23-daca37e87aca)

{% hint style="success" %}
Make sure you tick the *Include secret key* option.
{% endhint %}

4\. Open the disk location where certificates were exported and copy the **client.pfx** certificate to the server where Qommentary will be hosted.

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4i1FwCfAizPbYvl__q%2F-M4i2V9wDmFoqofxf2Pz%2Finstallation-certificates-files.png?alt=media\&token=2a6199a3-d5fa-405d-b12a-a6ee0c1662b0)

### Importing Qlik Client certificate

Secondly, we'll import the newly exported certificate to the Qommentary server.

1\. Double-click on the client.pfx certificate or right-click and choose **Install PFX**\
2\. Choose **Local Machine** as the store location and click Next

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4i1FwCfAizPbYvl__q%2F-M4i2WeZOUPtBF4J0yWD%2Finstallation-certificates-wizard-step1.png?alt=media\&token=291203c4-65e9-478d-a13e-19b376be6c8d)

3\. Leave the file name default to the current location and click **Next**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4i2bHZAuzyBdRy06g_%2F-M4i3MqJhYfpFIu3nwAD%2Finstallation-certificates-wizard-step2.png?alt=media\&token=c6c12e59-abce-43eb-94e8-099969fc3a09)

4\. Leave the default option selected and click **Next**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4i2bHZAuzyBdRy06g_%2F-M4i49JnPoRsFfaYOufu%2Finstallation-certificates-wizard-step4.png?alt=media\&token=c269f959-7bc6-4228-b741-3976658baaf2)

5\. Click **Finish** to finalize the certificate import wizard

You should now see the Qlik client certificate imported in the Personal Certificates folder

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4i7So5nNwEZKwHsQrd%2F-M4i8AV15wixYvcTvcHo%2Finstallation-certificates-personal-store.png?alt=media\&token=93ae86be-ca70-40c0-a3af-895d533d2138)


# Software dependencies

List of software dependencies used by Qommentary to function

During the installation, the setup wizard will **automatically** install all software required for Qommentary to operate properly.

{% hint style="warning" %}
You **are not** required to manually download and install software dependencies. This is an automated process carried out during first installation.
{% endhint %}

If any of these dependencies shall become corrupted during installation or upgrade,  please follow these instructions to restore the affected software:

* Internet Information Services
* Web Platform Installer (IIS)
* URL Rewrite (IIS)
* .NET Core Hosting Bundle
* PostgreSQL
* SQL Server (optional)

### Internet Information Services

1\. Use the Add Roles and Features wizard from the Manage menu or the link in Server Manager. On the Server Roles step, check the box for Web Server (IIS).

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4isYaib6xWuNxpDd7d%2Fimage.png?alt=media\&token=ccdb7342-7c47-49f8-9cfc-7126fb762636)

2\. After the Features step, the Role services step loads for Web Server (IIS). Select the IIS role services desired or accept the default role services provided.

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4is_PVVjkeEKoZI4l6%2Fimage.png?alt=media\&token=79e8fd17-0d4f-4bf0-a9a9-6c49c998b088)

### Web Platform Installer (IIS)

1\. Download and install the Web Platform Installer from the following location:<br>

{% embed url="<https://www.microsoft.com/web/downloads/platform.aspx>" %}

2\. Accept terms and click on Install

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4itDSEZACW9cb92VQn%2Fimage.png?alt=media\&token=f68554cc-2702-473a-bccc-d44dfda00050)

3\. Click on Finish

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4itSnZlwuzIPBKSLQb%2Fimage.png?alt=media\&token=27491b58-fb49-4208-ad09-16db1b7806e6)

4\. Restart IIS and you should see the Web Platform Installer icon

### URL Rewrite (IIS)

1\. Open IIS and select the default server\
2\. Double-click on the Web Platform Installer icon

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4itiXC1HZ-wBNqN3Z4%2Fimage.png?alt=media\&token=c215a6f2-5689-4ced-bfdd-159da8b8418c)

3\. Type Rewrite URL in the search box and press Enter

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4itsMCPpzsL_g_5PkC%2Fimage.png?alt=media\&token=8a4550b3-7cc3-4fbf-a311-1f22435c4a4f)

4\. Click on Add and then Install

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4iu4gp7I1eloS1s_V3%2Fimage.png?alt=media\&token=59a6a724-8da0-4263-918d-6a5cb2b9a7de)

5\. Accept the license terms

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4iu8oua5c-ONNMlR7Z%2Fimage.png?alt=media\&token=deb62361-afa5-484d-9f28-827056e8e20a)

### .NET Core Hosting Bundle

Install the .NET Core Hosting Bundle on the hosting system. The bundle installs the .NET Core Runtime, .NET Core Library, and the ASP.NET Core Module. The module allows ASP.NET Core apps to run behind IIS. If the system doesn't have an Internet connection, obtain and install the Microsoft Visual C++ 2015 Redistributable before installing the .NET Core Hosting Bundle.&#x20;

Download the installer using the following link:

{% embed url="<https://dotnet.microsoft.com/en-us/download/dotnet/8.0>" %}

<div data-with-frame="true"><figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FtAt4HeLt5kpbHRjPgw8b%2Fimage.png?alt=media&amp;token=56f4d602-befe-41d1-9985-c696e18ef255" alt="" width="563"><figcaption></figcaption></figure></div>

1\. Accept terms and **Install**

<div data-with-frame="true"><figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FHnCqQGzleSt4cRMZsQIm%2Fimage.png?alt=media&amp;token=f4a0a287-f07e-446f-a36e-4e08c1da4303" alt="" width="527"><figcaption></figcaption></figure></div>

2\. Click on **Close**

<div data-with-frame="true"><figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRmJGoNnQzpBPWCcmvZ9S%2Fimage.png?alt=media&amp;token=414d8261-50dd-4271-8b75-df00f76ac8b2" alt="" width="521"><figcaption></figcaption></figure></div>

### PostgreSQL

When installing Qommentary, you'll be required to enter details to connect to an existing PostgreSQL instance. If you choose to install a new instance, please follow these steps:

1\. Select the version and download the installer using the following link:

{% embed url="<https://www.postgresql.org/download/windows/>" %}

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4iuuVqQC1JTQ0aGHsE%2Fimage.png?alt=media\&token=ce911007-201a-47c3-88c8-7408f3df214f)

2\. Click on Next

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4iv7KKMK0zTKIQ2mvd%2Fimage.png?alt=media\&token=0ba0f74a-ddde-415c-a82b-66cd3fb7f37e)

3\. Select an installation directory or leave default

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4ivAgZFlvANikSXG3z%2Fimage.png?alt=media\&token=4163af10-f743-41f0-903c-1ff05decb523)

4\. Select a directory to store data

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4ivKGU51UAVxXyHDo6%2Fimage.png?alt=media\&token=e5d19c45-7ddb-44d2-bd19-acf3beab0332)

5\. Enter a password for the database super user

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4ivTLDYRdAuareuXzl%2Fimage.png?alt=media\&token=30dd655e-d259-43b6-8def-dd867f9038a8)

6\. Select a port number

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4ivXWQxQRTZAYTj1gp%2Fimage.png?alt=media\&token=deb70b8f-4fe0-4dc8-b968-757e4a74a00d)

7\. Select a locale

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4iv_qHqtv2K9PBbRQE%2Fimage.png?alt=media\&token=5c904992-c2b9-49fa-91f6-eb5179c03c5d)

8\. Once installation is complete click on Finish

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ipfGfcjXgfOKWqhVT%2F-M4ivdfvhOEheEKq8QnZ%2Fimage.png?alt=media\&token=102fccbd-7f68-4687-8877-9e2fd2d82bf4)

### SQL Server  (optional)

If you wish to use SQL Server as your source database, please install from the following location:

**SQL Server Express 2017**

<https://www.microsoft.com/en-au/sql-server/sql-server-editions-express>

**SQL Server Management Studio 2017**

<https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017>


# Installing

A step-by-step guide on installing Qommentary on-premises.

When you're ready to install Qommentary, launch the Qommentary Setup Wizard as an administrator.

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4i8yaR2UKv2MWuF1RJ%2F-M4iFnVCmivkQYQujJ0Z%2Fimage.png?alt=media\&token=fae1b388-56dd-42fb-b423-504488e47bf2)

1\.  Click on **I Agree** to accept the License Agreement

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iFr1W306ZI9Bf3xj2%2F-M4iGhehb1KinWZilWfk%2Fimage.png?alt=media\&token=2ddca16e-4222-4652-9612-3ae91a6d9b0f)

2\. Choose the install destination folder or leave as default

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iFr1W306ZI9Bf3xj2%2F-M4iGwljlyUlvtkFfXr9%2Fimage.png?alt=media\&token=54eac25e-85eb-4f28-b711-eeb34de19914)

3\. Choose if you wishto install a local PostgreSQL database or connect to an existing instance

**Install local database**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iFr1W306ZI9Bf3xj2%2F-M4iIBYIkZApUorwUnLS%2Fimage.png?alt=media\&token=e7c3f94a-db7d-4c77-aa68-de48d7f8ab14)

| Field            | Description                                         |
| ---------------- | --------------------------------------------------- |
| Hostname         | The database hostname. Uses *localhost* by default. |
| Port             | The database port number                            |
| User name        | The superuser name                                  |
| User password    | The superuser password                              |
| Confirm password | Confirm superuser password                          |

**Connect to existing instance**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iFr1W306ZI9Bf3xj2%2F-M4iJk3qo9kfwxlEzM2c%2Fimage.png?alt=media\&token=94b8f541-12a9-4348-ab3a-0c9f5e17d2a8)

| **Field**     | Description                                                                     |
| ------------- | ------------------------------------------------------------------------------- |
| Hostname      | The database hostname. Uses *localhost* if Qommentary is hosted on same server. |
| Port          | The database port number                                                        |
| User name     | The superuser name                                                              |
| User password | The superuser password                                                          |

{% hint style="warning" %}
Make sure the database user credentials have superuser rights.
{% endhint %}

4\.   Enter details for your Qlik Sense environment

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iFr1W306ZI9Bf3xj2%2F-M4iK_5QAclfHx7TJo6q%2Fimage.png?alt=media\&token=3f8134b9-93cc-4fdd-a956-2e6802f0ebe7)

| **Field**        | Description                                     |
| ---------------- | ----------------------------------------------- |
| Protocol         | The Qlik Sense protocol name                    |
| Hostname         | The Qlik Sense hostname (FQDN)                  |
| Port             | The Qlik Sense port number                      |
| Prefix           | The Qlik Sense default virtual proxy prefix     |
| Certificate name | The Qlik Sense client certificate friendly name |

{% hint style="warning" %}
Make sure the Qlik Sense hostname can be resolved from the Qommentary server as well as any network client laptop.
{% endhint %}

5\. Enter details for the Qommentary components hosted in IIS

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iMy8pvIbtKD6awCm9%2F-M4iWIFA7rYezXZN7gvc%2Fimage.png?alt=media\&token=d501288c-a80c-4049-9a44-396e77df3c1e)

| **Field**          | Description                                                                                                                                                           |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Protocol           | The protocol used to access the Qommentary components                                                                                                                 |
| Same as Qlik Sense | Indicates whether Qommentary is being installed on same server as Qlik Sense                                                                                          |
| Hostname           | If previous option is unchecked, specify hostname/FQDN used to access the Qommentary components                                                                       |
| Certificate        | SSL certificate applied to the Qommentary components.                                                                                                                 |
| Username           | Local admin account to run the Qommentary Application Pool. Recommended to use a service account with access to certificate private keys in the Local Computer store. |
| Password           | Local admin account password                                                                                                                                          |
| Confirm password   | Confirm local admin account password                                                                                                                                  |

{% hint style="warning" %}
If an SSL wildcard certificate is available, please update each Qommentary component binding using the IIS Manager after installation.
{% endhint %}

6\. Enter details for Qommentary ports

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iMy8pvIbtKD6awCm9%2F-M4iWeJJTa5VLD41auR_%2Fimage.png?alt=media\&token=27fcc79a-3fa2-4e7f-84be-60dc5802007f)

7\. Click on **Install**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iMy8pvIbtKD6awCm9%2F-M4iWoJEG-YMohdeaMeO%2Fimage.png?alt=media\&token=613c6781-5331-4045-82db-c4986a1be818)

8\. Once the installation has completed, you should see a confirmation screen

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4iMy8pvIbtKD6awCm9%2F-M4iWwpqthTMIPf82ojP%2Fimage.png?alt=media\&token=b3071107-67c9-46ae-9033-983e008dfd82)

{% hint style="info" %}
If any issues were encountered during installation, please refer to the [Troubleshooting ](broken://pages/-M4g6jGU7x0ZrX_RFO7S)section
{% endhint %}

9\. Click on **Launch Qommentary Manager** to open a new browser and activate your license


# SSL Certificates

How to run Qommentary components with a trusted SSL certificate

During installation, Qommentary generates self-signed certificates applied to each component hosted in IIS.

If you wish to use a trusted SSL certificate instead, you may update the certificate bindings using the IIS Manager.

{% hint style="warning" %}
Before proceeding, make sure the SSL certificate is installed on the server where Qommentary is hosted
{% endhint %}

1\. Open **IIS Manager**\
2\. Select **Qommentary Engine** under *Sites*

<img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4igPZ-dK5CPf3cXr8A%2F-M4ikKZqEXF0naZ3dUpI%2Finstallation-ssl-iis-sites.png?alt=media&amp;token=2eeff933-3e20-447a-aa37-314da274296b" alt="" data-size="original">&#x20;

3\. Click on **Bindings** under *Actions*

<img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4igPZ-dK5CPf3cXr8A%2F-M4il0VWx7LnzeePRj0D%2Finstallation-ssl-iis-bindings.png?alt=media&amp;token=e9ed996a-7cd5-473d-b06a-2fb984934073" alt="" data-size="original"> \
\
4\. Select the https binding and click on **Edit**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4igPZ-dK5CPf3cXr8A%2F-M4iln_t502b0olvJkmZ%2Finstallation-ssl-iis-edit-binding.png?alt=media\&token=c3274f5c-d173-44db-b01a-de33e2308f94)

5\. Select the trusted SSL certificate you wish to apply

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4igPZ-dK5CPf3cXr8A%2F-M4ioagl00l63TvO6FfF%2Finstallation-ssl-iis-select-cert.png?alt=media\&token=8e24e408-3a1f-43e8-b484-977a89deee6a)

6\. Click **OK**

Repeat the process with the Qommentary Manager site bindings.


# Uninstalling

If you wish to delete Qommentary from your environment, you will need to go through the uninstall process.

1\. Open the Program and Features window by searching for **Uninstall a program**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MaassJ7cOYrhKNhFYpm%2F-MaaurXy8Y4ErssC18A3%2Fimage.png?alt=media\&token=dc64fd34-d78c-4935-be6e-f50430adb397)

2\. Search for Qommentary\
3\. Click on **Uninstall/Change**\
4\. Tick the checkbox if you wish to also delete the database and logs

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbFzqBGFyNoo3Ke5Ew8%2F-MbG-nevqvTS6vSXGsCO%2Fimage.png?alt=media\&token=6c4b462f-4803-4e88-a382-644e36f03285)

5\. Click on **Uninstall**

{% hint style="info" %}
Note that the QlikClient certificate is not removed from the system
{% endhint %}


# Configuration

Every Qommentary component has a configuration file which stores important environment information.

If you need to update the configuration files with new environment details, please see below:

### Qommentary Engine

**JSON (appsettings.json)**

<div align="center"><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FBMaAc3MJugmCkh3tImlx%2Fimage.png?alt=media&amp;token=2c1e5c89-69c2-49ab-b347-c092ff881a2a" alt="appsettings.json"></div>

**Definition**

| Property                | Description                                                                                  | Default                         |
| ----------------------- | -------------------------------------------------------------------------------------------- | ------------------------------- |
| ConnectionStrings       | Encrypted connection string details to the Qommentary Database                               | \<populated\_*during\_install*> |
| IsCookieDisabled        | Applies cookie authentication for server communication                                       | true                            |
| CertificateFriendlyName | Qlik Sense QlikClient certificate friendly name                                              | QlikClient                      |
| QlikApiBaseUrl          | Qlik Sense URL                                                                               | \<populated\_*during\_install*> |
| ManagerUrl              | Qommentary Manager URL                                                                       | \<populated\_*during\_install*> |
| Logo                    | Company logo file name used by the system. Logo location is the Qommentary Engine root path. | logo.jpg                        |
| Logging > LogLevel      | Default log levels                                                                           | Error                           |

**File location**

1. Open **IIS Manager**
2. Expand **Sites**
3. Right-click on **Qommentary Engine**
4. Choose **Explore**

### Qommentary Admin Console

**JSON (config.json)**

<div align="center"><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FOqTqzX99fz63v6L8zPOa%2Fimage.png?alt=media&amp;token=8888074e-8221-4e50-90ec-e0840ac7ec10" alt="config.json"></div>

**Definition**

| Property   | Description                                           | Default                         |
| ---------- | ----------------------------------------------------- | ------------------------------- |
| apiBaseUrl | Qommentary Engine URL (must include the /api/ suffix) | \<populated\_*during\_install*> |
| hostname   | Qlik Sense hostname                                   | \<populated\_*during\_install*> |
| prefix     | Qlik Sense virtual proxy prefix                       | /                               |
| port       | Qlik Sense port number                                | 443                             |
| protocol   | Qlik Sense protocol                                   | https                           |

**File location**

1. Open **IIS Manager**
2. Expand **Sites**
3. Right-click on **Qommentary Manager**
4. Choose **Explore**
5. Navigate to **Assets** folder

### Qommentary Extensions

**JSON (config.json)**

![config.json](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2F3IhjviUA3jjerZxRwQwh%2Fimage.png?alt=media\&token=e04cc87d-6f42-4f3c-b500-a047a8042010)

**Definition**

| Property       | Description            | Default                         |
| -------------- | ---------------------- | ------------------------------- |
| engineBaseUrl  | Qommentary Engine URL  | \<populated\_*during\_install*> |
| managerBaseUrl | Qommentary Manager URL | \<populated\_*during\_install*> |

**File location**

1. Go to **Dev Hub**
2. Open any Qommentary Extension


# Upgrades

This section will walk you through upgrading Qommentary to a newer version.

{% hint style="danger" %}
Please note that in version **21.4.0** the .*NET Core Hosting Bundle* version was upgraded to **3.1.19**.

If upgrading to this version or higher, you will need to manually install the .*NET Core Hosting Bundle* executable which is included in the upgrade package under **Dependencies**.
{% endhint %}

### Backup

Before upgrading, we recommend creating a backup of:

* the Qommentary installation folder
* the Qommentary PostgreSQL database
* all Qommentary extensions stored under the Static Content folder (Shared Persistence)

{% hint style="info" %}
To find out what is your *Shared Persistence* network location, please go to the **QMC > Service Cluster**, under **Cluster Settings.**
{% endhint %}

### Setup

1. Download the *Qommentary Service Release* package on the server to be upgraded
2. Unzip contents to a server path location of your choice

### Qommentary Engine/Manager

1. Search for Windows Powershell and open with "Run as an administrator"
2. Change paths to the package download location
3. Run `.\upgrade.ps1`
4. You should see a success confirmation message as below:

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M9q8WNccemImALfcncq%2F-M9qCaW2-qKVPF4WIuPt%2Fimage.png?alt=media\&token=cac0794f-6f89-4361-837c-593ef9882ed6)

{% hint style="info" %}
For a Qlik Sense multi-node architecture, this process should be run on each node.
{% endhint %}

### Qommentary Database

1. Open **PGAdmin**
2. Go to package download location
3. Run SQL scripts found in **Qommentary Database** folder

### Qommentary Extensions

In your upgrade package, you will find a Qommentary Extension folder with the patched extensions. You will be required to manually import these extensions in Qlik Sense.

To upgrade an extension in Qlik Sense, please follow these steps:

1. Navigate to **Dev Hub**
2. Search for "Qom"
3. Click on the extension targeted for upgrade
4. Back up environment config in a text file
5. Navigate to **QMC » Extensions**
6. Delete the extension targeted for upgrade
7. Import the upgraded extension
8. Navigate back to Dev Hub
9. Paste back your environment config
10. Click on **Save**


# Qlik Sense

### Qlik Sense Compatibility

| Release       | Number         | Version   | Compatibility                                                                                                                                                                                                                                                                                |
| ------------- | -------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| November 2024 | Up to Patch 8  | 14.212.15 | <p>Compatible<br><br>However, Qlik extended CSRF protection to WebSocket connections for enhanced security which impacts external applications connecting to Qlik Sense (i.e. QAC). </p><p></p><p><a href="/getting-started/upgrades/qlik-sense/websocket-csrf-protection">Read more</a></p> |
| May 2024      | Up to Patch 15 | 14.187.23 | Compatible                                                                                                                                                                                                                                                                                   |
| February 2024 | Up to Patch 17 | 14.173.25 | Compatible                                                                                                                                                                                                                                                                                   |
| November 2023 | Up to Patch 18 | 14.159.25 | Compatible                                                                                                                                                                                                                                                                                   |
| August 2023   | Up to Patch 17 | 14.139.24 | Compatible                                                                                                                                                                                                                                                                                   |
| May 2023      | Up to Patch 19 | 14.129.27 | End of Support                                                                                                                                                                                                                                                                               |
| February 2023 | Up to Patch 16 | 14.113.21 | End of Support                                                                                                                                                                                                                                                                               |


# WebSocket  CSRF protection

Before the **Qlik Sense November 2024 release**, WebSockets **did not require CSRF protection**. However, in the **November 2024 update**, Qlik **extended CSRF protection to WebSocket connections** for enhanced security.

### **What Changed in November 2024?**

1. **WebSocket Requests Are Now Subject to CSRF Protection**
   * Previously, CSRF protection applied **only to HTTP API requests**.
   * Now, **WebSockets also require CSRF tokens** to prevent unauthorized cross-site requests.
2. **Stricter Browser Security Policies**
   * Some modern browsers, like Chrome and Edge, enforce **stricter cross-site WebSocket security**.
   * Without explicit **CORS headers** allowing credentials, the browser **blocks WebSocket connections**.
3. **Qlik Now Requires CSRF Token Handling for WebSockets**
   * When the Qommentary Admin Console **loads `require.js` from Qlik**, it initiates a WebSocket connection.
   * Qlik **expects a CSRF token**, but without the correct headers, your browser **blocks the connection**.

***

### **Why Are These Headers Required?**

| **Header**                                            | **Purpose**                                                                          |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------ |
| `Access-Control-Allow-Origin: http://qommentary:5006` | Allows the mashup (running in the browser) to access Qlik resources.                 |
| `Access-Control-Allow-Credentials: true`              | Ensures cookies (including session authentication) are sent with WebSocket requests. |
| `Access-Control-Expose-Headers: qlik-csrf-token`      | Allows the browser to read the CSRF token from the WebSocket response.               |

***

### **Why Didn’t You Need This Before?**

* **Pre-Nov 2024:**
  * WebSockets bypassed CSRF checks.
  * Qlik didn’t require CSRF tokens for WebSockets.
  * Your browser allowed the connection without extra headers.
* **Post-Nov 2024:**
  * Qlik enforces CSRF protection on **all WebSocket connections**.
  * The browser **rejects** WebSocket requests if the required headers are missing.

***

### **Solution**

To restore functionality, you must **manually allow cross-origin WebSocket requests** in Qlik Sense:

1. **Go to QMC → Virtual Proxy → Advanced Settings**.
2. **Add these headers under "Additional Response Headers":**

   ```
   Access-Control-Allow-Origin: http://qommentary:5006
   Access-Control-Allow-Credentials: true
   Access-Control-Expose-Headers: qlik-csrf-token
   ```
3. **Apply changes and restart Qlik services**.


# Uninstalling

If you wish to uninstall Qommentary from your environment, please follow these steps:

1\. Go to *Programs and Features* -> *Uninstall or change a program*

2\. Search for **Qommentary** and select it

3\. Click on **Uninstall**

4\. Once the *Qommentary Uninstall Utility* launches, click on **Uninstall**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FcaLIfXzP8l3PVgmwso5b%2Fimage.png?alt=media\&token=61c571f5-7b8e-4ec1-8997-e0dcbf8d7f29)

{% hint style="info" %}
Tick "Remove database and logs" if you also wish to delete the Qommentary Database and log files
{% endhint %}

If you would like to perform a **full uninstall**, the following tasks would need to be manually ran:

1. Delete all Qommentary endpoints whitelisted under the default virtual proxy (QMC)
2. Delete all Qommentary extensions (QMC)
3. Delete the PostgreSQL Qommentary Database. Sometimes the database might not be removed by the uninstaller due to insufficient permissions
4. Delete the Logs folder under C:\Program Data\Qommentary

**Optional uninstalls**

1. Delete the QlikClient certificate (if not used by another application)
2. Uninstall the .NET Core Hosting Bundle (if not used by another application)
3. Uninstall IIS (if not used by another application)


# Troubleshooting

The following checklist will ensure a comprehensive review is conducted across your Qommentary environment to validate that all dependencies are installed and running:

#### Server checklist

* [ ] Are the Qommentary required ports opened?
* [ ] Are all Qommentary components application pool identities in IIS running?
* [ ] Do the Qommentary components in IIS have a valid SSL certificate binded?
* [ ] Is WebDav Publishing in IIS disabled?
* [ ] Is the QlikClient certificate installed under the LOCAL\_COMPUTER personal certificate store?
* [ ] Is the recommended version of .NET Hosting Bundle + Runtime installed?

#### Qlik Sense (QMC) checklist

* [ ] Are the Qommentary endpoints whitelisted under the virtual proxy host list?
* [ ] Do all Qommentary Extensions displayed in the Dev Hub have valid endpoints in the config?

#### Qommentary checklist

* [ ] Is the Qommentary database setup in PostgreSQL?
* [ ] Are there any errors in the logs under [C:\ProgramData\Qommentary\Log\Trace](C:\ProgramData\Qommentary\Log\Trace) ?
* [ ] Are there any browser errors (F12) when accessing the Qommentary Manager on [https://\<qommentary-hostname>:5006](https://qommentary:5004/api) ?
* [ ] Do you see a JSON response when accessing the Qommentary Engine on [https://\<qommentary-hostname>:5004/api](https://qommentary:5004/api) ?


# Common Issues

### <mark style="color:blue;">HTTP Error 500.19</mark>

![HTTP Error 500.19](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5BXX5vDbQQI7Hr6uG6%2F-M5BbM47uT63S7z7Oqi2%2Fimage.png?alt=media\&token=335f4564-4eaa-4cf3-95b8-823da0eff989)

**Problem**\
An Internal Server error is displayed when trying to access the Qommentary Manager

**Possible causes**

* **Rewrite module missing**

  Install the URL Rewrite module included in the [Software Dependencies](/getting-started/prerequisites/software-dependencies) section
* **Corrupted .NET Core Hosting Bundle**

  Try repairing the bundle. Otherwise, uninstalling and re-installing.
* **Qommentary Manager/Engine bindings to invalid or expired SSL certificates**

  Bind a valid SSL certificate to the Qommentary Manager/Engine sites.

### <mark style="color:blue;">Service Unavailable</mark>

![Service Unavailable error](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5C-59O1Wxx91HSi1i5%2F-M5C10lKk9LGkt6g-gH5%2Fimage.png?alt=media\&token=59b3443e-ade4-4671-b0ac-4577b9d13ca1)

**Problem**\
A Service Unavailable error is displayed when trying to access the Qommentary Manager.&#x20;

**Possible Causes**

* **Qommentary Engine application pool stopped**

  Try re-starting the Engine service and accessing the Qommentary Manager again from a browser. If the service is stopped again, try the troubleshooting steps below.
* **.NET Core Framework or one of it's components might be corrupted**

  1\. Open a cmd line terminal

  2\. CD into the Qommentary Engine folder under the installation path

  3\. Run <mark style="color:blue;">`"C:\Program Files\dotnet\dotnet.exe" "C:\Program Files\Qommentary\Qommentary Engine\Qommentary.Api.dll"`</mark>

  If you see the following screen, there is an issue with the .NET Core Framework installation:

  &#x20;<img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2Fyktq6GpQmlW7g1QErfc6%2Fnetcore-error.png?alt=media&amp;token=b8dac135-f162-467c-ad06-b552c2ceada6" alt="" data-size="original">

  Try repairing Microsoft Visual C++ Redistributable (x64). If you encounter any issues repairing the component, it might be related to missing Windows updates. Try updating Windows and repairing the component again
* **QlikClient certificate is not installed**

  Export certificates from Qlik Sense and install client.pfx
* **URL Rewrite version not compatible with Windows version**

  1\. Open Event Viewer\
  2\. Select Application Logs\
  3\. Check if there's any errors related to rewrite.dll failing to load

  ![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2F9hIXRqyNUpojHAxewQM9%2Frewrite-module-corrupted.png?alt=media\&token=838b7497-1f7d-4839-8796-ec1eba3b0819)

  Install the supported URL Rewrite module included in the Software Dependencies section.

### <mark style="color:blue;">415 Method Not Allowed</mark>

![Spinning wheel when updating or deleting commentary](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5C-59O1Wxx91HSi1i5%2F-M5CFkJgzwCw2RpHVjer%2Fimage.png?alt=media\&token=63451021-a149-46d2-9646-94ee8025fb50)

**Problem**\
Extension hangs on spinning wheel when trying to update or delete a commentary.

**Possible cause**\
Wev Dav might be enabled in IIS and is interfering with PUT and DELETE methods.&#x20;

To disable the module, follow these steps:

1. Open Server Manager
2. Click on Add Roles and Features
3. Jump to Server Roles
4. Look for *Web Server  (IIS) > Web Server > Common HTTP features*&#x20;
5. Untick WebDAV Publishing
6. Click on Next and Install

For more information on disabling Web Dav in IIS, please refer to this [guide](https://inedo.com/support/kb/1140/disabling-webdav-in-iis).

### <mark style="color:blue;">ERR CERT COMMON NAME INVALID</mark>

<figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2F8lRPkEq2G2S3A7HUfFCd%2Fimage.png?alt=media&amp;token=f65dc6ec-5323-453d-9cfe-7728a9ad4949" alt=""><figcaption></figcaption></figure>

**Problem**\
Qommentary Admin Console does not load properly and all Qommentary Engine API calls display a *ERR\_CERT\_COMMON\_NAME\_INVALID* issue

**Possible causes**

* **SSL Certificate mismatch**\
  The SSL certificate bound to the Qommentary IIS sites do not match the domain name you're trying to access the Qommentary Admin Console\
  \
  To rectify the issue, follow these steps:
  1. Launch IIS
  2. Select **Qommentary Engine** site and click on **Bindings...**<br>

     <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FfadHPKTVWscCguEi1ATS%2Fimage.png?alt=media&amp;token=f25aca23-d4fa-42c5-874e-b520babc8ee9" alt=""><figcaption></figcaption></figure>
  3. Edit the HTTPS binding and select the certificate which matches the QAC domain<br>

     <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FmiOkg47WXZxknpNIROpo%2Fimage.png?alt=media&amp;token=7d32b065-eab4-4156-9221-a67813088038" alt=""><figcaption></figcaption></figure>
  4. Recycle the **Qommentary Engine** application pool
  5. Now the QAC should load correctly<br>

     <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FhTqkTStVQb1fLSgauWp2%2Fimage.png?alt=media&amp;token=ce3f6bea-8640-4528-a0aa-d34f90ec4259" alt=""><figcaption></figcaption></figure>
  6. Repeat steps 2-4 for the Qommentary Manager (if necessary)


# Logs

### Server Internal Logs

1. Remote into your server
2. Open IIS
3. Right click on the Qommentary Engine website and select “Explore”\
   \
   ![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FgcWjQXkytaboTOb7WzKt%2Fimage.png?alt=media\&token=6392040f-c031-4fe5-9b74-444212ab1548)<br>
4. Search and open the **web.config** file\
   \
   ![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FJDivkTjoFfCMwdkRamrz%2Fimage.png?alt=media\&token=f2cb47d4-f04d-4721-a092-c475d5651fe9)
5. Change the *stdoutLogEnabled* to **true**\ <br>

   <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FTgo2qPF9HQGJGgjHGfux%2Fimage.png?alt=media&amp;token=bd7aadd3-a9cd-4ef5-96d6-564967c62d34" alt=""><figcaption></figcaption></figure>
6. Restart the Qommentary Engine application pool
7. Try to hit the license endpoint on *https\://\[HOSTNAME]/api/license/getkeyinfo*
8. Go to the Qommentary Engine folder (same as step 3)
9. Search and open the logs folder\
   ![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FZHFAG1DCKP5YHQa8VEhy%2Fimage.png?alt=media\&token=dc3cf55f-e547-439c-9ba5-bec63a89f2f7)
10. Open the log file relevant to the date you're searching for\
    \
    ![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2Fbo9ipJuGKKATLsGC79Qp%2Fimage.png?alt=media\&token=535a37c2-d5f0-4ca4-bc35-6321e23ad6b4)<br>


# Qlik Sense connectivity

1. Download and install [Postman](https://www.postman.com/downloads/) on the Qommentary instance
2. Download the [Postman Qlik Sense QRS API collection](https://www.qommentary.com/downloads/postman/Qlik%20Sense%20QRS%20API.postman_collection.json)
3. Launch Postman
4. Go to **File > Import** and load the *Qlik Sense QRS API collection*
5. Update the hostname to reflect your environment<br>

   <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRZPE6GjPfk9J8RH8DEHD%2Fimage.png?alt=media&amp;token=ca45784c-3972-4ed5-955b-2927a5e939a4" alt=""><figcaption></figcaption></figure>
6. On the *Headers* tab, update the **X-Qlik-User** key with a Qlik Sense root admin account<br>

   <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FHjK6k7lse4hTBgNTBAOK%2Fimage.png?alt=media&amp;token=848de9be-9516-4116-bc04-2f6ce24814e9" alt=""><figcaption></figcaption></figure>
7. Go to **Settings**

   <div align="left"><figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FslOxOoDlxSRkwPcbFyDu%2Fimage.png?alt=media&amp;token=5b12bbf0-1ab6-4237-9e49-85a524012848" alt="" width="110"><figcaption></figcaption></figure></div>
8. Under *Certificates*, click on **Add Certificate**

   <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2Fl01VWd76dYd5kKGBrsQG%2Fimage.png?alt=media&amp;token=8d6114ef-9b8a-46c8-b738-a3680c569254" alt=""><figcaption></figcaption></figure>
9. Enter the hostname, port, QlikClient certificate passphrase and load the PFX file pointing to the Qlik Sense client.pfx certificate which you exported from the QMC<br>

   <figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FhrYsaP4Le378QOaboCYm%2Fimage.png?alt=media&amp;token=948a35a6-6426-4fba-a101-c5d8de1cc903" alt=""><figcaption></figcaption></figure>
10. Click on **Send**

If the Qlik Sense connectivity is successful, you should see a response with the total number of users in Qlik Sense

<figure><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2F993bumRnMiLWA7nc9Gty%2Fimage.png?alt=media&amp;token=507385f8-7ea3-495d-9cce-0688dac202f0" alt="" width="483"><figcaption></figcaption></figure>


# Release Notes


# v25.1.0

## <mark style="color:blue;">New Features and Enhancements</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

### Pinned Columns for Better Visibility and Improved Workflows

We’ve added the ability to **pin columns** in writeback tables, ensuring that important data remains visible while scrolling.&#x20;

This enhancement improves navigation by keeping key fields, such as IDs or statuses, locked in place for quick reference. It also enhances data entry by maintaining context, reducing errors, and increasing productivity.&#x20;

With the flexibility to pin only the columns you need, you can create a more customized and efficient table experience.

### Dynamic Column Visibility for Enhanced Data Clarity

We’ve enhanced column visibility in the Qommentary Writeback Table, allowing users to show or hide **dimension, measure, and writeback columns** based on business logic.&#x20;

Previously limited to writeback columns, this update ensures that only the most relevant data is displayed, improving clarity and focus. Users can tailor views for role-based access, context-specific filtering, and conditional visibility—such as displaying a “Discount” column only when a promotion applies.&#x20;

By reducing clutter and streamlining data entry, this feature enhances usability, making data analysis more efficient and intuitive.

### Cascading Dropdowns for Context-Aware Selections

We’ve introduced **cascading dropdowns** in the Qommentary Writeback Table, enabling dropdown values to be dynamically filtered based on selections in another dropdown.&#x20;

This enhancement allows users to create a more structured and intuitive data entry experience by ensuring that selections are contextually relevant. Dropdown values can still be manually defined or sourced from a Qlik Sense dimension, but now, with cascading filtering, users can drill down into their data more efficiently while reducing input errors and improving workflow accuracy.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FkGL85Mki5vqETtcB99Qg%2FLogo%20-%20Qom%20Manager.png?alt=media&amp;token=fdd2c9a3-3c61-431f-aa49-ca2a5762990b" alt="" data-size="line"> Qommentary Manager

### Comment Archiving for Enhanced Pivot Table Data Management

The **Qommentary Pivot Table** now supports **comment archiving**, allowing users to keep their data relevant and up-to-date. With this new feature, comments added at any intersection can be archived, ensuring that outdated or irrelevant information is removed while preserving necessary context and explanations.&#x20;

Previously available in **Qommentary Insights** and **Qommentary Table**, this feature is now extended to the **Pivot Table**, enhancing data management and streamlining collaboration by keeping tables clear and focused.

### Enhanced Enterprise Licensing: Unlimited Access for All Users&#x20;

We’ve introduced a new **Enterprise** license type  **-** providing **seamless, unlimited access** to all users. With this new license type, there’s **no need for manual token allocation**, simplifying administration and ensuring everyone has the access they need—instantly.


# v25.1.1

## Bug Fixes <a href="#bug-fixes" id="bug-fixes"></a>

### ​<img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&#x26;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback <a href="#qommentary-writeback" id="qommentary-writeback"></a>

**\[QOM-1975] Missing input columns in legacy writeback tables**

Resolved an issue where input columns were disappearing from the main table after the introduction of conditional column display. This bug affected Qommentary Writeback tables created with versions earlier than 25.1.0.


# v23.2.0

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-1915] Header column and row misalignment

Fixed an issue which caused the table header columns and rows to become misaligned when multiple columns were added.

#### \[QOM-1916] Long text in cell overlaps

Fixed an issue which only impacted dimension cells with long single-string characters causing text to overlap on top of the next column when there wasn't enough space available.

#### \[QOM-1917] Column dimension search not applying selections

Fixed an issue which prevented selections from being applied when searching in column dimensions. Clicking on any dimension would not apply any filters to the existing dataset.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1914] Display date dimensions in the specified format

Resolved an issue which caused date dimension values to display in numeric format, rather than the specified formatted option.

## <mark style="color:blue;">New Features and Enhancements</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2Fum5dTZlWjw2lf6dsHmQ2%2FLogo%20-%20Qom%20Insights.png?alt=media&amp;token=b7737308-5858-4b78-9042-c834558ffe30" alt="" data-size="original"> Qommentary Insights

#### Display titles of charts referenced by commentaries

Qommentary Insights allows you to add additional context to your commentaries by referencing sheet charts which you want to bring up during discussion. This new feature now also displays the title, subtitle and footer which have been added to the original chart.

#### Customize commentary icon appearance

In some scenarios, it is useful to maximize sheet real estate and display commentary as a chat bubble icon, rather than a full text editor. Now you can further personalize the user experience by customizing the chat bubble icon's color, background color and shape. Great for adhering with branding guidelines!

#### Create private conversations around data points

Unlock the power of personalized communication! In this release, we've transformed the commenting experience to elevate your interactions. Say goodbye to the limitations of public discussions – now, you have the power to choose between two dynamic comment creation methods: Quick and Advanced.&#x20;

With the Quick method, keep the channel open and send messages effortlessly triggering rapid communication. Meanwhile, the Advanced method empowers you with enhanced controls, enabling you to tailor your comments as public (for everyone to see), private (exclusively for your eyes only), or selectively shared with specific individuals you invite to the conversation.

#### Organize your conversations neatly using comment reply threads

We're taking business discussions to a whole new level! Replies in comment threads enhance engagement, streamline communication, and foster a sense of community by allowing users to address specific points, creating a more organized and personalized interaction within the broader conversation.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### Pinning favorite columns to table

Exciting news! Our latest update introduces a fantastic new feature designed to elevate your workflow and boost productivity. Now, you can effortlessly pin columns for quick reference and enhanced context within our user-friendly interface. Experience the convenience of having key information right at your fingertips, making data analysis a breeze.

#### Horizontal and vertical alignment control on cells

Now, you have the power to finely tune the presentation of your data with the introduction of text alignment control in both horizontal and vertical dimensions, all conveniently accessible through the Properties Panel.

#### Row font size control

We keep introducing more ways to customize your tables! With just a few clicks in the Properties Panel, you can effortlessly adjust the font size for text in rows, allowing you to create documents that are not only informative but visually stunning. Tailor your content to perfection, ensuring every detail is presented with precision and flair.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### SQL Server connections with Windows Authentication

Enterprises love connecting to databases using a variety of authentication mechanisms. In this release we're introducing by popular demand a new way to establish a SQL Server connection using Windows Authentication.


# v23.1.0

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-1744] Column sorting not working consistently

Fixed an issue which prevented column sorting when clicking across various table headers.

#### \[QOM-1786] Comment RTE not loading

Fixed an issue which caused the RTE in the New Comment dialog to not load properly. This impacted in the creation of new table comments.

#### \[QOM-1834] Comment list not refreshing after new comment

Fixed an issue which prevented the list of comments in any given row to refresh when a new comment was added. The workaround required to close the Comments Dialog and re-open it.

## <mark style="color:blue;">Features</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-9] Re-order dimensions and measures&#x20;

We have introduced a new data "Columns" structure, which now allows dimensions and measures to be re-ordered interchangeably gaining maximum flexibility and opening up new use cases.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1684/85] Edit or Delete Data Connections privileges&#x20;

Previously if you had Manage Writeback permissions on a stream, app or sheet level - you were able to edit or delete data connections. We have now de-coupled this from the Manage Writeback permission and introduced a new Data Connections Admin role and Data Connections security rules. When used in combination, these operations would be available only to users who fulfil these conditions.

#### \[QOM-1745] Create Data Connection privileges&#x20;

Previously if you had Manage Writeback permissions on a stream, app or sheet level - you were able to create/delete writeback data as well as create data connections. We have now de-coupled creating data connections from the Manage Writeback permission and introduced a new Data Connections Admin role.

#### \[QOM-1772] Display Grand Totals on Numberic input  fields&#x20;

Just like with Measure columns, Grand Totals is now also displayed for numeric input fields in the Writeback table.

#### \[QOM-1787] Number input formatting options

We have added a range of number formatting options for numeric input fields to better accommodate your use cases - including number comma, percentage, currency, date and duration formatting.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FMMLx3xN3sdfT8MEe9uSR%2FLogo%20-%20Qom%20Form.png?alt=media&amp;token=418da371-b532-4a9f-b9bb-c6c210cab0da" alt="" data-size="original"> Qommentary Form

#### \[QOM-1732/33] Edit or Delete Data Connections privileges&#x20;

Previously if you had Manage Writeback permissions on a stream, app or sheet level - you were able to edit or delete data connections. We have now de-coupled this from the Manage Writeback permission and introduced a new Data Connections Admin role and Data Connections security rules. When used in combination, these operations would be available only to users who fulfil these conditions.

#### \[QOM-1743] Create Data Connection privileges&#x20;

Previously if you had Manage Writeback permissions on a stream, app or sheet level - you were able to create/delete writeback data as well as create data connections. We have now de-coupled creating data connections from the Manage Writeback permission and introduced a new Data Connections Admin role.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FPBtflKyTd2VVzMrB0JCo%2FLogo%20-%20Qom%20Pivot%20Table.png?alt=media&amp;token=557c8386-8cd7-4882-b0ee-d638ae66f495" alt="" data-size="line">Qommentary Pivot Table

#### \[QOM-1820] Include associated dimensions when exporting comments

When Pivot Table comments are exported via the QAC, the associated cell dimensions are now also being included in the output Excel. This adds additional context to the exported dataset which is key to understanding the whole story and making better informed decisions.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FkGL85Mki5vqETtcB99Qg%2FLogo%20-%20Qom%20Manager.png?alt=media&amp;token=fdd2c9a3-3c61-431f-aa49-ca2a5762990b" alt="" data-size="line"> Qommentary Manager

#### \[QOM-1681] Data Connections security rules

Previously, all users were allowed to choose any data connection to use in Qommentary Writeback or Form use cases. We have now introduced more control and governance around data connections visibility, allowing Data Connection security rules to be created.

#### \[QOM-1738] Data Connections Admin role

We've introduced a new "Data Connections Admin" role which is allocated to users who need permissions to create, edit or delete data connections in Qommentary.

#### \[QOM-1808] Search, filter and manage Pivot Table comments in the QAC

Just like with Qommentary Insights and Table, you can now conveniently search, filter and manage all your Pivot Table comments from a single location in the QAC. You can also archive comments which are no longer required or export data to Excel to use as an additional data source, share with stakeholders or store offline.


# v23.1.1

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-1911] Cannot view or add dimensions and/or measures

Fixed an issue which impacted existing extensions causing the table dimensions/measures from disappearing from the data section and prevented adding new ones.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1914] Dimension date values display in numeric format

Fixed an issue which displayed all date dimensions in it's numeric format, instead of formatted dates.

#### \[QOM-1912] Selections on table dimensions not working

Fixed an issue which prevented table dimensions from being selected and filtered.

#### \[QOM-1913] Column search not working

Fixed an issue which impacted the table column search functionality and prevented the dimension filter popup from appearing.


# v23.1.2

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1928] Grand totals in writeback columns not updating&#x20;

Remediated an issue which caused the writeback column grand totals not to update when data was filtered in the Qlik Sense data model. Now, as you filter data, grand totals are recalculated and values displayed for the filtered dataset.&#x20;


# v23.1.3

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1931] Expression field inconsistent rounding&#x20;

Resolved an issue in the Expression Field that caused inconsistent rounding of decimal values. To address this, we’ve added new number formatting controls to provide more consistent and precise results.

#### \[QOM-1932] Cursor position retained when deleting digits in long numbers

Fixed an issue where the cursor would reset to the end of a long number when deleting a digit. Now, the cursor will remain in place, allowing for easier edits within the number field.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-1930] Exporting data to Excel from multiple tables in one sheet

Resolved an issue where exporting data to Excel from multiple table instances on the same sheet would only export data from the last table. Now, each table exports its unique data correctly, allowing for individual table data exports as expected.

## <mark style="color:blue;">Features</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2Fum5dTZlWjw2lf6dsHmQ2%2FLogo%20-%20Qom%20Insights.png?alt=media&amp;token=b7737308-5858-4b78-9042-c834558ffe30" alt="" data-size="original"> Qommentary Insights

#### \[QOM-1946] Enhanced commentary input with concurrent edit validation

Qommentary Insights now supports safe text input and saving within your analytics dashboards. Previously, simultaneous commentary updates by multiple users could lead to messages being overwritten. With this new feature, a validation warning alerts users if another commentary has been added, prompting them to refresh to view the latest input, ensuring data integrity and collaboration without conflicts.


# v23.1.4

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-1947] Commentary override

Fixed an issue where, in cases of simultaneous commentary edits by multiple users, one user’s commentary was unintentionally overwritten by another’s without a proper warning.&#x20;

This fix introduces a validation modal to alert users when there is a conflicting edit. The warning will now appear when two users try to edit and save the same commentary with identical selections at the same time. The system captures a snapshot of the commentary upon loading and compares it with the commentary at the time of saving. If discrepancies are detected, the user is prompted to refresh to view the latest updates before saving.

## <mark style="color:blue;">Features</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-1949] Cell line truncation control

Added a new feature that allows users to control the number of lines displayed for cell content within tables. This enhancement provides greater flexibility in content management, enabling users to adjust table content visibility according to their preferences and optimize readability.


# v22.3.0

## <mark style="color:blue;">What's new?</mark>

The Qommentary team is extremely proud to introduce the highly-acclaimed Qommentary Form Extension to the Qommentary library!

Traditionally, data input and master data management is done in external tools and platforms which are usually clunky and incur cost, time and effort to setup and maintain.

The *Qommentary Form Extension* is a revolutionary data entry tool which allows users to quickly create and manage highly-customizable input forms, directly in Qlik Sense. Data can be stored in a wide range of databases with writeback capabilities.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FMMLx3xN3sdfT8MEe9uSR%2FLogo%20-%20Qom%20Form.png?alt=media&amp;token=418da371-b532-4a9f-b9bb-c6c210cab0da" alt="" data-size="original"> Qommentary Form

<div align="center"><img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FMsbksCC6l8ayOH0o2gkE%2Fimage.png?alt=media&amp;token=83d22751-5d3f-4839-99f4-475748fdb7ed" alt="Qommentarty Form Extension"></div>

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2Fum5dTZlWjw2lf6dsHmQ2%2FLogo%20-%20Qom%20Insights.png?alt=media&amp;token=b7737308-5858-4b78-9042-c834558ffe30" alt="" data-size="original"> Qommentary Insights

#### \[QOM-1023] Share modal displays preloader behind elements

Fixed a layering issue which caused the "loading" icon to be displayed behind the dropdown elements in the modal.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FX5bk8pFi8p2uZQSStNmg%2FLogo%20-%20Qom%20Table.png?alt=media&amp;token=a7ae3123-34d7-4846-ab1e-de3ded83913f" alt="" data-size="line">Qommentary Table

#### \[QOM-307] Wrong error message displayed when subscription license expired

Fixed an issue which displayed an irrelevant message when the subscription license expired.

#### \[QOM-1076] Table data not refreshed when resizing in Edit mode

Fixed an issue which affected the table data being refreshed when resizing extension in Edit mode.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1405] Column search not working

Fixed an issue which affected the field search feature in column headers when the dimension field name was different than the label name.

## <mark style="color:blue;">Features</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FPBtflKyTd2VVzMrB0JCo%2FLogo%20-%20Qom%20Pivot%20Table.png?alt=media&amp;token=557c8386-8cd7-4882-b0ee-d638ae66f495" alt="" data-size="line">Qommentary Pivot Table

#### \[QOM-1334] New user experience when pivoting dimensions

We have introduced a better way of drag and dropping dimensions between rows and columns, which allows multiple dimensions to wrap in a grid-like layout, rather than being displayed horizontally in a single row. This provides an enhanced user experience for one of the most commonly used behaviours in a Pivot Table.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FkGL85Mki5vqETtcB99Qg%2FLogo%20-%20Qom%20Manager.png?alt=media&amp;token=fdd2c9a3-3c61-431f-aa49-ca2a5762990b" alt="" data-size="original"> Qommentary Manager

#### \[QOM-1352] Support for license downgrading

We introduced support for license de-allocation which would be required when downgrading from a higher pool of user tokens to a lower one. This feature now allows Qommentary Admins to de-allocate user tokens until the valid limit is reached before the new license can be activated.


# v22.1.0

## <mark style="color:blue;">What's new?</mark>

In the January 2022 release we are extremely excited to introduce the new *Qommentary Pivot Table* extension to the Qommentary library.&#x20;

The *Qommentary Pivot Table* extension allows teams to leverage the power of a Qlik Sense native pivot table, combined with the ability to collaborate by adding multiple comments on cells - on any data intersection.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FPBtflKyTd2VVzMrB0JCo%2FLogo%20-%20Qom%20Pivot%20Table.png?alt=media&amp;token=557c8386-8cd7-4882-b0ee-d638ae66f495" alt="" data-size="line">Qommentary Pivot Table

![Qommentary Pivot Table](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2Ffjv1g1Sqc3txL9Pon6gh%2Fimage.png?alt=media\&token=bd2ed427-d3f9-44c3-8144-9466a2c3a6ec)

Check out the *Qommentary Pivot Table User Guide* to [learn more](https://knowledgebase.qommentary.com/qommentary-pivot-table/).

## <mark style="color:blue;">Bug Fixes</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1130] Export after re-ordering columns displays invalid data

Fixed an export data issue which caused values in Excel to be displayed in the incorrect columns if input columns where re-ordered prior to exporting.

#### \[QOM-1132] Enabling concurrency hangs extension

Fixed an issue which caused the extension to hang if concurrency was enabled.

#### \[QOM-1133] Country dropdown list cutting off long names on export

Fixed a data export issue with the Dropdown component (Country type) which cut-off countries with long names when exported to Excel.

## <mark style="color:blue;">Features</mark>

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-2314261320%2Fuploads%2FRpUsQ1dDqWfHjEKfBJvh%2FLogo%20-%20Qom%20Writeback.png?alt=media&amp;token=cee2a2c5-8151-4d6d-8bac-82d58eab2165" alt="" data-size="line">Qommentary Writeback

#### \[QOM-1112] Audit columns

Now you can easily add system info to your tables by automatically displaying the last updated username and date. A great way to keep track of changes!

#### \[QOM-1125] Expression Input Control

The Expression Input Control allows you to leverage Qlik Sense expressions to reference values not only from dimension and measure columns, but also custom writeback input columns. A powerful way to display columns with calculated formulas on-the-fly.

####


# v21.4.0

## Bug Fixes

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHoq3qrO-wzJ5wfMe%2Flogo-table.png?alt=media&amp;token=9bc98f1c-baf1-482f-ad25-f31e521d9e7e" alt="" data-size="original">Qommentary Table

#### \[QOM-1046] Comments loading inconsistently

Fixed an issue which caused comments to be loaded inconsistently when toggling through multiple selections repeatedly and in short delays.

#### \[QOM-1043] Saving comments with blank dimensions in row

Fixed an issue which prevented from saving new comments when the affected row had dimensions with blank values.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHt_-f99JJy-tYdJz%2Flogo-writeback.png?alt=media&amp;token=9771931a-81aa-450e-b8da-4bcd6b14af37" alt="" data-size="original">Qommentary Writeback

#### \[QOM-1041] Invalid date format in datepicker control

Fixed an issue which caused dates in fields to display in an invalid format when using custom format 'dd/mmm/yyyy'.

#### \[QOM-1040] Search disappears in Select Existing Connection modal

Fixed an issue in the Select Existing Connection modal which caused the search field to disappear when searching for invalid data connections.

#### \[QOM-1078] Dropdown dimension does not load when selections applied

Fixed an issue in the dropdown dimension control which caused the values not to load when selections were made to the same dimension on a Qlik Sense filter or other chart.

## Features

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHt_-f99JJy-tYdJz%2Flogo-writeback.png?alt=media&amp;token=9771931a-81aa-450e-b8da-4bcd6b14af37" alt="" data-size="original">Qommentary Writeback

#### \[QOM-941] New ODBC data connection

Introduced a new ODBC (64 bits) data connection to allow you to save writeback data in any database of your choice.

#### \[QOM-942] New Teradata data connection

Introduced a new Teradata data connection to allow you to save writeback data in your own Teradata databases.


# v21.4.1

## Bug Fixes

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHt_-f99JJy-tYdJz%2Flogo-writeback.png?alt=media&amp;token=9771931a-81aa-450e-b8da-4bcd6b14af37" alt="" data-size="original">Qommentary Writeback

#### \[QOM-857] Number component with type integer allowing decimal places

Fixed a validation issue which allowed decimals to be entered in integer input fields.

#### \[QOM-1090] Checkbox controls saving false values as null

Fixed a data issue which caused Checkbox controls to save unchecked values as null.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MejIDVovtymssVD_hyV%2F-MejKodDUM2WcYz-1cf-%2Flogo-engine.png?alt=media&amp;token=a0f34461-51e8-4053-a81e-3286c34acb5d" alt="" data-size="original">Qommentary Engine

#### \[QOM-1091] CORS issue with same origin sites

With the upgrade of .NET Core Hosting bundle to version 3.1.x, Microsoft introduced stricter restrictions which required same-origin sites accessing the Qommentary Engine to be whitelisted. This fix ensures that same-origin sites can establish communication without any CORS issues.


# v21.3.0

## [Bug Fixes](https://knowledgebase.qommentary.com/support/release-notes/apr-2021-21.2.2#bug-fixes)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHGbtkS98Q2sGx6PJ%2Flogo-insights.png?alt=media&amp;token=9afa2326-416c-4d41-bb40-e863a6a9fb76" alt="" data-size="original">Qommentary Insights

#### \[QOM-885] User and group picker in share modal

Fixed a layer display issue with the user and group picker which was hiding behind the modal window.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHoq3qrO-wzJ5wfMe%2Flogo-table.png?alt=media&amp;token=9bc98f1c-baf1-482f-ad25-f31e521d9e7e" alt="" data-size="original">Qommentary Table

#### \[QOM-876] Table hangs when mentioning users on first comment

Fixed an issue which caused the loading spinner to hang when adding a first comment which had a mentioned user.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHt_-f99JJy-tYdJz%2Flogo-writeback.png?alt=media&amp;token=9771931a-81aa-450e-b8da-4bcd6b14af37" alt="" data-size="original">Qommentary Writeback

#### \[QOM-765] Sort icon disappearing

Fixed an issue which caused the sort icon to hide or display incorrectly. Sort icon will now adopt the text colour set on the header or totals row - depending on the sorting direction.

#### \[QOM-928] Long values in dropdown options wrap

Fixed an issue with dropdown controls when applying very long text options which caused the values to wrap into 2 or more lines and break the UI layout.

#### \[QOM-925] Export date displayed as number

Fixed an issue with exporting writeback table data to Excel which caused the date fields to be displayed in it's numeric representation.

#### \[QOM-932] Disable selections on measures

Disabled selections on measures which resulted on an "Invalid parameters" error being displayed.

#### \[QOM-933] Custom colours in header not applying

Fixed an issue with the custom text and background colours for table headers not appearing.

## [Features](https://knowledgebase.qommentary.com/support/release-notes/jun-2021-21.3.0#features)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHGbtkS98Q2sGx6PJ%2Flogo-insights.png?alt=media&amp;token=9afa2326-416c-4d41-bb40-e863a6a9fb76" alt="" data-size="original">Qommentary Insights

#### \[QOM-850] Enable export control

Added a new property to enable or disable commentary exporting functionality.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHt_-f99JJy-tYdJz%2Flogo-writeback.png?alt=media&amp;token=9771931a-81aa-450e-b8da-4bcd6b14af37" alt="" data-size="original">Qommentary Writeback

#### \[QOM-840] Enable bulk edit controls

Added new properties to enable or disable bulk column and/or advance bulk update operations in the table.

#### \[QOM-881] Reference input column values from expressions

Enhanced flexibility and user experience to enable or disable editing of input columns based on expressions which can reference values from other input columns.

#### \[QOM-905] Header height control

Introduced new controls to customize the header height, choosing from 3 options: compact, comfortable or spacious. The height selected will also determine if 1, 2 or 3 lines of text can be displayed.

#### \[QOM-922] Dropdown control with dimension values

We're introducing a new way to source values for your dropdown input controls - sourced directly from Qlik Sense dimensions. This allows you to leverage pre-existing fields in the data model to drive dropdown options presented to users.

#### \[QOM-925] Export date display format

Added new properties to show/hide export function and also determine if the exported date fields should display with locale format or as per Qlik Sense.

#### \[QOM-931] Disable create, edit or delete connections for unauthorized users

Added new security controls to disable unauthorized users from creating, editing or deleting data connections in published applications.

## [Improvements](https://knowledgebase.qommentary.com/support/release-notes/apr-2021-21.2.2#improvements)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHGbtkS98Q2sGx6PJ%2Flogo-insights.png?alt=media&amp;token=9afa2326-416c-4d41-bb40-e863a6a9fb76" alt="" data-size="original">Qommentary Insights

#### \[QOM-872, QOM-873] Allow export and share for unlicensed users

We keep adding more freemium features to our Qommentary extensions, now allowing non-licensed users to export and share commentary data.&#x20;

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHt_-f99JJy-tYdJz%2Flogo-writeback.png?alt=media&amp;token=9771931a-81aa-450e-b8da-4bcd6b14af37" alt="" data-size="original">Qommentary Writeback

#### \[QOM-899] Added input control field name validation

Added new validation in table and properties panel if input control field name is left blank.

#### \[QOM-905] New sticky header rendering mechanism

We improved the stability and consistency of the table sticky header by re-building it from scratch with a new more powerful approach.

#### \[QOM-962] Added audit table name validation&#x20;

Added new validation in table and properties panel if audit logs table name is empty or contains spaces.

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MejIDVovtymssVD_hyV%2F-MejKodDUM2WcYz-1cf-%2Flogo-engine.png?alt=media&amp;token=a0f34461-51e8-4053-a81e-3286c34acb5d" alt="" data-size="original">Qommentary Engine

#### \[QOM-896] Improved performance for syncing large number of users

We've added significant performance improvements in the user synching process to handle large number of users (+10,000) when triggered from the Qommentary Admin Console or the User Sync Utility.

#### \[QOM-924] Syncing AD groups ignoring case-sensitivity

To further align with Qlik Sense's rules when importing user attributes, we are now allowing non case-sensitive groups to be synced into your Qommentary environment.


# v21.2.0


# v21.2.1

## [Bug Fixes](https://knowledgebase.qommentary.com/support/release-notes/apr-2021-21.2.2#bug-fixes)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHt_-f99JJy-tYdJz%2Flogo-writeback.png?alt=media&amp;token=9771931a-81aa-450e-b8da-4bcd6b14af37" alt="" data-size="original">Qommentary Writeback

#### \[QOM-849] Display correct success notification

Fixed an issue when editing a data connection which caused the success notification to display an invalid message

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MejIDVovtymssVD_hyV%2F-MejKodDUM2WcYz-1cf-%2Flogo-engine.png?alt=media&amp;token=a0f34461-51e8-4053-a81e-3286c34acb5d" alt="" data-size="original">Qommentary Engine

#### \[QOM-847] Display schema warning window when using custom public schema&#x20;

Fixed an issue when using a custom public schema in database data connections which caused the schema warning window to appear.


# v21.2.2

## [Bug Fixes](https://knowledgebase.qommentary.com/support/release-notes/apr-2021-21.2.2#bug-fixes)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHGbtkS98Q2sGx6PJ%2Flogo-insights.png?alt=media&amp;token=9afa2326-416c-4d41-bb40-e863a6a9fb76" alt="" data-size="original">Qommentary Insights

#### \[QOM-861] List of users and groups in Share window not showing

Fixed an issue with the commentary share functionality which caused the list of searched users or groups to disappear.

## [Improvements](https://knowledgebase.qommentary.com/support/release-notes/apr-2021-21.2.2#improvements)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MejIDVovtymssVD_hyV%2F-MejKodDUM2WcYz-1cf-%2Flogo-engine.png?alt=media&amp;token=a0f34461-51e8-4053-a81e-3286c34acb5d" alt="" data-size="original">Qommentary Engine

#### \[QOM-865] Display all users and groups by default

Introduced a new default behaviour which allows any user to view all system's users and/or groups if custom security rules are not present or disabled.


# v21.1.0

## [Features](https://knowledgebase.qommentary.com/release-notes/jan-2021/jan-2021-v21.1.0#features)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MejIDVovtymssVD_hyV%2F-MejKodDUM2WcYz-1cf-%2Flogo-engine.png?alt=media&amp;token=a0f34461-51e8-4053-a81e-3286c34acb5d" alt="" data-size="original">Qommentary Manager

#### \[QOM-686] New Developer Admin role&#x20;

Added a new type of role which grants permissions to manage Invalid Resources in the Qommentary Admin Console. Invalid Resources allows restoring commentary references from applications and/or objects which were previously deleted.

#### \[QOM-689] Bulk group license allocation&#x20;

We introduced a new feature in the License Allocation section to allow tokens to be bulk allocated to selected groups. De-allocation of tokens is still done manually for each user.

## [Improvements](https://knowledgebase.qommentary.com/release-notes/jan-2021/jan-2021-v21.1.0#improvements)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MejIDVovtymssVD_hyV%2F-MejKodDUM2WcYz-1cf-%2Flogo-engine.png?alt=media&amp;token=a0f34461-51e8-4053-a81e-3286c34acb5d" alt="" data-size="original">Qommentary Manager

#### \[QOM-687] Users with Manage Security permissions can edit group roles

We extended the Manage Security permission rules to also allow the editing of custom or AD group roles.


# v21.1.1

## [Bug Fixes](https://knowledgebase.qommentary.com/release-notes/jan-2021/jan-2021-v21.1.1#bug-fixes)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Meit2V2w2xsVl9Zs7cc%2F-MejHoq3qrO-wzJ5wfMe%2Flogo-table.png?alt=media&amp;token=9bc98f1c-baf1-482f-ad25-f31e521d9e7e" alt="" data-size="original">Qommentary Table

#### \[QOM-771] Mention list hides behind Add comment modal

Fixed a display issue which caused the mentions list menu to display behind the modal when adding a new comment.

#### \[QOM-772] Content library list always fetched via default virtual proxy

Fixed an issue with the Profile Photos content library in the properties which was targeting the default virtual proxy, rather than the currently selected. This caused issues if the current user did not have access to the default virtual proxy.&#x20;


# v21.1.2

## [Bug Fixes](https://knowledgebase.qommentary.com/release-notes/jan-2021/jan-2021-v21.1.2#bug-fixes)

### <img src="https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MejIDVovtymssVD_hyV%2F-MejKodDUM2WcYz-1cf-%2Flogo-engine.png?alt=media&amp;token=a0f34461-51e8-4053-a81e-3286c34acb5d" alt="" data-size="original">Qommentary Engine

#### \[QOM-865] Change default security rules for users and groups&#x20;

Fixed a default behaviour which prevented users and groups from being fetched across the Qommentary platform - unless implicit security rules where created targeting these resources. Now by default, all users and groups will be visible, unless security rules with specific conditions are created.


# v20.4.0

{% file src="/files/-MLptkDmG3TJXGhsMj\_-" %}
Qommentary Oct 2020 - 20.4.0
{% endfile %}


# v20.4.1

{% file src="/files/-MNzvZD7z-t7S6LsVQyA" %}
Qommentary Oct 2020 SR1 - 20.4.1
{% endfile %}


# v20.3.0

{% file src="/files/-MLzKmYpKkIOmhvGjaxk" %}
Qommentary Sep 2020 (20.3.0) Release notes
{% endfile %}


# v20.2.0

## Bug Fixes

### Qommentary Insights

#### \[QOM-179] Extension registration in workarea mode

Fixed an issue which caused new extensions added to register in workarea applications, experiencing unexpected behaviours when searching for published commentaries.

#### \[QOM-227] Replace underscore methods to avoid conflicts with 3rd party extensions

Replaced underscore methods which caused extension to crash when used in conjunction with 3rd party extensions.

#### \[QOM-277] Prohibit commentary entry when global commentary is disabled

Fixed an issue which allowed commentary to be entered when no selections were applied and “allow global commentary“ was disabled.

#### \[QOM-244] Extension version displaying incorrectly

Fixed an issue when upgrading to a new version, which caused existing extensions instances to display an older release and version number.

### Qommentary Table

#### \[QOM-226] Replace underscore methods to avoid conflicts with 3rd party extensions

Replaced underscore methods which caused extension to crash when used in conjunction with 3rd party extensions.

#### \[QOM-234] Incorrect sort order when adding new comments

Fixed a bug which caused comments on row detail view to be displayed in incorrect sort order when a new comment was added

#### \[QOM-244] Extension version displaying incorrectly

Fixed an issue when upgrading to a new version, which caused existing extensions instances to display an older release and version number.

### Qommentary Admin Console

#### \[QOM-178] Avoid updating roles for security admins

Fixed an issue affecting users with Security Admin privileges which caused assigned admin roles to be revoked when editing and saving user attributes.

#### \[QOM-180] Avoid updating for roles security admins

Fixed an issue which allowed Security Admins to update admin roles assigned to AD groups

#### \[QOM-194] User/group search cuts out long results

Fixed a UI bug which cause long user or group names to be cut out when searching on dropdowns

#### \[QOM-267] Error handling user sync

Fixed an issue which gave a false positive when syncing users on first attempt.

#### \[QOM-181] Editor Admins visibility to archived commentaries

Fixed an issue which prevented Editor Admins from accessing the archived commentaries section.

### Qommentary Engine

#### \[QOM-263] User sync utility logging

Fixed an issue with the log path location for the User Sync Utility which caused the utility to skip writing logs to file system.

## New Features

### Qommentary Insights

#### \[QOM-238] Qlik NPrinting compatibility

Introduced full compatibility between Qlik NPrinting and Qommentary - allowing any commentary associated to selections to be embedded in NPrinting reports and distributed on a scheduled task.

#### \[QOM-202] Submit for approval permission

Added a new type of permission which allows privileged users to submit commentary for approval.

#### \[QOM-205] Recall permission

Added a new type of permission which allows privileged users to recall commentary which was published or submitted for approval.

#### \[QOM-203] Dimensions and anchor point controls for non-responsive sheets

Added properties to specify width/height dimensions and position anchor points when writing commentary in full screen mode.

### Qommentary Table

#### \[QOM-278] Display first or last comment in Comments column

Added properties for controlling visibility of comment in Comments column and if first or last comment should be displayed.

### Qommentary Admin Console

\[QOM-119] Comments search and archive

Added a new section to the Qommentary Manager which separates commentaries (narratives) from comments (discussions, table comments) - allowing you to search and archive comments written in all extensions.

#### \[QOM-137] SMTP SSL and TLS options

Added new options to specify if SMTP connection uses SSL or TLS.

#### \[QOM-138] SMTP validate email settings

New handy feature which allows testing and validating settings and connection to the SMTP server.

#### \[QOM-214] Export workflow data to XML

New convenient way of generating a full data definition of the Workflows section, exported to XML format. The downloaded document contains such information as workflow name, description, associated resources and steps of approval.

#### \[QOM-233] Invalid resources recovery section

Any Qlik Sense resource (stream, app or sheet) associated to a Qommentary instance saves a reference. If one of those resources are permanently deleted, the commentary reference would be destroyed.

This new section will allow broken Qommentary instances to be re-mapped to new Qlik Sense resources, allowing the recovery of commentary and restoring to previous state.

### Qommentary Engine

#### \[QOM-221] Audit log for user-driven actions

Added logging capabilities to track and monitor relevant user actions in Qommentary. Logs are generated in txt format and saved in the configured log path location.

#### \[QOM-118] Support for DB column-level encryption

Introduced support for column-level encryption (PostgreSQL)


# Deployments

A high-level diagram of the Qommentary architecture and deployment options

### Components

Qommentary has four main components:

* **Qommentary Extensions**\
  *The Qlik Sense extensions deployed using the QMC*<br>
* **Qommentary Manager**\
  *The main administration console which allows you to control the Qommentary environment*<br>
* **Qommentary Engine**\
  *The main API component responsible for managing commentary, security, workflows, etc.*<br>
* **Qommentary Database**\
  *The PostgreSQL database where Qommentary data is stored and retrieved.*

![Qlik Sense shared deployment](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5-Ncl8fmAz8_hOSR9O%2F-M5-OpN19dep1foIeyVY%2Fimage.png?alt=media\&token=966be95f-04a2-49be-9bce-4fdc9ea236cd)

### Deployments

Qommentary offers multiple options when it comes to deploying across environments:

| Scenario          | Component                                                  | Deployment                                                                                |
| ----------------- | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Qlik Sense shared | <p>Qommentary Engine/Manager</p><p>Qommentary Database</p> | <p>Same environment as Qlik Sense</p><p>Connects to same instance as Qlik Sense</p>       |
| Qlik Sense shared | <p>Qommentary Engine/Manager</p><p>Qommentary Database</p> | <p>Same environment as Qlik Sense</p><p>Connects to new internal or external instance</p> |
| Dedicated         | <p>Qommentary Engine/Manager</p><p>Qommentary Database</p> | <p>Dedicated environment</p><p>Connects to same instance as Qlik Sense</p>                |
| Dedicated         | <p>Qommentary Engine/Manager</p><p>Qommentary Database</p> | <p>Dedicated environment</p><p>Connects to new internal or external instance </p>         |


# Disaster Recovery

Disaster recovery (DR) means being prepared for—and recovering from—disaster. Any event such as hardware failure, software failure, natural calamity, human error, or infrastructure failure that causes disruption to business continuity can be considered a disaster.

### Backing up a Qommentary site

A Qommentary site backup includes:

**Qommentary database** - The central database containing all user data and configuration. Regular backups should be conducted to avoid data loss.

**Qlik Sense Client certificate** - Qommentary uses the Qlik Sense Client certificate to authenticate with Qlik Sense API services.

**SSL certificate** - Any 3rd-party SSL certificate used to secure connection with the Qommentary Engine and Qommentary Manager.

### Restoring a Qommentary site

After restoring Qlik Sense back to it's original snapshot state prior to the event, you will need to restore Qommentary back to normal.

Please follow these steps to restore Qommentary:

1\.  Install Qommentary on the recovery environment using the *Qommentary Setup Wizard*\
2\. Restore the Qommentary Database from the latest snapshot\
3\. Re-install the Qlik Sense Client certificate\
4\. Re-bind the SSL certificate to the Qommentary Manager/Engine sites (if applicable)

{% hint style="warning" %}
It is important that applications restorted in the recovery environment retain the same application ID as prior to the incident.&#x20;

Qommentary associates data to applications and if the restored applications are imported manually via the QMC, the application ID will change and commentary data might loose reference.
{% endhint %}


# Mirroring Sites

Qommentary Mirroring architecture allows you to mirrow a Qommentary environment across multiple Qlik Sense sites. This way, commentary data can be shared and managed across all sites from any location.

In this type of architecture, there is a Central Node which acts as the single source of truth, and mirroring environments which communicate with the Central Node.

If you would like to mirror a Qommentary enviroment, please follow these steps:

## Mirror Node Setup

### Installation

1\. Launch **Qommentary Setup Wizard**

2\. Under Database section, uncheck "Install database server"

3\. Enter **Central Node** database details and test connection

4\. Continue installation as per [Installation guide](/getting-started/installation)

### Qlik Client Certificate

1\. Navigate to *QMC > Certificates* in **Central Node**

2\. Export certificates (include secret key)

3\. Copy certificates to **Mirrow Node**

4\. Install **client.pfx** certificate under *Local Computer > Personal* store

4\. Rename QlikClient friendly name to **QlikClient\_CentralNode**

### &#x20;Configuration

1\. Navigate to Qommentary installation location

2\. Open **Qommentary Engine** folder

3\. Edit **appsettings.json** with your favourite text editor

4\. Add the following code snippet to the root node:

```
"IsMirroringEnabled": true, 
"Mirroring": {
      "CentralNode": { 
            "Url": "https://<central-node-hostname>", 
            "CertificateFriendlyName": "<QlikClient_CentralNode_CertificateFriendlyName>" 
      }
} 
```

Your **appsettings.json** should now look like this:

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MLqG4nRr2rBUHcKBb0o%2F-MLqJoi5Ooe-mVC5zl8V%2Fimage.png?alt=media\&token=662820dd-6f87-460b-9a73-2fc020fe1c51)


# Migrations

This section outlines the necessary steps for migrating Qommentary components between environments. It is important to note that there are three primary scenarios to consider.

## &#x20;Database only

1. Backup *Qommentary Database* using pgadmin tool
2. Restore *Qommentary Database* in the new Database server
3. Go to the *Qommentary Engine* folder
4. Open the appsettings.json
5. Update the "ConnectionStrings" > “Qommentary” entry with the new connectionstring
6. Restart Qommentary Engine application pool in IIS

*Example of the **appsetting.json** entry*

```json
"ConnectionStrings": {
    "Qommentary": "zKA40nbrJzFIzu1kXecgP45n1d1f9beA6MBvieX99UUmFMQxc2lpem8x6hV+TNDjgOa3+lvLJAie3Qnl+KbBxghI58LF4DgEHbZdqEpLIVoCIbOA9eFwpGUMXOzNbmTfQTD+LpHUEktCoIW6d7mQI4b2YJKcYy448rVGJk7K0fbbg8n"
}
```

{% hint style="warning" %}
You will have to use the [DB Connection Utility](/utilities/db-connection-manager) to encrypt your new connectionstring before updating this entry
{% endhint %}

## Admin Console and Engine only

1. Install Qommentary on the new environment using the Qommentary Setup Wizard. In the database step, connect to existing database and provide the details related to the existing Qommentary Database.
2. Re-install the Qlik Sense Client certificate in the new environment
3. Re-bind the SSL certificate to the Qommentary Manager/Engine sites (if applicable)
4. Check that the Qommentary Manager/Engine hostnames are whitelisted in the virtual proxy list in the Qlik Management Console (QMC)
5. Update all Qommentary extensions configurations via Qlik dev-hub if the new environment is using different endpoint URLs.

{% hint style="info" %}
For more information please check [Prerequisites](/getting-started/prerequisites) and [Installing](/getting-started/installation) sections
{% endhint %}

## Database, Admin Console and Engine

This scenario is a combination of the previous sections, so please begin with the "Database only" steps and then proceed with the "Admin console and Engine only" steps.


# User Sync Utility

Qommentary imports users/groups from Qlik Sense to the Qommentary environment enabling user token allocation, security and approval workflows management.

The *User Sync Utility* is a standalone executable which can be triggered from any task schedule manager to automate the user sync process in Qommentary.

![User Sync Flow](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5pwrW47mtIwOBKi3lT%2F-M5q6RCRqDDPL3sCXfSf%2Fimage.png?alt=media\&token=cab56f90-beab-422d-adb9-2d5d041d3b99)

By default, Qommentary supports the built-in *Windows Task Scheduler* application which can be configured to run on a frequent schedule and trigger the *Qommentary User Sync Utility*.

To setup an automated user sync task, please follow these steps:

### User Sync Utility

1\. Download the [**User Sync Utility**](mailto:support@qommentary.com?subject=%20Download%20Request%20%7C%20Qommentary%20User%20Sync%20Utility\&body=Please%20send%20download%20link%20to%20latest%20Qommentary%20User%20Sync%20Utility.)\
2\. Unzip contents to any folder on the server where Qommentary is hosted\
3\. Copy the **appsettings.json** file found on the Qommentary Engine folder under your installation path\
4\. Paste the file inside the *User Sync Utility* folder

### Windows Task Scheduler

1\. Open the **Server Manager**\
2\.  Click on **Tools** > **Task Scheduler**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5osWQDCGohkyCPxO1H%2Fimage.png?alt=media\&token=5ccb4d2a-6372-4bd0-8e12-82c19f013464)

3\. Click on **Create Basic Task**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5ov2MHRX4dm-RMukqu%2Fimage.png?alt=media\&token=ba0f7dc4-4cf7-4973-a025-3ee9b8e86dbe)

{% hint style="info" %}
You may also select **Create Task** if you would like a more advanced setup&#x20;
{% endhint %}

4\. Give your new task a name and click **Next**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5owbEosEZBKhVP7YaY%2Fimage.png?alt=media\&token=2acceba3-25f7-440b-9dc5-603921015b93)

5\. Choose the frequency of your task and click **Next**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5owphlvoheRzLUuuGp%2Fimage.png?alt=media\&token=8de3bfee-6192-4d9f-8492-da123dd4ba00)

6\. Choose when the task should start and click **Next**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5ox2nFYMCSyHU9n5u0%2Fimage.png?alt=media\&token=3bee5eba-7bd9-4be1-9e62-78ea7272d2f4)

7\. Choose **Start a program** and click **Next**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5oxLPCFymRsvEQYctB%2Fimage.png?alt=media\&token=744d8018-257e-46b9-8e57-a4aba1930aef)

8\. Browse to the *User Sychronization Utility* location, select **Qommentary.UserSync.exe** and click **Next**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5oyfZYHZeKbNUAV56j%2Fimage.png?alt=media\&token=0c7ed888-7e62-4cf7-b53d-d86c218a54bd)

9\. Review your details and click on **Finish**

Once the basic task has been created, we recommend reviewing each configuration tab to ensure it meets your requirements:

1\. Double-click on the newly created **Qommentary User Sync** task

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5oFgnYOUVLSoft8qra%2F-M5p1mlIHXG9rqr20YSI%2Fimage.png?alt=media\&token=947d9109-5d15-42b4-9844-fe8957b8bf1c)

2\. Select **Run whether user is logged on or not** and tick **Run with highest privileges**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5p3zcbECEP7Lez0-jJ%2F-M5p4GIOjXLqyDGP0pI0%2Fimage.png?alt=media\&token=a1b80e24-80ed-4e13-8bb3-892b195f945e)

4\. Verify that the **Conditions** and **Settings** tabs display correct settings\
5\. Click on **OK** and enter your admin password

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5p3zcbECEP7Lez0-jJ%2F-M5p6nXf_yofM216fGcr%2Fimage.png?alt=media\&token=ecb28d9c-e87a-4993-bdd9-7f56cdfb7d24)

### **Logs**

The *User Sync Utility* will create a log file in a daily basis and store in the setup folder.

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5p3zcbECEP7Lez0-jJ%2F-M5pXRUo1J-icuoWeizR%2Fimage.png?alt=media\&token=501784f0-1b50-45ba-a120-4067ad1c85cf)


# DB Connection Utility

During the installation, Qommentary will encrypt database parameters into a connection string which is stored in the Qommentary Engine settings file.

The *DB Connection Utility* allows you to easily decrypt, update and encrypt the database connection string to update parameters such as database hostname, username or password.

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5Hu_po6LKJPl3U-plc%2F-M5HwqHWW2Lj2_OegqT6%2Fimage.png?alt=media\&token=ae62e835-822b-4192-8bf4-6a756e36c794)

To update the connection string, please follow these steps:

1\.  Download the [**DB Connection Utility**](https://www.qommentary.com/downloads/utilities/Qommentary_DB_Connection_Utility.zip)\
2\. Unzip contents to any folder of your choice\
3\. Run the **Qommentary.DBConnectionManager.exe** file\
4\. Copy the encrypted connection string from the **appsettings.json** file located on the Qommentary Engine folder

```
"ConnectionStrings": {
    "Qommentary": "zKA40nbrJzFIzu1kXecgP45n1d1f9beA6MBvieX99UUmFMQxc2lpem8x6hV+TNDjgOa3+lvLJAie3Qnl+KbBxghI58LF4DgEHbZdqEpLIVoCIbOA9eFwpGUMXOzNbmTfQTD+LpHUEktCoIW6d7mQI4b2YJKcYy448rVGJk7K0fbbg8n"
}
```

5\. Paste it in the *Decrypt Connection String* field and click on **Decrypt**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5paKPqoz5d_B1UXhWq%2F-M5ptLBWkDB0v9hvwREK%2Fimage.png?alt=media\&token=15cbc41c-04ff-49f9-8ff4-ce36bf588c05)

6\. Copy the decrypted connection string and paste it in the *Encrypt Connection String* field\
7\. Update the connection string and click on **Encrypt**

![](https://409486811-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5pw4M79YKUaCFOLouz%2F-M5pwHe08IXoCzAGUGcP%2Fimage.png?alt=media\&token=ffcfb737-d578-4228-8f55-f31c1b5ae185)

8\. Copy the encrypted connection string and replace it in the **appsettings.json** file\
9\. Recycle the **Qommentary Engine** application pool


# Welcome

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZODLDokNiGmMqZqml1%2F-MZOEX4tGPv5z9dclaFW%2Fqac-kb.png?alt=media\&token=6b75a136-d892-496d-9a69-bd720ae5b12c)


# Activating your license

When you first install Qommentary, you will be first prompted to activate your license.

1\. Go to the **Qommentary Admin Console**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ixMNzamDD08V9Beds%2F-M4j28FYXBIIc2qeBzsF%2Fimage.png?alt=media\&token=6bc97fd8-f2ae-4161-b6d0-f4efd97212af)

2\. Enter your license key and click on **Activate Key**\
3\. After activation, refresh the page to view all sections

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4ixMNzamDD08V9Beds%2F-M4j3zknYUuuPzx100Te%2Fimage.png?alt=media\&token=f68553b1-ef74-4873-9fee-5229f8020cc6)


# Synching users and groups

*Qommentary* integrates with Qlik Sense user repository and imports all active users to the Qommentary Database.

When you setup Qommentary for the first time, you will need to sync all users. Once users have been synched, you'll be able to perform the following actions:

* Update user attributes
* Assign roles to users
* Add users to groups
* Manage user security permissions
* Assign users to approval workflows
* Allocate user licenses

To synch users, follow these steps:

1\. Go the **Qommentary Admin Console**\
2\.  Click on **Users**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4j4GH_fDVCUnUZKiFG%2F-M4jTxIubf02FQ127jMX%2Fimage.png?alt=media\&token=1dd8ad49-f5bb-488c-b103-046cf5fd8601)

3\. Click on **Sync** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M4j4GH_fDVCUnUZKiFG%2F-M4jVZ4ha2RCoHp9jrCA%2Fimage.png?alt=media\&token=bbaeb28e-77ad-4415-a87a-c2b99113dd4a)

{% hint style="success" %}
Congratulations! You have successfully synched all Qlik Sense users.
{% endhint %}


# Configuring SMTP details

Qommentary sends email notifications as the default method of communication. You will need to enter SMTP settings to enable email notifications on your Qommentary environment.

1. Go to **Qommentary Admin Console**
2. Click on **Settings**<br>

   <figure><img src="https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FqctVUbFEuuk6fUFGiCZy%2Fimage.png?alt=media&amp;token=adcaf615-7a11-4cea-b12b-d742a3e269d2" alt=""><figcaption></figcaption></figure>

3\. Enter required SMTP settings:

| Field             | Description                                                                                                                                                                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| SMTP username     | The SMTP server username (if required)                                                                                                                                                                                                                                   |
| SMTP password     | The SMTP server password (if required)                                                                                                                                                                                                                                   |
| Timeout           | Timeout in milliseconds for network streaming operations                                                                                                                                                                                                                 |
| Host              | The SMTP server FQDN                                                                                                                                                                                                                                                     |
| Port              | The SMTP server port number                                                                                                                                                                                                                                              |
| Use SSL           | The connection should use SSL or TLS encryption immediately                                                                                                                                                                                                              |
| Use TLS           | Elevates the connection to use TLS encryption immediately after reading the greeting and capabilities of the server. If the server does not support the STARTTLS extension, then the connection will fail and a NotSupportedException will be thrown. Default is TLS 1.2 |
| From email        | Default sender email address to use when sending email messages                                                                                                                                                                                                          |
| From display name | Default sender display name to use when sending email messages                                                                                                                                                                                                           |

{% hint style="warning" %}
If you select the "Use SSL" option, this one will take precedence over the "Use TLS"
{% endhint %}

{% hint style="warning" %}
You may need to set user name and password parameters if the server requires authentication.
{% endhint %}


# Managing commentaries

Qommentary provides a centralised location where users can explore and find commentaries that have been created by any extension across all Qlik Sense applications.

Commentaries are richly-formatted narratives which can be associated to selections, linked to one or multiple charts in the sheet and submitted for approval (if required).

Commentaries can be filtered by one or multiple applications and searched by a specific keyword or author name. Additionally, commentaries can be archived when no longer required to be visible.

### **Filtering**

1\. Click on the **Filter by** text field and start typing an application name

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNdXfZOLRHm-in5ff4%2Fimage.png?alt=media\&token=d2869e29-decb-4424-b710-e76f7faeb971)

2\. Select an application from the list

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNdhI8iWfgUuobsn6k%2Fimage.png?alt=media\&token=0a677a70-ab0d-4fbd-b2c7-d2489245f01b)

If the selected application/s contains any published commentaries, they will be displayed on the table.

### Searching

Commentary can be searched by specific keywords or by the author name. You can also filter results by a a specific application or a group of applications.

**Searching by commentary or author name**

1\. Start typing a commentary keyword or the name of a commentary author

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNeCIPiAMCy_ZKSTmr%2Fimage.png?alt=media\&token=a436ec94-61f7-486c-8abc-b12e13558574)

The table will update as you type and display any records which match your search.

### Deleting a commentary

Deleting a commentary will allow you to permanently remove it from the database. This action cannot be undone. Any active workflows associated to the deleted commentary will be cancelled.

1\. Navigate to **Commentaries » Published** section\
2\. Filter by an application/s of your choice

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNepaiqEI8tbp_TxCh%2Fimage.png?alt=media\&token=36271cf2-eac9-46d9-970d-089145d3b9d8)

3\. Tick the commentary/commentaries you would like to delete

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNf4HfckI1xAB5N3xN%2Fimage.png?alt=media\&token=cb11035c-6fa5-491c-a0a3-43f6f38f849e)

4\. Click on the **Delete** icon

<div align="left"><img src="https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNfDQIKoYCEsnRpOGY%2Fimage.png?alt=media&amp;token=9262dd89-102b-4995-bc4b-fcfe554c5276" alt=""></div>

5\. Once confirmation modal appears, click on **Delete** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNfP7np99Vu9chhqMf%2Fimage.png?alt=media\&token=7c89eeb2-6e28-478f-a34e-92253db68766)

The selected commentary/commentaries will be permanently deleted from the system.

### Archiving a commentary

Archiving a commentary will hide it from the extension and move the commentary to the archived section.&#x20;

1\. Go to the **Commentaries Published** section\
2\. Filter by an application/s of your choice

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNepaiqEI8tbp_TxCh%2Fimage.png?alt=media\&token=36271cf2-eac9-46d9-970d-089145d3b9d8)

3\. Tick the commentary/commentaries you would like to archive

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNiDIFWRUJNA1ye-Pw%2Fimage.png?alt=media\&token=280dc704-9e3a-4d00-b70f-686bf426d118)

4\. Click on the **Archive** icon

<div align="left"><img src="https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNiMf6ZlyVSv4qPVAs%2Fimage.png?alt=media&amp;token=db9c9f78-da16-4bfa-86a9-4186f4994260" alt=""></div>

The selected commentary/commentaries will be archived.

{% hint style="danger" %}
**This operation** **cannot be undone**.&#x20;

Any approval workflows in progress which are associated to the archived commentary will be cancelled.
{% endhint %}

### Exporting

Commentary data can be exported to Excel for offline use. The generated document will include all commentary in an application with any associated selections.

To export commentary, please follow these steps:

1\. Click on the **Export** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNjh0-FLTJkgCQoPZk%2Fimage.png?alt=media\&token=b55e0c80-3719-4cc3-9455-3ebf4e385750)

An Excel document will be generated on-the-fly and downloaded to your specified location

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNjZrbXvTCKfqGNZeT%2Fimage.png?alt=media\&token=dd91d873-89a7-4275-a60c-fec93d52ca19)

### Viewing archived commentaries

When commentaries are archived, they are cleared from the source extension and stored in the Archived section.

To view archived commentaries, please follow these steps:

1\. Navigate to the **Commentaries » Archived** section &#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5HgM87VMXNvijjXpfI%2F-M5HhxmBL7Ck-lmaU8kD%2Fimage.png?alt=media\&token=62989691-36d9-49b6-bc72-0bca787f2d33)

2\. Filter by an application/s of your choice

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNepaiqEI8tbp_TxCh%2Fimage.png?alt=media\&token=36271cf2-eac9-46d9-970d-089145d3b9d8)

If the selected application/s contains any archived commentaries, they will be displayed on the table.

### Archiving applications

If you wish to archive all commentaries contained within a specific application, you can perform a bulk archive operation.

To archive commentaries on an application, please follow these steps:

1\. Go to **Commentaries » Archived** section\
2\. Click on the **Archive App** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNkmZRX91_c_Xh-v1V%2Fimage.png?alt=media\&token=787863e5-da76-4079-b237-92c239c7069e)

3\. Start typing the name of an application or select from the list

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNkyVxlO3Qa2RVFYcY%2Fimage.png?alt=media\&token=3cf4397c-83f2-40a5-8408-afa226a21bb0)

4\. Select the application and click on the **Archive** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNl7Q41yzv59aC0Ouj%2Fimage.png?alt=media\&token=4541f7d6-5bf7-4f7a-bad1-64796430b804)

The selected application will be archived and all commentaries will now be hidden from the extension.


# Managing comments

Qommentary provides a centralised location where users can explore and find comments that have been created by extensions across any Qlik Sense applications.

Comments can be posted in Qommentary Insights discussions as well as by the Qommentary Table extension.

Comments can be filtered by one or multiple applications and searched by a specific keyword or author name. Additionally, comments can be archived when no longer required to be visible.

### **Filtering**

1\. Navigate to **Comments » All** section

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNn1HgYiPh8Ec8QqKx%2Fimage.png?alt=media\&token=f79b6ba3-405d-4be7-85ff-4f7b367bc0ba)

2\. Click on the **Filter by** text field and start typing an application name

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNnEGdjICdrUPbEr83%2Fimage.png?alt=media\&token=14aa722b-c6f8-4f5b-9d81-d062b5545893)

2\. Select an application from the list

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNnW_VmBUAefvxU1bh%2Fimage.png?alt=media\&token=3fe7fa4a-afbb-4b9e-ba66-e36e515edd07)

If the selected application/s contains any comments, they will be displayed on the table.

### Searching

Comments can be searched by specific keywords or by the author name. You can also filter results by a a specific application or a group of applications.

**Searching by comment text or author name**

1\. Start typing a keyword or the name of a comment author

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNnuj6DiGnpYVNAG9j%2Fimage.png?alt=media\&token=7be5ea22-1bd3-419a-afe3-40ec19c84e0e)

The table will update as you type and display any records which match your search.

### Deleting a comment

Deleting a comment will permanently remove the comment from the system.

To delete a comment, please follow these steps:

1\. Navigate to **Comments » All** section\
2\. Filter by an application/s of your choice

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNepaiqEI8tbp_TxCh%2Fimage.png?alt=media\&token=36271cf2-eac9-46d9-970d-089145d3b9d8)

3\. Tick the comment/s you would like to delete

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNpGTgn05B00u80mFo%2Fimage.png?alt=media\&token=9a312d64-f0df-48a9-9fb1-eebb0c12872f)

4\. Click on the **Delete** icon

<div align="left"><img src="https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNfDQIKoYCEsnRpOGY%2Fimage.png?alt=media&amp;token=9262dd89-102b-4995-bc4b-fcfe554c5276" alt=""></div>

5\. Once confirmation modal appears, click on **Delete** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNpPXb0BhEDcBvlYB4%2Fimage.png?alt=media\&token=e0623e2a-128a-4198-a1e6-4d33b992ccc2)

The selected comment/s will be permanently deleted from the system.

{% hint style="danger" %}
**This operation cannot be undone.**&#x20;
{% endhint %}

### Archiving a comment

Archiving a comment will hide it from the extension and move the comment to the archived section.&#x20;

1\. Navigate to **Comments » All** section\
2\. Filter by an application/s of your choice

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNepaiqEI8tbp_TxCh%2Fimage.png?alt=media\&token=36271cf2-eac9-46d9-970d-089145d3b9d8)

3\. Tick the comment/s you would like to archive

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNpg4NJKnJtbf0l5rl%2Fimage.png?alt=media\&token=4eb8ab0c-28e0-4f02-a5ab-7be65d78c427)

4\. Click on the **Archive** icon

<div align="left"><img src="https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNiMf6ZlyVSv4qPVAs%2Fimage.png?alt=media&amp;token=db9c9f78-da16-4bfa-86a9-4186f4994260" alt=""></div>

The selected comment/s will be archived.

{% hint style="danger" %}
**This operation cannot** **be undone**.&#x20;
{% endhint %}

### Exporting

Comments can be exported to Excel for offline use. The generated document will include all comments in an application with any associated selections.

To export comments, please follow these steps:

1\. Click on the **Export** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNqHBOh2uGni3BXzia%2Fimage.png?alt=media\&token=bdc037e7-28ec-438e-bed6-62827b84b50b)

An Excel document will be generated on-the-fly and downloaded to your specified location

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNqSnolIFzCYAXQgDu%2Fimage.png?alt=media\&token=56a8c099-1dbf-48ef-be1a-dad7e687e80e)

### Viewing archived comments

When comments are archived, they are cleared from the extension and stored in the Archived section.

To view archived comments, please follow these steps:

1\. Navigate to **Comments » Archived** section&#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNqmlR-x6vdTOSZs1s%2Fimage.png?alt=media\&token=9d333cd3-c7d2-4383-bb64-223d3bc6bd3e)

2\. Filter by an application/s of your choice

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNepaiqEI8tbp_TxCh%2Fimage.png?alt=media\&token=36271cf2-eac9-46d9-970d-089145d3b9d8)

If the selected application/s contains any archived comments, they will be displayed on the table.

### Archiving applications

If you wish to archive all comments contained within a specific application, you can perform a bulk archive operation.

To archive comments on an application, please follow these steps:

1\. Go to **Comments » Archived** section\
2\. Click on the **Archive App** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZNlngCQhuer8OWtmsH%2F-MZNr4S41z9A3Ohj-uxB%2Fimage.png?alt=media\&token=d6a37afa-e9b0-4fe7-9d9b-7733115fd6e2)

3\. Start typing the name of an application or select from the list

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNkyVxlO3Qa2RVFYcY%2Fimage.png?alt=media\&token=3cf4397c-83f2-40a5-8408-afa226a21bb0)

4\. Select the application and click on the **Archive** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZLVt1gJiJ1-77SYPRp%2F-MZNl7Q41yzv59aC0Ouj%2Fimage.png?alt=media\&token=4541f7d6-5bf7-4f7a-bad1-64796430b804)

The selected application will be archived and all comments will now be hidden from the extension.


# Users

### Editing users

1\. Click on the pencil icon next to the user you wish to edit

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5CsXjmjhpM_oxmFxCX%2F-M5CywUxtZbu59fJcUGP%2Fimage.png?alt=media\&token=ff72b47a-90d8-4fb7-a318-d199bcbbbd35)

2\. Click on **Edit**

![Edit user - Select edit button](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5CsXjmjhpM_oxmFxCX%2F-M5D0QbOchF2KRsFjfE6%2Fimage.png?alt=media\&token=184bf3bf-adf1-49df-b80f-d9610a8da945)

3\. Update user details and click on **Save**

![Edit user - Update details](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5CsXjmjhpM_oxmFxCX%2F-M5CzfVoO1Me4bak4Jep%2Fimage.png?alt=media\&token=0892d86a-823c-4765-ba49-0a6383f7cd31)

### **Assigning groups to users**

1\. Click on **Add group**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5CsXjmjhpM_oxmFxCX%2F-M5D-vB6OH_DsjJQ8npQ%2Fimage.png?alt=media\&token=76a4fed7-92fd-4e7e-a492-492b0869abb8)

2\. Start typing the name of a group/s and select from the list

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5CsXjmjhpM_oxmFxCX%2F-M5D12CfN8cifODCwiBd%2Fimage.png?alt=media\&token=d8abc30a-af87-4f6a-8577-caa4796c6ac4)

3\. When ready, click on **Add**

### **Removing groups from users**

1\. Click on the garbage bin icon next to the group you wish to remove

![Remove group](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5D1I7fPo0c6lH-wB8r%2F-M5D3iFCMOYEeKaQCOMp%2Fimage.png?alt=media\&token=ec742961-b1e2-4dff-99b6-c4fa99f5b41d)

### **Searching for users**

1\. Click on the **Filter** text field&#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5D6MZx4wTL3m6S1P7-%2F-M5D8eE44I7gxIR6cqGG%2Fimage.png?alt=media\&token=2b0bbd6b-6b04-497f-8459-d5ca3f29247e)

2\. Start typing a user name\
3\. User list will be filtered by the search term


# Groups

There are two (2) types of groups in Qommentary: AD Groups and Custom groups.

**AD groups** are inherited from Qlik Sense user attributes and identified as “AD” in Qommentary. AD groups are refreshed and updated every time Users are synced in Qommentary. AD Groups cannot be added, edited or deleted with the Qommentary Manager.&#x20;

**Custom groups** are created in the Qommentary environment and identified as “Custom”. Custom groups allow you to create additional groups of users which might not be available in AD. Custom groups can be added, edited or deleted with the Qommentary Manager.

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5D9YmOjiirBFPgvQbE%2F-M5DCNY1OLulgUa5ZSw7%2Fimage.png?alt=media\&token=ff68f0c4-951a-41f3-86d5-41ef45425e2b)

### Creating a group

1\. Click on **Create group**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5D9YmOjiirBFPgvQbE%2F-M5DCkuFXeuV3TqrfAOb%2Fimage.png?alt=media\&token=36b31168-fb18-4861-8483-5d10287b94cd)

2\. Enter a name and description (optional) and click **Create**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5D9YmOjiirBFPgvQbE%2F-M5DDHyWFDGI1v4-sDAh%2Fimage.png?alt=media\&token=d8e578fc-05fa-4804-917f-a2c98b90d04a)

### Editing a group

1\. Click on the pencil icon next to the group you wish to edit

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DDXcgzEchIiKWGLzq%2F-M5DED6SpseNIe4iGnv0%2Fimage.png?alt=media\&token=f420265a-6c6a-44a1-9004-7d608adf5cee)

2\. Click on **Edit**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DEJpI0YhNbu5p5aQs%2F-M5DEy7t-u8nzB9uR6av%2Fimage.png?alt=media\&token=28b702a4-6011-4b16-b9a8-c30603135250)

3\. Update user details and click on **Save**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DEJpI0YhNbu5p5aQs%2F-M5DFRRaVs3tm60jwgKb%2Fimage.png?alt=media\&token=0627959f-199d-4324-9835-1cb8ae27a231)

### Deleting a group

1\. Click on the garbage bin next to the group you wish to delete

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DG0awnR27v2tpfj-C%2F-M5DHg3pUm2XSHC1fX5r%2Fimage.png?alt=media\&token=fb94b915-5e27-46f4-8fba-112dc489c086)

2\. When the confirmation window pops up, click on **Delete**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DG0awnR27v2tpfj-C%2F-M5DI0a20ktGEVl8gFVa%2Fimage.png?alt=media\&token=104efb2b-63c5-4958-ab6f-9615d67624ae)

### Adding users to groups

1\. Click on **Add users**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DEJpI0YhNbu5p5aQs%2F-M5DFwsk2zA0xRH8XR4P%2Fimage.png?alt=media\&token=3921c800-fbd3-4eec-90c3-f9a989d4bc98)

2\. Start typing the name of a group/s and select from the list

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DG0awnR27v2tpfj-C%2F-M5DGOSYCOFbbd8H1k8F%2Fimage.png?alt=media\&token=6585540d-d3f5-4829-9625-7c13cbbdce50)

3\. When ready, click on **Add**

### **Removing a user from a group**

1\. Click on the garbage bin icon next to the user you wish to remove

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DG0awnR27v2tpfj-C%2F-M5DGrJXCEJYTa7fqxaY%2Fimage.png?alt=media\&token=63bf9e74-6cef-415d-9711-3620b92b86a8)

### **Searching for users**

1\. Click on the **Filter** text field&#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5DG0awnR27v2tpfj-C%2F-M5DHCLI683TuI4a8-Fa%2Fimage.png?alt=media\&token=9ea426d3-bcb2-405c-996b-2714e6ceb454)

2\. Start typing a group name\
3\. Group list will be filtered by the search term


# Approval Workflows

Approval workflows adds governance to commentaries submitted on any stream, application or sheet before it is visible to application end users.

The review process can include one or multiple steps of approval, and involve one or multiple users and/or groups. When a commentary is submitted for approval, Qommentary will notify all users involved in the worklow and coordinate the approval process until the author is notified that the commentary has been approved or rejected (with optional comments).&#x20;

![Approval Workflows : Templates](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5iAaYJjD-7z7MOzuZR%2F-M5ivhlhUV_u2QpCIdzV%2Fimage.png?alt=media\&token=708e9727-19e9-4cd0-95f7-319ad1b40dff)

### Creating an approval workflow

1\. Click on **Create** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5lsQm7PHmyrYcZqDTT%2Fimage.png?alt=media\&token=2ddd80e3-c3c2-49a2-98c0-ae9f05fb7570)

2\. Type in a name and description (optional)

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5iAaYJjD-7z7MOzuZR%2F-M5kkxdo7dlGVnCxAvnT%2Fimage.png?alt=media\&token=2fa87faf-84e5-4774-9c7e-83d2f8fe0c8a)

3\. Click on **Create** button

### Editing an approval workflow

1\. Click on the **pencil icon** next to the workflow you wish to edit

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5luZfR8MHrvavLM8pR%2Fimage.png?alt=media\&token=cee68af6-6f8b-4872-bda1-74f014a797eb)

2\.  Click on the **Edit** button&#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5m-3SEYe6ojKj5Cr3W%2F-M5m-pxW8kBQn6uJWVLy%2Fimage.png?alt=media\&token=f6e07963-578e-4657-a63a-7244ac676d5d)

3\. Update the required details and click on the **Save** button&#x20;

### Deleting an approval workflow

1\. Click on the **Trash icon** next to the workflow you wish to delete

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5m-3SEYe6ojKj5Cr3W%2F-M5m0QMJkiO5TnhjVoWV%2Fimage.png?alt=media\&token=1c65c0fc-3c30-403b-aced-29dc050f3e42)

2\. Click on the **Delete** button to confirm

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5m-3SEYe6ojKj5Cr3W%2F-M5m11HL5AhcryKnY-Bl%2Fimage.png?alt=media\&token=8ddd4912-ad3e-4ad2-a39a-ca039799f167)

### Duplicating an approval workflow

1\. Click on the **pencil icon** next to the workflow you wish to duplicate

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5luZfR8MHrvavLM8pR%2Fimage.png?alt=media\&token=cee68af6-6f8b-4872-bda1-74f014a797eb)

2\. Click on the **Duplicate** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5m1G2h3vKF0UjWCRWk%2F-M5m1qckr5tNf2VOxH4l%2Fimage.png?alt=media\&token=40ec86ff-1a35-43f0-8610-8cf09f0ee670)

3\. Rename your duplicated workflow and click on the **Create** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5m1G2h3vKF0UjWCRWk%2F-M5m38kWuDG0hxIO9huk%2Fimage.png?alt=media\&token=7b45c709-2228-4f7c-a353-ac73b783450e)

### Adding resources to an approval workflow

When you create an approval workflow, it acts like a template which you can apply to multiple resources within Qlik Sense. Resources have a hierarchical structure:

```
+ Qlik Sense (root)
    + Stream
        + Application
            + Sheet
```

By adding resources to an approval workflow template, you're applying a sign-off process to that resource level which will also be applicable to it's children resources.

{% hint style="success" %}
**Example:**\
\
Your Finance team uses a *Monthly Performance Management* application to write commentary on specific KPIs which need explanation. You created a **Finance Performance Mgnt Workflow** and applied it to the *Monthly Performance Management* application. You also added the CFO and yourself as the mandatory reviewers.

Now any commentary which is created within the application will go through the sign-off process and will not be publicly readable until the approval workflow has been completed.

Alternatively, if you wish to apply this workflow to all applications published in the Finance stream, you can add the *Finance stream* resouce to the workflow (instead of the application).
{% endhint %}

&#x20;To add resources to an approval workflow, follow these steps:

1\. Click on the **Add resources** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5ltmL0bJ3pVaayTuv-%2Fimage.png?alt=media\&token=4dcb2c7b-d79e-47b3-a068-b15bfb65da1d)

2\. Navigate the *Resources Tree* and check one or multiple streams, applications or sheets

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5l-nxL5ROXyWASRhCb%2F-M5lSshHwug5mbtXV24b%2Fimage.png?alt=media\&token=c4ed0c8d-6a9b-4b7a-b8d8-cb428a6ab62e)

3\. Once you're done, click on the **Add** button

{% hint style="info" %}
If you're looking for a resource which does not appear on the tree, click on the Refresh icon <img src="https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5l-nxL5ROXyWASRhCb%2F-M5lX3mL22eC1LPJDYN-%2Fimage.png?alt=media&amp;token=7869fe2e-0584-47d4-a24b-dca3ef26178c" alt="" data-size="line">and try again.
{% endhint %}

{% hint style="warning" %}
Currently you can assign one workflow to a resource. Once the workflow has been assigned, the checkbox will be ticked and disabled to other users.

Workflows applied to children resources will take presedence over parent resources.
{% endhint %}

### Removing resources from an approval workflow

1\. Edit a workflow from the list

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5luZfR8MHrvavLM8pR%2Fimage.png?alt=media\&token=cee68af6-6f8b-4872-bda1-74f014a797eb)

2\. Click on the **Trash icon** next to the resource you would like to remove

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5lwCnpKECKA0CnCIKo%2Fimage.png?alt=media\&token=efba508f-e957-4691-95aa-53e911c96a5f)

### Adding steps to an approval workflow

When a commentary is submitted for approval, Qommentary will send email notifications to all users involved in the first step of approval.&#x20;

Once the first step is approved, if the workflow has a single step of approval, a final notification will be sent to the author and the commentary would be ready to be published. Alternatively, if the workflow has multiple steps of approval, notifications will be sent to all users involved in the next step.

If at any point in time the workflow is rejected, a notification will be sent to the author an the commentary may be recalled and updated before re-submitting for approval.

To add steps to your workflow, please follow these steps:

1\. Click on the **Add step** button\
2\.  Add users and/or groups required to approve the current step

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lftqXIOtgiEOBNb7G%2F-M5ljFPvypvWOSDKY01H%2Fimage.png?alt=media\&token=2bbb21c4-3d5b-4ef6-bf97-be60d20e86a3)

{% hint style="info" %}
Check the **All must approve** option if you require all users involved in the current step to approve. By default, the first user who approves the commentary will complete the step.
{% endhint %}

3\. Click on the **Add** button\
4\. Repeat the process if you wish to add more steps to the approval workflow

### Editing a step in an approval workflow

1\. Click on the **3-dots icon** next to the step you wish to edit

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5lyUApEkcQ3ejGH2Bp%2Fimage.png?alt=media\&token=df78f28e-4c35-4f65-a490-2e35fa6d3cb3)

2\.  Click on the **Edit** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5lyi2MjL-AD7SdHq2i%2Fimage.png?alt=media\&token=c1cb73d0-5b54-4cad-bd2e-05e6ac0b0b93)

3\. Update the required details and click on the **Save** button

### Deleting a step in an approval workflow

1\. Click on the **3-dots icon** next to the step you wish to edit

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5lyUApEkcQ3ejGH2Bp%2Fimage.png?alt=media\&token=df78f28e-4c35-4f65-a490-2e35fa6d3cb3)

2\. Click on the **Delete** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5lzaVWzVq3d0w7ptAD%2Fimage.png?alt=media\&token=04c13f9c-3ce8-44c3-8e30-d91682d887ac)

3\. Click on the **Delete** button to confirm

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-M5lrSR4opiNQqVd3Ocn%2F-M5lzs0VvpbcMzSP-TyG%2Fimage.png?alt=media\&token=2490b7eb-92f5-4c4b-a23e-42d0abe5cd34)


# Security Permissions

Security permissions allows you to control what actions can be performed by users in your Qommentary environment. Permissions can be applied at a stream, application, sheet or commentary level. Permissions can be assigned to multiple users and groups (custom and AD).

The Resource Directory Tree displays all resources the user is allowed to see based on the security permissions defined in Qlik Sense.

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2F175nKeUEGW3fm7FI1HMz%2FSecurity.png?alt=media\&token=5e6ebd65-2722-4872-acd8-30c939fab68a)

**Overview**\
The security permissions page is divided in several sections.

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FMazCn1PxVzVhPSzNXXr8%2F2022-04-26%2010_01_35-Untitled%20-%20paint.net%204.2.12.png?alt=media\&token=506cee6e-08c3-4555-acd7-3ac3264e39d4)

\
**References:**

1. Resource Directory: Full Qlik Sense directory tree based on security permissions
2. User/Groups: This section displays the Users and Groups associated to the selected resource level
3. Permissions: This section displays the Permissions for a selected User or Group and a selected resource level.&#x20;

**Qommentary Insights**

<table><thead><tr><th>Permission</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Create Commentary</td><td>Create a commentary</td><td></td></tr><tr><td>Update Commentary</td><td>Update own commentaries and commentaries created by other users</td><td></td></tr><tr><td>Delete Commentary</td><td>Delete a published commentary</td><td></td></tr><tr><td>Publish Commentary</td><td>Publish own and other’s commentaries</td><td></td></tr><tr><td>Approved Commentary</td><td>Approve a commentary that is under review</td><td></td></tr><tr><td>Submit for approval</td><td>Submit a commentary for approval</td><td></td></tr><tr><td>Recall Commentary</td><td>Recall a published commentary</td><td></td></tr></tbody></table>

**Qommentary Table**

<table><thead><tr><th>Permission</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Create Commentary</td><td>Add comments</td><td></td></tr><tr><td>Update Commentary</td><td>Update comments</td><td></td></tr><tr><td>Delete Commentary</td><td>Delete comments</td><td></td></tr></tbody></table>

**Qommentary Writeback**

<table><thead><tr><th>Permission</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Manage Writeback</td><td>• Add, update, and delete writeback data<br>• Update metadata: add and remove columns files<br>• Create, update, delete and remove data connections<br></td><td></td></tr><tr><td>Write</td><td>Add and update writeback data</td><td></td></tr><tr><td>Delete</td><td>Clear all writeback data</td><td></td></tr></tbody></table>

**Qommentary Pivot Table**

<table><thead><tr><th>Permission</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Write</td><td><ul><li>Add comments</li><li>Delete own comments</li></ul></td><td></td></tr><tr><td>Delete</td><td>Delete own and other's comments</td><td></td></tr></tbody></table>

**Qommentary Admin Console**

<table><thead><tr><th>Permission</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Delete Commentary</td><td>Read, archive, and delete commentaries and comments</td><td></td></tr><tr><td>Manage Workflows</td><td><ul><li>Create and update approval workflow templates</li><li>Add users and groups to the steps.<br>NOTE: if there are security rules, the users and groups that can be added to the steps will be restricted by those rules</li></ul></td><td></td></tr><tr><td>Manage Security</td><td>• View users and group section<br>• Edit user and group details, but not roles<br>• Add and delete permissions at resource level</td><td></td></tr></tbody></table>

Permissions in Qommentary are assigned at resource level.

Users and groups can have many permissions at different resource levels, therefore Qommentary applies complex logic to resolve various permission assignments to determine which ones should govern the access.

The following rules are followed to resolve permissions conflicts:

1. If a User or Group has an assigned Role, this will take precedence over the permissions set on this section. i.e. if a User has an Admin role, any permissions assigned to the user will be overridden by the role.
2. Top level permissions take precedence over child level permissions

**Assigning permissions to a new user or group**

1. Select a resource by clicking on it (expand the resource to move between levels)

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-McHekkxnNjCC3xHTGY7%2F-McHhZY4AkGfj92O9qVs%2Fimage.png?alt=media\&token=967b6eb8-d28b-45a4-91e9-99838869c88c)

2\. Click on Add button from the User/Groups section.

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-McHM-QiDqmOlx1XfBJx%2F-McHb_UPIQUF7xbNXTWz%2Fimage.png?alt=media\&token=2a4bf2b5-6997-4bb7-84e2-c7a8d32d80fe)

3\. Start typing the group or user in the corresponding dropdowns. Qommentary will display the groups or users that match the criteria

![Search for Groups](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-McHM-QiDqmOlx1XfBJx%2F-McHcOlRIgkQT9ssWoHn%2Fimage.png?alt=media\&token=81aebaf0-ed9a-4ebc-91cf-63e86f8ec5de)

![Search for Users](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-McHM-QiDqmOlx1XfBJx%2F-McHcCu_MUknV1KFHyWE%2Fimage.png?alt=media\&token=1bac404c-35db-483a-9402-7b4e646630d5)

4\. Select the group or user. You can add more user or group by repeating step 4.\
5\. Click on Add button\
6\. Qommentary will add the users and groups selected to the User/Groups section

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-McHM-QiDqmOlx1XfBJx%2F-McHd79PRGF-Lle0ik8X%2Fimage.png?alt=media\&token=1b03ab2b-afc9-4945-ae06-51a76246aef4)

7\. Select the user or group you want to assign the permissions. By default, Qommentary selects the first row on the Users/Groups (row highlighted in blue).

8\. On the Permissions section, click on the Manage button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FlzNxdNBye1uU5B0N5Vdi%2Fimage.png?alt=media\&token=e2bdb026-e0cb-4cf9-b41d-1e2d9f22d75f)

9\. The Qommentary Manager will display a popup window containing all the permissions

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FWxTL0Q1nxTL5LOfsgfCj%2Fimage.png?alt=media\&token=2a03ae46-0551-40f7-b412-0926c98fbe99)

10\. Select the permissions that you want to assign to the user or group by clicking on the checkboxes and then click on Save button.

11\. The assigned permissions will be displayed in the permissions section with a green color.

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FJd9vWDPQwcNcO95y3YyZ%2Fimage.png?alt=media\&token=5a17042e-8de7-4f5c-86f4-b43fceccba6a)

**Assigning permissions to an existing user or group**

1. Click on the resource node&#x20;
2. Select a User or Group from the User/Groups section&#x20;
3. Click on Manage button&#x20;
4. Check the permissions that you want to remove from the User or Group.&#x20;
5. Click on Save button

**Removing permissions from a user or group**

1. Click on the resource node&#x20;
2. Select a User or Group from the User/Groups section&#x20;
3. Click on Manage button&#x20;
4. Uncheck the permissions that you want to remove from the User or Group.&#x20;
5. Click on Save button


# Security Rules

Security rules allows you to control the visibility of a resource based on conditions.\
\
You can create rules for the following resources:

* Groups
* Users

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FH1rz4mIhB2YrDyxZVlLw%2Fimage.png?alt=media\&token=0301ce4e-7587-432c-9b52-bcad7315fff0)

### Understanding rules scope

Once a rule is created, the rule will be applied to any area of the *Qommentary Admin Console* or any *Qommentary* *Extension* where the resource is displayed.

For example, if you setup a rule for groups, then you will be able to see only those groups which meet that condition.

### Creating a rule for a group

1\. Click on **Create rule**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2F9HvrjUscEKpEZWQ1dtxp%2Fimage.png?alt=media\&token=62443e47-81b6-49f2-b6e5-e84d2e51e7fa)

2\. Enter the rule name and description (optional)

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FabtFED1kALFg22J9gnVU%2Fimage.png?alt=media\&token=102d88f5-3a9e-493d-9cc5-65b89391badd)

3\. Select **Group** as Resource Type

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2F3kdVBndsL52hJOEiIywK%2Fimage.png?alt=media\&token=2f01ba67-36c1-4dd6-9850-6685968aad8e)

4\. Check the Active check box

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FD3kDx40dk4hKVTgrFKBu%2Fimage.png?alt=media\&token=64f07769-39d8-494d-ad2d-83350ad25dc7)

{% hint style="info" %}
The Active check box indicates whether the rule is active or not. The rule is applied only if the check box is checked.
{% endhint %}

5\. In the Actions section, leave the Read option **checked**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2Funnv5k3kKvvVxykMtxhB%2Fimage.png?alt=media\&token=237b3043-67a2-4eda-b82a-18aab5a84cfc)

6\. Add rule conditions

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FS9tqqhh0Q51VQl9hScwk%2Fimage.png?alt=media\&token=eef24c40-1284-4d90-ac5d-f8f6f1740124)

<table data-header-hidden><thead><tr><th width="258">Field</th><th>Description</th></tr></thead><tbody><tr><td>Field</td><td>Description</td></tr><tr><td>Logical Operator</td><td><p>Indicates if the conditions are exclusive or inclusive</p><p><br>If AND is selected, the conditions are concatenated using the logical operator AND.</p><p>e.g: <em>Condition1</em> AND <em>Condition2</em> AND <em>Condition3</em></p><p></p><p>If OR is selected, the conditions are concatenated using the logical operator OR.</p><p>e.g: <em>Condition1</em> OR <em>Condition2</em> OR <em>Condition3</em></p><p></p><p><strong>NOTE:</strong> AND and OR operators cannot be used on the same rule.</p></td></tr><tr><td>Resource</td><td>Indicates the resource that the condition will be targeting</td></tr><tr><td>Property</td><td>Indicates the Resource property used on the condition</td></tr><tr><td>Operator</td><td><p>Indicates the operator used on the condition.<br><br>Available operators:</p><ul><li><em>Equals</em>: indicates that the left hand side value of the expression (LH) has to be equal to the right hand side value of the expression (RH)</li><li><em>StartsWith</em>: indicates that LH has to start with the RH value</li><li><em>Contains</em>: indicates that LH contains the RH</li></ul><p><strong>NOTE:</strong> operators are case-sensitive</p></td></tr><tr><td>User</td><td>Represents the current user logged in when the rule is being evaluated</td></tr><tr><td>Attributes</td><td>Displays a list of Qlik Sense user attributes</td></tr></tbody></table>

&#x20;         6a. Select the resource property&#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FbCUZA0jYcthKowiu1m1m%2Fimage.png?alt=media\&token=ff74cbcf-5dfc-4628-b681-80763d08fcca)

&#x20;         6b. Select the operator, e.g. Equals

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2Fkn2tK35yhbsVDEGt299w%2Fimage.png?alt=media\&token=5faadb69-28cc-4358-961a-b3977e1dd37a)

&#x20;         6c. Select user

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FAXgGxDUqjTv3QMUfjRHc%2Fimage.png?alt=media\&token=8a1c6828-64a2-4b9e-ae30-bdd5cc5cf2ec)

&#x20;         6d. Select the user attribute, e.g: business\_unit

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2F5V6PhRNza8WFBT8FE2S9%2Fimage.png?alt=media\&token=a856b541-7d21-4e1b-b0fe-8be18a618995)

Now if the system needs to display a list of groups, it will interpret the rule as follows: \
\
"*When the group name is equal to the business unit attribute value from the logged in user*\
*Then display the group"*

8\. To add more conditions, click on the **Add condition** button and repeat steps 6a to 6.d.

9\. Click on **Save** button

### Creating a rule for a user

1\. Click on **Create rule**

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FokCEW9mM7AFyJZHK6IWB%2Fimage.png?alt=media\&token=9b19e912-2b03-4c85-9caa-7762e2b89545)

2\. Enter the rule name and description (optional)

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FzxdDuqoiJ27fy9dvPj4R%2Fimage.png?alt=media\&token=06453fd6-35c5-4b5a-ae0f-ceaee660bfac)

3\. Select **User** as Resource Type

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2Fl7vtfTo7Xk3TMNyNAzpw%2Fimage.png?alt=media\&token=9bb4c553-7a64-4054-8071-f496a94bfaf6)

4\. Check the Active check box

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FwMGVAbV20iWzWBLE1o7W%2Fimage.png?alt=media\&token=b02d9b4e-8981-4d9a-8dbb-e58890c2d08e)

{% hint style="info" %}
The Active check box indicates whether the rule is active or not. The rule is applied only if the check box is checked.
{% endhint %}

5\. In the Actions section, leave the Read option checked

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FXwllTrkLgLgts0vDr6k9%2Fimage.png?alt=media\&token=c190f208-617c-4fc4-9b42-991ba9a2d201)

6\. Add rule conditions

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FUg19KmyiPhRbrzihOb7s%2Fimage.png?alt=media\&token=4db2a08f-d23d-4b54-9117-4155ab019a42)

{% hint style="warning" %}
Rule conditions for users are based on the group name of the groups that the user created or belongs to.
{% endhint %}

7\. Click on **Save** button

### Disabling a rule

If you wish to de-activate a security rule when no longer in use, please follow these steps:

1\. Click on the the **Security Rules** left menu option

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FoWkyxQbxcyIKmyT1XP9S%2Fimage.png?alt=media\&token=f3df55db-89f1-4bf6-9f2e-b9fed0f6a933)

2\. Click on the **Edit** icon&#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2F1yYSW8oO47mU0b0sZ3Kt%2Fimage.png?alt=media\&token=2f8a8cd1-50e0-4a18-9000-e37eaed950d0)

3\. Uncheck the Active check box

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FHDVpwH2ZziGDkDbhBRzo%2Fimage.png?alt=media\&token=422a13bc-6538-447a-a820-d507306f5890)

4\. Click on **Save** button

### Deleting a rule

1\. Click on the the **Security Rules** left menu option

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2FmJHEvCHYLWqmtiIyODBl%2Fimage.png?alt=media\&token=d10d905b-e905-4773-afa3-60da43b20d76)

2\. Click on the **Delete** icon&#x20;

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2Fhj6y2NK5yX0BnOY3IlVA%2Fimage.png?alt=media\&token=958f914b-9496-4e8d-93e7-9705a1477369)

3\. A confirmation modal will be displayed. Click on **Delete** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-3537362534%2Fuploads%2Fc9NA3oIFx7naX7XTfH0P%2Fimage.png?alt=media\&token=52540b78-6be2-4b43-bdb5-7e39f0785af0)


# Security Roles

A security role defines how different users, or groups, can access the QEs and QAC. To assign a security role you to a user or group you need to access the User and Group detail page in the QAC. Each user can have multiple security roles.

Security role privileges are cumulative: having more than one security role gives a user every privilege available in every role.

The following matrix describes the privileges for each role:

| Role                  | QAC Access                                                           | Extension Access                                                                                                                                                                                          |
| --------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Root Admin            | Can access all sections                                              | Can perform all actions                                                                                                                                                                                   |
| Security Admin        | Can only access to the Security section                              | N/A                                                                                                                                                                                                       |
| Workflow Admin        | Can only access to the Workflow Section                              | N/A                                                                                                                                                                                                       |
| Editor Admin          | Can access to all Commentary and Comments section                    | Can create, update, delete, publish, recall, and submit for approval any commentary in an Insights extension for any application                                                                          |
| Approver Admin        | Can access only Published Commentaries and Comments and not archived | Can approve any workflow in an Insights extension for any application                                                                                                                                     |
| Developer Admin       | Can only access Invalid Resources link under configuration section   | N/A                                                                                                                                                                                                       |
| Writeback Admin       | Can perform all actions related to writeback                         | Can perform all actions in a Writeback Table extension for any application                                                                                                                                |
| Pivot Admin           | N/A                                                                  | Can add and delete comments in a Pivot Table extension for any application                                                                                                                                |
| Data Connection Admin | N/A                                                                  | Can add, edit, or delete all writeback connections. However, if there are any security rules associated with data connections, the user can only execute those actions if rules conditions are satisfied. |


# Activation

Once Qommentary is installed in your environment, you will first need to activate your license in the Qommentary Manager.

### Activating a license

1\.  Launch the Qommentary Manager

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MKs6GJopG9kPp-4rFVI%2F-MKsUPQXyoPur0G86jvK%2Fimage.png?alt=media\&token=6b28d456-629b-4020-b557-f1689acae934)

2\. Copy and paste the **license key** provided by Qommentary into the textbox

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MKsUlz5zSSAiJyUC1QS%2F-MKsWHMsmAJLU4yOvdf1%2Fimage.png?alt=media\&token=8b3f2d48-028e-46eb-9cc4-19bf689ca5f2)

3\. Click on **Activate Key** button

Upon successful activation, details about the license should be displayed:

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MKsUlz5zSSAiJyUC1QS%2F-MKsWWkmQZc_sLf0XfNI%2Fimage.png?alt=media\&token=088e4485-d693-4e58-b1f9-81f1ac7f9816)

### Renewing a license

1\. Launch the Qommentary Manager

2\. Click on the **License** menu option under *License Management*

![License menu option](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MKsUlz5zSSAiJyUC1QS%2F-MKsXJaJYhe9_FXj6ge5%2Fimage.png?alt=media\&token=7f3b383c-e373-403b-97bb-5107cf0d08dd)

3\. Copy and paste the **license key** provided by Qommentary into the textbox

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MKwCFLIadFRBzqBSwC1%2F-MKwCNM8_Bi4b4xWH8W2%2Fimage.png?alt=media\&token=cbf56699-7972-4dde-b3b2-098ab212d0d5)

4\. Click on **Activate Key** button

Upon successful activation, details about the renewed license should be displayed.


# User Allocation

Manage user license allocation within your Qommentary environment

To allocate Qommentary licenses to users:

1\. Launch the Qommentary Manager\
2\. Navigate to **User Allocation**

![User License Allocation Management](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-ML7JSsSDXXHKhiYM03R%2F-ML7Ll4SMihqSu2v156S%2Fimage.png?alt=media\&token=b92afb01-da25-438b-aeb9-db54147dcd37)

### Allocating a user license

1\. Click on the **Allocate** button (top right corner)

![Allocate button](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-ML7JSsSDXXHKhiYM03R%2F-ML7Q-am26GC3V21GvoD%2Fimage.png?alt=media\&token=21ac79ab-eb1b-484c-9786-0b86d244a123)

2\. Start typing the name of a user and you will see available suggestions presented

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-ML7JSsSDXXHKhiYM03R%2F-ML7OdU_l4HnfhbA12Eq%2Fimage.png?alt=media\&token=0513b6c1-bd2c-4272-b258-ad9d7c06d545)

3\. Select the user and repeat the process to allocate licenses to more users

4\. Click on the **Allocate** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-ML7JSsSDXXHKhiYM03R%2F-ML7OtSo8igi7vcaGd4d%2Fimage.png?alt=media\&token=a8c8bae5-11fa-4e8d-896a-7e7f28d8b67d)

5\. The selected user/s have now been allocated a Qommentary license<br>

![User license allocated](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-ML7JSsSDXXHKhiYM03R%2F-ML7PawrRHnwca7CKtjK%2Fimage.png?alt=media\&token=c779f73b-4fa8-4930-8059-4a901f6aed9d)

### Deallocating a user license

To deallocate a Qommentary license from a user:

1 . Click on the **Deallocate** icon

![Deallocate icon](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-ML7JSsSDXXHKhiYM03R%2F-ML7QOz0L-p2cgnpEcAc%2Fimage.png?alt=media\&token=fd9567c2-4aa7-49d2-9b2c-d1b77107f18f)

2\. Click on the **Confirm** button

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-ML7JSsSDXXHKhiYM03R%2F-ML7SCDz4UQD5WuhGOiY%2Fimage.png?alt=media\&token=c25eb26e-b180-41c9-b1fe-33439aa0df6a)

3\. The user has been deallocated


# Email Notifications

Qommentary built-in notification system enables users to stay connected and always in the loop.

{% hint style="info" %}
To configure your SMTP server settings, please refer to [Setup > SMTP Server](broken://pages/-M4vfkfGUzuS67r7_WLY) section
{% endhint %}

Email notifications are defined at a global level and can be customized with your organization's branded HTML templates.

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MKXdnRF0cbGzg9IMmtr%2F-MKXgL6rloSVcNezA-wy%2Fimage.png?alt=media\&token=465eaff2-bc5f-4c34-9a3b-b4afdf0b506b)

### Updating email templates

1\. Click on the **Edit** button

2\. Update template HTML on rich text editor

![](https://3420298761-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MKXdnRF0cbGzg9IMmtr%2F-MKXh18QFrQqRPZBBVPu%2Fimage.png?alt=media\&token=9c4f165f-2ce3-42c9-a5e4-707c1533c76f)

{% hint style="info" %}
To restore a template back to it's original default state, simply click on the **Use Default** button
{% endhint %}

3\. Click on **Save** button

### Template placeholder tags

Email templates contain placeholder tags which are replaced with relevant information when email notifications are sent.

For a full list of supported placeholder tags, please refer to below table:

#### Supported tags

| Tag name                    | Description                                  |
| --------------------------- | -------------------------------------------- |
| **\[UserFullName]**         | Name of notification recipient               |
| **\[AdminUserDisplayName]** | User who cancelled the workflow              |
| **\[ReviewerDisplayName]**  | Name of commentary reviewer                  |
| **\[Commentator]**          | Name of user who added the comment           |
| **\[Sender]**               | Name of user who added the comment           |
| **\[Link]**                 | URL of application shared                    |
| **\[Message]**              | Custom messaged sent by sender               |
| **\[StepNumber]**           | Current workflow step number                 |
| **\[SubmitterComments]**    | Custom messaged sent by commentary submitter |
| **\[ApprovalWorkflowName]** | Workflow name                                |
| **\[ReviewerComments]**     | Custom message sent by reviewer              |

#### Tag usage

| Template name         | Supported tags                                                                |
| --------------------- | ----------------------------------------------------------------------------- |
| Comment Added         | `[UserFullName] [Commentator] [Link]`                                         |
| Commentary Mention    | `[UserFullName] [Sender] [Link]`                                              |
| Commentary Share      | `[UserFullName] [Sender] [Message] [Link]`                                    |
| Commentary Watch      | `[UserFullName] [Link]`                                                       |
| Workflow Review       | `[UserFullName] [StepNumber] [SubmitterComments] [Link]`                      |
| Workflow Cancellation | `[UserFullName] [AdminUserDisplayName] [ApprovalWorkflowName]`                |
| Workflow Approved     | `[UserFullName] [StepNumber] [ReviewerDisplayName] [ReviewerComments] [Link]` |
| Workflow Rejected     | `[UserFullName] [StepNumber] [ReviewerDisplayName] [ReviewerComments] [Link]` |


# Welcome

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtBILchOCQ8-wscIHU%2F-MbtBvkuFRiUVvubsz86%2Fkb-insights.png?alt=media\&token=718d5513-c7d2-4352-b17f-2bdedb47eb1b)


# Embedding a new extension

## **Embedding commentary in a sheet**

Commentary can be embedded into one or multiple sheets across your application. To embed commentary on a sheet, follow these steps:

1. Click on **Edit** sheet button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsQ2qFxXVqHxNm5dSe%2Fimage.png?alt=media\&token=23acb350-385d-4d93-9deb-85123cb4b2ab)

&#x20;    2\. Select **Custom objects** tab&#x20;

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsQNv3giO57YAGNEGT%2Fimage.png?alt=media\&token=01243779-7af6-4a6d-9b9a-a4d89e033bce)

3\. Drag a Qommentary Insights extension to the sheet

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsQ_iD9j_rTUUTzy60%2Fimage.png?alt=media\&token=d001d91c-db8d-4c59-a35c-0a96acbc7ade)

4\. Click on **Done editing** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsQrwa4xMNlE-a4a8P%2Fimage.png?alt=media\&token=842ddaea-411a-413b-8425-d7bf04abf808)

5\. Congrats! Your new Qommentary Insights extension has been added.

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsRCLBcCn-fmvbYUZP%2Fimage.png?alt=media\&token=cc2fbe06-f2f9-4e3d-b8cf-7877bd25873c)

{% hint style="info" %}
Commentary input is disabled in unpublished sheets and will only be enabled once the application or sheet has been published.
{% endhint %}


# Link charts to commentaries

Commentary can be associated to one or multiple visualizations displayed on the same sheet. Once linked, visualizations will be loaded into context when viewing/writing commentary and included in exported PDF reports.

If the linked chart has a title, subtitle or footer - it will display when chart is loaded in commentary. You may also disable chart titles by navigating to *Commentary > General* in the Properties Panel and unchecking "Display chart titles".&#x20;

To link visualizations to a commentary, follow these steps:

1. Click on **Edit** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbJtJv9NC4Ierg0QdCY%2F-MbKsLHp0qWajieOexIV%2Fimage.png?alt=media\&token=7a832ade-9eac-49e1-a0af-b911dc59f01c)

&#x20;  2\. Click on **Add visualizations** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbL83CTTLVufeRk6mN-%2Fimage.png?alt=media\&token=c1f8c0a6-b0c9-4f15-8d78-618059248312)

3\. Select the visualizations you would like to add

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbL8pEZrw3yJsKB727i%2Fimage.png?alt=media\&token=0e430539-af29-4131-8761-6322bb5c7f68)

4\. Click on **Add** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbL8vsLTH4BwndLtBr-%2Fimage.png?alt=media\&token=429ee7f8-880b-43a9-9871-a29553b0f1d7)

5\. The selected visualizations have now been added

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbL91VEBvNq_TrdWYb9%2Fimage.png?alt=media\&token=604d71b8-4d80-4b31-a8d0-fc487e590380)


# Updating global config

## Configuring Qommentary Insights

The Qommentary Insights Extension contains a main config.js file with the following configurable parameters:

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbiRmCePNMyzvH0bsXg%2F-MbiWqo0ClMBsbHEKpZC%2Fimage.png?alt=media\&token=e2734040-de2a-493a-aff5-d5a1a2fdf7ed)

These properties are automatically populated during the installation process; however, they can be manually updated by editing the config.js file found on the root of the extension folder. Alternatively, you can also update the config file with the Dev Hub following these steps:

**Updating environment endpoints**

1. Navigate to the Dev&#x20;
2. Hub Select Extension Editor &#x20;

&#x20;        <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbJJemxIlOxVJ8IOI1z%2F-MbJKH1RDij4kieJBdsm%2Fimage.png?alt=media&amp;token=e4d866e8-d406-4476-a1a1-bcd8df110030" alt="" data-size="original">&#x20;

&#x20;   3\. Click on Open project and select Qommentary Insight

&#x20;   4\. Edit the config.js file

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbJJemxIlOxVJ8IOI1z%2F-MbJO1SP7DZorMRwyc2F%2Fimage.png?alt=media\&token=c9f2e67f-88fd-423f-af31-8f834e060db3)


# Properties

Qommentary extension settings are managed by the Qlik Sense properties panel. Properties allows you define certain aspects of the extension configuration, such as commentary input restrictions, styling and more.

## Commentary mandatory fields

Mandatory fields allow you to define one or more dimensions which must be selected before commentary can be add.

{% hint style="info" %}
This feature is useful if you want to restrict the scope of commentary input down to a specific set of dimensions (e.g. only capture commentary when a Year and Product has been selected).
{% endhint %}

**Adding a mandatory field**

1. Click on **Add fieldset** button&#x20;

<div align="center"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbLexDE-NlETjZU-3u2%2Fimage.png?alt=media&amp;token=360de386-af4f-428d-aff9-50626bb3b87f" alt=""></div>

&#x20;2\. Click on **Add field** button&#x20;

<div align="center"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbLf60Tqc5Xsm3rfXrR%2Fimage.png?alt=media&amp;token=9c20ecc6-f1ab-44e3-99cc-a6b90e272699" alt=""></div>

3\. Select a mandatory field you would like the user to select before entering commentary

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbLfMI2jgRrSOw0Gl9P%2Fimage.png?alt=media\&token=aefb5c53-9a2f-493b-9fa0-b797a4a952af)

4\. Repeat Step 2 and add more fields as required. These fields will have an ‘AND’ relationship, meaning that all fields contained within a group would need to be selected before commentary can be entered.

5\. Repeat Step 1 and add more fieldsets as required. These fieldsets will have an ‘OR’ relationship, meaning that commentary entry will be enabled if any fieldset passes the test.

**Allowing additional selections on mandatory fields**

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbLfnmUG3rMPb65N2u9%2Fimage.png?alt=media&amp;token=14ad7cf8-8575-4576-ac05-f31650a9c4f2" alt=""></div>

If enabled, commentary entry will be allowed even if additional selections have been made which do not match the mandatory fields. **Default***:* True

**Additional Settings**

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbKtgoCsy8B5-pXv9It%2F-MbLhJip3yFSICEHItEd%2Fimage.png?alt=media&amp;token=8ea57d35-4920-44a0-9cb6-68dfb5349554" alt=""></div>

If enabled, Qlik Sense hidden fields will be excluded from the selection context

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbLhRuN_i7j9WzXthGq%2F-MbLi1T7bbNplh6gzkmm%2Fimage.png?alt=media&amp;token=b5ee85cf-2a34-495a-8b6a-56ca9ae0fde8" alt=""></div>

If enabled, commentary entry will not be associated to the application selections. **Default***:* False

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbLhRuN_i7j9WzXthGq%2F-MbLiMRWJ2PuCSw6gZay%2Fimage.png?alt=media&amp;token=a5071eba-a390-47e6-85cb-d01a3c0ecf31" alt=""></div>

If enabled, commentary entry will be allowed even if no selections were made in the application. **Default:** True

## Discussions Panel

**General**

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbLhRuN_i7j9WzXthGq%2F-MbLk1XN--LNe5Nl9JbK%2Fimage.png?alt=media&amp;token=fd56b9f5-09e0-4656-a35e-f84af3959d4c" alt=""></div>

Enabling discussions will allow users to engage in a chat-like threaded discussion on any given commentary context.

**Comments**

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbLhRuN_i7j9WzXthGq%2F-MbLli4NyuOmffEHH34S%2Fimage.png?alt=media&amp;token=e0cac9aa-6239-4429-8341-bc3a43bbbd7e" alt=""></div>

Enable user profile photos by uploading pictures in JPG format to any given content library of your choice.

## Presentation

Commentary can be visualized in 2 distinctive formats:

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbZ6gTrbMXt-FRcAYW1%2F-MbZD-uRdZT_Tr5Ixfv8%2Fimage.png?alt=media&amp;token=740f9265-fe40-4700-94a0-776d7718e170" alt=""></div>

**Textbox mode**\
A rich-text box which allows commentary to be always visible to the application user.

**Textbox font size:** Allows a custom Font to the text to be applied

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbZ6gTrbMXt-FRcAYW1%2F-MbZEfhmMu1bllyuP2cp%2Fimage.png?alt=media&amp;token=025a0eff-c9bb-4b3b-be03-0ef216a5d4d1" alt=""></div>

**Textbox background image:** Allows a custom image to the textbox as background to be applied

**Apply image as a pattern:** Selecting this allows the image to align full textbox as background. **Default:** Selected

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbZ6gTrbMXt-FRcAYW1%2F-MbZGUIm09FcngEhX1JU%2Fimage.png?alt=media&amp;token=a03a255f-9959-4ba6-b588-5db994f720da" alt=""></div>

Unselecting **Apply image as a pattern**, displays options to select for image alignment

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbZ6gTrbMXt-FRcAYW1%2F-MbZ7GO_V3F407QBReHc%2Fimage.png?alt=media&amp;token=e114f7b3-34c6-4252-81b9-dc09fdfbc7f4" alt=""></div>

**Icon mode**\
An icon with a popup window which enables commentary to be embedded into multiple sheet locations without compromising space.

**Icon size:** Changes the size of the icon

**Icon color:** Changes the color of the commentary icon

**Icon font:** Allows a custom Font Awesome icon to be applied

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbZ6gTrbMXt-FRcAYW1%2F-MbZHrGl6l1FAFKenv8T%2Fimage.png?alt=media&amp;token=e34f7c7d-d51b-4571-ba90-ec6e8ea14248" alt=""></div>

Displays the action and status bars in the commentary text box always

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbZ6gTrbMXt-FRcAYW1%2F-MbZIOFLIEdj_AwkbsW7%2Fimage.png?alt=media&amp;token=8c0b8b7c-29ef-4dac-ade2-c144aa41bf97" alt=""></div>

Hides the action and status bars from the commentary text box and will only show them on hover. This mode maximizes commentary real estate and offers a cleaner and less cluttered look and feel.

## Color

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbZ6gTrbMXt-FRcAYW1%2F-MbZJI-zZ3EHjxeW_wVw%2Fimage.png?alt=media&amp;token=83563e95-ac61-46d3-b166-6f037187dff9" alt=""></div>

**Textbox background color:** Changes the color of the commentary textbox background color.

**Textbox font color:** Changes the color of the commentary textbox font.

**Toolbar background color:** Changes the color of the commentary toolbar background color.

**Toolbar text color:** Changes the color of the commentary toolbar text color.

**Publishing an application with Qommentary**

Once Qommentary has been setup in an application, it needs to be published to a stream to enable user interaction. \
To publish an application to a stream, just follow the instructions found on the [Qlik Help](https://help.qlik.com/en-US/sense/November2018/Subsystems/Hub/Content/Sense_Hub/Publishing/publish-app.htm) site.

**Registering an application with Qommentary**

New Qommentary Insights extensions that have been added to an application for the first time will be registered with the Qommentary environment once the extension has loaded in a published application for the first time. This process will ensure that the newly registered extension is visible and appears when navigating the Resource Directory Tree in the Qommentary Manager.

{% hint style="info" %}
The registration process is only required if you intend to assign an approval workflow or security permissions at a commentary level.
{% endhint %}

To register a new Qommentary Insights extension follow these steps:

1. Add a Qommentary Insights extension to an application&#x20;

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsUU7MOvfMTfzppGh_%2Fimage.png?alt=media\&token=133f9a62-3a04-46bc-b971-5851aabde643)

&#x20;   2\. Publish the application to a stream

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbcrFA7ZICe3vT3n4Id%2F-MbcyOGSqOyKi_T7L1QC%2Fimage.png?alt=media\&token=8f7e969f-1a4a-402b-9fd6-7dc1acc8b405)

3\. Navigate to the published application which contains the recently added   Qommentary Insights Extension

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsVAimi07pnZDfbdJ9%2Fimage.png?alt=media\&token=cd349bc8-9ab6-46bf-b280-df7895428d61)

4\. That’s it! The Qommentary Insights Extension is now registered and exposed in the Qommentary Manager.

To test the new extension has been registered follow these steps:&#x20;

1. Navigate to the Qommentary Manager
2. Choose Approval workflows (also works with Security)&#x20;
3. Create a new approval workflow or edit an existing one
4. Use the Resource Directory Tree to locate the sheet you recently accessed

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsW9BNEjDSxkCOVjJr%2Fimage.png?alt=media\&token=5dfd7dbc-9d7b-4121-9753-080b3a670de1)

5\. The registered Qommentary Insights Extension will be displayed in the Resource Directory Tree

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsVwW86le7lZwGPXiQ%2Fimage.png?alt=media\&token=56fb3e2a-e673-4c48-a48e-c79db62cd6c3)

&#x20;**Updating a Qommentary Insights Extension title**

By default, registered Qommentary Insights extension titles are displayed as “\[Commentary]”. To give your security and workflow admins more context on the commentary being selected, you can update the title in the properties panel to something a bit more meaningful.

To update the title, follow these steps:

1. Edit the application and select the Qommentary Insights extension you would like to update

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsWZ_QhTxDXlHh0B8r%2Fimage.png?alt=media\&token=9686a94e-0e60-49f6-817b-c3b7a35b5eaf)

2\. Expand Appearance > General and enter a title

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsWvU28fck35oPb-DC%2Fimage.png?alt=media\&token=da18cd86-da93-4dd4-984b-e53cdc974393)

3\. Click on Done\
4\. Re-publish the application to a stream

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbcrFA7ZICe3vT3n4Id%2F-Mbd8hTLgp_SSn3kz2kh%2Fimage.png?alt=media\&token=451b919d-254b-4549-8776-0b6aa02b727d)

5\. Refresh the published application to pick up the latest changes

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsX8os4DuTmb1F0dJi%2Fimage.png?alt=media\&token=19d6ea25-41b4-4a60-a6f4-3e3168037367)

6\. Return to the Qommentary Manager and click on the node icon\
7\. The Qommentary Insights extension title has been updated successfully.

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsXhPr8UG_QPDdW7Vr%2Fimage.png?alt=media\&token=b7307738-58c6-469e-b21e-0a0836645ff2)


# Working with commentary

A Qommentary Insights extension can be embedded in two (2) different ways: **Default** view and **Fullscreen** view.

**Default View**

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-Mbi4Ql9TcStMN0QCkgp%2Fimage.png?alt=media\&token=dcae1c20-d469-4d3d-b9f0-0e9fc5db9f8b)

1. Commentary message: Displays commentary text entered by the user
2. Commentary Status: Displays the current commentary status.&#x20;
3. Commentary explorer: Displays a list of draft, awaiting approval and published messages for the current extension.&#x20;
4. Discussions: Opens the Discussions panel to enable threaded comments amongst teams&#x20;
5. Watch: Subscribes a user to a Qommentary Insights extension to receive updates when new commentary has been published.&#x20;
6. Share: Launches a popup window and allows commentary to be shared to one or many user/s or group/s.&#x20;
7. Export: Generates a PDF report of the current commentary including any associated visualizations.&#x20;
8. Edit/Recall: Depending on the commentary status, a user is able to Edit a commentary on Draft status or Recall a commentary on Published status.&#x20;
9. Fullscreen view: Expands the commentary full screen and switches to Fullscreen View.&#x20;
10. Commentary details: Displays additional commentary-related information, such as created/published date/time and owner’s full name.

**Fullscreen View**

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdL7Y_zbi71zeDml8J%2Fimage.png?alt=media\&token=c2381398-771e-4809-8356-5d76284231f5)

1. Commentary visualization: Loads any visualization which has been associated to the commentary during the development phase.&#x20;
2. Visualization panel controls: Allows you to expand or collapse the visualization panel.&#x20;
3. Comments panel: Allows you to expand or collapse the comments panel.&#x20;
4. Close fullscreen: Closes the Fullscreen View and returns to Default View.&#x20;
5. Refresh comments: Updates the current list with latest comments.&#x20;
6. Send comment: Sends a new comment.&#x20;
7. Link visualization: Associates the current visualization to the new comment.&#x20;
8. Input comment field: Allows you to type a new comment in the text field box and mention users.&#x20;
9. Action button: Depending on the commentary status, it displays various commentary-related action buttons.

### **Commentary display modes**

Qommentary Insights can be embedded in an application in two (2) different ways: **Full** and **Compact**.

**Full Mode**

Full mode displays a rich-text editor embedded on the sheet for added context and visibility.

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-Mbi6fttKwQ_GOvYVnlQ%2Fimage.png?alt=media\&token=564400fe-bb02-4b0a-92fb-f175548c7477)

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdMQrQXI7IXWwQp4EJ%2Fimage.png?alt=media\&token=8dcfcb8f-94d1-489f-afa4-a30c25b14e1d)

**Compact Mode**

Compact mode displays an icon on the sheet, ideal for visualization-intensive applications where real estate is limited. This mode allows multiple Qommentary Insights extensions to be embedded in a single sheet without compromising dashboard design.

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiBokpqgyQyaoSvH3I%2Fimage.png?alt=media\&token=4e1c0cf0-8ac5-48f0-a10f-14a6865ea12c)

The Compact mode icon appearance can be customized in a variety of ways:

**Changing icon color**

<div align="left"><figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2F8sMmMM2gJfeJnVKO2HlH%2Fimage.png?alt=media&amp;token=b49c13d5-c0dc-4c4f-9bae-25b597b4156e" alt="" width="150"><figcaption></figcaption></figure></div>

1. Edit the sheet
2. Select your Qommentary Insights extension
3. In the Properties Panel, expand *Appearance > Presentation*
4. Under the **Icon color** property choose an color

**Changing icon background color**

<div align="left"><figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2FVQpLDUKrG11YMFasMaBy%2Fimage.png?alt=media&amp;token=6dcd5d16-4fbb-42c3-8347-930219506d56" alt="" width="151"><figcaption></figcaption></figure></div>

1. Edit the sheet
2. Select your Qommentary Insights extension
3. In the Properties Panel, expand *Appearance > Presentation*
4. Under the **Icon background color** property choose a color

**Changing icon shape**

<div align="left"><figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2FvFBbDYRXzMtqPWHc09Km%2Fimage.png?alt=media&amp;token=9935d72b-00f0-4889-af75-8a9dbeb672c3" alt="" width="148"><figcaption></figcaption></figure></div>

1. Edit the sheet
2. Select your Qommentary Insights extension
3. In the Properties Panel, expand *Appearance > Presentation*
4. Under the **Icon background shape** property choose a shape

### **Commentary Status**

A commentary can progress through five (5) different statuses along its lifecycle:

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdNFtPG_-JE1R4qTib%2Fimage.png?alt=media\&token=d460dea4-22f5-4d4c-a609-a057d1355b51)

1. Draft: Commentary is in draft mode and not visible to the application users&#x20;
2. Awaiting Approval: Commentary has been submitted for approval and it’s waiting for approval workflow to be completed before publishing.&#x20;
3. Recalled: User wishes to edit a commentary which has been published, or edit a rejected commentary.&#x20;
4. Approved/Rejected: Commentary has been approved and is ready to be published or has been rejected and must be recalled before re-submitting for approval.
5. Published: Commentary has been published and is not visible to all application users.

### **Rich text formatting**

Qommentary Insights allows commentary to be formatted just like your favourite text editor. There are two (2) types of text formats available: **plain text** and **rich text**.

To select a text format option, please follow these steps:

1\. Edit the sheet and select your Qommentary Insights extension

2\. Expand *Commentary > Text editor* section in the properties panel

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MfVe3TvOa6WJ0gC-LNm%2F-MfVfMn5UfGNIjuhzoMm%2Fimage.png?alt=media&amp;token=5e4185d2-dedb-43fd-8d40-ac13de1df4ed" alt=""></div>

3\. Choose a **text format** option

{% hint style="warning" %}
If switch from **rich text** to **plain text** and edit a commentary which was previously saved with rich-text formatting, the commentary will be converted to plain text when you save.
{% endhint %}

When **rich text** is selected, you can control which formatting tools are displayed in the editor's toolbar:

| Tool            | Description                                                                |
| --------------- | -------------------------------------------------------------------------- |
| Text formatting | Allows text to be formatted with bold, italic or underline                 |
| Text color      | Allows text background and font colors to be customized                    |
| List            | Allows creation of bullet or number lists                                  |
| Text alignment  | Allows text to be horizontally aligned to left, center, right or justified |
| Link            | Allows text to link to other sheets, applications or external pages.       |

Check or uncheck each option in the properties to enable or disable formatting tools as desired.

To apply rich text formatting to a commentary, please follow these steps:

1. Write a commentary or edit an existing one

<div align="center"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdPPT6eGJkqzpiFxId%2Fimage.png?alt=media&amp;token=d07e74c8-3476-412c-87eb-c59bda3d5253" alt=""></div>

2\. Format your commentary using the rich-text toolbar

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdPYMC2p1i6PBooDSn%2Fimage.png?alt=media\&token=271b8b74-8fa4-4371-929c-fe3c7b826ca9)

3\. Click on the **Save** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdPgW9EXpMdIvn2wv0%2Fimage.png?alt=media\&token=359fdbd6-893d-4db8-a266-ec0628515294)

4\. Your commentary has been successfully formatted

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiFMzf6O6aI6TyXbs5%2Fimage.png?alt=media\&token=56f2742b-dd26-4710-9e98-886ea9d1963d)

Enabling

### Creating a commentary

You may begin writing commentary given you have the following roles or permissions:

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiDo-igIcCKJ22BAEQ%2Fimage.png?alt=media\&token=99e2cdbc-9c46-4f7e-b01d-4cb53dc051cf)

To write a commentary, follow these steps:

1. Click on Write a commentary button (Full Mode) or click on the icon <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdOZ937rEXmL04bhMu%2Fimage.png?alt=media&amp;token=c376e4b2-d06f-4683-b7d5-0ff41fef7b5c" alt="" data-size="line"> (Compact Mode)

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiEPdrv33qrLtl2s1t%2Fimage.png?alt=media\&token=4549c27d-cd9d-4bc8-8bdb-53ef3b8b3d87)

2\. Type some text into the rich-text editor

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdP0LpW6x8yaOjnEZ4%2Fimage.png?alt=media\&token=8fdda170-908a-4882-890c-a01b781b7df3)

3\. Click on Save button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdP4va6MvmFHKsa9Sp%2Fimage.png?alt=media\&token=391cf51a-ef3d-433e-810b-9723f2793ca9)

4\. **Congrats!** You have saved your first commentary as a draft.

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiEdMdFC3BOdq0K7nj%2Fimage.png?alt=media\&token=ed5aab06-90ed-43fd-8742-72f7b797e8c2)

### **Editing a commentary**

Once commentary has been created for a given set of selections, you can edit the commentary given you have the following roles or permissions:

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdQBQMcuAMC6O9E0xM%2Fimage.png?alt=media\&token=0721378b-45a9-4414-b1fb-327a492043d9)

To edit an existing commentary, follow these steps:

1. Click on the commentary screen or click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdQN7l3LzxwyVEh6fU%2Fimage.png?alt=media&amp;token=b1398282-ce41-4fe0-86b2-20a13fdb4685" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiFmgBNKQm7m0H8Kc8%2Fimage.png?alt=media\&token=76b4a5a3-8035-4ba5-ac45-1b5c9049f9af)

2\. Update your existing commentary

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiGJF64D9ofaNgbyZA%2Fimage.png?alt=media\&token=1e5bcb63-8abe-43d9-add8-c6bbe05ef1f6)

3\. Click on **Save** button&#x20;

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiGOnSq6k_07V4r3Qe%2Fimage.png?alt=media\&token=a2bc2cd5-f914-4dd1-ad4a-11e7fc609738)

4\. Your commentary has been successfully updated

### **Submitting for approval**

If the stream, application or sheet where the commentary resides is being managed by an approval workflow, you may submit a commentary for approval given you have the following roles or permissions:

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdRHC96Sn7X2vNbc8K%2Fimage.png?alt=media\&token=d2f000bb-a08d-4dc4-8dca-5e85596e7023)

To submit a commentary for approval, follow these steps:

1. **Write** a commentary or **edit** an existing one

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiGY1gQkj_l2GD9S1U%2Fimage.png?alt=media\&token=d373360b-0d22-43b6-844f-c09b25963105)

2\. Click on **Save** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiGoTupI_uqsV-DKQd%2Fimage.png?alt=media\&token=74de79fe-657d-4fd7-ba0a-e4dde8d361ef)

3\. Click on **Submit for approval** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiHRxz0xemSYba5pU4%2Fimage.png?alt=media\&token=55c28fc3-7bbd-4803-bff2-650c9bba043b)

4\. The commentary has been successfully submitted for approval

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiHmp2ZYCxjYIk6ZNg%2Fimage.png?alt=media\&token=ee617652-4d1a-4187-8fc9-48fd811eae96)

### **Publishing a commentary**

A commentary can be shared with all other application users, if the commentary status is set to Draft (without an approval workflow) or Approved (with an approval workflow).&#x20;

Once a commentary is ready to be shared, you may publish the commentary given you have the following roles or permissions:

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdS48ScMfdEjr1HQI8%2Fimage.png?alt=media\&token=8ab86c9d-0d42-4cea-b8a6-a6eb805a37af)

To publish a commentary, follow these steps:

1. Click on **Publish** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiI9vgpTMr_1COdnia%2Fimage.png?alt=media\&token=b6968a2a-04f8-4f74-9b28-55cbf21cf8b1)

2\. The commentary has been successfully published

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiIIwEZZLOqL--dK43%2Fimage.png?alt=media\&token=931eca74-1c61-4ba7-9c11-8f0598ff3850)

### **Recalling a commentary**

If a commentary which has been published needs to be updated, you will need to recall the commentary given you have the following roles or permissions:

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdSZUjEP15-J5l6mS4%2Fimage.png?alt=media\&token=d5e8fb1f-77b4-4ab4-abed-13554cbf8cf4)

To recall a published commentary, follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdDT46zj7OlI90zTeD%2F-MbdSzd-Jb01-8JagBB3%2Fimage.png?alt=media&amp;token=9b735eba-63e3-4bd0-981b-37273a2e2d50" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiIN8kbRG20G6UIiuQ%2Fimage.png?alt=media\&token=f9b16784-bf76-42da-a6b4-f36265845a57)

2\. The commentary has been recalled successfully and the status will be reset to Draft

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiIWqzqn23LZnhPFQc%2Fimage.png?alt=media\&token=813643e0-23a8-4600-bf39-43a9976a9a72)

3\. You may now edit the commentary.

**Comparing a draft commentary to the published version**

During the commentary authoring phase, it might be useful to compare a commentary against the published version.

To compare a commentary against the published version, follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbdTH6KHNoQbPEQh4KF%2F-Mbe_2hyNxtCh8AFyFK-%2Fimage.png?alt=media&amp;token=354edeb9-401b-478d-a778-007787c6f552" alt="" data-size="line"> icon to edit a commentary

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiIer0rB5RGm1IfK4V%2Fimage.png?alt=media\&token=9471c3c7-f64f-4815-9997-68c45fa1c760)

2\. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbedfk5-pmP4Iqd1SmH%2F-MbelCB7E4lqjOVYUBID%2Fimage.png?alt=media&amp;token=194cf08c-35e8-46e6-8ea4-94282b305522" alt="" data-size="line"> icon to access full screen view

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiIuxyQNTynmtO20gJ%2Fimage.png?alt=media\&token=18bf49f1-c24c-4169-aa76-c1f3dfd4f66e)

3\. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbedfk5-pmP4Iqd1SmH%2F-MbenjmncN493a7iHUF1%2Fimage.png?alt=media&amp;token=ad796381-d358-4b28-a5ba-a4aa586436bc" alt="" data-size="line"> icon to display the currently published commentary version

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiJH6Vv0yXyYIORNiM%2Fimage.png?alt=media\&token=7d3f172b-b6dd-4915-8df8-2b72efe031a0)

4\. The published commentary is now displayed side-by-side with your draft commentary.

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbi2NaEV64xzEeq6DTi%2F-MbiJQhluvMpb1v5kR9I%2Fimage.png?alt=media\&token=90accd64-de3a-4a6d-9851-fad3ea02275f)

### **Viewing commentary info**

1. Hover on top of the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbedfk5-pmP4Iqd1SmH%2F-MbeozFFLOHgEUwS2x03%2Fimage.png?alt=media&amp;token=e2b9702c-48cb-4046-81c7-84f5618c87be" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsbXAOXMfsAfV7pvCu%2F-Mbscs7ZmZkOQqYBhzDl%2Fimage.png?alt=media\&token=2cab69fd-7de6-40e8-b854-23d9cd4dede6)

&#x20;   2\. The commentary info will display the full name and date/time of the last updated commentary


# Searching draft and publish

Often commentaries are saved applying various filters and drilldowns. To browse through all commentaries published in a Qommentary Insights extension, follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbedfk5-pmP4Iqd1SmH%2F-MbeoCD4aGqknnnYolSR%2Fimage.png?alt=media&amp;token=3f4f5934-4d8a-4047-bc7d-7689e590e0e9" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbedfk5-pmP4Iqd1SmH%2F-MbeoXo_HQH0Pbp-5W1X%2Fimage.png?alt=media\&token=98b96512-a9d2-4a0a-8d8e-e000cea84531)

2\. You can now search for a commentary in draft, awaiting approval or published

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbedfk5-pmP4Iqd1SmH%2F-MbeohBRq3j1nLzdZrK_%2Fimage.png?alt=media\&token=768a88ff-6a77-427a-9566-29335638707d)

3\. Click on **View commentary** to retrieve the commentary’s context into view


# Subscribing to notifications

Commentary can be watched to be automatically alerted when a new commentary has been published.

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-Mbet5lQuIIT0wcbhc5N%2Fimage.png?alt=media&amp;token=77baf9c3-962e-4f08-a1d8-abc2a484dc3d" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-Mbet_Cr6HzVblry4fVh%2Fimage.png?alt=media\&token=ddad627f-2711-4fbc-9298-982ccc3ae4ee)

2\. The commentary is now being watched and an email notification will be sent when a new commentary is published.


# Sharing commentary

A commentary can be shared to one or multiple users and/or groups. To share a commentary, follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-MbetsGzAOrALangAnnH%2Fimage.png?alt=media&amp;token=cd0cfc2f-ea3e-4912-a590-a836a7e70c70" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-Mbeu1WFgSZlvWrJ9mYE%2Fimage.png?alt=media\&token=2a00f577-ac6f-4327-bc53-ee4daef4de7e)

2\. Click on Add groups or Add users and start typing a name. Optionally write a personal message

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-MbeuYEX9xSYR_kTDLh1%2Fimage.png?alt=media\&token=f376b76d-bf03-404c-a092-07fe9d37137c)

3\. Click on Share button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-Mbev--QTuP-MTMxa07V%2Fimage.png?alt=media\&token=72d415ac-044f-4abb-aac9-1e93e05be014)

4\. An email notification will be sent to each user and group selected, with a link back into the application and selection context.&#x20;


# Ad-hoc reporting

When exporting a commentary to PDF format, a document will be instantly generated which will contain the full commentary together with any associated visualizations.

Commentary exporting can be enabled or disabled if desired. To enable or disable commentary exporting please follow these steps:

1\. Edit the sheet and select your Qommentary Insights extension\
2\. Expand *Commentary > General* section in the properties panel\
3\. Click on the *Allow export* switch control to enable or disable commentary export

<div align="left"><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MfVmAHGli6J8gB5KjI-%2F-MfVn_wSebuihRKHB5vq%2Fimage.png?alt=media&amp;token=aa32da6a-8485-4a4a-b5fb-0ac0f477fbe6" alt=""></div>

To export a commentary to PDF, please follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-MbevPjAonlLHI8wiLTd%2Fimage.png?alt=media&amp;token=8bdf8667-645f-48e8-ac3d-a0eaaabe7037" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-MbeyI7wZLfmBc9LZITS%2Fimage.png?alt=media\&token=d784714c-cb3e-431e-9c7b-1d832cc3c1a8)

2\. A commentary report will be generated on the fly

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbep8s353iDiZZuDRZA%2F-MbeyrY6pdzUvrszheIR%2Fimage.png?alt=media\&token=2190f674-6890-4c19-8058-06c64a6c4b57)


# Discussion comments

Discussion comments, as opposed to commentary, is an effective way to quickly collaborate with business colleagues, ask questions and provide context which ultimately leads to action.&#x20;

Comments are associated to a specific commentary and data selection in time. This ensures that discussions are always in context and relevant. However, a discussion comment can also be added without the existence of a commentary. This could spark a conversation which might lead to a more detailed commentary for the benefit of other users.

### Comment creation types

There are 2 ways to create comments: Quick and Advanced mode.

When **Quick** mode is activated, users can type and send their comments in a chat-like fashion.

However, activating **Advanced** mode exposes additional controls such as **comment privacy** - where users can lock down comment visibility to specific users or just to themselves like personal notes.

To switch between comment creation modes, please follow these steps:

1. Edit the sheet
2. Select your Qommentary Insights extension
3. Expand the *Discussions > General* section in the Properties Panel
4. You may now select Quick or Advanced mode

<figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2FjdUa0xRBN2Zf0i3mwuXY%2Fimage.png?alt=media&amp;token=686dd1b5-209a-47dd-9d98-a91c2330a6a5" alt="" width="271"><figcaption></figcaption></figure>

#### **Quick mode**

If comment privacy is not a concern for the application use case, then Quick mode is recommended. Users can simply focus on the comment field, type and send messages in a speedy manner.

**Adding a comment**

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbez7ICdcre6aoh7dzD%2F-Mbf5JYBDZK605AMhGOV%2Fimage.png?alt=media&amp;token=054bb454-c5b9-422a-8954-662f532d4912" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbpjQyhsbSkGT0a7XGG%2Fimage.png?alt=media\&token=ea28fda9-28b8-450f-8f48-6b407d97567a)

2\. Type your comment in the text box

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbpjyHyt0NKZnls83A8%2Fimage.png?alt=media\&token=5a44bc6b-235e-4daf-9e0c-68a2d4adecb2)

3\. Click on **Send** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-Mbpk3qiruRNr4FhLBMr%2Fimage.png?alt=media\&token=e3f1ae65-47c3-4cfe-949d-dedf68e0fc87)

4\. Your comment has been sent successfully

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbpkCuygsd8PpYmVaIZ%2Fimage.png?alt=media\&token=01eed682-cc58-46b5-b01a-95d73ef95e3c)

#### **Advanced mode**

If you wish to offer users more control on comment visibility, then Advanced mode should be activated. Focusing on the comment field would launch a popup window with additional privacy control options.

### **Comment privacy**

Comments can have 3 different privacy types:

* Everyone (Public) :  Any application user can see the comment
* Specific Users (Limited): Only users specified can see the comment
* Only me (Private): Only the comment owner can see the comment

To set a comment privacy type, please follow these steps:

1. Click on the Discussions icon<br>

   <figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2FTvpgDCs8ytr11UGFq6z2%2Fimage.png?alt=media&amp;token=a845c36c-24c1-41d6-8f9c-b850bfd53245" alt="" width="348"><figcaption></figcaption></figure>
2. &#x20;Click inside the comments field<br>

   <figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2Fr5TX1wji94skzvqhq2vA%2Fimage.png?alt=media&amp;token=ce68e2e5-4ddb-4c56-8870-88153af052be" alt=""><figcaption></figcaption></figure>
3. Select a privacy type<br>

   <figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2FY8gFpJ8LOMPrjgD4CJmx%2Fimage.png?alt=media&amp;token=18768033-52dc-469e-b586-91cd75398ed1" alt="" width="340"><figcaption></figcaption></figure>
4. Type your comment and click on **Add**

{% hint style="info" %}
If **Specific people** was selected, invited users will receive an email notification upon comment creation with a link to join the conversation. Email template can be fully customized in the Qommentary Admin Console under *Email Templates > Insights discussion invitation*
{% endhint %}

### **Mentioning users in comments**

When a comment needs to be addressed to a specific user or set of users, you may use the comment mention feature. To mention a user in a comment, follow these steps:

1. Click on the text box

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbez7ICdcre6aoh7dzD%2F-Mbf7H2UKA5Or6V3aUqy%2Fimage.png?alt=media\&token=76d93da5-e868-4867-b5e1-d56190e96bf4)

2\. Type the “@” sign and start typing the name of the user

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbez7ICdcre6aoh7dzD%2F-Mbf7Oa-RagbMoDPZIkR%2Fimage.png?alt=media\&token=cb65f8ce-10b8-4bc5-8014-a3c7a942a001)

3\. Click on the user to include in the mention

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbez7ICdcre6aoh7dzD%2F-Mbf7ToQg_fZY3dGN7vh%2Fimage.png?alt=media\&token=6b0399f2-e0a1-481c-b5bf-85a738f24bfc)

4\. Continue writing your comment

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbez7ICdcre6aoh7dzD%2F-Mbf7_d1lT32s0wreVH2%2Fimage.png?alt=media\&token=c8b2d018-b0af-4c19-a318-25bb833a3da5)

5\. Click on **Send**

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbez7ICdcre6aoh7dzD%2F-Mbf7eTBgOPPzuQi1c1O%2Fimage.png?alt=media\&token=e73e8b95-7bf6-41b2-a7f3-b12b1d8dc7ac)

###

{% hint style="info" %}
All users mentioned in the comment will receive an email notification with a link to join the conversation. You may customize the email template from the Qommentary Admin Console.
{% endhint %}

### **Replying to a comment**

One of the great advantages of team collaboration is engaging in deep meaningful discussions which could ultimately lead to action. Replying to a comment keeps conversations in context and organized for ease of reference.

<figure><img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-1306060056%2Fuploads%2FBSkpe1tR5wkL0VvvfxCf%2Fimage.png?alt=media&amp;token=30e0a313-a588-4056-be7a-89760201644f" alt=""><figcaption></figcaption></figure>

### **Linking visualizations**

Comments are usually made referencing an area of concern displayed on a commentary visualization. To add additional context to your questions, you can link visualizations to your comments. Users that view your comments, will be able to view the linked visualization and therefore understand what visualization was displayed when the comment was made.

To link a visualization to your comment, follow these steps:

1. Type your comment on the **text box**

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbpkU-wby5-qlldPWUp%2Fimage.png?alt=media\&token=bdf68c52-deef-4904-9624-ae3c19cdc217)

2\. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbez7ICdcre6aoh7dzD%2F-Mbf8bV2TU43jx1KbU_s%2Fimage.png?alt=media&amp;token=1093643c-9b24-4e41-a1e9-4e16fdddfe55" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-Mbpkd2WZcpBhLoBhDUY%2Fimage.png?alt=media\&token=3ebaab44-62ba-454f-9d40-ace23bfbab76)

3\. Click on Send button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-Mbpknry75O2-HGcv89h%2Fimage.png?alt=media\&token=4beae7f2-d4da-41ba-9e31-740f1eb6e73b)

4\. The comment has been successfully sent and users will be notified.

### **Viewing linked visualizations**

Comments that display a <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbf95pu2ks3KqIqXZ7c%2F-MbfA1w666y-8SlZlks1%2Fimage.png?alt=media&amp;token=47731b3d-4944-40c7-a661-1321fcac86cd" alt="" data-size="line">  icon will indicate that it has a linked visualization. To view a linked visualization, follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbf95pu2ks3KqIqXZ7c%2F-MbfA1w666y-8SlZlks1%2Fimage.png?alt=media&amp;token=47731b3d-4944-40c7-a661-1321fcac86cd" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbpkytyL4umi2MFV1gY%2Fimage.png?alt=media\&token=182ffe79-18a0-4f28-8ad1-44cdc70c6845)

2\. The linked visualization will be loaded successfully

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbplGbnHXm0XEXhGmoN%2Fimage.png?alt=media\&token=91500ec1-a2dc-4a16-8cdb-866a24e5c64f)

### **Deleting a comment**

To delete a comment, follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbf95pu2ks3KqIqXZ7c%2F-MbfEgldX5k2Q_Qa83Sd%2Fimage.png?alt=media&amp;token=efa4b6d3-8896-42ee-8ac7-41b3159e4a5d" alt="" data-size="line"> icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbplRBCcYVfa55g3Y-o%2Fimage.png?alt=media\&token=58b4065a-8a87-4af3-8a64-4b48207fe847)

2\. Click on **Delete** button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-Mbpl_Re2vXUi-x6hbeR%2Fimage.png?alt=media\&token=311438a5-c3d1-4da7-94fd-e3f91c6db276)

3\. The comment has been successfully deleted

### **Refreshing comments**

If you need to retrieve new comments which were sent during your active session, you may use the refresh comments functionality. To refresh comments, follow these steps:

1. Click on the <img src="https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbf95pu2ks3KqIqXZ7c%2F-MbfFNJEMk0ydRR26MgV%2Fimage.png?alt=media&amp;token=07a39d8b-5ae2-4c83-85c6-1c3bfb7b93c4" alt="" data-size="line"> icon&#x20;

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbpZOloTaKrdJg4w5QV%2F-MbplhKOSrp-rXhMUImo%2Fimage.png?alt=media\&token=61d63278-28e0-4e3e-9007-120881c50d94)

2\. New comments (if available) will be displayed in the comments panel

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsPNRgSishxX3RtXSy%2Fimage.png?alt=media\&token=fbe5a8a4-078f-4e12-95d5-9bd3a8baa940)


# Storytelling presentations

**Embedding commentary in stories**

Qommentary can be embedded in Qlik Sense stories, to take advantage of its powerful storytelling capabilities and bring context-aware commentary to presentations.

To embed commentary in stories, follow these steps:

1. Right-click on the commentary you would like to embed

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbf95pu2ks3KqIqXZ7c%2F-MbfJ88xfCfWrIE1g-5C%2Fimage.png?alt=media\&token=8b032331-08cc-49a1-abab-a8fe52a8f500)

2\. Click on snapshot icon

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbf95pu2ks3KqIqXZ7c%2F-MbfJOjeQLEZF4B-Y3wa%2Fimage.png?alt=media\&token=7fa6d718-57b8-4595-b7ee-fedcd9268322)

3\. Give your snapshot a description and click on Save button

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbf95pu2ks3KqIqXZ7c%2F-MbfK7YI8fpwgsFdt0IX%2Fimage.png?alt=media\&token=12f70fd1-6bed-47b5-b157-c9a6b1b588c5)

4\. Navigate to the story you would like to embed the commentary into

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbfKFyI7pmw2WFA4-E7%2F-MbfKghJ7o4OwuIm79bD%2Fimage.png?alt=media\&token=0f6b4e14-f1ec-4699-8e30-781ec48a84f6)

5\. Open the Snapshot Library

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbfKFyI7pmw2WFA4-E7%2F-MbfL323WNOc3skOeMz7%2Fimage.png?alt=media\&token=78f5e26a-0b94-49ab-a9c2-e2fa5d2aac6e)

6\. Drag the commentary snapshot to the canvas

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbsJ1WmLeoWs5kf_7qj%2F-MbsOh8pzBkrLMUD_UdA%2Fimage.png?alt=media\&token=901d7e62-c1a9-458f-b35f-f2557c9d3945)

7\. Your commentary snapshot has been embedded successfully

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbfKFyI7pmw2WFA4-E7%2F-MbfMdW9tl3Atb6czqmU%2Fimage.png?alt=media\&token=18091be1-8d86-4698-b829-8830a03b730a)


# Exporting in Qlik Sense

Qommentary is compatible with Qlik Sense native printing functionality. Any commentary embedded in an application will be included when exporting a sheet to PDF or exporting an object to image or PDF.

To export a sheet to PDF, follow these steps:

1. Navigate to a sheet that has embedded commentary

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbfKFyI7pmw2WFA4-E7%2F-MbfQPHMgHGV3beP_A1V%2Fimage.png?alt=media\&token=987469ae-4ed9-4a49-bfda-87e0de330f16)

&#x20;   2\. Open the menu and select Download sheet as PDF

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbfKFyI7pmw2WFA4-E7%2F-MbfQ_F7ttyjKKOOBYbl%2Fimage.png?alt=media\&token=b30eb1ea-3a95-4c0a-bfa6-1c216d493c32)

3\. Choose your preferred export settings and click on Export

![](https://3526440999-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbfKFyI7pmw2WFA4-E7%2F-MbfR2sJl-8-iNKodvTY%2Fimage.png?alt=media\&token=acb9eca0-08e2-4c2c-b461-245f26b59625)

4\. The sheet has been exported to PDF successfully


# Welcome

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MfDHAhun1Wz3Q38KKRp%2F-MfE0RE1cuIqVqnadZeN%2Fkb-qom-table.png?alt=media\&token=8c38ef8b-4373-47e5-b018-c1ed3c3f19ef)


# Embedding a new extension

The Qommentary Table Extension allows you to display tabular data in a straight table format and allow multiple users to collaborate by writing comments on each row.

To add your first Qommentary Table Extension to an application, follow these steps:&#x20;

1\. Open an application of your choice \
2\. Click on Edit sheet button

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-Mbu5ejfwCP213osPuVq%2Fimage.png?alt=media\&token=cb6a5be2-2434-4e19-b766-f7832e4f8939)

3\. Select the Custom objects tab

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-Mbu7hWSUE0E43eLnvR1%2Fimage.png?alt=media\&token=697aa724-16df-4af8-86e8-f176146b5152)

4\. Drag a Qommentary Table extension to the sheet

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-Mbu7sdHWO8S6dd5o3b1%2Fimage.png?alt=media\&token=dbd6ff44-a76d-4b2e-8019-997296ded639)

5\. Select some Dimensions and Measures

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-Mbu8HoYc8-pVjpcpV-N%2Fimage.png?alt=media\&token=7782f8b2-455c-4486-9ec0-4fd877090e7c)

6\. A new Qommentary Table extension has been added! Commenting

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbuSYozEWVHNIjgmRjA%2Fimage.png?alt=media\&token=6801ec98-9d84-4bc3-8133-389b3b22d691)

{% hint style="warning" %}
Commenting is only enabled in published applications.
{% endhint %}


# Updating global config

The Qommentary Table Extension communicates with the Qommentary Engine API which can be hosted on the same server as Qlik Sense, or on a separate server.

To update the Qommentary Engine API endpoint, follow these steps:&#x20;

1\. Navigate to the Dev Hub \
2\. Select Extension Editor \
3\. Click on Open Project and select the “Qom Table” extension

![Editing Qommentary Engine API endpoint](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-Mbsnm9JEiNUrn4r8hIb%2F-Mbsv7_zWSSRESUZSBoM%2Fimage.png?alt=media\&token=da1127a8-5f5e-4c56-b7fc-3df68c2987c6)

Now you can embed the Qommentary Table Extension in multiple applications across your Qlik Sense environment and manage the config parameters from a single location.


# Properties

**Dimensions**\
To add a dimension to your table, click on Add dimension and select a dimension from the list.

* Field: Please see *Qlik Sense Table properties* documentation.
* Label: Please see *Qlik Sense Table properties* documentation.
* Dimension: Only displayed for master items. Please see *Qlik Sense Table properties* documentation.
* Include null values: Please see *Qlik Sense Table properties* documentation.
* Limitation: Please see *Qlik Sense Table properties* documentation.
* Column width: Drag the slider handle horizontally to adjust the column width in pixels
* Custom column width: Enter a number to set a custom width for the column. You can also use an expression to set the number. Click ***fx*** to open the expression editor.
* Allow sorting: Enable or disable sorting on individual columns. You may disable sorting for all dimensions globally under Table > Allow sorting.
* Commentary details view: Display column in row-detail table shown when a comment for a specific row is selected.

**Measures**

To add a measure to your table, click on Add measure to open a list of available measures. Select the measure that you want to use. If you select a field, you are automatically presented with some common aggregation functions that you can choose between for the measure.

* Measure: Please see *Qlik Sense Table properties* documentation.&#x20;
* Expression: Please see *Qlik Sense Table properties* documentation.&#x20;
* Label: Please see *Qlik Sense Table properties* documentation.&#x20;
* Number formatting: Please see *Qlik Sense Table properties* documentation.&#x20;
* Column width: Drag the slider handle horizontally to adjust the column width in pixels.&#x20;
* Custom column width: Enter a number to set a custom width for the column. You can also use an expression to set the number. Click *fx* to open the expression editor.&#x20;
* Commentary details view: Display column in row-detail table shown when a comment for a specific row is selected.&#x20;

**Sorting**\
Please see *Qlik Sense Table properties* documentation.

**Table**

* Table layout: Determines how the table will manage column widths for the overall table layout. The following formats are available:\
  &#x20;   1\.  Horizontal scrollbar: Widths are fixed for each column and a horizontal                scrollbar is enabled if the total number of columns exceed the available table width.\
  &#x20;    2\. Fit in view: Column widths are auto-calculated and distributed equally amongst the available table width.
* Allow sorting: Enable or disable sorting in all dimension columns.

**Comments**

Table commenting is a powerful feature which allows application users to share insights and feedback on individual rows, based on the current selection state and their permission level.

* Display last comment: If enabled, it will display the last comment entered on the Comments column cells. Disabling this feature would only display the total number of comments per row.
* Column width: Drag the slider handle horizontally to adjust the column width in pixels.
* Custom column width: Enter a number to set a custom width for the column. You can also use an expression to set the number. Click fx to open the expression editor.
* Colors: Customizes cell colors for the Comments column, overriding the default theme colors. The following options are available:\
  &#x20;   **1.** Auto: Default theme colors are applied.\
  &#x20;   **2**. Custom: Choose custom background and text colors for the Comments   column.
* Enable profile photos: If enabled, each individual comment will display user profile photos (if available).\
  &#x20;   **1**. Content Library name: Choose from a list of Qlik Sense content library names where images are stored. You will need to previously upload pictures to a content library folder.\
  &#x20;        Images must be in JPG format and file must follow a specific naming convention, where the file name represents the Qlik Sense user ID, e.g. jsmith.jpg\
  &#x20;   **2**. Profile photo shape: Customize the way that profile photos are displayed by choosing amongst 3 different user profile photo shapes.

**Appearance**&#x20;

* General: Please see *Qlik Sense Table properties* documentation.
* Alternate states: Please see *Qlik Sense Table properties* documentation.
* Header o Background color: \
  &#x20;  **1.** Pick a custom color for the table header background \
  &#x20;  **2**.  Font color: Pick a custom color for the table header font text \
  &#x20;  **3**. Horizontal alignment: Choose if the header column title should be left, center or right aligned.
* Rows: Enable if you would like the table cell text to wrap into multiple lines. Unchecking this option would display text in a single line and hide any overflowing content.
* Totals\
  &#x20;  **1**. Display totals row: Show or hide the Totals row\
  &#x20;  2\. Label: Add a custom label or click the ***fx*** icon to open the Expressions  editor\
  &#x20;  3\. Background color: Pick a custom color for the table Totals background\
  &#x20;  4\. Font color: Pick a custom color for the table Totals font text

**Known limitations**

* There’s a current limitation when converting any object into a Qommentary Table extension which causes invalid table rendering when adding or removing columns.
* Table does not render properly in full screen.&#x20;
* Approval workflows cannot be applied to row comments. This feature will be available in future releases.

&#x20;&#x20;


# Appearance

### Columns

#### <mark style="color:blue;">Text and Background cell color</mark>

To customize each cell text and background color, please follow these steps:

1. Edit the sheet
2. Select the Qommentary Table extension
3. Expand the dimension or measure properties
4. Type in a text/background color or derive the value from an expression

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2F2abP6Cf2xcmZi6F8dR3R%2Fimage.png?alt=media&amp;token=0c550633-cb91-4874-9651-ecd0246008b0" alt="" width="232"><figcaption></figcaption></figure>

#### <mark style="color:blue;">Cell alignment</mark>

To customize horizontal and vertical text alignment on cells, please follow these steps:

1. Edit the sheet
2. Select the Qommentary Table extension
3. Expand the dimension or measure properties
4. Choose a horizontal and vertical alignment option

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2Ft2IzNbBY56IfovWii4iM%2Fimage.png?alt=media&amp;token=3ab3186a-808b-442b-94ab-8a51b1f790ec" alt="" width="233"><figcaption></figcaption></figure>

#### <mark style="color:blue;">Column width</mark>

To customize column widths, please follow these steps:

1. Edit the sheet
2. Select the Qommentary Table extension
3. Expand the dimension or measure properties
4. Drag the slider to set a column width in pixels

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2FqJ1yiAm4mwS4hHtmdHOT%2Fimage.png?alt=media&amp;token=5e0f574c-3f8a-420b-ac04-49a63305a7c0" alt="" width="223"><figcaption></figcaption></figure>

### Headers

#### <mark style="color:blue;">Background and text color</mark>

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2F9f0DQO9AfoFJcESSaMY5%2Fimage.png?alt=media&amp;token=06c5c680-a3a4-4e31-9daa-a5540edda86e" alt=""><figcaption></figcaption></figure>

To customize the header's text and background color, please follow these steps:

1. Edit the sheet
2. Select the Qommentary Table extension
3. Expand *Appearance > Header* properties
4. Choose a background and font color option

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2FX58at66kGxtpEk0bFVzl%2Fimage.png?alt=media&amp;token=d0737289-85f9-4a5c-b1b7-4566a5556754" alt="" width="257"><figcaption></figcaption></figure>

### Rows

#### <mark style="color:blue;">Font size</mark>

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2FDDQoFVRSL7xeSyCsmGSt%2Fimage.png?alt=media&amp;token=814232d3-a84c-4936-b531-594ef5361168" alt=""><figcaption></figcaption></figure>

To customize the cell font size, please follow these steps:&#x20;

1. Edit the sheet
2. Select the Qommentary Table extension
3. Expand *Appearance > Rows* properties
4. Type in a font size or derive the value from an expression

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2FFf7hSxNxzp32yUrCLGUX%2Fimage.png?alt=media&amp;token=2ac94d72-6131-4cb5-a31c-7d56a404afb4" alt="" width="272"><figcaption></figcaption></figure>


# Filtering data

Column search allows you narrow down your selections by a specific dimension and focus on more detailed data.&#x20;

To search by a specific dimension, follow these steps:

1. Click on the search icon for any dimension column

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbuYhiuxH72kgaqjAp9%2Fimage.png?alt=media\&token=0ea67c80-0a28-47df-8fd1-2f6b12aaff82)

2\. Search for a specific dimension value

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbuYoT2FpIJtVdk8X_h%2Fimage.png?alt=media\&token=2a0bbf26-9ba6-41fc-830e-af31fb4f0b0d)

3\. The Qommentary Table extension will now display data with the selection applied

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbuZ4H6dknK7lv-1ds-%2Fimage.png?alt=media\&token=10e8ec7b-438e-4a87-9deb-d5ace6f41269)


# Pinning columns

Column pinning enhances data analysis by keeping essential information visible during scrolling.&#x20;

This feature ensures quick reference, facilitates efficient exploration, and maintains context in large datasets. With improved readability and the ability to compare data effortlessly, column pinning optimizes the user experience, making complex analyses more efficient and user-friendly.

To start pinning columns, please follow these steps:

1. Navigate to a sheet
2. Choose a column you would like to pin
3. Click on the pin icon

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2Fw7pumIAge8S6XdkE2GOH%2Fimage.png?alt=media&amp;token=fd6124d3-46f8-4cca-8a32-f7f8b752fabf" alt=""><figcaption></figcaption></figure>

The pinned columns will appear fixed to the left of the table for ease of reference:

<figure><img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M43RhGzV8Plu0tfknia-89804932%2Fuploads%2FFQnO0CqBk2rz7tUYDq8t%2Fimage.png?alt=media&amp;token=9df2bf2a-54c9-4f2b-a917-a1b2fb78f8f0" alt=""><figcaption></figcaption></figure>

To unpin columns, simply click on the pin icon again and the column will return to it's original location.


# Sorting data

Column sorting allows you to rearrange data in ascending or descending order. By default, the table will display data in the sort order determined by the extension properties.

You can also disable sorting for the whole table or for individual dimensions via the properties panel.

To apply sorting to a specific column, follow these steps:

1. Click on the column header

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-Mbu_WfW5tI1J2xN63gW%2Fimage.png?alt=media\&token=389954f0-9381-453a-bd8b-aa7a4dbf9abc)

2\. The table data will be sorted in the opposite direction

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-Mbu_amyRIBGKU-MElBn%2Fimage.png?alt=media\&token=81bcbddf-c412-451d-992f-f7bed6d6d2ef)


# Applying selections

To narrow down your analysis, you can make selections on dimension cells by following these steps:

1. Make a selection on any given dimension cell

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbuZHI0rHtsilamWacO%2Fimage.png?alt=media\&token=f6de443d-6d01-4d65-8205-c569f9b7be4e)

2\. The Qommentary Table Extension will now display data with the selection applied

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbuZN7Xj2ZOZYzHVyuq%2Fimage.png?alt=media\&token=2f6ce382-b99b-44bc-a26f-39521daa0840)


# Adding comments to rows

The Qommentary Table Extension adds by default an extra column which allows users to input comments. This feature is extremely useful to collaborate on datasets and seek feedback from multiple users.

### **Creating comments**

1. Click on the <img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-Mbub4kOyGQrXohJiDnC%2Fimage.png?alt=media&amp;token=f1a77894-6c30-47ee-b87f-d1221eab4214" alt="" data-size="line"> icon where you wish to leave a comment

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbubcPd5RlEE19RjQ61%2Fimage.png?alt=media\&token=5ec04fb5-b4e9-48d7-968a-1ac6b6cfca8b)

2\. If you are the first one to leave a comment, click on the “Add a comment” button

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbubiBRVi8pWGlM-jji%2Fimage.png?alt=media\&token=2c39af47-f36d-44d3-90cb-bba077e4b0e1)

3\. Write your comment and click on the “Add” button

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbudMDjaO7V9FDT3-tg%2F-Mbuetblj0NhzS-7OV9s%2Fimage.png?alt=media\&token=d333f133-7da8-46b9-be85-3d135638dd72)

4\. Your new comment has been added!

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbtC-Sy1ddRJhz7Wlsx%2F-MbucWWlQ1QsjYIJKsKe%2Fimage.png?alt=media\&token=31ecd3f9-bfb4-483b-a53a-fb88d162aea0)

### **Editing comments**

Once a comment has been added, either by you or someone else, you may choose to update it.

To edit a comment, you must be either:

* a Root Admin
* an Editor Admin or
* have Update Commentary permissions on the resource

If you wish to edit a comment, please follow these steps:

1. Click on the <img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbudMDjaO7V9FDT3-tg%2F-MbufY3BZe0DLewgefXC%2Fimage.png?alt=media&amp;token=84a0d844-83dd-45a7-98fd-74ba9676669d" alt="" data-size="line">  icon
2. Update your comment

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbudMDjaO7V9FDT3-tg%2F-Mbufs4WR0eDOIGsSRm0%2Fimage.png?alt=media\&token=2c60d340-cc0d-4fa0-ad65-bd6750474b7a)

3\. Click on the Save button\
4\. Your comment has been updated!

### **Deleting comments**

To delete a comment, you must be either:

* a Root Admin
* an Editor Admin or
* have Delete Commentary permissions on the resource

1. Click on the <img src="https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbudMDjaO7V9FDT3-tg%2F-MbugI-5zlwp3aRMQwy2%2Fimage.png?alt=media&amp;token=c479b789-0915-4923-96c3-a8f02a6139b3" alt="" data-size="line"> icon
2. Click on the Delete button

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbudMDjaO7V9FDT3-tg%2F-MbugQhLas4SE9UM-BmZ%2Fimage.png?alt=media\&token=9232cf7e-96be-4ebd-89d2-ac0027a26d00)

3\. Your comment has been deleted!

### **Searching comments**

Once all comments are displayed for a specific row, you may search for a specific comment by typing any word found on the message or by author name.

To search in comments, follow these steps:

1. Click in the search field

![](https://3515447409-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MbudMDjaO7V9FDT3-tg%2F-MbuhflzPHoXzftvRzRf%2Fimage.png?alt=media\&token=3216b36b-849f-46e8-a38a-d22814b1113f)

2\. Start typing a search term\
3\. The list of comments will be filtered by the searched term


# Embedding a new extension

The *Qommentary Pivot Table* allows you to calculate, summarize and analyse data to see comparisons, patterns and trends in the data.\\

\
With the *Qommentary Pivot Table*, you can pivot dimensions interchangeably between rows and columns with an intuitive drag and drop motion, expand dimensions to drill down further and customize in many different ways.&#x20;

To add your first *Qommentary Pivot Table* extension to an application, follow these steps:&#x20;

1. Open the application of your choice
2. Click on **Edit sheet** button

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FJHWnR5v230qyOeY6l87F%2Fimage.png?alt=media\&token=3d01e35e-4494-4a5f-852c-0405959edf55)

3\. Select the **Custom objects** tab

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2Fdln5Zbpsnt5UV5nMxPPh%2Fimage.png?alt=media\&token=09a49d9d-05f7-4aa7-96b5-5cbc477463ca)

4\. Expand **Qommentary Library** and drag a **Qom Pivot Table** extension to the sheet&#x20;

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2Fu7sv9lcmITooiC1PRfrw%2Fimage.png?alt=media\&token=97efe798-de5b-446b-a0a2-cbb746397fa9)

5\. Select your desired Dimensions and Measures

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FtWlSMzLWi1jmHhokKdnu%2Fimage.png?alt=media\&token=972e06e7-45b1-4246-ba72-8041aec60c1c)

A new *Qommentary Pivot Table* extension has been added!

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FnoXRlUxzzIw3YGdbCk87%2Fimage.png?alt=media\&token=9d08aa20-06bb-4cc2-9778-eb48f5d791a0)


# Updating API endpoints

The *Qommentary Pivot Table* contains a main config.json file which holds information relevant to your environment where Qommentary is hosted - such as the Qommentary Engine API endpoint.

Sometimes, there's network changes on server where Qommentary is hosted which could impact extensions, such as:

* FQDN changes (e.g. hosting Qommentary on a new server)
* Protocol changes (e.g. moving from http to https)
* Port changes (e.g. changing from default 5004 to a new port number)

To keep the Qommentary endpoints up to date, please follow these steps:

1. Navigate to the **Dev Hub**
2. Select the **Qom Pivot Table** extension
3. Update the affected endpoints

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FQsKM3M0X8YrrVjjr2yF6%2Fimage.png?alt=media\&token=934a4fcf-2944-4190-8873-9206f9a3c703)

Now you can embed the *Qommentary Pivot Table* extension in multiple applications across your Qlik Sense environment and manage configuration from a single location.


# Adding dimensions

When you drag and drop a *Qommentary Pivot Table* extension to your sheet, you will be prompted to select Dimensions.&#x20;

Adding dimensions works in the same fashion as like Qlik Sense charts. To add a dimension to your table, click on **Add dimension** and select a dimension from the list.

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FCpOdXmmdOZFaLKbxONMx%2Fimage.png?alt=media\&token=0ebf0336-6271-48c5-abb2-e48c53925ca2)

Add as many dimensions you need to see in the table and expand dimension to view the properties, When you use more than one dimension, they are automatically nested together and displays in the same order as defined for left and top views. If table has 2 dimensions selected, expanding the first dimension displays its next dimension values.

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FSHks2Vbzief2cOWtxGOy%2Fimage.png?alt=media\&token=885ccd0f-e9b1-4406-819d-556e049f5ca9)

### Dimension position

The *Qommentary Pivot Table* extension allows dimensions to be displayed as rows or columns, thus enabling data to be sliced and diced in different ways.

To change the dimensions position, follow these steps:

1\. Edit your sheet

2\. Click on the *Qommentary Pivot Table* extension

3\. Expand dimension properties

4\. Scroll down to the **Position** property\ <img src="https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F7Cx2ZUWlRYDrdO2u7X5A%2Fimage.png?alt=media&amp;token=6c693ac5-5415-4714-86f8-34cb6b47747b" alt="" data-size="original">

5\. Select **Left** to display dimension data as rows

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FlbUPWfcKBzZqW28yQzUi%2Fimage.png?alt=media\&token=0acf9a65-3e99-4cde-994f-1cd4a4e48d71)

6\. Select **Top** to display dimension data as columns

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FsTuovcPB8FTmN8wqfVTy%2Fimage.png?alt=media\&token=3f54d58c-e584-4a78-81d3-8f829846e3e2)

During table analysis, users can pivot dimensions between rows and columns by the use of drag and drop actions.

### Enabling totals

Totals can be enabled to aggregate measure values on rows and columns.

To enable Totals for dimensions, follow these steps:&#x20;

1\. Click on **Edit sheet** button

2\. Expand the dimension properties

3\. Scroll down to the **Show totals** property and turn on the switch

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FWVNpvIWNvTPB3ckQqCaW%2Fimage.png?alt=media\&token=a6f1cf05-7e53-42b9-a059-0867bd03cbd0)

You will now see Totals for the selected dimension&#x20;

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2Fgget7L6dBsliE2CUAL7X%2Fimage.png?alt=media\&token=02a7630b-7f26-47f1-ab73-d64558681292)

### Customizing totals label

The Totals label can be easily customized to add further context to your data. Expressions are allowed.

To customize Totals label, follow these steps:

1\. Click on **Edit sheet** button

2\. Expand the dimension properties

3\. Scroll down to the **Totals label** property and enter desired text&#x20;

The selected dimension will now display a customized Totals label:

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FJSFYUpB2Hl1W5wJ08rWL%2Fimage.png?alt=media\&token=4cd14d5e-e410-4f7d-9010-d79db95282ca)


# Adding measures

When you drag and drop a *Qommentary Pivot Table* extension to your sheet, you will be prompted to select Measures.

Adding measures works in the same fashion as like Qlik Sense charts. To add a measure to your table, click on **Add measure** to open a list of available measures.

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FjCACBRjUL9y4rOXqb9ky%2Fimage.png?alt=media\&token=caf9d973-7d6f-42c6-ae72-3316fea1ca03)

Measures will be displayed as columns and recalculated when data changes

![Measures view](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F50h5JHsISI7qdpmp7Trt%2Fimage.png?alt=media\&token=2aabd186-97cf-49fe-a8d1-a2ba6d277166)


# Adding color to cells

Color is a powerful visual indicator which can help identify change or trends over time. The *Qommentary Pivot Table* allows you to add custom background and text colour to dimensions and measures.

To add color to your cells, follow these steps:&#x20;

1\. Click on **Edit sheet** button

2\. Expand the dimension/measure properties

3\. Scroll down to the **Background color expression** property and enter a value or expression

<div align="left"><img src="https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F5Lb9F6GOnhzilBB0rJC2%2Fimage.png?alt=media&amp;token=80829d77-152b-4ddb-88b4-1dc97d1890d1" alt=""></div>

4\. Scroll down to the **Text color expression** property and enter a value or expression

<div align="left"><img src="https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FehViaUK47a7MyvfrfSLz%2Fimage.png?alt=media&amp;token=7d245a80-c6c4-4495-8d9c-ff9edefb7e23" alt=""></div>

The pivot table will now evaluate each cell expression and display the relevant colors

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FXiQ4WIWieNsrhpDRNz4T%2Fimage.png?alt=media\&token=386dbd1a-e6de-4baf-a628-9848f4639410)


# Fully expanded view

The *Fully expanded* feature allows you to display all dimensional data in a single view - ideal when working with small datasets that do not require detailed analysis or drilling down.

To enable *Fully expanded* view, follow these steps:

1. &#x20; Click on **Edit sheet** button
2. &#x20; Expand *Appearance -> Presentation*
3. &#x20; Check the **Fully expanded** option

<div align="left"><img src="https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F05UGkjYp7vlCkt0EgMly%2Fimage.png?alt=media&amp;token=9239c9b9-82b3-4c02-8f90-703604069176" alt=""></div>

Dimensions are now displayed fully expanded:

![Display with Fully expanded selected](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FWAtkq8FsSLPBtxxKAtK0%2Fimage.png?alt=media\&token=41a30356-0491-447f-8327-dfcba8621187)

If you uncheck the *Fully expanded* option, dimensions would be displayed in a drilldown fashion with expand/collapse icons:&#x20;

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FuyyY5KKiKCqahZ2OuAJt%2Fimage.png?alt=media\&token=42b56b8d-5978-49b9-8c03-31f00fe34d36)


# Indented rows view

The *Indent rows* feature displays dimensional data indented. When turned off, data is displayed side-by-side as dimension columns, enabling a different layout for comparisons and analysis.

To enable *Indent rows* view, follow these steps:

1. Click on **Edit sheet** button
2. Expand *Appearance -> Presentation*
3. Check the **Indent rows** option

<div align="left"><img src="https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FxYl9IeAj936DIg3pr2Du%2Fimage.png?alt=media&amp;token=d1edc73f-2fbf-49f5-8ab1-b1160b1876aa" alt=""></div>

Dimensions are now displayed indented:

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FgJy6PHieHtIBu5XkxlQH%2Fimage.png?alt=media\&token=ff2d6a7f-90a8-4599-85d2-1deae7317eb4)

If you uncheck the *Indented rows* option, dimensions would be displayed as syde-by-side columns:

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F332x1aDRr6WPY3JPJdm1%2Fimage.png?alt=media\&token=7598519b-6394-44db-a68d-4acc0bae2fe9)


# Adding comments to cells

This section helps you to understand how to add comments to the cells in the table

With the Qommentary Pivot Table extension, you can invite users to collaborate and add comments to cells at various drilldown levels. Comments are stored in the central Qommentary Database and data can be loaded as an additional source in any application of your choice.

### Creating a new comment

{% hint style="warning" %}
**You need the following user access rights to perform this action:**

* Root Admin
* Pivot Admin
* User with Create Comment permissions on the resource
  {% endhint %}

If you wish to add a new comment, please follow these steps:

1\. Click on cell where you wish to add a comment

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FjeEvUD6f95njcjKXsff1%2Fimage.png?alt=media\&token=126e927f-8c04-4cb1-8204-b67178dc8232)

&#x20; 2\. If no comments have been added, you'll be prompted to add the first one&#x20;

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F5yok35rWvPBmUspd4odz%2Fimage.png?alt=media\&token=4aa90f67-7e25-4672-981a-4efe325596bd)

3\. On the top left you will see the **Dimension** values associated to the selected cell

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FjT1lSTMPFR6upLRtbTls%2Fimage.png?alt=media\&token=7acde91f-8a12-4349-bcb1-b6a4c926d0d7)

&#x20; 4\. On the top right you will see the **Measure** value associated to the selected cell

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FigIzGrbmGhpUkDFRwmhT%2Fimage.png?alt=media\&token=a8767d30-864c-4404-940d-fccf8b3841d1)

5\. Go ahead and add a comment on the bottom toolbar&#x20;

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2Fy2LMRKxZcVSLizKF9enS%2Fimage.png?alt=media\&token=58b5714a-7d20-4bb0-86ba-a05fee2fc26b)

A comments badge will be displayed with the total number of cell comments

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FZRhhLAAQMQ6nnt5dq5kv%2Fimage.png?alt=media\&token=31edb5d2-99b7-4bfb-a4a5-24fd6b4de373)

### Deleting a comment

{% hint style="warning" %}
**You need the following user access rights to perform this action:**

* Root Admin
* Pivot Admin
* User with Delete Comment permissions on the resource
  {% endhint %}

If you wish to delete a comment, please follow these steps:

1. Click on the 3-dots "More options" button for the comment you wish to delete

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FBRbue6Ac3ekU0FJZk25D%2Fimage.png?alt=media\&token=ff12f741-15b4-4e5f-a1bc-b9cf6aa012d1)

2\. Click on **Delete** comment&#x20;

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FNnbIKgls5ux9nIOq7qFh%2Fimage.png?alt=media\&token=f197bee2-88ed-47c2-b67a-32c84972f600)


# Pivoting dimensions

When working with the *Qommentary Pivot Table* extension, pivoting dimensions changes the orientation of data on the table so you can view data from another angle, or slice and dice information.

To start pivoting dimensions, simply drag and drop the desired dimension to the rows (left) or columns (top) section.

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FDzhDcxNxiIP9rku3dwwO%2Fimage.png?alt=media\&token=6e8810b3-8434-4669-8103-7417cced4f41)

{% hint style="warning" %}
A minimum of one dimension is required to be displayed as a row
{% endhint %}

If you wish to permanently save the dimension configuration on your table, please follow these steps:

1\. Pivot dimensions to achieve the desired configuration

2\. Click on **Edit sheet** and select the Pivot Table extension

3\. You will be prompted to Apply or Discard changes

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F4n3CLatiOPL0P5mAfEau%2Fimage.png?alt=media\&token=90006e55-1779-4ff0-8ccc-ef83e7f00c6b)

4\. Click on **Apply**


# Resizing table columns

When working with data, cell contents can often exceed the available column width causing text to get clipped.  Columns can be easily resized by hovering on the column handle and dragging to the desired position.&#x20;

This feature can be particularly useful when the *Indent rows* view has been turned off and there's multiple dimensions added as rows.

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F8RCv3ssyIlToGz4WdPkg%2FColumn%20resize.png?alt=media\&token=abbc72da-f3dc-42a4-93c9-34ed32f30088)


# Security roles

The **Pivot Table Admin** role in Qommentary will grant users and groups all permissions related to the Qommentary Pivot Table extension - only for applications which are accessible based on Qlik Sense security rules.

To grant a user this role, please follow these steps:

1\. Open the **Qommentary Admin Console**

2\. Go to **Users**

3\. Edit the user you wish to change

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FRDHRTyaaKsQlPIrqZblT%2Fimage.png?alt=media\&token=f85e4123-78c8-4cfc-8c87-3b94df86c38d)

4\. Click on the **Roles** dropdown and select **Pivot Table Admin**

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FFlyNZ9Uyp8Gf1yaY9z4w%2Fimage.png?alt=media\&token=95aec44f-9197-4822-b44b-176f5e701bfd)

5\. Click on **Save**

{% hint style="info" %}
You can also add permissions to **Groups** in Qommentary following the same steps as outlined above.
{% endhint %}


# Security permissions

Permissions in Qommentary gives you more access control over Qlik Sense streams, applications or sheets. Once the permission scope is set for users and/or groups, you can assign specific permissions to restrict what actions they can perform in the extension.

The *Qommentary Pivot Table* extension has the following permissions:

| Permission     | Description                             |
| -------------- | --------------------------------------- |
| Create comment | User can add comments to cells          |
| Delete comment | User can delete only their own comments |

To grant users permissions to the *Qommentary Pivot Table* extension, please follow the steps:

1\. Open the Qommentary Admin Console

2\. Go to **Security**

3\. Select the desired resource from the **Resource Directory Tree**

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FgrxHy4mVBqwYgW40mSvc%2Fimage.png?alt=media\&token=2a905ba0-e645-4dac-b948-a5dc8958e158)

4\. Add the desired **Users** and/or **Groups** to the resource

&#x35;**.** Click on the **Manage** button under *Permissions*&#x20;

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2FWHIs9ZqHPdLeYkUFuGlG%2Fimage.png?alt=media\&token=9b64eca5-6024-4b41-81c2-e8dd64f71e69)

6\. Select the desired permissions under **Pivot** section

![](https://401501562-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FymWrhVQRT6zjlb4bMphP%2Fuploads%2F1QXNxgChSfqHaZj9momW%2Fimage.png?alt=media\&token=28612b2a-8741-461f-8e4d-f176fba96548)

7\. Click on **Save**


# Welcome

![](https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MZ8XiZHdahFXQNHUipq%2F-MZ8_AktdwBW4T0HT4gZ%2Fwriteback-slide.png?alt=media\&token=0fed067e-1b54-4ea0-a306-d52df3a16efd)

The *Qommentary Writeback* extension is a powerful workflow tool which allows you to input data directly in Qlik Sense.

With a wide range of data connectors - including PostgreSQL, MS SQL Server and Oracle - data can be captured with a variety of input controls and automatically reloaded back into your application.

Say goodbye to Excel spreadsheets, and hello to centralised workflows in Qlik Sense!


# Setting up a connection

Before you start saving data in your *Qommentary Writeback* extension, you will need to create or select an existing data connection.

*Qommentary Writeback* supports a range of file and database connections:

* XML
* JSON
* PostgreSQL
* MySQL
* SQL Server
* Oracle

### Creating file connections

File connections are the easiest and fastest way to get started writing data in your Qlik Sense applications. It requires no database setup and data is saved in a file format.

To create a new file connection, please follow these steps:

1\. Edit your sheet  \
2\. Expand the **Data connections » Data Source** section

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYc83mR6uEJK-LxbNLy%2F-MYdFxidsZ5ueu8vua6H%2Fimage.png?alt=media&amp;token=f29d6a89-dee9-4f6e-8319-d1e5512f81d2" alt=""></div>

3\. Click on **Create a connection**\
4\. Select a file connection (i.e. XML, JSON)

![](https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYc83mR6uEJK-LxbNLy%2F-MYdHQWf4M0Or4fuTeLT%2Fimage.png?alt=media\&token=5f9d2888-17f7-4a55-bfc5-c9046dd91c0f)

5\. Fill out required details

![](https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYc83mR6uEJK-LxbNLy%2F-MYdJ2nEWbC8ryb7vOgS%2Fimage.png?alt=media\&token=7b766a7d-f179-47ee-a2e1-1acfe0e7951d)

6\. Optionally, you may click on **Test connection** to verify that the folder connection path is valid

![](https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdM5Zvqp8NUrEqpY3S%2F-MYdN4nUIXPDfnpOtGN3%2Fimage.png?alt=media\&token=29a09937-1f7c-45ef-aeb1-1975ceaf74d1)

7\. Click on **Create** button

If the Folder connection path is valid, the connection will be successfully created and applied to your current extension.

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdKTk92b_UyaUCGxfn%2F-MYdLn4o1f7QuBEfPe7p%2Fimage.png?alt=media&amp;token=44f8eb0a-d7f0-4e50-ab91-2c72fdbf3c5d" alt=""></div>

{% hint style="success" %}
Other file connections supported:

* JSON
  {% endhint %}

#### File connection properties

| Property name     | Description                                     | Default |
| ----------------- | ----------------------------------------------- | ------- |
| File name         | Name of your file (exc. extension name)         |         |
| Key column name   | Name of the primary key column                  |         |
| Enable audit logs | Enable to track and audit changes in your table | false   |

### Creating database connections

To create a new database connection, please follow these steps:

1\. Edit your sheet\
2\. Expand the **Data connections » Data Source** section

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYc83mR6uEJK-LxbNLy%2F-MYdFxidsZ5ueu8vua6H%2Fimage.png?alt=media&amp;token=f29d6a89-dee9-4f6e-8319-d1e5512f81d2" alt=""></div>

3\. Click on **Create a connection**\
4\. Select a database connection (i.e. PostgreSQL, MS SQL Server, etc)

![](https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdM5Zvqp8NUrEqpY3S%2F-MYdMGXiwsWiMkVWMoX0%2Fimage.png?alt=media\&token=b36a7771-5ccf-422a-ae02-90e389ef545e)

5\. Fill out required details

![](https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdM5Zvqp8NUrEqpY3S%2F-MYdNj_F2h8z75BA2MUv%2Fimage.png?alt=media\&token=dea4b278-76e6-4493-b010-9c654291a35c)

6\. Optionally, you may click on **Test connection** to verify that the database connection is valid\
7\. Click on **Create** button

If the database details are valid, the connection will be successfully created and applied to your current extension.

{% hint style="success" %}
Other database connections supported:

* PostgreSQL
* MySQL
* Oracle
  {% endhint %}

### Selecting an existing connection

When you add a Qommentary Writeback extension to your application, you can choose to create a new connection or select from an existing one.&#x20;

To select from an existing connection, please follow these steps:

1\. Edit your sheet  \
2\. Expand the **Data connections » Data Source** section

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYc83mR6uEJK-LxbNLy%2F-MYdFxidsZ5ueu8vua6H%2Fimage.png?alt=media&amp;token=f29d6a89-dee9-4f6e-8319-d1e5512f81d2" alt=""></div>

3\. Click on **Select existing connection** button\
4\. Pick a connection from the list

![](https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdPvCOv8oeG03DP9we%2F-MYdWD9IKitt-FW9GJR5%2Fimage.png?alt=media\&token=73788ab5-d74b-4286-9ad5-b96a65d4e6e7)

5\. Click on **Select** button

The selected connection is successfully applied to your current extension:

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdWNBZWQgw8LX-txIw%2F-MYeWBS76HnpsKtY-4rP%2Fimage.png?alt=media&amp;token=4bb40e26-17d4-40ef-90fc-2d6d70d7151f" alt=""></div>

### Removing a connection

If you wish to disassociate a currently selected connection from your extension, you may remove it following these steps:

1\. Edit your sheet\
2\. Expand the **Data connections » Data Source** section

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdWNBZWQgw8LX-txIw%2F-MYeWBS76HnpsKtY-4rP%2Fimage.png?alt=media&amp;token=4bb40e26-17d4-40ef-90fc-2d6d70d7151f" alt=""></div>

3\. Click on the "x" button

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYeWT1kjHPe9gMuHz2j%2F-MYeZ6HowN67w3E0ijfb%2Fimage.png?alt=media&amp;token=dd9d408c-c9a0-49be-a326-157c69d71b37" alt=""></div>

The connection is removed successfully.

{% hint style="info" %}
You'll need to select a data connection before data can be saved.
{% endhint %}

### Editing a connection

To edit a data connection, please follow these steps:

1\. Edit your sheet\
2\. Expand the **Data connections » Data Source** section

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdKTk92b_UyaUCGxfn%2F-MYdLn4o1f7QuBEfPe7p%2Fimage.png?alt=media&amp;token=44f8eb0a-d7f0-4e50-ab91-2c72fdbf3c5d" alt=""></div>

3\. Click on the pencil icon

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYeZhqN52Pnjpksmqps%2F-MYeaPfYvptsNiLvALFp%2Fimage.png?alt=media&amp;token=99e30e51-36f6-4643-bcf3-70be4f295bee" alt=""></div>

4\. Update details accordingly\
5\. Click on *Save* button

The connection is updated successfully.

### Deleting a connection

To delete a data connection, please follow these steps:

1\. Edit your sheet\
2\. Expand the **Data connections » Data Source** section

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYdWNBZWQgw8LX-txIw%2F-MYeWBS76HnpsKtY-4rP%2Fimage.png?alt=media&amp;token=4bb40e26-17d4-40ef-90fc-2d6d70d7151f" alt=""></div>

3\. Click on the trash icon

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYeZhqN52Pnjpksmqps%2F-MYeajrZm2KcaW62SZhr%2Fimage.png?alt=media&amp;token=4ea6dd17-6582-444d-b05b-c8a939ded367" alt=""></div>

4\. Once a confirmation message is displayed, click on **Confirm** button

The connection is deleted successfully.

{% hint style="danger" %}
This operation will permanently delete the connection from the system. &#x20;

Any other instances of Qommentary Writeback currently using this connection will not be able to save data until a new connection is selected.
{% endhint %}


# Defining a primary key

A primary key dimension is a field which contains keys unique for each record. When you add dimensions to your Qommentary Writeback table, you will need to select one dimension to be used as the **primary key**.

To select a dimension to be used as a primary key, please follow these steps:

1\. Add a dimension to your table

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYecTCmLO4suqN0VUqZ%2F-MYeeJZ3xS47WBkDNBpE%2Fimage.png?alt=media&amp;token=c5170220-0e5a-4ef6-92b0-0e25fbf43250" alt=""></div>

2\. Expand the dimension's properties\
3\. Click on the switch control to select dimension as **Primary key dimension**

<div align="left"><img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYecTCmLO4suqN0VUqZ%2F-MYeelqUCcGxzmXBasiN%2Fimage.png?alt=media&amp;token=51aa6f86-ef88-4cc3-a015-3c987c80e758" alt=""></div>

{% hint style="warning" %}
Be aware of any additional dimensions added which could split the primary key dimension forcing it to display duplicated values - thus breaking the primary key purpose.&#x20;

In that case, consider creating a **composite key**.
{% endhint %}

### Using a single dimension

When the dimension chosen to act as a primary key displays unique records in the table, then selecting a single dimension is sufficient.

Example:\
&#x20;<img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYefkTl0rEUw3HGf9lT%2F-MYegToQu6PukfcHUrMh%2Fimage.png?alt=media&amp;token=3ee7d00a-be7a-4d71-8af9-ffd77e6d8705" alt="" data-size="original">&#x20;

### Using a composite dimension

When a single dimension cannot produce unique records, then a composite dimension must be created.&#x20;

Example:\
&#x20;<img src="https://1677646431-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M43RhGzV8Plu0tfknia%2F-MYefkTl0rEUw3HGf9lT%2F-MYehMDwnTz-mHNfCLsw%2Fimage.png?alt=media&amp;token=7ece3283-e396-41cb-b38b-23e3da56e5e7" alt="" data-size="original">&#x20;

{% hint style="info" %}
You may hide the column if you do not wish to display it in your table.
{% endhint %}


# Adding data to your table

When you drag and drop a *Qommentary Writeback* extension to your sheet, you will be prompted to select Dimensions and Measures.&#x20;

Adding dimensions and measures works in the same fashion as native Qlik Sense charts.&#x20;

{% hint style="warning" %}
A minimum of **one (1) dimension** is required for the extension to be initialized.
{% endhint %}

Additionally, the following *Qommentary Writeback* properties are available:

### Dimensions

| Property              | Description                                                    | Default |
| --------------------- | -------------------------------------------------------------- | ------- |
| Primary key dimension | Enable if dimension will be used as a primary key              | `false` |
| Hide column           | If ticked, dimension will not be displayed in table            | `false` |
| Column width          | Custom column width in pixels                                  | `125px` |
| Allow sorting         | Allows dimension to be sorted in ascending or descending order | `true`  |

### Measures

| Property      | Description                                                    | Default |
| ------------- | -------------------------------------------------------------- | ------- |
| Hide column   | If ticked, dimension will not be displayed in table            | `false` |
| Column width  | Custom column width in pixels                                  | `125px` |
| Allow sorting | Allows dimension to be sorted in ascending or descending order | `true`  |




---

[Next Page](https://knowledgebase.qommentary.com/llms-full.txt/1)

