Avenga’s response to the war on Ukraine: Business Continuity and Humanitarian Aid
Table of content
Salesforce is rated high in the most popular CRM-systems ranking. More than 150,000 companies use Salesforce CRM to grow their business, including giants such as Toyota, Coca-Cola, Adidas, Canon, Philips, American Express, Western Union, Cisco, KLM, and many others.
The question arises, how to start your journey in Salesforce with Avenga Ukraine?
Mykola Senyk, a Senior Salesforce Engineer, shared his experience in starting a career as a Salesforce specialist. You have the opportunity to read the following recommendations and get even closer to your cherished goal.
Let’s assume you are going to be a Salesforce developer.
In the past, learning a programming language started from the first program – “Hello, World!”. We are not going to do this.
Salesforce is much more than just a programming language. It is a platform that allows you to do many exciting things.
The best way to learn is to start doing practical tasks. Let me show you an example.
There is a non-profitable organization that plants trees in your city. Let’s call it “Green City”. It survives based on donations only. We need to build a system that allows doing the following:
Sounds simple, right?
Almost any SF task can be described in 7 steps:
You need to know how to code only in the last two items.
So let’s start!
It is the most important part of any project. It is the heart of your application. To get started, let’s describe entities we are going to use.
We cannot plant trees without money. So we are interested in Donations. Who gives us donations? People who live in our city but not all of them. Let’s call those people – Patrons. We are spending money on planting trees, but where to grow them? We should have Sites where it is legal to plant trees.
Having more green trees is a good thing by default. But people are more likely to give us money if trees are planted nearby their homes. You know it is a good feeling when you can see your donation results in real life. In other words, we need somehow to connect Patrons and Sites.
Does it mean Donation is a good candidate for junction object? Probably but not necessarily. The beauty of data modeling is that you decide how far to move. For example, you can keep the sites’ size particularly small to start planting trees after reaching all necessary funds. Alternatively, you can introduce a child object to the site to split a big area into small chunks. This approach gives you the ability to manage bigger territories easily and not wait until the whole amount of money is collected.
However, the data model is not just objects. It is also the object’s attributes or fields. What fields do we want for our objects?
The site definitely has coordinates, the area’s size, the type of trees we want to plant, and the total amount of money to grow it all. It also should have a status, e.g., Proposed, Collecting Donations, Ready, Planted, etc. In Salesforce, you can extend the data model at any time so let’s define only the minimum set of fields at the beginning.
Each field has a type. It is a good practice to define names and types for the fields. There are the following fields on the Site object:
What fields do we need to define in Patrons object? Probably we need some information about a person who gives us money, e.g., email address or phone number to contact. It is nice to know personal information, but we need to respect privacy (you need to take care of it in the Security Model step). As a result, there are at least 5 fields:
And finally, what fields do we need for a Donation object? First of all, we need to connect this object with Sites and Patrons. It is a moment when relation fields come to play. Let’s use Master-Detail relationships to join them. We are also interested in the size of the Donation (how much), date (when we received it), and type (how we got this money). Here is a list of fields:
Ok, at this point, we are ready to create our data model in Salesforce. But how to start?
To start learning Salesforce, you need to have the right tools. There are 3 things to do:
Create your personal Salesforce environment
This Salesforce account is entirely free. You can use it to master your developer skills.
Link Salesforce account to Trailhead
You have successfully joined the learning system from Salesforce!
Start learning with Trailhead.
Trailhead is a great educational tool from Salesforce. To get started, I recommend looking at the following modules:
All learning power of Trailhead is open to you. Have you found an interesting module? Check it out! The more you learn, the better you as a Salesforce developer.
At this point, you should have an idea of what Salesforce is about. Great, let’s finish our Data Model in your environment. Look at the following Trailhead module:
It has everything you need to know about creating custom objects and fields in Salesforce.
Right after you finish creating your Data Model, it is ready to be used. But let’s help users to see only needed data. In Salesforce, we can archive this by having the following things:
Some of these terms sound familiar. To find out how to change the user interface of Salesforce, please, look at the following module:
For our practical task, we might want to create an application and call it Green City. Include three tabs of our custom object into the application: Sites, Donations, Patrons. Define valuable list views for our tabs. And finally, organize fields in page layouts.
Your application should look similar to the picture below:
At this point, we are already able to use our application. We can create new sites, add patrons and manage their donations. But take a closer look at our records. They are not consistent. The user is still able to make manual mistakes like the following:
All such things are far away from the excellent user experience. We must fix it.
You already know how to make the field required in page layout. It helps us to fix problems like missing the postal address of the site:
Next time you will not be able to forget to enter an address in the Site record. Salesforce will remind you about it:But how to check that the amount field is above zero? It is not enough to make this field required. Yes, you are right.
And Salesforce has two beautiful things that can help us a lot:
We can define the logic that automatically executes whenever a record is created or updated at the object level. The validation Rule is an excellent example of this automatic check. For our amount field, we need to create a validation rule that checks that amount is more than 0.
Creating a validation rule is a straightforward task. You need to define 3 things:
Here is our rule:And the result of the validation in action:We have made all these data integrity improvements with the help of pure configuration. Look, we even have not started to code yet!
Do you want to know more? Please, read an excellent module about it:
https://trailhead.salesforce.com/content/learn/modules/point_click_business_logic
It is essential to create a robust and fully functional Data Model. But even more important to protect the data. In other words, you have to take care of defining proper access to the data.
Salesforce has a built-in security model that allows protecting data on 4 levels:
This system is very flexible. At your disposal, a lot of basic and programmatic solutions. I suggest learning more about Salesforce security in the Trailhead module:
This topic is a little bit more complicated. Please, be patient.
What happens when we are collecting money for the planting site? Obviously, we have to buy a required amount of tree seedlings, some fertilizer, and of course, get some water. Then we need to organize a team of people who will plan the trees. Also, we should keep in mind transporting people and materials to the site address.
All above is totally fine from an organization’s point of view. But what should be done in our information system?
First of all, we have to stop collecting donations for this site. We need to explain to the system that the phase of gathering donations is finished. It is also a perfect moment to notify the planting team about a new task they have to do.
Let’s write down a list of the tasks we need to accomplish:
Salesforce really shines when we need to do some actions automatically in response to data change. All that you need is to transform requirements into Salesforce terms. The bigger task should be split into smaller doable pieces.
For example, look at the first task to do:
It contains three smaller parts:
We already know how to calculate the total sum of donations (hint – create a Roll-Up Summary field). So we have already resolved the third part of our automation task. To change the Type field’s value in response to reaching the total amount of donations, we need to use another automation tool – Process Builder. It is a pretty powerful tool for building automated processes in Salesforce.
Here the link to the Trailhead project:
For our task, we need to create a new Process Builder for the Site object. Please, do the following things:
You are in a Process Builder editor.Visually it is very similar to the flow chart. To finish our process, we need to define an object, criteria, and actions.
Click on the “+ Add Object” button and choose Site. You need to specify when to start the process as “when a record is created or edited”:To define criteria, click on the “+ Add Criteria” button. You need to enter criteria like on the picture below:And finally, add the action by clicking on the “+ Add Action” button. Make sure you specified the type of action as Update Records and chose the “Select the Site__c record that started your process” option. Then set a new value for the picklist field:Lastly, you need to activate the process and test how it works.
Remember we wanted to send an email to our team about a site that is ready to be planted? You can do this as an additional action in the same process builder. Isn’t it great? I leave you this task to do on your own.
From time to time, learning is not an easy task. You need to do exercises, fix mistakes and learn again. But practice creates perfection. If you need to refresh your memory about data quality and automation, look at the following Trailhead project:
Custom development
Until now, we have not started to write custom code. However, not everything can be done in Salesforce by the “click no-code” approach. Some tasks required code development.
For our project, we might want to use custom development for the following things:
As you can see, it is an almost endless list of improvements. But all these tasks still can be divided into two groups:
To learn more about backend development in Salesforce, please, look at the project:
If you prefer to start learning Salesforce frontend development, have a look at the module:
Somehow, Salesforce is going to surprise you.
I wish you all the best in the exciting journey of a Salesforce developer. Don’t put off changes; start learning Salesforce today!