How to become a Salesforce developer?

Salesforce developer

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.

Salesforce developer, how to start?

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.

Practical task

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:

  • Have a list of areas that are suitable for planting trees
  • Be in touch with people who give us money
  • Track all donations

Sounds simple, right?

Almost any SF task can be described in 7 steps:

  1. Data model
  2. Configuring user interface
  3. Improving data integrity
  4. Security model
  5. Automation tasks
  6. Developing custom server logic (backend)
  7. Developing custom UI components (frontend)

You need to know how to code only in the last two items. 

So let’s start!

Data Model

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:

  • Postal Address – Text Area
  • Location – Geolocation (if we want to be able to show it on the map)
  • Area Size – Number (in square meters)
  • Amount – Currency
  • Status – Picklist

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:

  • Preferred Channel – Picklist (Email, Phone)
  • Email – Email
  • Phone – Phone
  • Contact Name – Text(50)
  • Do not call me again – Checkbox

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:

  • Site – Master-Detail(Site)
  • Patron – Master-Detail(Patron)
  • Amount – Currency
  • Donation Date – Date/Time
  • Type – Picklist

Ok, at this point, we are ready to create our data model in Salesforce. But how to start?

One step closer to Salesforce

To start learning Salesforce, you need to have the right tools. There are 3 things to do:

  • Get your personal Salesforce environment.
  • Connect it to Trailhead (learning system)
  • Look at the introduction lessons.

Create your personal Salesforce environment

  • Go to
  • Click on the “Sign Up” button.
  • Please fill-up the form (pay attention to Username it should be in email format)
  • Click on the “Sign me up” button.
  • Check the inbox to find an activation email.
  • Activate your personal Salesforce environment

This Salesforce account is entirely free. You can use it to master your developer skills.

Link Salesforce account to Trailhead

  • Go to
  • Click on the “Sign Up” button.
  • On the next page under “How do you want to sign up?” click on the Salesforce button
  • Please fill-up the form with your salesforce login and password (you have got it at the previous step)
  • On the next screen, click “Link and Log In.”

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.

Come back to the Data Model.

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.

Configuring user interface

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:

  • Application
  • Tabs
  • Lightning pages
  • List views
  • Page layouts

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:

Improving data integrity

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:

  • Create a site record without populating postal address
  • Put zero or event negative number into area field
  • Choose Preferred Channel of the patron as Email but specify the only phone number
  • Leave the empty amount of the donation
  • Add a donation to the already finished site project

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:

  • Go to Setup / Object manager / Open Site object
  • Choose the Page Layouts section and then click on Site layout
  • Find Postal Address field and make it required
  • Save page layout

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:

  • Validation rules
  • Roll-Up Summary and Formula fields

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:

  • Name of the rule
  • Condition to check
  • Validation message if the condition is evaluated to be true.

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:

  • Formulas and Validations –

Security model

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:

  • Organization level security
  • Object-level security
  • Field level security
  • Record level security

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.

Automation tasks

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:

  1. Change status of site record from “Collecting Donations” to “Ready” when the total sum of donations is equal to the Amount of site
  2. Send an email with site information to the planting team.
  3. Do not allow to add new donations to the site with a status not similar to “Collecting Donations.”

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:

  • Change status of site record from “Collecting Donations” to “Ready” when the total sum of donations is equal to the Amount of site

It contains three smaller parts:

  • Calculate the total sum of donations.
  • Compare total sum with site’s amount.
  • Change status from “Collecting Donations” to “Ready.”

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:

  • Go to Setup / Process Builder
  • Click New button
  • Enter the name for this process and choose “A record changes” for the “The process starts when” item.
  • Click Save

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:Salesforce object specification - criteriaAnd 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:Salesforce object specification - actionLastly, 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:

  • Visualize sites in the city map UI component
  • Build custom user interface to improve the user experience of the application
  • Integrate campaign of planting trees with social media, e.g., automatically post content to the Facebook
  • Create donation records automatically when we receive the money transfer
  • Integration with third-party libraries and services

As you can see, it is an almost endless list of improvements. But all these tasks still can be divided into two groups:

  • Developing custom server logic (backend)
  • Developing custom UI components (frontend)

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!

Back to overview