Skip to main content
Skip table of contents

Channel Manager

Customer Channel Manager (CCM) is the component for connecting customer channels such as Facebook and Viber. See Customer Channels for all supported channels and channel capabilities.

The docker-compose file for Customer Channel Manager is located at <install-dir>/sds/docker-compose-ccm.yml and for HA deployment, docker-compose file is located at <install-dir>/sds/docker-compose-ha-ccm.yml. APIs exposed and consumed by Channel Manager are documented on CCM 3.x APIs.

Webchat is not managed by Channel Manager. Webchat is managed by the Chat server component and Customer Gadget.

Deployment Models

The Channel Manager component is independent deployable component and maybe configured to run in integration with any of the following:

Hybrid ChatWith HybridChat, Channel Manager sends customer requests to HybridChat and sends customer the response receive received from the Hybrid Chat system.
3rd party CRMFor SMS delivery notification to a CRM. 

DEPRECATED To fetch and send SMS campaign messages from the ECM database. 

After the next major release when HybridChat is properly merged in CIM, ECM will also be merged in CIM and will then be available as a CIM solution component.

Configurations for Hybrid Chat Integration

Config ParameterDescriptionSample Value


Specify CHAT_SOLUTION_URL as the REST API URL of the Hybrid Chat server.

Channel Manager calls this REST API to send a customer message to Hybrid Chat. 


Should Channel Mananger subscribe to AMQ?

  • true - for HC integration
  • false - for standalone mode

SKILL_GROUPSwhatsapp, premium|facebook, gold|sms, silver|smpp, bronze

An administrator can add a channel name and the respective queue in comma separated values. Multiple channel configurations must be separated by using a PIPE | sign.

If the configured queue is not available in MRE, the chat will be queued to the default queue.

Twilio Integration for SMS and WhatsApp

Twilio SMS IntegrationSee Twilio SMS Integration for configuration parameters of Twilio SMS integration.
Twilio WhatsApp integrationSee (3.15 ) Twilio WhatsApp Integration for configuration parameters of Twilio WhatsApp integration.
360Dialog WhatsApp integrationSee 360Dialog WhatsApp Integration for configuration parameters of 360Dialog WhatsApp integration.
SMPP SMS IntegrationSee SMPP SMS Integration for configuration parameters of Twilio SMPP integration.

File Engine Integration

The Hybrid Chat File Engine service that stores files in MinIO. This set of variables define File Engine service discovery parameters.

Config ParameterDescriptionSample Value


File engine URL to upload files to. This is used by all the internal components. 



For public access, this path is used.https://HC-FQDN/file-engine

CRM Integration

To push delivery notification to a 3rd party CRM via REST. 

Config ParameterDescriptionSample Value
IS_CRM_UPDATE_DISABLEDIf set to false, no sms delivery notification will be sent to third-party app like CRM

Any third party REST API URL and its credentials to push delivery notification

CRM_API_USERCRM API username for basic auth

Facebook Integration

Config ParameterDescription
FACEBOOK_APP_SECRETIt is a 32 digit code generated by the Facebook app to avoid any kind of third-party interference. It is generated when the user navigates to the basic setting in the Facebook app and provides his password.

Enabling SSL 

Variable NameDescriptionSample Value

Specifies if Customer Channel Manager hosts its REST Web-services (Web-hooks for Facebook, Twilio and Viber) over HTTPS or HTTP. Possible values are:

  1. true - enable HTTPS
  2. false - disable HTTPS


Path to SSL trust store, if not set then default /app/trustStore.jks will be used that is shipped with the docker image. This will be a path from container and an outside volume should be mounted to this path to have customer-specific trust store containing CA roots for Facebook, Twilio and Viber.

Default volume mounted is /var/lib/expertflow/docker/certificates/smsTrustStore.jks which is mapped to /app/trustStore.jks


This is password for the trust store. Default is Expertflow464.

This and below 3 variables are used to enable SSL over CCM APIs if the above variable (ENABLE_SSL) is set to true. If ENABLE_SSL is set to true and this and below 3 variables are not set then default certificates keys are used to enable SSL.


Type of the key store.


Keystore name which holds ssl certificate. Key store file should be placed in a directory where compose file runs from. That directory should be mounted to “/app/ssl” is CCM server.

     - "/root/ssl/:/app/ssl"

SSL Key store path. A volume from the host machine that contains Key store file should be mounted into sms-connector container and this variable will hold mounted path of container.

example: /app/ssl/keyStore/keyStore.jks

SSL_KEY_PASSSSL key password. Default is Expertflow464.


The default trust store contains CA roots for Twilio, Facebook and Viber. If a certain CCM deployment is having SSL problems with Facebook, Viber or Twilio connection, follow these steps:

  1. Access HC host machine via ssh
  2. Fetch certificates from remote server using openssl client e.g. for Twilio:

    openssl s_client -showcerts -connect
  3. Grab the root certificate from output and check it with any certificate decoder. Root certificate should be the last certificate in chain of the output returned by openssl client.
  4. If you are unable to perform step # 3, you can paste the root certificate in a certificate.crt file and check it using openssl client e.g.

    openssl x509 -in certificate.crt -text -noout
  5. Check if the certificate authority in HC host machine is different than standard CA of server, if yes, create a certificate.crt file and add it to trust store of CCM. 
  6. Remove CCM container and recreate.

Log Settings

Variable NameDescriptionSample Value
5 MB
5 GB

Forward Proxy Setup


ActiveMQ Integration

When integrated with Hybrid Chat, CCM receives messages from HybridChat ActiveMQ queue. 

Variable NameDescription

Enables/Disables connection over SSL between CCM and ActiveMQ. Possible values are:

  1. true
  2. false

Default is "false"


ActiveMQ host IP or FQDN. Default is "" 


ActiveMQ port. Default is "61616" 

AMQ_TRUST_STORE_PATHIf this and below 3 variables are not set then default truststore and keystore will be used
shipped with sms-connector image inside /app directory and names client.ts and client.ks
respectively - /app/client.ts
AMQ_KEY_STORE_PATHKey Store path - /app/client.ts

Key Store password

Any limitations on the integration? For example, the Hybrid Chat solution works only with plain text. What other formats/messages would this integration not support?>


ActiveMQ queue from where sms-connector will read messages that are submitted by chat server and push them to Twilio for sending

example: outbound-sms


Specifies to enable/disable CCM ActiveMQ consumer. ActiveMQ consumer can be disabled when CCM is deployed standalone with CIM and does not require integration with HC.

Possible values are:

  1. true 
  2. false 

Default value is true.


Specifies to enable/disable CCM ActiveMQ Producer. When Customer Channel Manager is deployed in integration with HC, it does not need to publish SMS delivery reports as of now, so its value should be false. However, when Customer Channel Manager is deployed in integration with Customer Interaction Manager (CIM), this value needs to be true to publish SMS delivery reports to CIM. 

Possible values are:

  1. true
  2. false

Default value is false.

Customer Inactivity Timeout

Enables/Disables customer inactivity time.If customer is inactive for configured timeout , chat will be ended. 

Variable NameDescription

Default value is -1 , but can be set to desired time in seconds e.g., 30

Customer Channel Manager Limitations

  1. CCM inbound API for incoming SMS and delivery-notification API for delivery notifications should be available over the internet.
  2. Only one Twilio account can be used with CCM at a time.

Customer Channel Manager APIs


Rest APIs documentation can be found here.

ActiveMQ API

CCM consumes and pushes to Twilio messages from queue with name set in AMQ_OUTBOUND_QUEUE variable. The type of messages should be with name SendSms and the content should be in JSON format with the following definition.

  "text":"<smsText>" , 


  • number - is the phone number where the SMS should be sent 
  • text - SMS text
  • id - (optional) any application assigned identifier for tracking this message in the application
JavaScript errors detected

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

If this problem persists, please contact our support.