Creatio development guide
PDF
This documentation is valid for Creatio version 7.15.0. We recommend using the newest version of Creatio documentation.

Exchange Listener synchronization service

Glossary Item Box

Introduction

The Exchange Listener synchronization service enables synchronizing Creatio with MS Exchange via the EWS (Exchange Web Services) protocol. This article covers deploying the Exchange Listener component for Creatio installed on-site.

The service consists of two required components:

  • The Exchange Listener primary module;
  • NoSQL DBMS Redis.

The Exchange Listener module initiates the outgoing connection to EWS API using the mailbox credentials and creates a subscription for catching events when new emails arrive. An open subscription remains in the component memory to ensure the quickest possible reaction to receiving a new email. When an event about a new email is received, the email sample downloads.

Redis DBMS enables creating a scalable and fault-tolerant system of processing nodes. Redis repository contains information about the mailboxes that are served. This lets any container process Creatio queries for adding a new subscription or check the status of a specific subscription regardless of the subscription node.

Requirements to Redis:

  • anonymous access allowed
  • separate database available for the Exchange Listener service operation

Using an in-memory repository will be enough for deploying the Exchange Listener service.

Service deployment (recommended)

We recommend using the Kubernetes orchestrator and Helm package manager to deploy the service.

Target environment:

  1. The Kubernetes cluster. Read more about how to set up and manage the cluster on the  Kubernetes documentation website.
  2. The Helm package manager installed. Learn more about installing the package manager on the  Helm documentation website.

After you configure the necessary environment, you can start deploying the service.

Step 1. Installing Redis

Use the GitHub website to learn more about how to install Redis using Helm.

Example of a command for installing Redis:

helm install --namespace <namespace name> --set usePassword=false --set=slave.persistence.enabled=false --set master.persistence.enabled=false --set cluster.enabled=false --name <redis_deployment_name> stable/redis

Step 2. Installing the Exchange Listener primary module

To install the module,  download the helm package.

Find the available parameters of the helm package in the table 1 below:

ATTENTION

For newer Kubernetes versions, you will need to specify the API version and add the following parameter:

--set apiVersion=apps/v1

Example of a command for installing Exchange Listener using the service address and relative path:

helm install --set env.host=<redis_host> --set ApiUrl=<kubernetes_url> --set ingress.path=<listener_path> --set apiVersion=apps/v1 --namespace <namespace name> --name exchangelistener </path/to/helm/exchangelistener.tgz>

Exchange Listener address – <kubernetes_url>/<listener_path>.

You can check whether the service is enabled by making a query to the following address: <kubernetes_url>/<listener_path>/api/listeners/status  (Fig. 1). 

Example of installing the Exchange Listener using Node IP and port address:

helm install --set env.host==<redis_host> --set service.type=<node_IP> --set service.nodePort=<node_port> --set apiVersion=apps/v1 --namespace <namespace name> --name exchangelistener </path/to/helm/exchangelistener.tgz>

Exchange Listener address – <node_IP:node_port>.

You can check whether the service is enabled by making a query to the following address: <node_IP:node_port>/api/listeners/status  (Fig. 1).

Fig. 1. Example of an Exchange Listener service response

 Scaling

By default, separate nodes of the  StatefulSet type process the queries based on 1 processor replica per 50 active mailboxes. The number of replicas depends on the replicaCount (table. 1) parameter. You can increase the number of processors by specifying the needed value. You can configure automatic scaling depending on the number of active subscriptions. To learn more, contact support@creatio.com.

Table 1. Available parameters of the Exchange Listener helm package

Parameter name Parameter description Default value
replicaCount Number of StatefulSet query processors 2
service.type Service type (you can learn more about the Kubernetes service types in the corresponding documentation). ClusterIP
service.nodePort If the service.type parameter equals NodePort, specify the external service port in this parameter (read more about the  NodePort type in the Kubernetes documentation).
env.host Host address for Redis
env.port Host port for Redis 6379
env.base Database number for Redis 0
ingress.enabled Using address overriding via ingress true
ApiUrl Service address if ingress.enabled=true
ingress.path Service relative path
log4Net.level Logging level by default Info

 Setting up the Exchange Listener service on the side of Creatio

Step 1. Checking whether the anonymous ExchangeListenerService is enabled

The anonymous ExchangeListenerService must be available at [Creatio application address]/0/ServiceModel/ExchangeListenerService.svc (Fig. 2).

Fig. 2. An example of the response from the AnalyticsService service

 

Step 2. Correcting the system settings

ExchangeListenerServiceUri – [the service address used at installation]/api/listeners.

BpmonlineExchangeEventsEndpointUrl – [the address of the anonymous ExchangeListenerService]/NewEmail, for example https://mycreatio.com/0/ServiceModel/ExchangeListenerService.svc/NewEmail.

Step 3. Connecting additional functionality

On the additional functionality connection page, connect  ExchangeListenerEnabled for all users.

Step 4. Deleting mail synchronization triggers

Step 5. Restarting the site

 

© Creatio 2002-2020.

Did you find this information useful?

How can we improve it?