SuiteCRM is one of the renowned customer relationship management applications used from small to mid-size organizations. It is known for its flexibility to customize the platform according to the business needs. A key point for any organization to lead success is to customize the CRM to make it user friendly.

Explore our SuiteCRM Customization and Development Services

As users mostly rely on the data, any search that users perform will take a little long time when the organization has a huge set of data and this time factor continues to grow. To improve search quality and time, SuiteCRM from version 7.11 onward provides an option to enhance the searches by integrating the CRM with ElasticSearch. Let’s deep dive into this article to know more about SuiteCRM ElasticSearch implementation.

Get started with SuiteCRM Services Now

Elasticsearch is a search engine built on Apache Lucene. It is an indexing engine that is built specifically to have almost real-time search results, optimized for searching text. It is built on Java and runs as a separate server/process.

  • Due to its distributed computing, it is very flexible enough to keep up with large volumes of data.
  • Searches are in real-time.
  • In addition to its speed, scalability, and resiliency, Elasticsearch has a number of powerful built-in features that make storing and searching data even more efficient.

Why should we integrate SuiteCRM with ElasticSearch?

Elasticsearch can be integrated with SuiteCRM to widely improve search quality and time. To achieve this, search-enabled modules are indexed on the Elasticsearch server. When a search query is received by SuiteCRM it is redirected to the Elasticsearch server, which will perform an powerful search and return the results back to the CRM.

Steps to Integrate SuiteCRM with Elasticsearch

Listed below are the steps to integrate SuiteCRM with Elasticsearch.

  • SuiteCRM can be integrated with ElasticSearch version 5.6.
  • ElasticSearch is built on Java so it requires Java v8 in order to run. Install ElasticSearch by downloading.
  • To start the ElasticSearch, navigate to the bin folder and click on elasticsearch.bat file.  folder. By default elastic server runs on port 9200. You can change it manually.
  • To make sure that whether ElasticSearch is running or not, type  http://localhost:9200/” in a browser.
  • The below response will be shown if the ElasticSearch if installed successfully

Elastic Search installed Successfully

Configure ElasticSearch with SuiteCRM:

  • Navigate to Admin->Search Settings
  • Click on Elasticsearch. Below screenshot will be shown.

Configure ElasticSearch with SuiteCRM

  • Enable Elasticsearch and enter the details of the elastic server.
  • Now click on Test connection, if the configuration details are correct. Below screenshot will be shown.

Enable Elasticsearch and enter the details of the elastic server.

  • If the connection is not successful, make sure to provide proper values for Hostfield , username and password appeared in the given window(Host field should be correct, username and password are not mandatory).
  • Click on the save button to save the configuration.
  • Once the ES connection is successful. Navigate to Admin->Search Settings. Click on the search settings. Select the Elasticsearch Engine as a default search engine for searches and click on the save button.

Enable Elasticsearch and enter the details of the elastic server.

  • Now navigate to Admin->System->Global Search. Enable the modules for which users will be able to perform a global search. Click on the Save button.

Enable the modules for which users will be able to perform global search in SuiteCRM

  • Once the above two steps are completed. It’s time to index(transfer) all the data for the search enabled modules from DB to Elasticsearch server.
  • Navigate to Admin->Search Settings->Elasticsearch.

Schedule indexing in SuiteCRM

  • Click on the “Schedule full indexing” button. Below screenshot will be shown.

Schedule full indexing in SuiteCRM

Elasticsearch synchronization

There are three main ways where synchronization between database and elastic search server happens.

  • LogicHooks: Every time a record is created/updated it gets indexed/re-indexed automatically.
  • Scheduled task: A scheduler job can be set up that will run periodically to make sure that the database and the index are synchronised.
  • Manual indexing: A full or partial index can be requested by an administrator via the admin panel or from a Robo task. (As we have done in the above step)

Scheduler Task for Elasticsearch index

  • Navigate to Admin->System->Scheduler. Create a new scheduler.
  • Enter all the required details as shown below.

Scheduler Task for Elasticsearch index

  • Select the elastic search job from the dropdown and set the time interval and click on the Save button. The above scheduler runs every day in the first hour. 
  • Make sure scheduler status is in the Active state.

Global Search Example

  • Once ES config is done and scheduler task is scheduled. All the data will get synchronized with ES. Let’s perform some global search. Enter any text in the global search and click on the search icon.
  • Below is the screenshot of the search result if the given text matches the data in the ES server.

Global Search Example in SuiteCRM

By integrating SuiteCRM with ElasticSearch, users will experience real-time search results. It helps in reducing the waiting time allowing users to accomplish their work much faster.

Evaluating SugarCRM for your business – We can help

Reach out to us so that we can assess and plan a road-map for your CRM implementation. Let’s build a system, which you will use for years to come.

Contact us for a free assessment