Salesforce in a Nutshell

Zachary Dagnall
4 min readApr 19, 2021

What is Salesforce?

Salesforce is a lot. It’s a massive platform for an arsenal of Customer Relationship Management tools. It’s completely cloud-based, which means its users have nothing to download or update. It’s basically an enormous database with some pretty fancy available features.

Salesforce spreadsheets (or tables) are a bit like Google Sheets, in that they are cloud-based, shareable, and collaborable (that’s not a word, apparently, but it should be) spreadsheets, except they are way more robust. For example, each row in a spreadsheet is saved as an independent record and has its own meta-data, such as when it was created and by which user, etc. You know that time you typed O instead of 0 in your Google Sheet and then a bunch of contingent cells started screaming at you? Well in Salesforce, users can put validations on the columns of a spreadsheet (for example, requiring a number in a numeric field), so that that kind of thing can’t happen. Salesforce also allows for a lot more specific permissions on visibility and edit-ability in a spreadsheet. In Google sheets you can only make an entire spreadsheet visible or edit-able by other users, but Salesforce allows that type of per-user sharing permission even on individual columns and rows. Pretty neat!

While it has a lot of no-assembly-required features that are built in and ready to use, Salesforce also allows for oodles of customization through its robust fullstack (i.e. backend and frontend) languages unique to the platform, which all fit into the traditional MVC (Models / Views / Controllers) paradigm.

The Models (M) are pre-packaged Standard Objects, which can be used out-of-the-box, or can also be customized (and are then called Custom Objects instead, appropriately). These will likely be familiar to you if you’ve done any previous Object-Oriented Programming with a backend database. Your familiar ERDs will still look the same, and just like before, each Class will be a table in the database, each Object/Instance a row (or record) in that table, and the attributes of the object the columns (or fields) in the table.

Standard and Custom Objects in Salesforce (source)

The Views (V) are handled with Visualforce and Lightning. The former is sort of Salesforce’s equivalent of HTML, as it is a tag-based mark-up language used to create pages that display data from the database. With Visualforce, you can have a lot of control and customization of how data and pages will be presented. Lightning is a frontend framework that makes it easy to create and recycle components across various pages, and makes for a simpler and smoother UI/UX, as well as lightens the burdens of design and maintenance.

Visualforce example (source)

The Controllers (C), like the Models, are written using Apex, which is a backend language very similar to Java, and is used to write classes and methods for data handling. In your controllers you’ll also use SOQL (Salesforce Object Query Language) or SOSL (Salesforce Object Search Language), which are Salesforce’s proprietary language cousins to SQL (Structured Query Language). These are used for retrieving and manipulating data. Apex Controllers also use these things called Triggers which control what happens when a certain operation occurs, such as inserting, removing, or updating a record in a table.

An example of an Apex Trigger using both Apex and SOQL (source)

There is so so much more to Salesforce, and this blog entry only begins to scratch the surface. But if you are completely new to Salesforce, hopefully this will help to give you an idea of its purpose, as well as a very high-level overview of some of its core structure and features.

If you want to get started playing around with some Apex Classes, Visualforce, or SOQL, you can start by signing up here.

And that’s all I got for trying to wrap Salesforce into a nice neat little nutshell for beginners!

nutshell (source)

--

--

Zachary Dagnall

Passionate about all sorts of things, from learning languages to serving the underserved, and much more. Currently developing my skills as a software developer.