Contents
Provisioning
Perform the following items before deploying EX Engage Connector:
- Download EXCS, EXAS, and EXCP packages from the FTP, extract the containers, and deploy those containers to your local container registry
- Move EXOP bootstrap package downloaded from the FTP (e.g. exop-100.0.100.XX.tgz) to the Bootstrap VM.
- Go to the installation directory where the bootstrap script is copied and extract the package.
- Under the installation directory, verify if the following files are available:
- .env
- bootstrap.py
- Docker Compose files for EXCS, EXCP, and EXAS
- alerts.yml
- prometheus.yml
- Make sure the file is executable: chmod +x bootstrap.py
- Run ./bootstrap.py --help and verify if the following screen is displayed:
Welcome to EXEC deployment bootstrap script. Following actions are supported init - Initialize EXEC environment start - Start EXEC services stop - Stop EXEC services restart - Restart EXEC services update - upgrade/downgrade EXEC services rollback - rollback EXEC service
Provisioning EX Engage Connector Agent State Sync
EXAS requires an OAuth client with grant type Client Credentials created in the EX Org to connect to GC. The EX Integration role should be assigned the OAuth client.
To provision the Engage Contact Center for Agent Status Synchronization, the hybrid_integration transaction object has to be configured.
EXAS reads configuration information from the hybrid_integration transaction object. This transaction is created and managed in the Engage Configuration DB. EXCS stores the content of this transaction in Redis from where EXAS reads it when needed.
The Location option should be configured as:
- for the single-tenant Engage deployment, the transaction object should be created in the Transactions configuration unit in the Resources structure.
- for the multi-tenant Engage deployment, there must be a separate transaction object for each tenant. Each transaction should point at a dedicated EX Org. EX Orgs cannot be shared by multiple Engage tenants.
The Annex folder that contains the EXAS configuration should be configured as:
- Folder : agent_state_sync
| Key | Parameter | Description |
|---|---|---|
| client_id | Integrations / OAuth / <OAUTH_CLIENT_NAME> / Client Details / Client ID | OAuth client ID |
| client_secret | Integrations / OAuth / <OAUTH_CLIENT_NAME> / Client Details / Client Secret | OAuth client secret |
| agent_polling_interval | time (in seconds) to poll agent list from Redis for possible new or deleted agents to monitor This interval is also used to refresh Agent State Sync's cached hybrid_integration. |
The following environment variables control the EXAS connectivity. They can be configured in the EXEC bootstrap script:
| Variable | Mandatory | Description |
|---|---|---|
| EX Org | ||
| ORG_ID | Yes | EX Org ID taken from the following path in the GC UI Admin view: Organization Settings / Organization Details / Advanced / Organization ID |
| Engage Tenant | ||
| TENANT_ID | Yes | Unique ID to identify the Engage tenant. DBID of the Tenant configuration object in the Engage Configuration DB can be used. |
| TENANT_NAME | No | Human-friendly name to identify the tenant used in all log messages and Prometheus metrics. Defaults to the same value as TENANT_ID if none is provided. |
| Redis | ||
| REDIS_HOST | Yes | Hostname/IP-address of Redis in a format redis://elasticache For the SSL connection it should be set to rediss://elasticache |
| REDIS_PORT | Yes | Redis port (default is 6379) |
| REDIS_PASSWORD | No | Redis password. This environment variable is ignored if CONFIG_FOLDERS variable is defined. |
| CONFIG_FOLDERS | No | Path to a file called 'REDIS-CACHEKEY', which contains Redis password. |
| Engage Stat Server | ||
| STAT_SERVER_PRIMARY_HOST | Yes | Host name or IP-address of the primary stat server |
| STAT_SERVER_PRIMARY_PORT | Yes | Port of the primary stat server |
| STAT_SERVER_BACKUP_HOST | Yes | Host name or IP-address of the backup stat server |
| STAT_SERVER_BACKUP_PORT | Yes | Port of the backup stat server |
| Logging | ||
| LOG_PATH | No | File system path for logs. If not provided, logs will be directed to stdout |
| LOG_FILE_NAME | No | File name for logs. If LOG_PATH is specified, this environment variable further describes the file name. Example: 'exas-<TENANT_ID>.%Y%m%d_%H%M%S_%L.log' |
| LOG_LEVEL | No | Log level |
| Other | ||
| HTTPS_PROXY | No | HTTPS Proxy server to use for outbound connections to the internet |
| SERVICES_INTERNAL_PORT | No | EXAS listening port Default: 3630 |
Provisioning EX Engage Connector Conversation Provider
EXCP requires an OAuth client with grant type Client Credentials created in the EX Org to connect to GC. The EX Integration role should be assigned the OAuth client.
To provision the Engage Connector Conversation Provider, the hybrid_integration transaction object has to be configured.
The Annex folder that contains the EXCP configuration should be configured as:
- Folder : agent_state_sync
| Key | Parameter | Description |
|---|---|---|
| client_id | Integrations / OAuth / <OAUTH_CLIENT_NAME> / Client Details / Client ID | OAuth client ID |
| client_secret | Integrations / OAuth / <OAUTH_CLIENT_NAME> / Client Details / Client Secret | OAuth client secret |
The following environment variables control the EXCP connectivity. They can be configured in the EXEC bootstrap script:
| Variable | Mandatory | Description |
|---|---|---|
| EX Org | ||
| ORG_ID | Yes | EX Org ID taken from the following path in the GC UI Admin view: Organization Settings / Organization Details / Advanced / Organization ID |
| Engage Tenant | ||
| TENANT_ID | Yes | Unique ID to identify the Engage tenant. DBID of the Tenant configuration object in the Engage Configuration DB can be used. |
| Redis | ||
| REDIS_HOST | Yes | Hostname/IP-address of Redis in a format redis://elasticache For the SSL connection it should be set to rediss://elasticache |
| REDIS_PORT | Yes | Redis port (default is 6379) |
| REDIS_AUTH_PASSWORD | No | Redis password. Open?: How to provide it avoiding configuring it in clear text? |
| EXCS access | ||
| INTERNAL_ELB_FQDN | Yes | EXCS FQDN or IP-address |
| INTERNAL_ELB_CS_PORT | Yes | EXCS listening port |
| Engage SIP Server | ||
| VOICE_SERVER_CALL | Yes | A list of SIP Server host:port for receiving Call Monitoring Events. EXCP should connect to the default port. Format: primary1:port/backup1:port |
| VOICE_SERVER_AGENT | Yes | A list of SIP Server host:port for for receiving Extension DN Events. EXCP should connect to the default port. Format: primary1:port/backup1:port |
| VOICE_SERVER_VQ | Yes | A list of SIP Server host:port for for receiving VQ DN events. EXCP should connect to the default port. Format: primary1:port/backup1:port |
| DN_REGISTER_DELAY_MS | No | The delay in milliseconds to be applied while registering DNs. DNs will be registered up to the configured chunk size and then a delay will be applied. Default is 1000 milliseconds |
| DN_REGISTER_CHUNK_SIZE | No | The number of DNs to register before delaying as per the delay set from DN_REGISTER_DELAY_MS. Default is 100 |
| VQ_REGISTER_DELAY_MS | No | The delay in milliseconds to be applied while registering VQs. VQs will be registered up to the configured chunk size and then a delay will be applied. Default is 1000 milliseconds |
| VQ_REGISTER_CHUNK_SIZE | No | The number of VQs to register before delaying as per the delay set from VQ_REGISTER_DELAY_MS. Default is 100 |
| DN_REGISTER_INTERVAL | No | How often to check if there are new DNs to register. Time in milliseconds. Default is 60000 milliseconds |
| VQ_REGISTER_INTERVAL | No | How often to check if there are new Vqs to register. Time in milliseconds. Default is 60000 milliseconds |
| Logging | ||
| LOG_PATH | No | File system path for logs. If not provided, logs will be directed to stdout |
| LOG_FILE_NAME | No | File name for logs. If LOG_PATH is specified, this environment variable further describes the file name. Example: 'excp-.%Y%m%d_%H%M%S_%L_${TENANT_ID}_${HOSTNAME}.log' |
| LOGGING_LEVEL | No | Defines the EXCP log level. Values: trace, debug, info, warn, error, fatal Default value - debug |
| Other | ||
| HTTPS_PROXY | No | HTTPS Proxy server to use for outbound connections to the internet |
| SERVICES_INTERNAL_PORT | No | EXCP listening port Default: 3630 |
Provisioning EX Engage Connector Config Sync
The general folder that contains the EXCS configuration should be configured as:
| Key | Parameter | Description |
|---|---|---|
| organization_sname | Organization Setting / Organization Details / Short Name | Short name of the EX Org |
| organization_id | Organization Setting / Organization Details / Advanced / Organization ID | EX Org Organization ID |
| base_service_url | https://api.mypurecloud.com.au | Base service URL used for the REST API calls to the EX Org. |
The config_sync folder that contains the EXCS configuration should be configured as:
| Key | Parameter | Description |
|---|---|---|
| client_id | Integrations / OAuth / <OAUTH_CLIENT_NAME> / Client Details / Client ID | OAuth client ID |
| client_secret | : Integrations / OAuth / <OAUTH_CLIENT_NAME> / Client Details / Client Secret | OAuth client secret |
| skill_level_min_value | https://api.mypurecloud.com.au | Minimal value of an Engage Person's Skill level expected to be configured in Engage. If an Engage Person's Skill level is less than skill_level_min_value, then the value of the skill_level_min_value is used to translate Engage Person's Skill level into a GC User Proficiency level. |
| skill_level_max_value | Maximum value of an Engage Person's Skill level expected to be configured in Engage. If an Engage Person's Skill level is greater than skill_level_max_value, then the value of the skill_level_max_value is used to translate Engage Person's Skill level into a GC User Proficiency level. | |
| nonagent_role_names | A semicolon-delimited list of names of the Genesys Cloud roles to assign to a Genesys Engage Person which is not an agent. | |
| agent_role_names | A semicolon-delimited list of names of the Genesys Cloud roles to assign to a Genesys Engage Person which is an agent. | |
| supervisor_role_names | A semicolon-delimited list names of the Genesys Cloud roles to assign to a Genesys Engage Person which is a supervisor. | |
| username_domain_name | This is an option parameter which should be configured if User Names of the Engage Persons are not in a form of a valid email address. This parameter holds a valid domain value, which can be used after @ in the email address. For example, exevolution.com. |
| Environment Variable | JSON parameter | Mandatory | Description |
|---|---|---|---|
| Redis | |||
| REDIS_HOST | Yes | Hostname/IP-address of Redis | |
| REDIS_PORT | Yes | Redis port (default is 6379) | |
| Engage Configuration DB | |||
| DB_HOST | Yes | Engage configuration database host | |
| DB_PORT | Yes | Engage configuration database port | |
| DB_TYPE | Yes | RDBMS type Values: postgresql | |
| DB_DATABASE | Yes | Database name | |
| DB_USER | Yes | Database user | |
| DB_PASSWORD | Yes | Database password | |
| DB_SSL | Yes | Set this value to "true" to use SSL for database connection. Values: true/false (default) Note from the original description: This only works the certificate used by the database server to be signed by one of the CA trusted by the system where Config Sync runs. | |
| DB_POLL_INTERVAL | No | How often (in seconds) does Config Sync polls the cfg_hdb_object table in the database to look for changes since the previous update finished processing; optional (default=5) | |
| TENANT_ID | Yes | Unique ID to identify the tenant connected to by the Config Sync instance. DBID of the Tenant configuration in the Engage Configuration DBID can be used. This parameter is not required for the EXCS container running in read-only mode. | |
| TENANT_NAME | No | Human-friendly name to identify the tenant used in all log messages and Prometheus metrics. Defaults to the same value as TENANT_ID if none is provided. | |
| Engage Configuration Object Selection | |||
| SYNC_CUSTOMER_OBJECTS_ONLY | No | When set to "true", EXCS only synchronizes objects under customer folder hierarchy to Genesys Cloud. Unless SYNC_CUSTOMER_FOLDER_NAME is specified, treat TENANT_NAME as the top-level customer folder. See Folder Filtering section for more information. Default is "false", i.e. all objects of the supported types are synchronized. Values: true/false (default) | |
| SYNC_CUSTOMER_FOLDER_NAME | No | When SYNC_CUSTOMER_OBJECTS_ONLY is set to "true", use the folder name configured here instead of the value of TENANT_NAME. | |
| Logging | |||
| LOG_PATH | No | Path to the log file directory. Enables EXCS to write logs on disk. Customer is responsible for implementing a log retention policy. | |
| LOG_FILE_NAME | No | Prefix of the EXCS log file name. Enables EXCS to write logs on disk. Customer is responsible for implementing a log retention policy. | |
| LOGGING_LEVEL | No | Defines the EXCS log level. Values: trace, debug, info, warn, error, fatal | |
| Other | |||
| HTTPS_PROXY | No | HTTPS Proxy server address using for outbound connections to GC. If set, then REST API requests to GC will be forwarding through the proxy instead of delivering them directly. | |
