Apart from the fact that Salesforce CRM brings significant improvements right out of the box and the fact that it can be further adapted to each company’s business processes, one of its main advantages is certainly the possibility of easily developing your own custom applications and placing them on AppExchange.
AppExchange is a platform where it is possible to creative, develop and customize applications and over the years, it has become the leading business application market, with hundreds of applications supporting productivity and growth. Today, as many as 85% of Fortune 100 companies use at least one AppExchange application to connect with customers and clients in a whole new way.
If they find themselves in a situation where they need a functionality Salesforce does not have, Salesforce users have two options – to develop such a solution themselves or to find it on the AppExchange, if someone has already developed it.
At HSM informatika, we found ourselves in such a situation recently and decided to develop what we needed ourselves, given how easy that is on the Salesforce platform, despite the fact that do not currently plan to place the application we developed on the AppExchange market.
The task of developing a Salesforce app came to me quite early in the course of my Salesforce career. I came to HSM informatika as a college student and after two months of education and acquiring the Salesforce Administrator certification, it was time to demonstrate that knowledge in the real world.
The Travel Orders app is designed to be used internally in HSM and to monitor employee business trips.
Despite the initial uncertainty, I am very happy to have been given this opportunity right at the beginning. Through this task, I realized how easy and fun using the Lightning App Builder tool is, even for complete beginners.
I have to admit that, during the first meeting on the topic of the Travel Order app, I did not fully understand the need for it. We will attribute this to my inexperience at the time.
The explanation was that with this app, we can avoid situations where employees have to catch up with each other in the hallways to gather all the information needed.
In our case, it was a matter of the colleague in charge of this having to repeatedly ask and remind colleagues to e-mail her information about the business trip they were on and the corresponding invoices. Mistakes would happen often, incomplete information was common and all this led to both dissatisfaction and waste of time.
But equally important, this application would be useful for management, for them to be able to track costs in addition to income, through a series of intuitive reports, which gives them a complete overview of sales closed, but also employee education and training-related travel.
By then, the idea became clear to me and I managed to create an overview of how to put it into action. However, working out and connecting all the steps necessary was the hardest part.
I put the objects and their interdependence together several times, only to realize halfway through that it won’t work this way and had to start over.
I turned to my more experienced colleagues, we exchanged ideas and with their help, after a while I came up with a concept that made sense.
The final goal was to enable the entry of the necessary information about their business trip in as few clicks as possible. The city, mileage, accommodation, meals and type of transportation are just some of the information that needed to be collected and stored in Salesforce.
It was finally time for the fun part – creating objects, fields, validation entered data, automating entries through Flow and creating an approval process.
In Salesforce, an object is just another name for a database table that allows you to store organization-specific data, while a field is a column in that table.
The way data is put into the system is, I would dare say, the most important part. I created three objects: Travel Order, Day and Expense.
Travel Order gives general information about the trip such as the employee, the purpose of the trip, place of departure, the date and the like.The Day and Expense objects are linked to the Travel Order object in such a way that one Travel Order can have several different Days and Expenses. The Day object contains information about each day spent on the road, which are saved in the appropriate fields such as meals, type of transportation and mileage. The Expense object stores information about the date, type and amount of travel expenses. With this, the Travel Order page reached its final look.
System users often resist change, so it is important to simplify data entry as much as possible. The logical next step was automation. Also a challenging task for me at the time, because I decided to use Flow to enter Days and Expenses and all I knew about Flow then was where to find it in the system.
In Salesforce, one way to automate complex business processes is called Flow. Flow is a declarative, visual tool that collects data from the system and uses it to make changes to that same data, depending on the situation. Luckily, the Salesforce community is very active, so I had no trouble finding useful examples of working with Flow online.
After an employee creates a new Travel Order and fills in the general information, they fill in the information on Days and Expenses. This is significantly accelerated and facilitated by automatically filling in some fields such as dates, cities and number of travel days from the general information on the Travel Order. The picture below shows Flow to create an Expense in the system:
I also added an approval procedure, because the information that the employee has completed their Travel Order needs to reach the person in charge. It needs to be reviewed and approved if there are no errors. Also, the employee receives information by e-mail about the status of their travel order (Approved, Rejected, Ongoing).
◉ The Lightning app
Once I had everything arranged properly, creating an app in the Lightning App Builder was very simple. I added an image and allowed profiles to access the aforementioned objects.
I added the Salesforce Path visual tool to the Travel Order object, which is a tool used on objects to help users to easily monitor the current status of their file, in this case the Travel Order.
The Travel Order app was a big challenge for me. Working on it, I realized the importance of teamwork and learned a lot about administration on the Salesforce platform.
Prior to using this app, we did not have a structured entry of business travel data into the system. Colleagues in charge of that part of the job did their job successfully then too, but it required a lot more time and it was less flexible.
The Travel Order app has brought significant change to salespeople who can now submit travel orders in the same app that they use in their daily work and enter expenses when it is convenient for them – even via the mobile application.
Clearly, given the current situation. we don’t travel as often as we did, so we don’t use the application as much, but I’m looking forward to the world returning to normal soon, so the Travel Order app will come to life again in full glory. 🙂