The Salesforce market is showing no signs of slowing down, in fact, one of the most in-demand professions is the Salesforce Developer. As Salesforce becomes ingrained in more businesses and industries, Salesforce Developers will continue to drive innovation with integrations, advanced automation, and AI.
After the success of our Salesforce Admins Interview Questions post, we thought it logical to compile a post for all you developers out there. If you’re interested in Lightning Development specifically, then we also have another 30 Lightning interview questions here!
1. What is the difference between a role and a profile?
Profiles & Roles are both features that can be added to a user record in Salesforce. Roles are optionally added while Profiles are a basic requirement of setting up a user.
Profiles help to control object privileges such as CRED (Create, Read, Edit, Delete). They also contain system permissions that a user can carry out such as exporting data.
Roles on the other hand help with sharing records across an organisation. They work in a hierarchical fashion, giving users access to records that are owned by people lower down in the hierarchy.
2. Name three types of object relationships available in Salesforce?
There are three main relationship types in Salesforce…
- A lookup relationship can be used to link two objects together. It is the most basic type of relationship that creates a child-parent relationship between two objects.
- A master-detail relationship can also be used to link two objects together. A master-detail relationship creates a tight relationship between the parent and the child. The child record inherits the security of the parent, and if the parent is deleted, all associated child records will also be deleted. Master-detail relationships created some extra functionality such as roll-up summary fields that allow you to calculate data on the parent from the children.
- A many-to-many relationship (Also referred to as a junction object), allows you to create a relationship between two objects that need to model a many-to-many relationship. These are created with an object that has two master-detail relationships to two parent objects.
3. What is SOQL used for?
SOQL stands for Salesforce Object Query Language. It is very similar to the widely used language SQL (Structured Query Language), to query databases. SOQL is specifically designed for Salesforce data and is used to query the Salesforce platform to retrieve data. SOQL is used within Apex & Visualforce to return sets of data.
4. What are the differences between Programmatic & Declarative development?
Programmatic refers to development where a developer is writing code to achieve a task. This could include, but is not limited to, Apex, Visualforce & Lightning Web Components.
Declarative refers to “clicks not code” development, where individuals can build UI’s and automation using tools such as Process Builder & Flow.
5. What options are available to you for deploying from Sandbox to Production?
There are various ways to deploy from Sandbox to Production. The main way is to use a Salesforce feature called Change Sets. These allow you to package up components and then deploying them to another Salesforce Org. You can also use the ANT Migration Tool.
However, it is also good to be aware of the current Salesforce DevOps trend that is happening. There are a lot of Apps that make deploying changes to Salesforce a lot easier than current available options.
6. How do Salesforce Releases work?
Salesforce has three releases a year that are named after the seasons, these include Spring, Summer & Winter. These releases contain a huge amount of new functionality across all Salesforce products, including changes to development languages.
Salesforce announce releases months in advance, as well as provide a chance to test new changes in a sandbox before the release date.
7. What is Apex?
Apex is a strongly typed, object-oriented programming language that allows developers to extend the Salesforce platform by writing their own business logic into the platform. Apex looks similar to Java and can be launched through a variety of user-initiated events such as record updates, button clicks, triggers on objects, or external web service requests.
8.Can you customize Apex in a production org?
Apex cannot be customized in a production Org, it must be changed and deployed through a sandbox and meet test coverage requirements.
9. What are the two options for when Apex Triggers can run?
Apex Triggers can either run before a record has been saved of after. A “before” operation is usually used to verify information that is going to be inserted, and an “after” trigger is used to access data that has previously been entered by a user or system.
10. When should Apex be used over Workflow rules or Process Builder?
There are many reasons why you should use Apex over declarative automation options, here are a couple of common answers…
- Workflow rules and Process Builder operations sometimes have feature limitations that can be overcome with Apex. For example, pulling information from an external system.
- When dealing with certain or large sets of data, Apex can be more efficient than declarative options due to less limitations.
11. What are Governor Limits? Can you name 3 examples?
Salesforce runs on a multitenant environment which means resources (Storage, CPU, Memory) are shared with other companies on the Salesforce platform. This means limits must be in place to ensure that all companies using the Salesforce architecture abide by certain rules and don’t let their code or processes monopolize shared resources. A few examples of Governor Limits are:
- Total number of records retrieved by a SOQL query – 50,000
- Total number of SOQL queries issued – 100 (Synchronous) 200 (Asynchronous)
- Total number of DML statements issued – 150
- Total number of callouts (HTTP requests or Web services calls) in a transaction – 100
- Maximum CPU time on the Salesforce servers – 10,000ms (Synchronous) 60,000ms (Asynchronous)
12. What is Apex test coverage? What’s the minimum test coverage required to deploy?
To ensure that your code meets certain standards, Apex Code coverage shows you how many executable lines of code in your classes and triggers have been exercised by test methods. Code coverage percentage is a calculation of the number of covered lines divided by the sum of the number of covered lines and uncovered lines.
The minimum test coverage required to deploy to production is 75%
13. What are some Apex best practices?
- Bulkify your code
- Avoid SOQL Queries or DML statements inside FOR Loops
- Avoid Hardcoding IDs
- Use of the Limits Apex Methods to Avoid Hitting Governor Limits
- Querying Large Data Sets
- See full list…
14. What is an Apex Email Service?
You can use email services to process the contents, headers, and attachments of inbound emails. For example, you can create an email service that automatically creates contact records based on contact information in messages. Read more…
15. What are the different type of Collections you can have in Apex?
There are three main types of collections…
- Lists – A list is an ordered collection of elements that are distinguished by their indices. List elements can be of any data type—primitive types, collections, sObjects, user-defined types, and built-in Apex types.
- Sets – A set is an unordered collection of elements that do not contain any duplicates. Set elements can be of any data type—primitive types, collections, sObjects, user-defined types, and built-in Apex types.
- Maps – A map is a collection of key-value pairs where each unique key maps to a single value. Keys and values can be any data type—primitive types, collections, sObjects, user-defined types, and built-in Apex types.
User Interface Questions
16. What is Visualforce?
Visualforce is the component-based user interface framework for Salesforce. The framework includes a tag-based markup language, similar to HTML. Each Visualforce tag corresponds to a coarse or fine-grained user interface component, such as a section of a page, or a field.
Visualforce is a language that was built for the Salesforce Classic interface.
17. What is a Lightning Component?
The Lightning Component framework is a UI framework for developing dynamic web apps for Salesforce Lightning. This is also referred to as the original Aura Components model.
18. What is the difference between Lightning Web Components & Lightning Components
Lightning Components are a user interface framework that is used to create applications for desktop and mobile technologies on Salesforce.
Lightning Web Components were created to make it easier for those unfamiliar with the complexity of Salesforce, to build on the platform. They use a standardized-based architecture to provide better access to developers.
19. What is the Lightning Message Service (LMS)?
The Lightning Message Service is a unique Salesforce feature that enables communication between Visualforce, Aura, and Lightning Web Components on the same Lightning Page. It’s worth noting that LMS is available in Lightning Experience only.
20. What is Salesforce Flow?
Salesforce Flow is the most powerful declarative automation tool that lives in Salesforce. If Workflow Rules or Process Builder reach certain limitations, then Flow is an alterative to Apex code to build your automation solution.
You can display data to your users with screen elements, create branches and loop over datasets.
21. How are sharing rules used in Salesforce?
Sharing rules can be set up in order to extend sharing and to grant users access to a set of records depending on a defined criteria.
A sharing rule can be set up to extend sharing to a profile, role or public group depending on either the owner of a record or a field value. You can either assign Read-Only access to these users or Read/Write access.
22. Can you explain the use of custom settings?
Custom settings are similar to custom objects and enable Developers or Admins to create custom sets of data, as well as create and associate custom data for an organization, profile, or specific user. You can use custom settings to store a variety of information that can be accessed easily by other Salesforce tools.
23. Explain the use of a roll-up summary field and where it can be used
Roll-up summary fields can be used to calculate information based on a parent records child records. While a formula field can calculate information within a single record, roll-up summary fields can calculate data from a set of child records.
For example, a roll-up summary field could be used to calculate the total value of all closed-won opportunities on an account. Roll-up summary fields can only be used on a master-detail relationship.
24. What’s the difference between Record Types & Page Layouts
Whilst a page layout is used to define which fields, sections and related lists are displayed to a user, a record type can extend this by defining different business processes.
Read more: When to use Record Types Vs Page Layouts?
25. Explain the use of an Outbound Message?
An outbound message is one automation function that can fire from a workflow rule. They can send a message to external web services which can contain field values, this can subsequently kick off additional processes in external systems.
26. What is OAuth?
OAuth is an open standard for access delegation, commonly used as a way to grant websites or applications access to their information on other websites, but without giving them the passwords.
27. What is a Connected App?
A connected app integrates an application with Salesforce using APIs. Connected apps use standard SAML and OAuth protocols to authenticate, provide single sign-on, and provide tokens for use with Salesforce APIs.
In addition to standard OAuth capabilities, connected apps allow Salesforce Admins to set various security policies and have explicit control over who can use the corresponding apps.
28. Can you give an example of a Salesforce API and it’s usage?
Salesforce has a variety of API’s that let you interact with the system in different ways..
REST – The REST API lets you integrate with Salesforce applications using simple HTTP methods in either XML or JSON formats, making this an ideal API for developing mobile applications or external clients.
Bulk – The Bulk API provides a programmatic access that lets you quickly load data into your Salesforce organisation.
Streaming – The Streaming API can be used to receive notifications for changes to Salesforce data that match a SOQL query you define. Streaming API is useful when you want notifications to be pushed from the server to the client based on criteria that you define.
29. What are External ID fields used for?
Certain fields can be defined as an external ID on an object. These can be used in order to match up data from external systems with a unique reference ID.
For example, if you need to match up data from an external accounting system to the Accounts in Salesforce, you can use an external ID field to reference the Accounting system’s unique ID instead of the Salesforce ID.
30. What is a use case for Salesforce Connect?
Salesforce Connect is a product that utilises external objects. External objects allow you to integrate information into Salesforce in real-time, but without actually utilising Salesforce storage limits.
An example of using Salesforce connect could be to integrate a large database that houses transaction history against an account. This history would be viewable and reportable in Salesforce, but without utilizing a large amount of storage it would take to the house.