Skip to main content
Skip table of contents

Deployment Guide

This deployment guide provides detailed, step-by-step instructions to deploy the Quality Management (QM) as part of the Expertflow CX platform. It also includes guidance for deploying the QM-Connector, which extends quality management capabilities to conversations conducted via Cisco Contact Center.

This document outlines the Prerequisites required for deployment, including QM backend Deployment, QM Connector deployment. After deploying QM, one has to configure IAM (Keycloak) configurations for QM.

Prerequisites

QM Backend Deployment

Move to the kubernetes directory in the cloned Expertflow CX branch

CODE
cd CX-4.10/kubernetes

1. Create the database in Postgres

QM Backend requires a db named qm_backend in Postgres, already deployed in the ef-external namespace. Follow the steps below to create one.

  1. exec into the ef-postgresql-0 pod in the ef-external namespace

CODE
kubectl -n ef-external exec -it ef-postgresql-0 -- bash
  1. execute the environment setup for ef-postgresql-0 ( Only needed when the postgresql is running in non-HA mode , like no pgpool and multiple replicas of postgresql are running )

CODE
/opt/bitnami/scripts/postgresql/entrypoint.sh /bin/bash
  1. Log into Postgres using the following command

CODE
psql --host ef-postgresql -U sa postgres -p 5432
  1. The system will ask for the password for the user sa. Enter the password, configured during deployment of Postgres. You should now be logged into the Postgres shell.

  2. Create the required database and extensions using the following commands.

CODE
CREATE DATABASE qm_db;
\c qm_db;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
  1. Then to exit from the shell

CODE
\q
exit
exit

2: Deploy QM Backend

Create and Customise cx-qm-custom-values.yaml

Customise cx-qm-custom-values.yaml

You must first create custom values.yaml file to define your minimum required configurations.

Step 1: Create the Values File

Run the following command to create a new file:

CODE
vi helm-values/cx-qm-custom-values.yaml

Step 2: Add Required Minimum Configuration

In the opened file, add the following section to define the FQDN (Fully Qualified Domain Name) for ingress routing:

CODE
global:   
  ingressRouter: <CUSTOM-FQDN> 

🔁 Replace <CUSTOM-FQDN> with your actual domain, e.g., devops.example.com.

This is the minimum required customisation for the CX Helm chart to work.

Optional: Add Further Customisations

You can extend the same cx-qm-custom-values.yaml file with additional configurations as needed, including environment variables, replica counts, etc.

To view all available default configurations and decide what you want to override:

CODE
helm show values expertflow/qm --version 4.10.0 

This command prints the full default values.yaml file used by the CX chart, which serves as a reference for all configurable parameters.

We recommend only overriding the values you need in your custom file to keep the configuration lean and maintainable.

Finally, deploy the QM using the following command.

CODE
helm upgrade --install --namespace=expertflow --set global.efCxReleaseName="ef-cx" qm  --debug --values=helm-values/cx-qm-custom-values.yaml expertflow/qm --version 4.10.0

To see the QM-related options in Unified Admin, you also need to do some configuration on IAM (Keycloak) and assign related roles to the users. Follow these instructions for the configurations.

QM Connector Deployment

QM Connector is an optional component. It only needs to be deployed if you want to perform quality management on the conversations done through Cisco Contact Center. It pushes the call recordings as conversations into the Expertflow CX from VRS. VRS is a Voice Recording Solution, which lets you record and playback recordings for future use. See the following guide to install VRS

Prerequisites

1. Configure Channel on Unified Admin

One needs to create a channel of type CISCO_CC for both Inbound and Outbound, for communication between Expertflow CX and the QM Connector.

  1. For outbound, select a 4-5 Digit Number, and set it as UCCE_OB_SERVICE_IDENTIFIER in helm-values/cx-qm-custom-values.yaml

image-20250305-063154.png

Configure Channel

  1. Set Routing Mode as External

  2. Set the Channel Model as HYBRID

image-20250305-063332.png
  1. Create a new user in Realm, set its name & password as ‘vrs’, and assign all 21realm-management’ roles to that user. SetKEYCLOAK_USERNAME & KEYCLOAK_PASSWORD in values.yaml

image-20250305-072801.png

2. Deploy QM Connector

  1. By default QM Connector is not enabled for deployment in the helm-values/cx-qm-custom-values.yaml file. Edit the helm-values/cx-qm-custom-values.yaml file to set the enabled flag to true for qm-connector.

  2. Update the environment variables given in the table below, under QM-Connector in the helm-values/cx-qm-custom-values.yaml file, according to the channel, VRS, and UCCE configuration.

  3. Run the deploy command.

CODE
helm upgrade --install --namespace=expertflow --set global.efCxReleaseName="ef-cx" --version 4.10.0 qm  --debug --values=helm-values/cx-qm-custom-values.yaml expertflow/qm

Env var

Description

Example values

RECORDING_SERVER_FQDN

Recording Server IP

*

EFCX_FQDN

CX FQDN

https://efcx-qm.expertflow.com/

CALL_BACK_URL

Webhook for conversation creation

http://webhook.site/8d7dc0b5-b886-40ee-9203-150699e4f9ce

UCCE_ENGINE

UCCE DB Engine

sqlserver

UCCE_IP

UCCE IP

*

UCCE_PORT

UCCE DB port

*

UCCE_DATABASE

UCCE awdb database name

*

UCCE_USERNAME

UCCE awdb database user’s username

*

UCCE_PASSWORD

UCCE awdb database user’s password

*

UCCE_OB_SERVICE_IDENTIFIER

Service Identifier for outbound calls

8899

KEYCLOAK_REALM_NAME

Realm name from EFCX IAM (keycloak)

expertflow

KEYCLOAK_CLIENT_ID

KeyCloak client ID from IAM (keycloak)

cim

KEYCLOAK_CLIENT_SECRET

Add the client secret from the IAM (keycloak)

ef61df80-061c-4c29-b9ac-387e6bf67052

KEYCLOAK_USERNAME

IAM (Keycloak) User with all the realm-management Roles

vrs

KEYCLOAK_PASSWORD

The password of the IAM (keycloak) User with all the realm-management Roles

vrs

KEYCLOAK_AGENT_ROLE_NAME

The role that needs to be assigned to the new Agent created with QM-connector

agent

KEYCLOAK_AGENT_ROLE_ID

Role-Id that needs to be assigned to new Agent created with QM-connector

1903735d-5bcc-4253-a05e-ea1487195c9c

DB_NAME

Name of the VRS database

*

DB_USER

Username for VRS database

*

DB_PASSWORD

Password for the VRS database

*

DB_ENGINE

The engine on which the VRS database is running i.e MySQL

sqlserver

DB_HOST

Name or IP of the host on which the VRS database is active

*

DB_PORT

Port of the VRS Database

*

DB_DRIVER

Driver on which VRS database is running i.e mysql drive

com.microsoft.sqlserver.jdbc.SQLServerDriver

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.