Case study

CRM customization as a way to maximize profits and full marketing automation in a rapidly changing online environment

Companies that want to grow and develop rapidly, cannot go further without a modern CRM. A CRM that will perfectly adjust to their needs and requirements. A CRM flexible enough to move data management and online marketing activities to the next level. However, it’s also crucial that such CRM is also easy to integrate with other systems and external solutions.


A company providing information and marketing services

Our client is a German company with an almost 20-year history. It’s now one of the most recognizable providers of customer information, as well as a developing marketing agency mostly targeting business clients. Besides providing customer information to telecommunication companies, the client also offers online marketing and SEM solutions. As the company has been developing quickly during the last few years, the need for a customized CRM appeared. The system should be customized to the maximum extent. Also, it should be able to process loads of data and possible to integrate with other systems, especially those connected with managing renewals.


The purpose of the project

As we have faced the challenge of creating a strongly customized system for a telecommunication and marketing company, we have decided to implement the world’s most often chosen platform – Salesforce.

As mentioned above, the client mostly insisted on adjusting the system to what the company needs most. This is why we decided to choose the full customization of the Salesforce system. We started to work on the project by building the whole infrastructure from scratch.


Among the others, we created brand new mockups to provide the client with the full overview of the system coming. As the project turned out to be sophisticated and time-consuming, we had to broadly extend what Salesforce offers as a default. One of the most important changes to make was building up a non-standard object – we chose Event as it seemed to be the most suitable in this case. The Event object represents an event in the calendar. In the user interface, event and task records are collectively referred to as activities. Also, we decided to implement CPQ (Configure, Price, Quote) to make the sales system structured and fully scalable. It shortened the sales and quoting processes and automated the process of completing transactions.

As the client doesn’t sell physical products but services, we had to enable contract and subscription generation. We implemented Service Cloud – it was the only way to optimize both order processing from contracts and handling the already existing customers. Finally, the client asked us to build a tailor-made solution to retain customers and build their loyalty.

Within the project, we were also responsible for the highest quality of the code, as well as for system release and deployment. In order to complete the project efficiently, we used tools like Jira, Confluence, Bitbucket and Bitbucket Pipelines CI/CD.


Challenges we have faced

CPQ integration despite Salesforce limits

CPQ is quite a serious load of data which might be a problem when you take the Salesforce limits into account. We managed to figure it out by using both asynchronous processing to process millions of tasks at the same time and batches to skip over the limits.

More than 40 services to be added at once with an option to renew such contracts

Here, we also used asynchronous processing and the above-mentioned batches. This enabled us to skip over the Salesforce limits.

Handling a non-standard object (Event) with an extraordinary approach

Handling a non-standard object so that it behaves in a certain way might be a daunting task. In order to create an Event object and handle it properly, we had to create a new, fully dedicated component to both display Events and work on them. If this solution had failed, the system would have loaded the next Events every time someone refreshes the page.

Generating and signing contracts via Salesforce

We had to build an external site with a tailor-made UX version of the contract. This version is to be signed by a client and then the document will be saved and sent via email.