Customer relationship management (CRM) tools come in many different flavors, though not every application can meet the need of every customer. Often, large and complicated tools are overkill for smaller businesses, while some smaller tools require customization to meet specific needs. I would like to share with you the open source tool EspoCRM, which is designed to meet the needs of small and medium businesses.

We have been working in the CRM area for the past seven years, providing business solutions based on popular CRM applications. However, during this time, we continued to run up against the same obstacles with many of the systems we worked with. We found them to be difficult to customize, and often the projects had an old codebase that was hard to maintain and did not take advantage of modern technologies.

These factors slowed down the progress and technology improvement. To combat this, we decided to create our own brand new CRM system to address some of these issues, targeted at small- and medium-sized companies. We hoped to provide a solution that would meet both the needs of those who have never used a CRM before, and those who used applications from other vendors but were not satisfied by them.

EspoCRM set out four goals we wanted to address in our project:

Project should be easy to customize.

Performance must be strong, and page-rendering should be as close to instant as possible.

User interface must be clear, logical, and well-organized.

Application should be accessible and work well from any device: mobile phones, tablets, and desktops.

EspoCRM is released under the GPLv3 license. The selection of license was important to use, because we want to develop a strong community to help us develop our project. Our project is hosted on GitHub, and we are open for pull requests; we also maintain a forum where we help answer community questions and respond directly to bug reports.

Visit the project website to see a demo or to download EspoCRM.

In developing this project, we tried many different architectural models. Ultimately we decided to go with a single page application, owing largely to its strong performance. We also developed a RESTful API so that other applications can make use of EspoCRM directly.

In addition to creating a strong tool, we felt it was important to develop the project in a way that clients would have the ability to easily customize it for their own business. This is accomplished through a solid object-oriented architecture, along with an extensible plugin system that doesn't require making changes in core files. Administrators can create custom entities, relationships, and customize layouts easily, while developers are almost unrestricted; they can issue their own installable extensions that will change the application as much as they need.