Expertflow Contact Center Generic Library Deployment Guide

Purpose

This deployment guide provides detailed instructions for installing, configuring, and using the Expertflow Generic Connector, which can be used to integrate with multiple CRMs.

Intended Audience

This document is intended for customers who want to deploy a EFCX Generic Connector Library.

Deployment Guide Structure

This deployment guide is divided into two main parts:

  1. Deploying the Generic EFCX Connector Library.

Deploying the Generic EFCX Connector Library

Before you begin, verify that on the server, you have:

Pulling The EFCX Generic Connector from Git

  1. Create a directory with name as mkdir efcx-generic-connector. or according to your ease.

  2. Navigate to newly created directory by cd efcx-generic-connector.

  3. Pull the the code from the:

git clone --branch yaml-1.0.0 --depth 1 https://gitlab.expertflow.com/cti/efcx-generic-connector
  1. Run cd efcx-generic-connector/kuberenetes to change directories . This is where all the YAML files are stored.

Setting Up Environment

We use Kubernetes for our server deployment, on which the static files for the connector will be served, and where the EFCX Generic Connector will be running.

Namespace

Create a namespace “expertflow” if it doesn’t exist.

kubectl create namespace expertflow

Configure Ingress.yaml

EFCX Generic Connector should be accessible by a fully qualified domain name. Assign the FQDN.

Replace <FQDN> with your FQDN for EFCX Generic Connector (e.g. projectsdemo.expertflow.com) and run this command.

sed -i 's/devops[0-9]*.ef.com/<FQDN>/g' efcx-ingress.yaml

Create Self-Signed SSL/TLS Ingress Certificates (optional if already present)

Please modify the <FQDN> with your current FQDN before applying the following command.

  1. Create IngressCerts directory (optional)

    mkdir ingress-certs  
    
  2. cd ingress-certs
    
  • set the Variable name to your FQDN (e.g. projectsdemo.expertflow.com).
    The ${FQDN} variable in following commands will be replaced with the value you provided in this step

    export FQDN=<enter FQDN here>
    
  • Now generate a secret with the following commands.

    openssl req -x509 \ -newkey rsa:4096 \ -sha256 \ -days 3650 \ -nodes \ -keyout ${FQDN}.key \ -out ${FQDN}.crt \ -subj "/CN=${FQDN}" \ -addext "subjectAltName=DNS:www.${FQDN},DNS:${FQDN}" 
    
  • Create a Kubernetes secret in your required namespace. In our case it’s expertflow

    kubectl -n expertflow create secret tls hs-ef-ingress-tls-secret --key  ${FQDN}.key --cert ${FQDN}.crt
    

Configure efcx-deployment.yaml

  • Open the efcx-deployment.yaml file.

  • Replace the image with the updated build tag.

  • Updated build tag is

    gitimages.expertflow.com/cti/efcx-generic-connector:1.0.0
    

Applying Kubernetes YAMLs

  • Apply the service with kubectl apply -f efcx-service.yaml

  • Apply the image-pull secret with kubectl apply -f efcx-imagePullSecret-expertflow.yaml

  • Apply the Ingress with kubectl apply -f efcx-ingress.yaml. (For RKE2-based Ingresses using Ingress-Nginx Controller)

  • Apply the deployment with kubectl apply -f efcx-deployment.yaml

Access EFCX Generic Connector URL

You can access the EFCX generic connector using below URL:

https://projectsdemo.expertflow.com/generic-connector/efcx-wrapper.js