Top 50 Salesforce Interview Questions and Answers - Edureka
Top 50 Salesforce Interview Questions and Answers - Edureka
This list of interview questions is divided into 9 sections, each for different aspects of
Salesforce.
A. Salesforce fundamentals
B. Declarative features
C. Audit & reporting features
D. Data modelling and data management
E. Logic & process automation
F. Software testing
G. Debug & deployment tools
H. Integration features
I. Programmatic features
Profiles determine the level of access a user can have in a Salesforce org.
As far as the first part of the question is concerned, Yes. One profile can be assigned
to any number of users. Take the example of a Sales or Service team in a company.
The entire team will be assigned the same profile. The admin can create one
profile: Sales Profile, which will have access to the Leads, Opportunities,
Campaigns, Contacts and other objects deemed necessary by the company.
In this way, many users can be assigned the same profile. In case the team lead or
manager need access to additional records/ objects then it can be done by
assigning permission sets only for those users.
Answering the second part of the question, each user can only be assigned 1 profile.
In Salesforce, it is the Governor Limits which controls how much data or how many
records you can store in the shared databases. Why? Because Salesforce is based
on the concept of multi-tenant architecture. In simpler words, Salesforce uses a
single database to store the data of multiple clients/ customers. The below image will
help you relate to this concept.
To make sure no single client monopolizes the shared resources, Salesforce
introduced the concept of Governor Limits which is strictly enforced by the Apex
run-time engine.
A sandbox is a copy of the production environment/ org, used for testing and
development purposes. It’s useful because it allows development on Apex
programming without disturbing the production environment.
Developer
Developer Pro
Partial Copy
Full
No, it is not possible to edit apex classes and triggers directly in production
environment.
It needs to be done first in Developer edition or testing org or in Sandbox org. Then,
to deploy it in production, a user with Author Apex permission must deploy the
triggers and classes using deployment tools.
However, Visualforce pages can be created and edited in both sandbox and in
production.
Explore Curriculum
Only if the page has to do something unique (different values), it would have to be
developed via Sandbox.
5. What are the different data types that a standard field record name
can have?
A standard field record name can have data type of either auto number or text
field with a limit of 80 chars.
For generating auto numbers, the format needs to be specified while defining the
field and after that for every record that is added, the number will get auto generated.
For example:-
Sr No-{1}
Sr No-{2}
Sr No-{3}
Visualforce pages are served from a different domain to improve security standards
and block cross site scripting. Take a look at the highlighted portion in the below
Visualforce page:-
8. What is the use of writing sharing rules? Can you use sharing rules
to restrict data access?
Sharing rules are written to give edit access (public read and write) or public read
only access to certain individuals in Salesforce org. A classic example is when:-
only your managers or superiors need to be given extra credentials to your records
in objects as compared to your peers.
By default, all users in your organization will have organization-wide-
default sharing settings of either Public Read Only or Private.
To give access to more records, which users do not own, we write sharing rules.
Example: Sharing rules are used to extend sharing access to users in public groups
or roles. Hence, sharing rules are not as strict as organization-wide default settings.
They allow greater access for those users.
As far as the second part of the question is concerned, the answer is no. We cannot
use sharing rules to restrict data access. It is only used for allowing greater access to
records.
9. What are the different types of email templates that can be created
in Salesforce?
The different types of Email templates are listed in the below table:-
A bucket field lets you group related records together by ranges and segments,
without the use of complex formulas and custom fields. Bucketing can thus be used
to group, filter, or arrange report data. When you create a bucket field, you need to
define multiple categories (buckets) that are used to group report values.
The advantage is that earlier, we had to create custom fields to group or segment
certain data.
You can use dynamic dashboards when you want to show user-specific data of a
particular user, such as their personal quotas and sales, or number of case closures,
or leads converted etc.
You can also use a normal/ static dashboard when you want to show regional or
organization-wide data to a set of users, such as a particular region’s sales number,
or a particular support team’s performance on case closures.
Can we mass delete reports in Salesforce? Of Course we can mass delete reports in
Salesforce. The option to mass delete reports can be found under Data
Management in Setup.
D. Data Modelling & Data Management – Salesforce Interview
Questions
13. What are the different types of object relations in salesforce? How
can you create them?
In a Lookup relationship, even if the parent record is deleted, the child record will not
be deleted.
15. Can you have a roll up summary field in case of Master-Detail
relationship?
Yes. You can have a roll-up summary in case of a master-detail relationship. But not
in case of a lookup relationship.
A roll-up summary field is used to display a value in a master record based on the
values of a set of fields in a detail record. The detail record must be related to the
master through a master-detail relationship.
There are 4 calculations that you can do using roll-up summary field. You can count
the number of detail records related to a master record. Or, you can calculate the
sum, minimum value, or maximum value of a field in the detail records.
“Data skew” is a condition which you will encounter when working for a big client
where there are over 10,000 records. When one single user owns that many records
we call that condition ‘ownership data skew’.
When such users perform updates, performance issues will be encountered because
of “data skew”. This happens when a single user/ members of a single role own most
of the records for a particular object.
17. Explain skinny table. What are the considerations for Skinny
Table?
In Salesforce, skinny tables are used to access frequently used fields and to avoid
joins. This largely improves performance. Skinny tables are highly effective, so much
so that even when the source tables are modified, skinny tables will be in sync with
source tables.
In a Data Loader .CSV, if there is a comma in field content, you will have to enclose
the contents within double quotation marks: ” “.
Time dependent workflow action cannot be create for: “created, and every time it’s
edited”.
21. What are the types of custom settings in Salesforce? What is the
advantage of using custom settings?
List Custom Settings are a type of custom settings that provides a reusable set of
static data that can be accessed across your organization irrespective of user/
profile.
Hierarchy Custom Settings are another type of custom settings that uses built-in
hierarchical logic for “personalizing” settings for specific profiles or users.
22. How many active assignment rules can you have in a lead/ case?
23. What are custom labels in Salesforce? What is the character limit
of custom label?
Custom labels are custom text values that can be accessed from Apex classes or
Visualforce pages. The values here can be translated into any language supported
by Salesforce.
Their benefit is that they enable developers to create multilingual applications which
automatically presents information in a user’s native language.
Salesforce Training Course: Administrator and App Builder Certification
You can create up to 5,000 custom labels for your organization, and they can be up
to 1,000 characters in length.
Role however is not mandatory for every user. The primary function of the Role/
Role hierarchy is that it allows higher level users in hierarchy get access to records
owned by lower level users in the hierarchy. An example of that is Sales Managers
getting access to records owned by Sales Reps while their peers do not get access
to it.
Lookup fields
Formula fields whose reference spans over other entities
Fields having dynamic date functions like:- TODAY() or NOW()
F. Software Testing – Salesforce Interview Questions
26. Why do we need to write test classes? How to identify if a class is a test
class?
Software developers from around the world will unanimously agree that writing code
in test classes makes debugging more efficient. Why? That is because test classes
help in creating robust and error-free code be it Apex or any other programming
language. Since Unit tests are powerful in their own right, Salesforce requires you to
write test classes in Apex code.
Why are they so powerful? Because test classes and test methods verify whether a
particular piece of code is working properly or not. If that piece of code fails, then
developers/ testers can accurately locate the test class having the faulty bug.
Test classes can be determined easily because every test class will be annotated
with @isTest keyword. In fact, if we do not annotate a test class with @isTest, then
it cannot be defined as a test class. Similarly, any method within a class which has
the keyword testMethod, is a test method.
In Salesforce, if you want to deploy your code to production, then you must make
sure that at least 75% of your Apex code is covered by unit tests. And all these
tests must complete successfully.
1. Change Sets
2. Eclipse with Force.com IDE
3. Force.com Migration Tool – ANT/Java based
4. Salesforce Package
30. How many callouts to external service can be made in a single Apex
transaction?
Governor limits will restrict a single Apex transaction to make a maximum of 100
callouts to an HTTP request or an API call.
31. How can you expose an Apex class as a REST WebService in Salesforce?
You can expose your Apex class and methods so that external applications can
access your code and your application through the REST architecture. This is done
by defining your Apex class with the @RestResource annotation to expose it as a
REST resource. You can then use global classes and a WebService callback
method.
Invoking a custom Apex REST Web service method always uses system context.
Consequently, the current user’s credentials are not used, and any user who has
access to these methods can use their full power, regardless of permissions, field-
level security, or sharing rules.
Developers who expose methods using the Apex REST annotations should therefore
take care that they are not inadvertently exposing any sensitive data. Look at the
below piece of code for instance:-
1
2
3 global class AccountPlan {
webservice String area;
4 webservice String region;
5 //Define an object in apex that is exposed in apex web service
6 global class Plan {
7 webservice String name;
webservice Integer planNumber;
8 webservice Date planningPeriod;
9 webservice Id planId;
10 }
11 webservice static Plan createAccountPlan(Plan vPlan) {
12 //A plan maps to the Account object in salesforce.com.
//So need to map the Plan class object to Account standard object
13 Account acct = new Account();
14 acct.Name = vPlan.name;
15 acct.AccountNumber = String.valueOf(vPlan.planNumber);
16 insert acct;
17 vPlan.planId=acct.Id;
return vPlan;
18 } }
19
20
I. Programmatic Features – Advanced Salesforce Interview
Questions and Answers for Experienced Professionals
32. What is the difference between a standard controller and a custom
controller?
Standard controller in Apex, inherits all the standard object properties and standard
button functionality directly. It contains the same functionality and logic that are used
for standard Salesforce pages.
Custom controller is an Apex class that implements all of the logic for a page without
leveraging a standard controller. Custom Controllers are associated with Visualforce
pages through the controller attribute.
1
2 <apex:page standardController="Account" recordSetvar="accounts">
3 <apex:pageBlock title="Viewing Accounts">
4 <apex:form id="theForm">
<apex:pageBlockSection >
5
<apex:dataList var="a" value="{!accounts}" type="1">
6 {!a.name}
7 </apex:dataList>
8 </apex:pageBlockSection>
9 <apex:panelGrid columns="2">
<apex:commandLink action="{!previous}">Previous</apex:commandlink>
10 <apex:commandLink action="{!next}">Next</apex:commandlink>
11 </apex:panelGrid>
12 </apex:form>
13 </apex:pageBlock>
14 </apex:page>
15
34. How can you call a controller method from JavaScript?
Look at the below piece of code to understand how a controller method is called
using actionfunction.
1 <script>
2 function JSmethodCallFromAnyAction()
3 {
4 callfromJS();
5 }
</apex:page>
6
35. How to get the UserID of all the currently logged in users using Apex
code?
You can get the ID’s of all the currently logged in users by using this global
function: UserInfo.getUserId().
36. How many records can a select query return? How many records can a
SOSL query return?
37. What is an attribute tag? What is the syntax for including them?
Note that you cannot define attributes with names like id or rendered. These
attributes are automatically created for all custom component definitions. The below
piece of code shows the syntax for including them:
1
2
3 <apex:component>
<apex:attribute name="myValue" description="This is the value for the component."
4 <apex:attribute name="borderColor" description="This is color for the border." ty
5
6 </p>
7 <p>
8 </p>
9 <p>
</p>
10 <p>
11 </p>
12 <h1 style="border:{!borderColor}">
13 <apex:outputText value="{!myValue}"/>
</h1>
14 <p>
15 </p>
16 <p>
17 </p>
18 <p>
</p>
19 <p>
20
21 </apex:component>
22
23
38. What are the three types of bindings used in Visualforce? What does each
refer to?
There are three types of bindings used in Salesforce:-
Data bindings and Action bindings are the most common and they will be used in
every Visualforce page.
39. What are the different types of collections in Apex? What are maps in
Apex?
Collections are the type of variables which can be used to store multiple number of
records (data).
It is useful because Governor Limits restrict the number of records you can retrieve
per transaction. Hence, collections can be used to store multiple records in a single
variable defined as type collection and by retrieving data in the form of collections,
Governor Limits will be in check. Collections are similar to how arrays work.
Lists
Maps
Sets
Maps are used to store data in the form of key-value pairs, where each unique key
maps to a single value.
Syntax: Map<String, String> country_city = new Map<String, String>();
For example:
1 </apex:page>
2 <flow:interview name="flowuniquename"/>
3 <apex:page>
6. Click Save.
7. Restrict which users can access the Visualforce page.
a. Click Visualforce Pages.
b. Click Security next to your Visualforce page.
c. Move all the appropriate profiles from Available Profiles to Enabled
Profiles by using the ‘add’ and ‘remove’ buttons.
d. Click Save.
8. Add the Visualforce page to your Force.com app by using a custom button, link, or
Visualforce tab.
Future annotations are used to identify and execute methods asynchronously. If the
method is annotated with “@future”, then it will be executed only when Salesforce
has the available resources.
For example, you can use it while making an asynchronous web service callout to an
external service. Whereas without using the annotation, the web service callout is
made from the same thread that is executing the Apex code, and no additional
processing will occur until that callout is complete (synchronous processing).
1. Start method:
global (Database.QueryLocator | Iterable<sObject>)
start(Database.BatchableContext bc) {}
2. Execute method:
global void execute(Database.BatchableContext BC, list<P>){}
3. Finish method:
global void finish(Database.BatchableContext BC){}
Triger.new is a command which returns the list of records that have been added
recently to the sObjects. To be more precise, those records will be returned which
are yet to be saved to the database. Note that this sObject list is only available in
insert and update triggers, and the records can only be modified in before triggers.
But just for your information, Trigger.old returns a list of the old versions of the
sObject records. Note that this sObject list is only available in update and delete
triggers.
45. What all data types can a set store?
Primitive types
Collections
sObjects
User-defined types
Built-in Apex types
An sObject is any object that can be stored in the Force.com platform database.
Apex allows the use of generic sObject abstract type to represent any object.
For example, Vehicle is a generic type and Car, Motor Bike all are concrete types of
Vehicle.
In SFDC, sObject is generic and Account, Opportunity, CustomObject__c are its
concrete type.
SOQL vs SOSL
SOQL (Salesforce Object Query SOSL (Salesforce Object Search
Language) Language)
Only one object can be searched at a time Many objects can be searched at a time
Can query any type of field Can query only on email, text or phone
Can be used in classes and triggers Can be used in classes, but not triggers
49. What is the difference between public and global class in Apex?
Global class is accessible across the Salesforce instance irrespective of
namespaces.
Whereas, public classes are accessible only in the corresponding namespaces.
Get (getter) method is used to pass values from the controller to the VF page.
Whereas, the set (setter) method is used to set the value back to controller
variable.
I hope this set of Salesforce interview questions will help you ace your job interview.
As the next step for your career, check out the various certifications offered by
Salesforce. It will also help you to understand the job roles and chalk out a career
path for yourself.