They say, “If it ain’t broke, don’t fix it”. The intention is to avoid making things complicated when things are running smoothly. But in this competitive market, if you do not think outside the box, you will be left behind. The same thought inspired our team to explore the Salesforce platform.
Salesforce has been the go-to Customer Relationship Management tool for more than two decades now. Naturally, it has been branched to suit multiple customer needs. However, the primary focus has always been Customer Relationship Management.
When we started exploring Salesforce we developed several lightning apps using the lightning app builder. But, in the course of time when I became a certified Salesforce Platform Developer, the same pattern of designs on the lightning app builder made it a very mechanical work and there was no exclusivity in the designs and respective development.
While exploring the boundaries of the Lightning App Builder, we discovered that there is a lot of room for customization in the Salesforce applications.
We came up with multiple solutions using which we could build some applications with complex designs which made the applications look nothing like the traditional salesforce applications.
We came across a lot of features that salesforce has already integrated into their development platform. These are the same things any salesforce developer would use for developing for the salesforce application, but being “exclusive with designs” being our bread and butter, we wanted to make it a brand new salesforce application.
We made sure that we used salesforce to its maximum potential while meeting our customization needs.
What did we use?
1. Lightning Community Platform:
This enabled us to move out of the white and blue container of the lightning app builder and gave us a much flexible canvas. This platform enabled us to add object pages to our applications according to our will. These pages were inbuilt so there was no room for customizing them but we always had the option to create something new from scratch while preserving the benefits of the platform.
2. Lightning Web Components(LWC):
We figured out the proper blend of developing our own components and including Lightning Web Components to the salesforce application which paced the development process in a significant way. These components are very tightly coupled with the Salesforce Data Services, so the integration with our page was relatively easy. We were also able to add custom elements to these components and make these components intuitive. For example; nested pop-ups, etc.
3. Salesforce Lightning Design System(SLDS):
Salesforce has this wonderful design monolith for all of its design needs. This was our encyclopedia for every component’s design and usability. Other than this design system we were open to a wide variety of design customizations using custom HTML and CSS in our applications. This transformed the application from a traditional salesforce application to a freshly designed salesforce application.
4. Custom Objects on Salesforce:
Having data in a structured way with the help of custom salesforce objects helped us a lot to gather information and develop knowledge out of it. The ease of understanding and accessibility was key.
5. Wire Services and Apex:
We used Query and Search (SOQL and SOSL) Languages for accessing and massaging data using the inbuilt or custom Salesforce objects.
The thorns in our rose were:
A. Complete Control:
While we enjoyed customizing the applications according to our will, we always felt resistance in terms of accessibility. There were boundaries to follow. And, naturally, it made the execution of some simple tasks a little dificult to meet requirements.
B. Form Element UI Customization:
The inbuilt form elements that are present in the lightning platform are very well integrated with the Salesforce Objects and wire services. Hence, handling form related tasks was a piece of cake. But, when it came to UI customizations for the Form elements, we faced a barrier. Sadly, Salesforce does not allow developers to change styles on the form elements such as for text fields, checkboxes, and etc.
The ocean of Salesforce is huge and there is a lot more to explore going forward. The one major goal will be to complete a fully functioning application based on salesforce’s technologies and deploy it where everybody can access it as an end-user. While working on salesforce was new for us, at Divami, the team enjoyed every aspect of it. It was all owing to the wonderful resources provided by salesforce. These resources allowed us to better understand the topics around advanced development.
The amount of options salesforce offers in terms of development keeps the curiosity torch up and running. After all, every developer wants some part of their daily task to be automated to focus on the more important tasks.
Although salesforce has its flaws, the positives outweigh the negative. The number of tasks it automates for the developers makes those flaws a mere trade-off that can often be tackled using some expertise in the field. Moreover, the concept of click and code which salesforce follows in their Lightning Platform enables everybody to navigate throughout the application with utmost ease and lubricates the entire process of development. Processes like data validation, flow building, and process automation are converted to drag and drop tasks thanks to salesforce.
Gopal is part of Divami’s Salesforce Dev Team and has been focusing solely on the same for the past year.