We will start our journey through the Salesforce platform customization with a quick overview of the history of the company, by highlighting the key milestones across its 20+ years of life.
Then, we'll briefly see what's inside the platform and how it works, describing the multitenant architecture that lets multiple Salesforce customers be located on the same physical servers without harming one another this is the core of how Salesforce works and the reason of its successfully scalable and reliable architecture.
As this is a learning book, we'll also have a look at Trailhead, the fantastic learning platform that's rapidly becoming a founding brick of Salesforce knowledge-sharing philosophy. At the end of almost each chapter you'll see a Blaze your trail section that will contain Trailheads content related to the specific chapter's topic.
To test our new skills, we'll also see how to create a free environment (called a Salesforce Developer Edition org, or simply a DE org) activated with all the main platform features so that you can learn along with reading this book.
In this chapter, we'll focus on the following topics:
Salesforce company history
How the Salesforce platform is built
How to have fun learning Salesforce with Trailhead
How to create a Developer Edition org to learn with examples
Defining Salesforce as a Software as a Service (SaaS) Customer Relationship Management (CRM) is reductive nowadays. A CRM is a software meant to help and manage customer relationships (mostly sales and service processes) while integrating with legacy systems (where most of the data comes from, such as shipping tracking details or product logistic details, to name just a few), while SaaS means that the software is in the cloud and you have access to it without the need to take care of all the hardware and infrastructure you would need for other competitors' products.
Read the post at https://crm.org/crmland/what-is-a-crm for a deeper explanation of what a CRM is; it will take you some time to understand how companies benefit from a well-structured and reliable CRM system.
Today, Salesforce is much more than a CRM, after successful and smart acquisitions, making the Salesforce ecosystem one of the most important cloud companies out there, bringing marketing automation features, custom application development with any language, e-commerce solutions, powerful analytics solutions, and, recently, a lot of artificial intelligence.
For the sake of this book, we'll cover the center of this ecosystem, and the oldest and richest of features, the Salesforce CRM platform, which will let you customize an environment to do practically anything you want, which might go beyond simple customer management.
Why is Salesforce so special? You decided to purchase a book about Salesforce customization, so you must have come into contact with the technology in some way.
The technological aspect is surely one of the most important aspects: the CRM platform is the center of the whole product ecosystem and it can be used to centralize all data (this is the so-called Customer 360 platform), and we can say that Salesforce is one of the first companies that centered its business in the cloud.
But in my opinion, what differentiates Salesforce from other companies and competitors is its genuine will to make people, whether they are customers, consultants, employees, or partners (let's generically call everyone stakeholders), feel part of an amazing community where profit is only one of the driving factors.
We'll talk about the Salesforce community and the Ohana value in Chapter 19, Salesforce Ohana – The Most Amazing Community Around.
Let's highlight the most important milestones in Salesforce's history, so we can have a better view of how huge Salesforce has become in these 20 years of its history.
Unfolding the evolution of Salesforce
Have a read at the The Salesforce Economic Impact white paper by IDC, available at https://www.salesforce.com/content/dam/web/en_us/www/documents/reports/idc-salesforce-economy-report.pdf, for a complete analysis of the Salesforce industry economic impact worldwide.
Everything started in March 1999, just like in the old fashioned Silicon Valley start-up fables: four buddies started a company at Telegraph Hill, San Francisco, in a one-bedroom apartment (have a look at the actual pictures at https://www.salesforce.com/blog/2019/02/salesforce-san-francisco-1999.html).
It was Marc Benioff's house (founder and current CEO at Salesforce), along with Parker Harris, Frank Dominguez, and Dave Moellenhoff.
Their aim was to create business applications with the SaaS model, designing adaptable applications without high maintenance and development costs, following the same paradigm of Amazon.com: an easy-to-use site but for business applications. They developed the basis of the first SaaS CRM in just 1 month!
It was in 2000 that the Salesforce.com company moved to 1 Market Street (San Francisco) and launched the product, along with the famous and controversial No Software brand, which soon become synonymous with Salesforce. Of course, this does not mean that a SaaS application doesn't require any lines of code, but rather that your company will rely on cloud software only, and so no legacy software is needed anymore (but, as you can imagine, No Software alone is quite catchy!).
The Salesforce CRM software continued to evolve, and its features were presented in so-called City Tours, a few hour-long events handled in diverse US cities. But it was in 2003 that Salesforce launched one of its most iconic events, Dreamforce, a few-day event held in San Francisco where all Salesforce customers could meet each other and learn what was going on with their CRM software (there were around 1,000 participants).
In 2006, the AppExchange portal was launched: the apps economy was just starting, and Salesforce partners could build reusable artifacts (or packages) that other packages could use to enhance their Salesforce customizations, reducing implementation and maintenance efforts. Apple's App Store was launched later on, and, as you read at https://www.salesforce.com/blog/2019/02/steve-jobs-inspired-appexchange.html, the
appstore.com domain and trademark was gifted by Marc Benioff to Steve Jobs as an act of gratitude for having inspired such a successful business model.
At the 2006 Dreamforce event, the Apex on-demand programming language was presented, and that changed the way the Salesforce CRM could be customized; a lot of lines of code could run on Salesforce infrastructure to enhance automation customizations. In the same event, the Visualforce framework was also presented, granting Salesforce partners the ability to build complex user interfaces.
In 2008, the Force.com platform was delivered, which, thanks to Apex and Visualforce, let customers implement their own customized applications side by side with the usual standard CRM processes: this was the advent of the Platform as a Service (PaaS) model.
I joined the Salesforce Ohana (refer to Chapter 19, Salesforce Ohana – The Most Amazing Community Around, for more details on the Ohana movement) in early 2009, as a Salesforce junior developer at WebResults (an engineering group). It was a risky bet for our former CEO, Lorenzo Coslovi, and our CTO, Alessandro Plebani, who, a few years earlier, decided to start investing in the Salesforce world, when Salesforce was not really known in the Italian market and its market share was really small. They created a fantastic team of professionals, and I'm really grateful to both of them for letting me be part of this Salesforce revolution.
2013 saw the birth of the Salesforce1 platform, which brought the whole Salesforce desktop experience to the mobile channel, anticipating the Lightning platform, which was presented a few years later.
This whole book, with an exception made for some small cases, is based on the look and feel of Lightning Experience.
2016 was the year of artificial intelligence, with the Einstein product released, meant to improve every single product by delivering the easiest machine learning functionality to the Salesforce platform. The Einstein artificial intelligence was presented in front of 170,000 attendees at that year's Dreamforce (170x more attendees than the first 2003 Dreamforce). In the same year, Salesforce acquired over 10 companies (including Quip, SteelBrick as CPQ, and DemandWare as B2C Commerce Cloud, to name a few).
In 2018, MuleSoft was acquired, bringing another important piece of technology to the platform – that is, the ability to connect legacy systems in the cloud, unleashing digital transformation with ease.
In this book, we'll be concentrating on the core of the Salesforce platform, the SaaS CRM, to find the ways to customize it and let Salesforce adapt to each company's business processes with a low-code approach – that is, a lot of point ing and clicking and little-to-no coding.
To tell how the Salesforce CRM has changed throughout the years, have a look at the following figure, which shows all the different user interfaces that have evolved over more than 20 years:
Ah, good old times!
To get inspired by what Marc Benioff and his folks did, refer to Marc Benioff's books, Behind the Cloud: The Untold Story of How Salesforce.com Went from Idea to Billion-Dollar Company-and Revolutionized an Industry (2009) and Trailblazer: The Power of Business as the Greatest Platform for Change (2019). For a quick and inspirational deep dive into Salesforce's history, check out the Salesforce Ben blog post at https://www.salesforceben.com/brief-history-salesforce-com/.
Let's have a quick look at how the Salesforce platform is shaped to deliver a reliable and trusted service to its customers.
Explaining the Salesforce architecture
This architecture doesn't simply mean that your code and data is stored in someone else's computer (that's how cloud haters ironically describe the cloud), but that your data is placed in data centers with the highest levels of security (that would cost your company many dollars to run the same, in terms of hardware, resources, people, and maintenance).
The most important feature of this cloud is multitenancy. Multitenancy refers to a software architecture in which a single instance of software (the Salesforce platform itself) runs on a specific server and serves multiple tenants, where a tenant is a group of users (your company's CRM) who share common access and privileges on that software instance (your CRM's specific customization).
This means that your CRM customizations (called metadata) and data are in the same place where other Salesforce customers' metadata and data reside, but the architecture is so well structured and secure that you will never be able to access that data and customizations (you'll only see what you own).
As pictured in the Trailhead module at https://trailhead.salesforce.com/content/learn/modules/starting_force_com/starting_understanding_arch, you can think of Salesforce as an apartment building: your specific CRM owns one or more apartments and has neighbors with which your company shares some of the resources (stairs, elevator, electricity, water supplies, common spaces, and so on). Regardless of your own apartment size, Salesforce guarantees the same level of service, such as computing power, data storage, access performance, and core features (authentication, reporting performances, and so on).
This is a winning approach, as it delivers the following:
Scalability: A multi-tenant infrastructure makes it easy to increase capacity when more resources are required. If a server is upgraded, the whole client base takes advantage of it.
Performance: The nature of multitenancy allows optimum performance maximization, letting any client use the right amount of resources it needs.
Service: With a single platform to administer, the Salesforce cloud shares maintenance plans and software upgrades (one software code base to rule them all) among all its clients.
Upgrades: Given that there is a single centralized software that runs the base of the platform, software updates are seamless, which leads to more robust software and the possibility of constantly delivering new and upgraded features (each Salesforce main release takes place in about 5 minutes). The Salesforce platform provides three main upgrades a year – winter, spring, and summer releases – which usually brings tens of new features as well as platform improvements and bug fixes. If you are curious about all the different logos each release has produced, take a look at SFDC Monkey's blog attempt to list them all, at https://sfdcmonkey.com/salesforce-release-logo-journey/. Jump to https://www.salesforce.com/releases/ to have a look at the latest release.
Metadata: Metadata is just data about data, which means that metadata describes how data is shaped and accessed, defining user interfaces, automation processes, and security access rules (and way more than this). Metadata is stored in the Salesforce platform along with actual data, so each Salesforce customer can define its own way to represent and use its data through metadata definitions, without affecting other customers in the same multitenant architecture and without being affected by frequent platform seamless upgrades.
It is no surprise that this whole book is focused on the ways that the platform lets you manipulate metadata and data with low code usage.
Before starting our journey through Salesforce customization, let's talk about a fun way to learn stuff about Salesforce.
Empowering learning with Trailhead
One of the coolest things that made me fall in love with the Salesforce world in my early days as a Salesforce developer was the absolutely publicly accessible documentation, whether you are a platform administrator, user, or developer. I tried to learn other cloud CRM technologies at that time, but had no luck with getting training environments or free learning resources – you had to become a partner, pay the fee, and get the documents.
This is an awful approach, and I believe it is one of the main reasons why I learned the technology so fast that I become one of the key Salesforce experts in my company, despite still being a junior developer.
I remember the passion and curiosity I had when I was practically eating the Apex and Visualforce Developer Guides, and how many questions I made to my senior colleagues – it all seemed so easy; if I had a question, I would simply ask them or search Google, and I was pretty sure someone would have had the same issue.
I believe that the free-to-learn model provided the foundation for the vital and vibrant Salesforce technical community, which led, in 2014, to the presentation of the Trailhead service, meant to let anyone learn the Salesforce platform with ease and fun through gamification.
The portal can be accessed by anyone for free; simply jump to https://trailhead.salesforce.com and register with your Google, LinkedIn, or Salesforce account (you can use all of them together, actually). You'll be met with a Trailhead home page similar to the one shown in the following screenshot:
Once registered, you are free to browse among hundreds of quick modules to learn about Salesforce products usage, administration, design, and customization from https://trailhead.salesforce.com/modules. The following screenshot shows the modules searching page:
Each module is characterized by a completion time of no more than 60 minutes (learning is fun when it is quick!) divided into small units of 10–20 minutes each so that you can learn in your free time between business meetings or working tasks; innovation should be at the core of any technical job, making learning easy and fast, so you can at least remain updated on the latest trends of the platform.
Each unit is composed of a subject-related explanation, which is the core of the learning part, and a final quiz to test your new skills (with a multiple-choice question or a hands-on exercise). By passing each unit, you can get between 25 to 500 points (depending on the question type and the number of failures), and when all the units are completed, you'll get a badge for the corresponding module (that is gamification done right!).
If you want more structured learning, you can choose Trailhead trails at https://trailhead.salesforce.com/trails, which are a coherent set of modules related by the same subject. For example, if we choose the Admin Beginner trails for Salesforce Platform, we'll get a bunch of trails, as shown in the following screenshot:
Here, as we said, each trail is focused on a specific subject.
Recently, Trailhead has also been used to start your certification process for certain certifications (you need to complete some peculiar modules called Super Badges to pass a certification, such as for Platform Developer II) and to execute certification maintenance (at each release, once a year, maintenance modules are released, and by passing them, your certification is validated for another year until the next platform release).
Trailhead users can create their own Trailmixes, as shown in the following screenshot, just like the one I've built for this book, available at https://trailhead.salesforce.com/users/enreeco/trailmixes/hands-on-salesforce-application-development-without-code:
Before getting our hands dirty with Salesforce CRM low-code customization, let's see how to create a new Developer org, which you'll use to follow this book's examples.
Learning with examples – creating a Developer org
Developer Edition orgs (or DE orgs) are simplified environments that should not be used for commercial use, and that any Salesforce professional can create to get their hands on the technology, with no risk at all.
These environments come with almost all features and licenses present (such as Sales and Service Cloud and Communities, to name a few), so you can test them easily but with lower allocations, such as only 5 MB of data storage or the fact that you could only have two full Salesforce-licensed users. Moreover, these kinds of orgs cannot be used for commercial purposes.
For a complete list of org allocations for DE orgs, refer to Salesforce Help at https://help.salesforce.com/articleView?id=overview_limits_general.htm&type=5 and refer to the Developer Edition column.
Remember that DE orgs are not forever: if you don't access them for at least 6 months, they will automatically be deleted (but a friendly Salesforce email will notify you about the upcoming deletion, so you can log in to the org if you, for some reason, want it to stay active).
To create a brand new Developer Edition org (you can create as many as you want), do the following:
Go to https://developer.salesforce.com and click the Sign-Up button.
Wait for the activation email.
Click on the activation link.
Reset your password and add a security question.
The following screenshot shows all the steps (my laptop language is set to Italian, so you'll see the email and reset password form in the following screenshot in Italian):
If you plan to grow your career on Salesforce and this is your first DE org, try to write this username down so that you'll be able to access it in later years. I'm a romantic developer at heart, and being able to access my first ever DE org is something that reminds me how young I was when I first used the platform:
If you plan to use diverse orgs (different customers, different DE orgs, and so on), install a browser extension (you'll probably use Chrome or Firefox browsers to work your implementations). I suggest you give the ORGanizer for Salesforce Chrome and Firefox extension a try, an extension made by me that has credential storage features and many more Salesforce customization helping tools. The tool is available at https://organizer.enree.co?#getit on the Chrome Web Store, the Firefox add-on site, and on AppExchange for free.
Now that you have logged in to your brand-new DE org, you are ready to start your low-code Salesforce customization journey: fasten your seatbelt!
In this chapter, we briefly saw what the Salesforce platform is and how it has evolved over the last few years, thanks to Marc Benioff's long-term vision of what a cloud company should offer its customers, by delivering innovation through a completely customizable, trusted, and reliable platform and the introduction of new products to fill in diverse feature gaps thanks to smart acquisitions.
Then, we explored the Salesforce platform architecture and its multitenancy format, which lets Salesforce customers share the same cloud infrastructure and resources, in a scalable and reliable virtual apartment building, where each customer is granted the same amount of computational resources to smoothly run their Salesforce customizations, provided each customer is allowed to access their own data and metadata (data about data).
We introduced the Trailhead portal, which has rapidly become the main place where Salesforce learning takes place and whose modules are referenced throughout this book.
Finally, we saw how to create a DE Salesforce org so that you are free to learn what's explained in this book, to let you test the examples safely and with no risk to the Salesforce CRM's feature customizations.
In the next chapter, we'll start our low-code customization journey with data model customization, the first piece of metadata that tells the platform how the data should be modeled.