Sunday, December 21, 2014

SFDC Developer Interview Question and Answers

SFDC Developer Interview Question and Answers

(Q). What is Apex in Salesforce?

• Apex is a procedural scripting language in discrete and executed by the platform.
• It runs naively on the Salesforce servers, making it more powerful and faster than non-server code, such as JavaScript/AJAX.

• It uses syntax that looks like Java
• Apex can written in triggers that act like database stored procedures.
• Apex allows developers to attach business logic to the record save process.
• It has built-in support for unit test creation and execution.

Apex provides built-in support for common platform idioms, including:
• Data manipulation language (DML) calls, such as INSERT, UPDATE, and DELETE, that include built-in DmlException handling
• Inline Salesforce Object Query Language (SOQL) and Salesforce Object Search Language (SOSL) queries that return lists of sObject records
- Looping that allows for bulk processing of multiple records at a time
- Locking syntax that prevents record update conflicts
- Custom public API calls that can be built from stored Apex methods
- Warnings and errors issued when a user tries to edit or delete a custom object or field that is referenced by Apex

Note: Apex is included in Unlimited Edition, Developer Edition, Enterprise Edition, and

Apex vs. Java: Commonalities
• Both have classes , inheritance, polymorphism, and other common OOP features.
• Both have the same name variable, expression, and looping syntax.
• Both have the same block and conditional statement syntax.
• Both use the same object, array, and comment notation.
• Both are compiled, strongly-typed, and transactional.

Apex vs. Java: Differences
• Apex runs in a multi-tenant environment and is very controlled in its invocation and governor limits.
• To avoid confusion with case-insensitive SOQL queries, Apex is also case-insensitive.
• Apex is on-demand and is compiled and executed in cloud.
• Apex is not a general purpose programming language, but is instead a proprietary language used for specific business logic functions.
• Apex requires unit testing for development into a production environment.

(Q). What is Visualforce in Salesforce?

Visualforce is the component-based user interface framework for the platform. 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 boasts about 100 built-in components, and a mechanism whereby developers can create their own components.
• Visualforce pages can react differently to different client browsers such as those on a mobile or touch screen device.
• Everything runs on the server, so no additional client-side callbacks are needed to render a complete view.
• Optional server-side call outs can be made to any Web service.

Visualforce is a Web-based framework that lets you quickly develop sophisticated, custom UIs for desktop and mobile apps. Using native Visualforce markup and standard Web development technologies such as HTML5, CSS, JavaScript, and jQuery, you can rapidly build rich UIs for any app.

(Q). Apex code Execution Governors and Limits

This link should have more information about Apex code Execution Governors and Limits,

(Q). Apex Data Types

Apex primitive data types include
- String
- Blob (for storing binary data)
- Boolean
- Date, DateTime and Time
- Integer, Long, Decimal, Double
- ID ( database record identifier)
– Example:
• DateTime dt = + 1;
• Boolean isClosed = true;
• String sCapsFirstName = ‘Andrew’.toUpperCase();

Apex sObject Types
- Sobject (object representing a standard or custom object)
– Example:
• Account acct = new Account(); //Sobject example

Apex has the following types of collections
- Lists
- Maps
- Sets
– Example:
• List myList = new List();
• myList.add(12); //Add the number 12 to the list
• myList.get(0); //Access to first integer stored in the List

• Enum (or enumerated list) is an abstract that stores one value of a finite set of specified identifiers.
• To define an Enum, use enum keyword in the variable declaration and then define the list of values.
• By creating this Enum, you have created a new data type called Season that can be used as any other data type.
- Example:
• public enum Season {WINTER, SPRING, SUMMER, FALL}

(Q). Variables

Local variables are declared with Java-style syntax.
For example:
Integer i = 0;
String str;
Account a;
Account[] accts;
Set s;
Map<ID, Account> m;

(Q). Static Methods and Variables

• Class methods and variables can be declared as static. Without this keyword, the default is to create instance methods and variables.
• Static methods are accessed through the class itself, not through an object of the class:

public class blogReaders {
public static boolean firstScript = false;
• Static methods are generally utility methods that do not depend on an instance. System methods are static.
• Use static variables to store data that is shared with in the class.
– All instances of the same class share a single copy of static variables.
– This can be a technique used for setting flags to prevent recursive

(Q). What is the use of static variable?

When you declare a method or variable as static, it’s initialized only once when a class is loaded. Static variables aren’t transmitted as part of the view state for a Visualforce page.

Static variables are only static within the scope of the request. They are not static across the server, or across the entire organization.

(Q). Final variables

• The final keyword can only used with variables.
– Classes and methods are final by default.
• Final variables can only be assigned a value once.
– This can either be at assigned a value once.
• When defining constants, both static and final keywords should be used.
Example: public static final Integer =47;

(Q). Difference between with sharing and without sharing in salesforce

By default, all Apex executes under the System user, ignoring all CRUD, field-level, and row-level security (that is always executes using the full permissions of the current user).

without sharing:
Enforcing the User’s Permissions, Sharing rules and field-level security should apply to the current user.
For example:
public with sharing class sharingClass {
// Code here

without sharing:
Not enforced the User’s Permissions, Sharing rules and field-level security.
For example:
public without sharing class noSharing {
// Code here

Enforcing the current user’s sharing rules can impact: (with sharing)
SOQL and SOSL queries – A query may return fewer rows than it would operating in system context.

DML operations – An operation may fail because the current user doesn’t have the correct permissions. For example, if the user specifies a foreign key value that exists in the organization, but which the current user does not have access to.

For More info Click Here:

(Q). Class Constructors

• A constructor is a special method used to create(or instantiate) an object out of a class definition.
– Constructors never have explicit return types.
– Constructors have the same name as the class.
• Classes have default, no-argument, public constructor if no explicit constructors is defined.
– If you create a constructor that takes arguments and still want a noargument constructor, you must explicitly define one.
• Constructors can be overloaded, meaning you can have multiple constructors with different parameters, unique argument lists, or signatures.
• Constructors are called before all other methods in the class.

For Example:
public class TestObject2 {
private static final Integer DEFAULT_SIZE = 10;
Integer size;
//Constructor with no arguments
public TestObject2() {
this(DEFAULT_SIZE); // Using this(…) calls the one argument constructor
// Constructor with one argument
public TestObject2(Integer ObjectSize) {
size = ObjectSize;

New objects of this type can be instantiated with the following code:
TestObject2 myObject1 = new TestObject2(42);
TestObject2 myObject2 = new TestObject2();

(Q). Class Access Modifiers

• Classes have different access levels depending on the keywords used in the class definition.

global: this class is accessible by all Apex everywhere.
• All methods/variables with the webService keyword must be global.
• All methods/variables dealing with email services must be global.
• All methods/variables/inner classes that are global must be within an global class to be accessible.

public: this class is visible across you application or name space.

private: this class is an inner class and is only accessible to the outer class, or is a test class.
• Top-Level (or outer) classes must have one of these keywords.
– There is no default access level for top-level classes.
– The default access level for inner classes is private.

protected: this means that the method or variable is visible to any inner classes in the defining Apex class. You can only use this access modifier for instance methods and member variables.

To use the private, protected, public, or global access modifiers, use the 
following syntax:
[(none)|private|protected|public|global] declaration

(Q). Variable and Method Access Modifiers

• Link classes, methods and variables have different levels depending on the keywords used in the declaration.

private: This method/variable is accessible within the class it is defined.
protected: This method/variable is also available to any inner classes or subclasses. It can only be used by instance methods and member variables.
public: This method/variable can be used by any Apex in this application namespace.
global: this method/variable is accessible by all Apex everywhere.
• All methods/variable with the webService keyword must be global.
– The default access modifier for methods and variables is private.

(Q). Casting

Apex enables casting: A data type of one class can be assigned to a data type of another class, but only if one class is a child of other class.
• Casting converts an object from one data type to another.
• Casting between the generic sObject type and the specific
sObject type is also allowed.

For Example:
sObject s = new Account();
Account a = (Account)s;
Contact c = (Contact)s //this generates a run time error

(Q). Exceptions Statements

Similar to Java, Apex uses exception to note errors and other events that disrupt script execution with the following keywords:

Throw: signals that an error has occurred and provides an exception object.

Try: identifies the block of code where the exception can occur.

Catch: identifies the block of code that can handle a particular exception. There may be multiple catch blocks for each try block.

Finally: optionally identifies a block of code that is guaranteed to execute after a try block.

Exception Example:
public class OtherException extends BaseException {}
//Add code here
throw new OtherException(‘Something went wrong here…’);
} Catch (OtherException oex) {
//Caught a custom exception type here
} Catch (Exception ex){
//Caught all other exceptions here

(Q). Exception Methods

All exceptions support built-in methods for returning the error message and exception type, below is the some of the Exception Methods,

(Q). Loops

• Apex supports the following five types of procedural loops:
do {statement} while (Boolean_condition);
while (Boolean_condition) statement;
for (initialization; Boolean_exit_condition; increment) statement;
for (variable : array_or_set) statement;
for (variable : [inline_soql_query]) statement;
• All loops allow for loop control structures:
break; exits the entire loop
continue; skips to the next iteration of the loop

(Q). What is a Business Process?

• Allows you to track separate sales, support, and lead lifecycles
across different divisions, groups, or markets

Available Business Processes:
– Sales Processes – Create different sales processes that include some or all of the picklist values available for the Opportunity Stage field

– Support Processes – Create different support processes that include some or all of the picklist values available for the Case Status field

– Lead Processes – Create different lead processes that include some or all of the picklist values available for the Lead Status field

– Solution Processes – Create different solution processes that include some or all of the picklist values available for the Solution Status field

(Q). What are the Objects available in the Salesforce Business Process and Give some Business Process Example?


–You must create the business process before creating record types for each of above objects.

– You can then associate each business process with one or more record types and make it available to users based on their profile.

– In order to implement more than one business process, multiple record types must also be implemented.

Business Process Examples

Lead Processes:
– Cold Call
– 3rd Party telesales companies
– Leads generated via campaigns
– Leads generated via a registration form

Opportunities Sales Processes:
– Miller Heiman/ Solution Selling Methodology
– Inside Sales vs. Outside Sales
– New business vs. Existing Business (Up selling)

Case Processes:
– Customer Inquiries
– Internal Requests
– Billing inquiries

Solutions Processes:
– Internal vs. Public Knowledge Base

(Q). What about Web-to-Lead and Web-to-Case?

–A lead or case record created through Web-to-Lead or Web-to-Case will set the record type to that of  the default lead owner or automated case user (optional)

(Q). On which tabs can I create multiple record types?

–Multiple record types may be created for every tab, with the exception of the Home, Forecasts, Documents, and Reports tabs.

(Q). What happens if I need to add a picklist value?

–You will be prompted to select which record types should include the new value

(Q). What is Field-Level Security?

– Defines users’ access to view and edit specific fields in the application

(Q). Why use Field-Level Security?

– Use Field-Level Security (rather than creating multiple page layouts) to enforce data security

– Users view data relevant to their job function Troubleshooting Tools

– Field accessibility views

– Setup | Administration Setup | Security Controls | Field Accessibility

• Field Level Security is not available in PE

• Field-level security cannot be used to make a field required. This is done from the Page Layout

• Field access settings can be defined using both field-level security and page layouts. However, the most restrictive field access setting of the two will always apply. For example, if a field is required on the page layout, but read-only in the field-level security settings, the field will be read-only.

• Hiding a field from a user using FLS also hides that field from list views, search results, and reports.

(Q).  What are Login Hours and Login IP Ranges?

– Sets the hours when users with a particular profile can use the system
– Sets the IP addresses from which users with a particular profile can log in

• You can customize profiles to restrict users’ ability to log in to Salesforce.
• You can set the hours when users can log in and the IP addresses from which they can log in.
If a user logs in before the restricted hours, the system will end the user’s session when the restricted hours begin.

Two Options for Restricting Access via IP Ranges
Option 1: Add Trusted IP Ranges for your entire org
Option 2: Add Trusted IP Ranges on a Profile by Profile basis

(Q).  What is a User Record?

– Key information about a user
– Each has its own unique username
– User logs in with username and password
– Users can be active or inactive; an active user uses a license
– Users are associated with a Profile
– Users are usually associated with a Role

(Q). What is a Record Owner?

– The user (or queue for Cases and Leads) who controls or has rights to that particular data record
– An Owner has the following special privileges:
• View and edit capabilities
• Transfer capability – change ownership
• Deletion capabilities
– Important assumption: Object permissions enabled
– The Account Owner, Opportunity Owners and Case Owners may or may not be the same user.

(Q). What are Organization Wide Defaults?

– Defines the baseline level of access to data records for all users in the Organization (not including records owned by the user or inherited via role hierarchy)
– Used to restrict access to data

Access levels:
-Public Read/Write
-Public Read/Write/Transfer
-Controlled by Parent
-Public Read Only

(Q). What is a Role and Role Hierarchy?

– Controls the level of visibility that users have to an organization’s data
– A user may be associated to one role

Role Hierarchy:
– Controls data visibility
– Controls record roll up – forecasting and reporting
– Users inherit the special privileges of data owned by or shared with users below them in the hierarchy
– Not necessarily the company’s organization chart

• If using Customizable Forecasting, there is a separate forecast role hierarchy.
• EE can create Account, Contact, Opportunity and Case Sharing Rules. PE can ONLY create Account and Contact Sharing Rules.
• Assuming no sharing rules have been created, users in the same role cannot access one another’s records.

Example: Org Wide Default settings for opportunities are private. Creating a role and adding two users to that role does not allow those users access to one another’s opportunities.

• “Grant Access Using Hierarchies” allows you to disable the default sharing access granted by your role and territory hierarchies. This option can be changed for custom objects that do not have their organization-wide default sharing setting set to Controlled by Parent.

(Q). What is Access at the Role Level?

– Defined when creating a role
– Level of access to Opportunities associated to Accounts owned by the role
– Level of access to Contacts associated to Accounts owned by the Role
– Level of access to Cases associated to Accounts owned by the role
– Level of access options depend on OWD

• You can create up to 500 roles for your organization
• Every user must be assigned to a role, or their data will not display in opportunity reports, forecast roll-ups, and other displays based on roles
• All users that require visibility to the entire organization should belong to the highest level in the hierarchy
• It is not necessary to create individual roles for each title at your company, rather you want to define a hierarchy of roles to control access of  information entered by users in lower level roles
• When you change a user’s role, any relevant sharing rules are evaluated to add or remove access as necessary

(Q). What is a Sharing Rule?

– Automated rules that grant access to groups of users
– Exceptions to Organization Wide Defaults
– Irrelevant for Public Read/Write organizations
– Levels of Access that can be granted

• Read Only
• Read/Write

• Sharing rules should be used when a user or group of users needs access to records not granted them by either the role hierarchy setup or the organization wide default settings.

- Sharing rules open up access whereas organization wide defaults restrict access.

- You can use sharing rules to grant wider access to data. You cannot restrict access below your organization-wide default levels.

• Sharing rules apply to all new and existing records owned by the specified role or group members.

• Sharing rules apply to both active and inactive users.

• When you change the access levels for a sharing rule, all existing records are automatically updated to reflect the new access levels.

• When you delete a sharing rule, the sharing access created by that rule is automatically removed.

• When you transfer records from one user to another, the sharing rules are reevaluated to add or remove access to the transferred records as  necessary.

• When you modify which users are in a group or role, the sharing rules are reevaluated to add or remove access as necessary.

• For contact, opportunity and case sharing rules, if the role or group members do not have access to the account associated with the shared contact, opportunity or case the rule automatically gives them access to view the account as well.

• Managers in the role hierarchy are automatically granted the same access that users below them in the hierarchy have from a sharing rule.

• You can edit the access levels for any sharing rule. You cannot change the specified groups or roles for the rule.

(Q). Types of Sharing Rules in Salesforce and Explain it?

Account Sharing Rules:
– Based on who owns the account
– Set default sharing access for accounts and their associated cases, contacts, contracts, and opportunities

Contact Sharing Rules:
– Based on who owns the contact (must be associated with an account)
– Set default sharing access for individual contacts and their associated accounts
– Cannot use with: Territory Management and B2I (Person Account) enabled orgs

Opportunity Sharing Rules (EE/UE):
– Based on who owns the opportunity
– Set default sharing access for individual opportunities and their associated accounts

Case Sharing Rules (EE/UE):
– Based on who owns the case
– Set default sharing access for individual cases and associated accounts

Lead Sharing Rules (EE/UE):
– Based on who owns the lead
– Set default sharing access for individual leads

Custom Object Sharing Rules (EE/UE):
– Based on who owns the custom object
– Set default sharing access for individual custom object records

(Q). Uses cases for Sharing Rules in salesforce?

– Organizations with organization-wide defaults of Public Read Only or Private can create sharing rules to give specific users access to data owned by other users.

Cases Sharing Example: To use cases effectively, customer support users must have read access to accounts and contacts. You can create account sharing rules to give your customer support team access to accounts and contacts when working on cases.

Account Sharing Example: The Western and Eastern Regional Directors need to see all of the accounts created by each others’ sales reps. You can create two public groups – one that includes the Western and Eastern Regional Director roles and one that includes the Western and Eastern Sales Rep roles. Then create an account sharing rule so that records owned by the Western and Eastern Sales Rep group are shared with the group containing the Western and Eastern Regional Director roles.

(Q). Best Practices of Creating Contact Sharing Rules?

– Account Org-Wide Default must be set to at least “Public Read Only” in order to set the Contact Org-Wide Default to “Public Read/Write”.

– To share ALL contacts in the system with a group of users or a specific role, create a sharing rule that uses the “All Internal Users” (or “Entire Organization”) public group as the owned by option.

– Use “Roles and Subordinates” over “Roles” where possible to minimize the number of sharing rules.

(Q). What is a Public Group?

– A grouping of:
• Users
• Public Groups (nesting)
• Roles
• Roles and Subordinates
– Mixture of any of these elements
– Used in Sharing Rules – for simplification (when more than a few roles need to be shared to)
– Also used when defining access to Folders and List Views

For example, if a new user is assigned a role that belongs to an existing public group, that user will be automatically added to the public group

(Q). What is Manual Sharing?

– Granting record access, one-off basis

– Owner, anyone above owner in role hierarchy and administrator can manually share records

– Available on Contacts, Leads, Cases, Accounts and Opportunity records and Custom Objects

– Like sharing rules, irrelevant for Public Read/Write organizations

(Q). What is a Sales Team? (EE/UE)

– Used for collaborative selling
– Used for sharing as well as reporting purposes
– Ad hoc or may use Default Sales Team (defined for user)
– Default Sales Teams may be automatically added to a user’s opportunities
– Who can add a Sales Team?

• Owner
• Anyone above owner in role hierarchy
• Administrator

Adding Default Sales Team Members:

– Click Setup | My Personal Information | Personal Information

Please note that the Professional Edition does NOT have access to the Team Selling Feature.

(Q). Org Wide Defaults Vs Role Hierarchy Vs Sharing Models?

(Q). What is an Account Team? (EE/UE)

– Used for collaborative account management
– Used for sharing as well as reporting purposes
– Manually added to Account records
– Default Account Teams may be automatically added to a user’s accounts

– Who can add an account team?

• Owner
• Anyone above owner in role hierarchy
• Administrator

Please note that Account Teams are not available for Professional Edition.

(Q). What is an Case Team? (EE/UE)

Case teams enable full communication and collaboration on solving customer issues. You can:

– Add teams of users to cases
– Create a workflow for case teams
– Predefine case teams for users
– Determine the level of access
– Administrators can predefine case teams for users and determine the level of access each team member has to a case, such as Read/Write or Read/Only.
Click Path: Setup | Customize | Cases | Case Teams

(Q). What are Folders?

– Used for organizing email templates, documents, reports and dashboards
– Access is defined – Read or Read/Write
– Access is explicit – does NOT roll up through role hierarchy

– You can modify the contents of a folder if the folder access level is set to Read/Write.
– Only users with the “Manage Public Documents” or “Manage Public Templates” can delete or change a Read Only folder.
– The Documents tab does NOT contain version control capabilities
– To search documents, users must use Documents search. The sidebar search does NOT search Documents, Solutions, Products, and Reports but does search Assets and Custom Objects
– The Create New Folder link will only be visible to users with the “Manage Public Documents” permission
– The size limit for documents uploaded is 5MB. The size limit for document filenames is 255 characters including the file extension

(Q). What is Workflow?

Salesforce Workflow gives you the ability to automatically:
– Create and send email alerts
– Create and assign tasks
– Update field values to either specific values, or based on formulas
– Create and send outbound API messages
– Create and execute time-dependent actions

Workflow Important Points:
• Your sales organization operates more efficiently with standardized internal procedures and automated business processes – workflow.

• You can set up Salesforce to automatically send email alerts, assign tasks, or update field values based on your organization’s workflow.

• Workflow rules can be used to assign follow-up tasks to a support rep when a case is updated, send sales management an email alert when a sales rep qualifies a large deal, change the owner of a contract when it has been signed by the customer, or trigger an outbound API message to an external HR system to initiate the reimbursement process for an approved expense report.

(Q). What are Workflow Components available?

Workflow consists of the following components:
– Workflow Rules – trigger criteria for performing various workflow actions
– Workflow Tasks – action that assigns a task to a targeted user
– Workflow Email Alerts – action that sends an email to targeted recipients
– Workflow Field Updates – action that updates the value of a field automatically
– Workflow Outbound Messages – action that sends a secure configurable API message (in XML format) to a designated listener (not covered in this class)

• Workflow Rules use workflow actions when their designated conditions are met. Workflow rules can be triggered any time a record is saved or created, depending on your rule settings. However, rules created after saving records do not trigger those records retroactively.

• Workflow Tasks are like task templates, containing the information a workflow rule uses to assign a task to specified users whenever specific business actions trigger the rule. Workflow tasks provide the Subject, Status, Priority, and Due Date for the tasks a rule assigns.

• Workflow Email Alerts are emails generated by a workflow rule using an email template. The emails are sent to designated recipients, either Salesforce users or others, whenever specific business actions trigger a workflow rule.

• Workflow Field Updates specify the field you want updated and the new value for it. Depending on the type of field, you can choose to apply a specific value, make the value blank, or calculate a value based on a formula you create.

• Workflow Outbound Messages send the information you specify to an endpoint you designate, such as an external service. An outbound message sends the data in the specified fields in the form of a SOAP message to the endpoint.

(Q). What is a Workflow Rule?

– Defined trigger criteria based on your business requirements
– Evaluated when record is created, when created/updated, OR when created/updated and did not previously meet trigger criteria
– When trigger criteria is met workflow actions, such as email alerts, tasks, field updates, or outbound messages are generated

To get started using workflow rules, click
• Setup | Create| Workflow & Approvals | Workflow Rules

(48). What is a Workflow Task?

– When a Workflow Rule is met, a Task may be assigned to designated users to follow-up and respond to the Business Conditions in the Workflow Rule
– Workflow Tasks may be assigned to a user, role, record owner, record creator, sales team role, or account team
– Tracked in Activity History and can be reported on
– Can be re-used within the same object
– Tasks can be immediate or time-dependent

To create your workflow tasks:
Click Setup | Customize | Workflow & Approvals | Tasks

(Q). What is a Workflow Alert?

– Workflow Alerts are emails generated by a workflow rule whenever specific Business Actions trigger the rule
– Can send alerts to Users, Roles, Customer in a Contact Field, Email Field on Page Layout – please see picklist for options…
– Not tracked in Activity History
– Can be re-used within the same object
– Alerts can be immediate or time-dependent

(Q). What is a Workflow Field Update?

– Field updates allow you to automatically change the value of a field to a value you specify

– Depending on the type of field you can:
• apply a specific value
• make the value blank
• calculate a value based on a formula you create
– Field updates can be immediate or time-dependent

To get started using workflow Filed Updates, click

Click Setup | Create | Workflow & Approvals | Field Updates

(Q). What is Time-Dependent Workflow?

Time-Dependent Workflow gives you the ability to
– execute time-sensitive actions before or after any date on the record
– perform a series of actions at various points in time
– use the Workflow Queue to manage all pending actions Use Time-Dependent workflow to
– send an email reminder to an account team if a high-value opportunity is still open ten days before the close date
– notify the VP of sales if a high value opportunity close date is fast approaching and it has not been closed
– pro-actively notify support rep if an open case with Platinum Support SLA has not been worked for a period of time and take action before the case  escalates

(Q). Working with Time-Dependent workflow

Time Triggers
– are time values relevant to the record and are used to initiate a time-dependent action

Time-Dependent Actions
– are any of the five workflow actions with an associated time-trigger
– are queued whenever a rule is triggered
– can be reused in additional workflow rules as long as the object is the same
– are removed from the workflow queue if the corresponding record no longer meets rule trigger criteria.
– are dynamically updated in the workflow queue if the corresponding record field is updated.

(Q). Time-Dependent Workflow – Considerations

Maximum of 10 time triggers per rule

Maximum of 40 actions (10 x 4 types) per time trigger, and 80 actions per workflow rule

Workflow default user must be set up before creating time-based rules
Precision limited to hours or days

Cannot convert leads with time-dependent actions in the Workflow Queue

Time triggers cannot be added to or removed from activated workflow rules

Not possible to create a time-dependent action associated to a rule with a trigger type of Every time the record is created or updated

(Q). When The Add Time Trigger button is unavailable?

The evaluation criteria is set to Evaluate the rule when a record is: created, and every time it’s edited.

The rule is activated.

The rule is deactivated but has pending actions in the workflow queue.

(Q). Time-Dependent Workflow Limitations:

Time triggers don’t support minutes or seconds.
Time triggers can’t reference the following:

  • DATE or DATETIME fields containing automatically derived functions, such as TODAY or NOW.
  • Formula fields that include related-object merge fields.
You can’t add or remove time triggers if:

  • The workflow rule is active.
  • The workflow rule is deactivated but has pending actions in the queue.
  • The workflow rule evaluation criteria is set to Evaluate the rule when a record is: created, and every time it’s edited.
  • The workflow rule is included in a package.

(Q). What is Approval Processing?

An approval process is an automated Business Process that your organization can use to approve records in Salesforce
An approval process specifies the:
– Steps necessary for a record to be approved
– Who must approve it at each step
– The actions to take when a record is approved, rejected, or first submitted for approval

(Q). Approval Terminology

• Approval Request: An approval request is an email notifying the recipient that a record was submitted for approval and his or her approval is  requested.

• Approval Steps: Approval steps assign approval requests to various users and define the chain of approval for a particular approval process.
– Each approval step specifies the attributes a record must have to advance to that approval step, the user who can approve requests for those records, and whether to allow the delegate of the approver to approve the requests.
– The first approval step in a process also specifies the action to take if a record does not advance to that step.
– Subsequent steps in the process also allow you to specify what happens if an approver rejects the request.

• Assigned Approver: The assigned approver is the user responsible for approving an approval request.

• Initial Submission Actions: are the actions that occur when a user first submits a record for approval.

– For example, an initial submission action can lock the record so that no users can edit it during the approval process.
– Initial submission actions can also include any approval actions such as assigning a task, sending an email, or updating a field.

• Final Approval Actions: are the actions that occur when all approval requests for a record are approved.
– Final approval actions can include any approval actions such as email alerts, field updates, tasks, or outbound messages.
– For example, a final approval action can change the status to “Approved” and send a notification email.

• Final Rejection Actions: are the actions that occur when all approval requests for a record are rejected.
– Final rejection actions can include any approval actions such as email alerts, field updates, tasks, or outbound messages.
– For example, a final rejection action can change the status to “Rejected”, send a notification email, and unlock the record so that users can edit it before resubmitting.

• Record Locking: is the process of preventing users from editing a record regardless of field-level security or sharing settings.
– Records that are pending approval are automatically locked by Salesforce.
– Users must have the “Modify All Data” permission to edit locked records.
– The Initial Submission Actions, Final Approval Actions, and Final Rejection Actions related lists contain a record lock action that you can edit if necessary

• Outbound Messages: send the information you specify to an endpoint you designate.
– You can set up workflow rules and approval processes to send outbound messages to an endpoint as a means of getting information to an external service.

(Q). Approval Process Checklist

Use the following checklist to plan your approval process:
– Prepare an Approval Request Email
– Determine the Approval Request Sender
– Determine the Assigned Approver
– Determine the Delegated Approver
– Decide if your approval process needs a filter
– Decide initial submission actions
– Decide if users can approve requests from a wireless device
– Determine if users can edit records that are awaiting approval
– Decide if records should be auto-approved or rejected
– Determine how many levels your process has
– Determine the actions when an approval request is approved or rejected

(Q). Jump Start Wizard vs. Standard Wizard

– The Jump Start wizard creates a one-step approval process for you in just a few minutes
– The Standard Wizard is useful for complex approval processes.

Jump Start Wizard
• The jump start wizard is useful for simple approval processes with a single step.
• Use the jump start wizard if you want to create an approval process quickly by allowing Salesforce to automatically choose some default options for you.

Standard Wizard
• The standard wizard is useful for complex approval processes.
• Use it when you want to fine tune the steps in your approval process.
• The standard wizard consists of a setup wizard that allows you to define your process and another setup wizard that allows you to define each step in the process.

(Q). Parallel Approval Routing

– Send approval requests to multiple approvers in a single step Wait for approval from all the approvers or wait for approval from any one
– Configure an approval step to request approval from any combination of multiple users and related users
– Configure 25 parallel approvers at each step

(Q). Data Validation Rules contain

– A Boolean formula or expression that evaluates the data in one or more fields to either “True” or “False”
– A user defined error message that displays when the rule returns a value of “True”
– Data Validation Rules execute when
– A User Saves a Record
– Before records are imported
– Using the Data Loader and the API

Data Validation Rules are enforced on Area Impact

Supported Objects All except Forecasts & Territories
Reporting & Dashboards No impact
API Validation rules enforced via API
Import & Data Loader Validation rules enforced via Import & Data Loader
Lead Convert Validation Rules Enforced – must be turned on in Org
Record Merge Not enforced
Offline & Outlook Editions Validation rules enforced when data is synchronized with server

Salesforce Mobile Validation rules enforced when data is synchronized with server
Web To Case
Web To Lead
Validation rules enforced but no feedback to user
Admin notified of any errors
Self Service Portal Validation rules enforced
Apex Packaging Can be packaged

(Q). What is the Import Wizard?

– An easy-to-use multi-step wizard for importing new Accounts, Contacts, Leads, Custom Objects or Solutions

– Can be used for Account, Contact, Lead, Custom Objects or Solutions updates based on matching ID
– Contact and Leads may be updated based on matching email address
– Custom Objects or Solutions may be updated based on Custom
Object names, Solutions titles, Salesforce ID or external ID

What is a CSV file?
– File type required when using the Import Wizard
– Values are separated by commas and each row indicates a record of data

What is a record of data?
– One unique unit of related information
– Row of data in a table or spreadsheet

Standard users can import up to 500 account or contact records per session. Organization-wide imports
(system administrators) are limited to 50,000 accounts, contacts, leads, custom objects, or solutions per
• During a lead import, you can choose to enable active or inactive assignment rules and/or trigger workflow rules as part of the import

Import Wizard
– Only imports data. Object and fields must be created first.
– Only available for System Administrators
– Must load parent objects first if lookup fields are included
– Loading for multiple record types requires file chunking

Affected Objects and Functions
– Custom Objects, Accounts, Solutions, Contacts, and Leads

(Q). What is External ID?

– Flag on any custom field of type Text, Number or Email
– Available on all objects that support custom fields

Why is it important?
• Increases Report and API SOQL performance
• Allows customers to use the record ID from an external system like the salesforce ID in Import and the API (new “Upsert” call)
– Import supports External ID field that can be used to load and/or synchronize data sourced in external systems
– Customer System of Record master exists in SAP with an SAP customer number. The External ID field may be used to maintain the SAP number
– Migrating large amounts of data, the External ID field may be used to track migration data and run data validation tests before going live

Example of an External Id flow where the update or insert is determined based on an import flow from a
system of record such as Oracle.
• The value proposition here is that we can de-duplicate not only based on our IDs (which are unknown to an external system), but that we can flag an external id (of type text, email, or number) custom field for the purposes of helping to de-duplicate (ie. Update/Insert = Upsert) during the import process; especially when trying to keep multiple systems synchronized

External ID
– Three ID fields per object
– Custom fields only

(Q). Data Loader – Features

– An easy-to-use wizard interface
– An alternate command line interface
– A batch mode interface with database connectivity
– Support for large files with up to millions of rows
– Drag-and-drop field mapping
– Support for all objects, including custom objects
– Detailed success and error log files in CSV format
– A built-in CSV file viewer
– Platform independence, by virtue of being written in Java® Data Loader is an application for the bulk import or export of data.
– Use it to insert, update, delete, or extract, or upsert Salesforce records.
– Data Loader can move data into or out of any object.

(Q). Use the Data Loader when:

– You need to load 50,000 or more records.
– You need to load into an object that is not yet supported by web-based importing.
– You want to schedule regular data loads, such as nightly imports.
– You want to be able to save multiple mapping files for later use.
– You want to export your data for backup purposes.
– Use web-based importing when:
– You are loading fewer than 50,000 records.
– The object you need to import is supported by the web-based import wizards.
– You want to prevent duplicates by uploading records according to account name and site, contact email address, or lead email address.

(Q). What is the Recycle Bin?

– Houses deleted data for approximately 30 days
– Data can be recovered during this time period
– Not counted against storage limit

If your organization reaches its Recycle Bin limit, Salesforce automatically removes the oldest records if they have been in the Recycle Bin for at least two hours.
– You cannot delete a product that is used on an opportunity
– You cannot delete the Standard Price Book or a price book that is on an opportunity.

(Q). What is a Standard report and Custom Report?

– Out-of-the-box reports, e.g., Account and Contact Reports
– May be used as a starting point for Custom Reports
– May not be deleted or removed (folder can be hidden)

What is a Custom report?
– Created with your specific criteria
– Saved in the My Personal Folder, Unfiled Public folder or custom folder but not in a Standard Folder
– May be edited or deleted
– Can be searched for in Custom Report search

What is the Report Wizard?
– An easy-to-use, multi-step wizard used to create a custom report
– Number of wizard steps depends on Report Type selected

(Q). What is a Tabular Report?

– Provides a simple listing of your data without subtotals
– Examples: Contact mailing list report

(Q). What is a Summary Report?

– Provides a listing of data, like a Tabular Report, plus sorting and subtotaling of data
– Example: Report showing all opportunities for current FQ, grouped by Stage

(Q). What is a Matrix Report?

– Summarizes data in a grid against horizontal and vertical criteria
– Use this report type for comparing related totals
– Similar to a pivot table in Excel
– Example: Report showing all opportunities for your team for current FQ, subtotaled by Stage and Owner

(Q). What are Trend Reports?

– Report on opportunity history data by filtering on “as of” date
– Only monthly “as of” dates – displays the report monthly within the interval selected
– Example: Interval = Current FQ will display 10/1/07, 11/1/07, 12/1/07

(Q). What are Charts?

– Graphical representation of data of a single Summary or Matrix Report
– Types: Horizontal Bar, Vertical Bar, Line and Pie
– “Grouped” or “Stacked” charts can be created from Summary reports & Matrix reports

(Q). What are Relative Dates?

– Used in Views and Reports for filtering
– Dynamic date range, based on current date
Examples: This Week, Next Month, Last 90 Days

Available Relative Date Filters (not case sensitive):
• Today
• Yesterday
• Tomorrow
• This Week
• Last Week
• Next Week
• This Month
• Last Month
• Next Month
• Last x Days
• Next x Days
• Quarter
• Year
• Fiscal Quarter
• Fiscal Year

(Q). What are Custom Report Types?

– Custom report types allow you to build a framework in the report wizard from which users can create and customize reports.
– You build custom report types off of the relationships (masterdetail and lookup) between objects so that you can:
• Choose which standard and custom objects to display to users creating and customizing reports
• Define the relationships between objects displayed to users creating and customizing reports
• Select which objects’ fields can be used as columns in reports
– Define custom report types to display results from an object with or without its related objects
• See which cases were closed with solutions, and which were not.

(Q). What is Conditional Highlighting?

– Set thresholds for report analysis
– 3 conditions maximum per report
– Only apply to summary rows
– Numerical analysis only
– First condition is <; second condition <, third condition >=

• You can use conditional highlighting for summary and matrix reports.
• On the Select Chart and Highlights page of the report wizard, you can choose up to three number ranges and colors to conditionally highlight summary data in your report cells.
• If you do not want to highlight a particular range, choose White as the color for that conditional highlighting

(Q. What are Dashboards?

– Visual representations of key business information
– Show information from multiple reports
– Made up of Components
– Use Custom Reports as source (Matrix and Summary)
– Running User determines the level of access to the Dashboard Data
– Refresh can be Scheduled
– Email a Dashboard

(Q). Dashboard Components

Chart: Graphical representation of report results
Table: A listing of the top or bottom records from a report
Metric: A single data value – drawn from the Grand Total of a report
Gauge: A single data value – displayed as a point on a defined spectrum – drawn from the Grand Total of a report

(Q). What is a Campaign?

– Specific marketing program or marketing tactic
– Builds awareness and generates leads

What is a Campaign Member?
– Lead or contact, who is associated to the Campaign
– Individual who has responded to Campaign

Who has access to Campaigns?
• Any user in your organization can view campaigns, view the advanced campaign setup, or run campaign reports.
• However, only designated Marketing Users with the appropriate user permissions can create, edit, and delete campaigns and configure advanced campaign setup.
• An administrator must select the Marketing User checkbox on a user’s personal information to designate that user as a Marketing User.
• In addition, Marketing Users can import leads and use the campaign import wizards if they also have the Marketing User profile (or the “Import Leads” permission and “Edit” on campaigns).
• Campaigns are included with Enterprise, Unlimited, and Developer Editions, and available for an additional cost with Professional Edition

(Q). What is a Lead?

– Prospect that you want to market to
– Captures business card information
– Individual who has expressed interest in your product or service
– Assigned ownership either manually or via Assignment Rule

What is a Contact?
– Individual who is associated to an Account

Lead Conversion
– Lead qualification depends on your business process
– Lead information is mapped to the appropriate business object – Account, Contact or Opportunity

– Existing data check

The system automatically maps standard lead fields to standard account, contact, and opportunity fields
• For custom lead fields, your administrator can specify how they map to custom account, contact, and opportunity fields
• The system assigns the default picklist values for the account, contact, and opportunity when mapping any standard lead picklist fields that are blank. If your organization uses record types, blank values are replaced with the default picklist values of the new record owner.
• If the lead has a record type, the default record type of the new owner is assigned to records created during lead conversion.

What is a Web-to-Lead?
– An online form to capture lead information
– Published on your web site

What is an Email Template?
– Standardized text or HTML
– Enables standard and consistent email messaging

What is an Auto-Response Rule?
– Determines which Email Template to send to leads generated via Web-to-Lead
– Contains Rule Entries that determine criteria for determining Email Template response content

(Q). What is a Case?

– A logged issue or problem
• Similar Cases may be grouped using a Hierarchy
– Cases are:
• Manually entered from a phone call or an email
• Automatically create Case from an email (Emailto- Case)
• Automatically captured:
– Web site (Web-to-Case)
– Create a Case functionality in Outlook Edition
– May be assigned either manually or automatically via Assignment Rules
– Associated to Contacts and Accounts

What is a Case Queue?
– A virtual storage bin that can be used to group cases based on criteria such as skill requirements, product categories, customer types, or service levels
– Users have visibility into the Case Queues to which they are members
– Cases remain in the Queue until they are assigned to or taken by individual users

What is a Case Assignment Rule?
– Determines how Cases are automatically routed to User or Queue
– Contains Rule Entries, pre-defined business rules, that determine Case routing

What is Web-to-Case?
– A web form that is published to a web site
– Customers use to submit inquiries online

What is Email-to-Case?
– Automatically create a case when an email is sent to one of your
company’s email addresses, such as

What are Auto-Response Rules?
– Determines which Email Template to send to cases generated via Web-to-Case
– Contains Rule Entries that determine criteria for determining Email Template response content

What is an Escalation Rule?
– Automatically escalates an unresolved Case within a certain period of time (age over)
– Based on pre-defined business criteria

What are Business Hours?
– Set the organization’s hours of operation
– Escalation Rule uses to determine when to escalate a Case
– Include business hours in multiple time zones.
– Associate cases with specific time zones
– Escalate cases according to specific time zones

(Q). What is a Fiscal Year in Salesforce?

– Used for an organizations financial planning
– Usually a year in length
– Impacts forecasts, quotas and reports

Salesforce allows two types:

Standard Fiscal Years are periods that follow the Gregorian calendar, but can start on the first day of any month of the year. (A Gregorian Year is a calendar based on a 12 Month Structure and is used throughout much of the world.)

Custom Fiscal Years are for companies that break down their fiscal years, quarters and weeks in to custom fiscal periods based on their financial planning requirements.

  • Forecasting can NOT be used with Custom Fiscal Years

  • Customizable Forecasting must be enabled for use with Custom Fiscal Years

(Q). Is it possible to change the existing data types of custom fields, if Yes please explanin?

Yes. Its possible but Changing the data type of an existing custom field can cause data loss in the following situations:
  • Changing to or from type Date or Date/Time
  • Changing to Number from any other type
  • Changing to Percent from any other type
  • Changing to Currency from any other type
  • Changing from Checkbox to any other type
  • Changing from Picklist (Multi-Select) to any other type
  • Changing to Picklist (Multi-Select) from any type except Picklist
  • Changing from Auto Number to any other type
  • Changing to Auto Number from any type except Text
  • Changing from Text Area (Long) to any type except Email, Phone, Text, Text Area, or URL

(Q). What is a Solution?

– An answer to a common question or problem
– Enables Customer Support users get up to speed quickly
– Enables Support teams to answer questions quickly and consistently
– Customers search for and browse published Solutions to selfassist
– Content-Rich Solutions are an enhancement to the Solution Object which allows solution writers to integrate rich text and images into their solutions to completely solve a problem

What is a Category?
– Mechanism to organize Solutions
– Solutions may be associated to one or more Categories
– Categories make up a Solution Category tree structure

What are Suggested Solutions?
– The suggested solutions feature displays up to ten relevant solutions that may help users and customers solve a particular case from the case detail page and the Self-Service portal.
• Suggested Solutions can be enabled for the following:

  1. Cases tab 
  2. Self Service Portal
  3. Case auto-response rules and emails

(Q). What is the Self-Service Portal?

– Authenticated portal
– Provides 24/7 online support
– Contains Public Knowledge Base, Suggested Solutions and Web-to-Case functionality

(Q). How many types of the relationship fields available in Salesforce?

There are Four types of the Relationship fields available in Salesforce
1. Master Detail
2. Many to Many
3. Lookup
4. Hierarchical (It is only available on User Object, we cannot create this relationship to other SFDC Objects)

(Q).What is difference between WhoId and WhatId in the SFDC Data Model of Task/Events ?

WhoID – Lead ID or a Contact ID
WhatID – Account ID or an Opportunity ID or Custom Object ID


Post a Comment

| ,