78% found this document useful (9 votes)
5K views

Admin Material

Salesforce CRM is a cloud-based customer relationship management tool. It allows users to manage customer information in one place and track interactions from lead to opportunity. Some key features include campaigns to acquire leads, and objects like accounts, contacts, opportunities, cases and solutions to track the customer lifecycle. Salesforce provides CRM cloud services like the Sales Cloud to automate sales processes and the Service Cloud to automate service delivery.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
78% found this document useful (9 votes)
5K views

Admin Material

Salesforce CRM is a cloud-based customer relationship management tool. It allows users to manage customer information in one place and track interactions from lead to opportunity. Some key features include campaigns to acquire leads, and objects like accounts, contacts, opportunities, cases and solutions to track the customer lifecycle. Salesforce provides CRM cloud services like the Sales Cloud to automate sales processes and the Service Cloud to automate service delivery.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 144

SALESFORCE

CRM

Administration
Material
By Feroz Baig

Shyamala plaza, Opp. Annapurna Block,


Behind Huda Maitrivanam
Ameerpet, Hyd
+91 8686864286, 040 66028688
SALESFORCE CRM BASICS
Each organization will use, few set of applications to automate their business processes.

Applications using by the organizations to automate the business processes, has been categorized into 2 types as
below.

1. On-Premise Applications: It requires the pre-installation of the Application / Software into our local
device, before it's usage. (Ex: in Laptop / Desktop / Mobile / Smartphone / Tab/ Organization’s Network
/ Server, etc)

Ex: C Language, C++, Java, .Net, MS Office, Oracle, SQL Server, etc.

2. On-Demand Applications: (Cloud Applications): It Doesn't requires any pre-installations.


We can access the cloud applications just by using "Browser and Internet Connection".

To automate the business processes of an organization, we need to buy the licenses of required Software’s /
Platform / Servers by investing huge amount. Which can’t be afford by all the organizations. To avoid this investment,
we are using Cloud Computing.

Cloud Computing is a concept, which provides the various approaches, to access each IT services over the internet
by using any device, and by paying the rental amount to the vendor.

By using Cloud Computing, we can access Servers, Storage, Databases, Networking, Software, Analytics and more
over the Internet (“the Cloud”).

Companies offering these computing services are called Cloud Providers. And charge for cloud computing services
based on usage, similar to how you are billed for water or electricity at home.

Uses of Cloud Computing: By using Cloud Computing, we can achieve the below services.

 We can Build New Applications and Services


 We can Store, back up and recover data
 No Upgradation cost.
 No Pre-Requisite software’s to install
 We can Host our own websites and blogs to the internet
 Stream audio and video
 Deliver software on demand

Benefits of Cloud Computing: Here are 6 common reasons organizations are turning to cloud computing services.

1. Cost:
Cloud computing eliminates the capital expense of buying hardware and software and setting up
and running on-site datacenters.
2. Speed:
Most cloud computing services are provided self service and on demand, so even vast amounts of
computing resources can be provisioned in minutes.

3. Performance:
The biggest cloud computing services run on a worldwide network of secure datacenters, which are
regularly upgraded to the latest generation of fast and efficient computing hardware.
4. Reliability:
Cloud computing makes data backup, disaster recovery and business continuity easier and less
expensive, because data can be mirrored at multiple redundant sites on the cloud provider’s network.

Classifications of Cloud Services:


Most cloud computing services fall into three broad categories. These are sometimes called the cloud computing
stack

1. Software As a Service (SAAS):


 When the customers are accessing the "Readymade Applications" on rental basis, then it is
called as "Software As a Service".
 Software-as-a-service (SaaS) is a method for delivering software applications over the Internet,
on demand and typically on a subscription basis.
 Cloud providers host and manage the software application and underlying infrastructure and
handle any maintenance, like software upgrades.

2. Platform As a Service (PAAS):


 When the customers are accessing the "Development Platform" on rental basis, then it is called
as "Platform as a service".
 PAAS supply an on-demand environment for developing, testing, delivering and managing
software applications.
 PaaS is designed to make it easier for developers to quickly create web or mobile apps, without
worrying about setting up or managing the underlying infrastructure of servers, storage,
network and databases needed for development.

3. Infrastructure As a Service(IAAS):
 When the customers are accessing the "Server Resources (Memory, Performance, Security)" on
rental basis, then it is called as "Infrastructure as a service".
 With IaaS, you rent IT infrastructure—servers and virtual machines (VMs), storage, networks,
operating systems—from a cloud provider on a pay-as-you-go basis.

Cloud Computing Vendors:


Few Companies offer Cloud Computing services to their customers, hence named as “Cloud Computing Providers/
Companies”. They charge its users for utilizing such services and the charges are based on their usage of services.
2 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
We have the top Cloud Computing Vendors like Amazon, Microsoft, Salesforce.com, Google, Adobe, VMware, IBM,
Rackspace, Red Hat, Oracle, SAP, Verizon, Navisite, Dropbox, Egnyte

CRM Basics:
CRM stands for Customer Relationship Management

A CRM system is an Application / Tool, that allows you to manage all your customers, partners and prospects
information all in one place.

By using CRM applications, we can track the existing customer and new customers information of an organization.

With the help of CRM, we can maintain 360 degree view of your customer. (i.e. from Capturing the customer to,
till offering the services to the customer)

Benefits of using CRM Application:

 Improved customer relations


 Increase customer revenues
 Better internal communication
 CRM Improves Your Customer Service
 Automation of Everyday Tasks
 Improved Analytical Data and Reporting

CRM Terminology / Vocabulary:

Campaign:

It is a way to promote the organization products / services. We can use the other ways to do the
marketing like Conducting Stalls, Trade Shows, TV Advertisements, Theatre Advertisements, Posters, Pamphlets,
Banners, Hoardings, Digital Marketing, Email Marketing, Tele Marketing, Free Samples, etc.

Lead:

 Lead is nothing but a person or an Organization or a Business, who just showed interest in your
organization product or service.
 Lead is also called as "Prospect" or "Potential Customer". Lead is not our customer.
 By conducting the Campaigns we can capture one or more Leads. (i.e. Between Campaign and Lead, we
have One- Many association)

Note: Once the Leads has been Captured, then Leads information will be shared with “Sales Team”. Sales Team
will contact the Leads over the Phone / Sending an Email / Meeting Directly and provide the required information
and offer the discounts and close the deals.

And they will convert the Leads as Customers, once the Lead person is ready to buy the product. Upon converting
the Lead as a Customer, Salesforce will generate 3 records as below.

3 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


1. Account Record: It describes the basic details of the customer.
Ex: Customer Name, Rating, Industry, Type, Phone, Fax, Billing Address, Shipping Address, active,
Annualrevenue, etc.

2. Contact Record: It describes the Contact details of the customer. An account can be associated with one
or more contact records.
Ex: First Name, lastname, title, department, Birthdate, phone, fax, mobile, home phone, other phone,
email, mailing address, etc.

3. Opportunity Record: It describes, how much business we did with the customer. It describes about the
products purchased by the customer and revenue generated from the customer.
Between Account and Opportunity, we have One-Many association. i.e. An Account record can have one
or more associated opportunities.

Case:

 Case is nothing but the detailed information of the problem, which my customer is facing with my product
/ service.
 Between Account and the Case, we have One-Many association. i.e. A customer can raise one or more
cases / complaints.

Solutions:

 Solution is nothing but the detailed information of the resolution of the case.
 Note: Solution is associated with the "case" raised by the customer. A Case can have one or more
solutions associated with it.

Salesforce Cloud Services:


Salesforce provides the below cloud services to the customer.

1. Sales Cloud:

 By using Sales Cloud Features, we can automate all the Processes followed during the sales of our
products / services.
 To automate sales processes, salesforce provides "Marketing and Sales" applications.

Objects: Campaign, Lead, Account, Contact, Opportunity, Product, Order, Quote, PriceBook, etc. and
Analytics (Reports, Dashboards).

4 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


2. Service Cloud:
By using service cloud features, we can automate all the business processed following upon giving the
services to the customers.
Ex: SLA's, Feedbacks, Suggestions, Cases, Solutions, etc.

Salesforce provides a set of applications, to automate the service processes as below.


1. Service Application.
2. KnowledgeBase
3. Customer Portal / Communities
4. Live Agent
5. CTI (Computer Telephony Integration)

Objects: Account, Contact, Case, Solution, KnowledgeBase, Knowledge Article Version, Feedback,
FeedbackQuestion, FeedbackQuestionset, FeedbackResponse, Performance Cycle, Goal, Metric, Macro,
etc. Analytics (Reports & Dashboards)

3. Marketing Cloud:
 By using Marketing cloud we can automate Campaign Management, Lead Management, Contract
Management, Order Management, etc.
 Salesforce provides a Marketing Cloud feature by using “Exact Target” Tool. Which offers the
features like Email Studio, Mobile Studio, Jouney Builder, Web Studio, Social Studio, SMS Studio,
etc.
4. App Cloud :
By using this feature, We can built our own custom applications. Salesforce provides the below 2 features
as part of App Cloud.

1. Force.com Platform:
Platform provides a set of resources, to build your custom application.

By using Force.com,
1. We can customize the existing salesforce CRM application.
2. We can leverage / extend the salesforce CRM functionalities, by adding the
Additional features based on the need.
3. We can build the custom application.

By using Force.com platform, we can build and deploy the next generation cloud applications.
Force.com Platform offers 2 Programming Languages as below.
1. Apex Programming:
It is a Cloud based Object Oriented programming, used to build the custom business logic
based on the need.

2. Visualforce Programming:
It is a web development framework, used to design attractive and dynamic user interfaces.

5 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


3. By using Force.com platform, we can have the integration of salesforce application with any
third party external system.

2. Database.com:
 It is a customized database of Salesforce, where the actual objects and records will get
resides. Which supports ORM Technology (Object Relationship & Mapping)
 It ensures the Data Security, by having the ISO 27001 & SAS 70 Type II Certifications.
 Which are purely concentrating on "Information Security and Confidentiality".
 Salesforce maintains a Disaster Recovery Center in each region (NA/EU/AP), to get back the
Data if any data loss due to some environmental issues.
 All Salesforce implemented applications will use the "Database.com" as the Backend.

5. Data.com (Jigsaw):
By using Data.com, we can purchase the required Leads / Organization's information without conducting
the marketing approaches.

Data.com contains 2 objects as below.


1. DataCloudContact: Which holds all the people's information.
Ex: firstname, lastname, email, phone, fax, mailing address, SSN Number, Zip code, City, NAICS Code,
etc.
2. DataCloudCompany: It contains the information of All the organizations available in different
geographical locations.

To buy the Data from Data.com, Salesfore provides the 2 below Licenses.

1. Data.com Prospector License:


Which is used to connect to the Data.com and to buy the required records.

2. Data.com Clean License:


This is used to synchronize the data from Data.com to our local organization.

6. Collaboration Cloud / Chatter:


 By using this feature, we can provide the internal communication between the various employees
in our organization (like Skype, Lotus Sametime, etc).
 Chatter tool, will collect the contact history from the LDAP.
 All conversation histories will be stored inside the "Cloud Platform".

Salesforce Releases:
Salesforce keep on providing the latest features as part of new releases. Salesforce provides 3 releases per a year,
which are seasonal basis.

1. Winter Release.
2. Spring Release
3. Summer Release

6 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


 Each release contains the latest features associated with SAAS (Salesforce CRM), PAAS (Force.com) and
Infrastructure.
 Salesforce provides the latest releases of salesforce features on Free of cost to all customers.
 Each release name will be post-fixed with the Current Financial year number.

Spring '19 --> (Previous Release)


Summer '19 --> (Current Release)
Winter '20 --> (Next Release)

Server Instances Of Salesforce:


Salesforce has spread across their business into the 3 Regions.

1. North America Region (NA)


2. Europe Region (EU) / EMEA
3. Asia Pacific Region (AP)

Whenever, if any of the customer showed interest to utilize the Salesforce services, then they will allocate some
amount of memory from the associated region’s available server.

In each region, salesforce has established a set of servers (Instances) in which, salesforce will allocate some
amount of memory for each customer.

In a single instance, salesforce will allocate the memory for 8000+ customers. i.e. 8000+ customers Applications,
Data, files, records will exist inside the same server.

Salesforce provides the shared infrastructure, which allows us to share a single server among the multiple
customers.

We have the server instance ranges as below.

NA Region  NA0 – NA196


EU Region  EU0 – EU30
AP Region  AP0 – AP28

7 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


For each customer, salesforce will creates an account inside the server instance. Each salesforce account will be
called as an "Salesforce.com Organization / Org.

Each salesforce organization will be identified by using an unique Identification Number called as "Salesforce.com
Organization Id", Which starts from "00D".

The customers can extend their memory space, by contacting the salesforce / partners, by paying additional
amount to salesforce.

The extended memory space will be allocated in the same server instance.

We can cross-check the server instance status, maintenance calendar by using the website
"https://status.salesforce.com".

Upon creating the Salesforce account, based on the country name selected by the user, Salesforce will allocate the
required amount of space in the associated Region's available server.

Note: Salesforce maintains the "Disaster Recovery Centers" in each region wise, to provide the backup / re-store
facilities to the customs, if something went wrong due to environmental issues.

Multi-Tenant Architecture:
 Salesforce supports MultiTenant Architecture, will allows to share the Salesforce resources to the multiple
customers.
 Salesforce provides the common infrastructure for a set of customers. They won't provide a dedicated
server for each customer.
 MultiTenant Architecture allows the customers to access the resources on rental basis.

It provides the various features as below.

1. Shared Infrastructure:
 Which allows us to share a single salesforce server / instance to the multiple customers.
 Each customer is called as a Tenant. For each customer salesforce will creates a Salesforce
Account. Each salesforce Account is also known as an Organization.
 Each organization will be identified by using a unique identification number called as
"Organization Id".
 Inside the Organization, the customer can install their custom applications, they can store the
data, files, records, etc.

2. Only One Platform at a Time:


Upon providing a new release, salesforce will provide the new features to all the customers inside
the instance.
i.e. the Free Users, Licensed users will be getting the latest features of salesforce.

3. Zero Cost Improvements:


Salesforce provides the latest release features on free-of cost to the customers.

8 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


4. Automatic Upgradations:
Upon providing the latest releases, the new features will be upgrading into the customers account
automatically. No need of explicit installations.

Editions of Salesforce:
Salesforce provides the various Editions of Licenses, which can be purchased by the customers to automate their
business processes.

Salesforce offers 6 Editions of Licenses.

1. We have 4 Paid Editions (Licensed)


1. Lightning Essentials (Group Edition):
Contains the Basic CRM features, Accessible by 5-users.
Pricing : $25 / month / user

2. Lightning Professional Edition (Professional Edition)


It provides the Complete CRM features.
Pricing : $75 / month / user

3. Lightning Enterprise Edition / Enterprise Edition


It provides Complete CRM Features + Force.com Platform (To built Custom Applications)
Pricing : $150 / month / user

4. Unlimited Edition: (Most Popular)


It provides Complete CRM Features + Force.com Platform + Integration Facilities
Pricing : $300 / month / user

2. We have 2 Free Editions. (Free of Cost)

Free Developer Edition: It provides Salesforce CRM + Force.com Platform + Integration


We have 2 flavors of Free Developer Edition.

1. 30-Days Trail Account: Which can be accessible for 30-Days.


Goto the Salesforce.com website "http://www.salesforce.com"
Start a Free Trail (30-Days Account)

2. Permanent Account (Lifetime Account):


This account we can access lifelong based on the need. This Permanent account will have almost equal
features of "Unlimited Edition".

Note: Upon accessing the salesforce application, each user should have a License. Without the License, we can't
add a user record.

9 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Creating Free Developer Account in Salesforce

Every salesforce user should login in to salesforce through their account. At Salesforce, you will find free
developer edition that allows you to develop application for force.com for free.

Create a Free Developer Account:


Creating Free Developer Account is a 2-step process.

Step 1: We need to create the Account by filling up the Registration form.

1. Launch the URL : https://developer.salesforce.com/signup


2. We need to fillup the Registration form with the below details..
First Name :
Last Name :
Email ID : (Valid Email ID)
Company Name :
Designation / Role : Picklist (administrator, Developer , Architect, etc.)
Country : Picklist
Enter the Postal Code :
Enter the User Name : (In Email ID Format)
Click on "Sign Me Up" button.
3. Once the details has been submitted to the server, it will allocate some amount of memory in
the associated region's available server. (i.e. it is creating an organization).
4. Once the Salesforce Account has been created, then it will send the account activation link to
the specified email id.

10 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Step 2: We need to Activate the Salesforce Account.

Once the user receive the Account activation link, then we need to activate the account.
1. Goto the respective email account.
2. Open the Email notification received from Salesforce
3. Click on "Account Activation Link"
4. Enter the Password and Confirm Password.
5. Select the Security Question and Enter the Answer
6. Click on "Change Password" button.

Observation: It will activate your salesforce account and will re-direct the user to the Salesforce.com
organization / Account.

Login into the Salesforce Account:

Once the Salesforce account has been created, the user can login into the account by using the below URL.

1. Launch the UR : https://login.salesforce.com


2. Enter the USer Name.
3. Enter the Password.
4. Click on "Login" button.

Note:

 Each salesforce account created by the user is called as a "Salesforce.com Organization".


 Each salesforce.com organization, contains a unique identification number called as
"Salesforce.com Org. ID", Which starts with "00D".
 We can verify the Organization ID of the salesforce.com organization from “Company Profile”.

11 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


APPLICATIONS IN SALESFORCE
Application contains a set of Tabs, which provides a collection of user interfaces to manage the application specific
data. All the Tabs will be represented on the "TabBar".

By using these Tabs, we can perform all the DML operations on the Objects. (INSERT, UPDATE, DELETE, UNDELETE)
and View.

Salesforce provides 2 Types of Applications.

1. Standard Applications:

These are the readymade applications provided by salesforce by default as part of the Salesforce
CRM. (Ex: Sales, Service, Marketing, Content, Salesforce Chatter, Site.com,... etc.)

By using these applications we can manage the existing and new customers information.

Note: We can customize or leverage the standard applications by adding the additional
enhancements. But, we can't remove the Standard Applications from the Organization.

2. Custom Applications:
The Administrator / Salesforce Developer can create their own custom applications based on the
need. (Ex: Banking, Finance, Insurance, HealthCare,...etc.)

Note: We can customize / Leverage the Custom Applications based on the need. And we can remove the
custom application from the organization, if it no longer needed.

Governor Limits:

1. In Free Developer Edition: We can create max. Of 10 Custom Applications.


2. In Unlimited Edition: We can create Unlimited Number of custom Applications.

Developer Community: This community is used to post all the Admin & Development related queries. (Apex,
Visualfore, Integration, Triggers, Job Board)

Trailblazer Community: This community is used to learn salesforce with the help of webinars from TrailHead.

OBJECTS IN SALESFORCE
Salesforce provides a set of readymade objects by default as part of Salesforce CRM Application. Object represents
a "Table" in "Database.com". Database.com is a Cloud Database used by salesforce by default. Which contains all
the salesforce objects and records inside it.

Ex: Campaign, Lead, Account, Contact, Opportunity, Case, Solution, Contract, Order, Product, Feedback,
Performance Cycle, ..etc

12 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


The user can able to manage the records inside the objects. i.e. The user can perform all the DML manipulations
inside those object. (i.e. Insert, Update, Delete, Undelete) and View records also. To manage the records inside the
objects, salesforce provides a set of Tabs.

TABS IN SALESFORCE
Tab Provides a set of graphical user interfaces, by which we can manage the records inside the associated object.

By using Tab, we can insert, update, delete, view, Undelete the records inside the object.

For each object, salesforce provides a separate Tab. Which is used to manage the records inside the associated
object.

Note: An object can have only one Tab. (i.e. Object To Tab, we have one-one association)

Note: All Tab Names will be represented with "Plural Names" as below.

Tab Name Object Name


Accounts Account
Contacts Contact
Opportunities Opportunity
Leads Lead
Campaigns Campaign
Cases Case
Positions Position
Customers Customer
Candidates Candidate
.... etc ... etc

Customizing the Tabs on the TabBar:


By using this feature, we can make it visible only the required Tabs to be placed on the TabBar. And we can
arrange the Tabs in the required order.

Navigation:

Goto the "TabBar" and Click on "+" (All Tabs) symbol.


1. Click on "Customize My Tabs" button.
2. Select the Required Tabs to be visible on the TabBar by using "Add / Remove" button.
3. Arrange the Tab Order by using "Up and Down" navigation buttons.
4. Select the Default Landing Tab. Which indicates, when the user is switching to the application,
which tab should be selected by default.
5. Click on "Save" button.
13 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Enable Collapsible SideBar:
For each object in salesforce, it will provides a "SideBar", which will provides the information about the
recently performed actions. We can make the SideBar as Collapsible as below.

Navigation:
Click on "Setup" menu.
1. Goto the "Build" menu in Left Panel.
2. Click on "Customize" and Expand it.
3. Click on "User Interfaces" link.
4. Goto "SideBar Settings" section.
5. Select the checkbox "Enable Collapsible SideBar".
6. Click on "Save" button.

Observation: The SideBar will be visible as a "Dockable Component", which contains "Expand and
Collapse" options. So, the user can make it visible / hide based on the need.

Salesforce Object ID:


Each object in salesforce will be identified by using a 3-Characters Alphanumerical Number called as "Object ID".

Object's Unique Identification number is called as "ObjectID / Schema ID / Object KeyPrefix".

By using the ObjectID, we can perform 2 operations as below.

1. We can jump into to the associated object by using ObjectID:

Syntax: https://<instanceNumber>.Salesforce.com/<ObjectID>

By placing the ObjectID inside the URL, in the Address bar. We can directly jump into the required
object.

Ex:
https://ap5.salesforce.com/001 --> Account Object
https://ap5.salesforce.com/00Q --> Lead Object.
https://ap5.salesforce.com/006 --> Opportunity object

2. For each record in the Salesforce object, it will allocate a unique identification number called as
"RecordID", Which contains 18-Characters Alphanumerical number. By using the RecordID, we can
identify the record uniquely.

RecordID --> 18 - Characters (Alphanumerical)

First 3-Characters --> Represents the ObjectID.


Remaining 15 - Characters --> Represents the RecordID.
Last 3-Characters --> Checksum of the record
14 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Note: Upon creating a New record inside the object, salesforce will allocate an 18-characters
alphanumerical number called as "RecordID". (Which is a Case-Sensitive)

But, in the Detailed of the record, it will display the "First 15-Characters ID" of th record. Last 3-Characters
will not be visible in the URL, because of the Security Reasons.

Ex: https://ap5.salesforce.com/0017F000002cdMj

We can fetch the complete 18-characters Id of the record, by making a Query to the Database.

Navigation:
Click on Your Name on Top Right Corner and Expand it.
1. Click on "Developer Console" link.
2. Goto the "Developer Console Editor" and Expand the TabBar
3. Click on "Query Editor" tab.
4. Type the Query and Execute it.
Ex: select id, name, rating, industry from Account.
5. Click on "Execute" button. ( Ex: 0017F000002cdMjQAI)

Editing the Record:


Once the Record has been created, then the user can update the record values by using the "Edit" button.

Salesforce provides an "Inline Editing" feature, by which we can move the required fields into the "Editable
Format", just by Double-click on the field. And the user can modify the field value and click on "Save" button.

Delete the Record:


Once the Record has been removed from the object, it will be moving into the "RecycleBin".

It will exist inside the RecycleBin for 15 Days. Within 15 days the user can re-store the record back to the actual
object.

If the record is older than 15 days inside the RecycleBin, then salesforce will remove the record permanently from
the object.

Customize the Recent Accounts Section:


This section will display all the records, which has been recently viewed / modified. By default, it will display the
record with some specific columns.

The user can customize the Table by adding the required columns to be displayed inside the Table as below.

15 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Navigation:

Click on the Required Object's Tab (Ex: Accounts)


1. Expand the "Force.com Quick Access Menu"
2. Click on "Edit Columns" link.
3. Add the required columns information to be displayed in the Table.
4. Arrange the Columns by using "Up / Down" navigation buttons.
5. Click on "Save" button.

Enhanced List View Control:


By using this Control, we can represent the records inside the object in the tabular format.

Upon representing the records, we can apply the "Pagination / Paging", through which we can decompose
the records into the various smaller pieces called as "Pages".

Each Page will be identified by using an "Index Position", which starts from "1".

We can select the number of records to be visible per page by using the Picklist (Ex: 10 / 25/ 50 / 100/
200). We can navigate the Pages from First to Last and Vice-Versa by using "Navigation Buttons".

We can filter the records based on the Starting characters of the record, by selecting the required
character from the Table.

Salesforce provides a set of Filters by default called as "List View Options". The Developer / Administrator
can add their own filters based on the application requirement as below.

UseCase: Configure the "List View Option" for the Account Object, to filter the Accounts Based on the "Banking
Industry".

Click on the Required Object's Tab (Ex: Accounts)


1. Goto the "Enhanced List View Control" and Click on "Create New View" link.
2. Enter the List View Label and Name.
3. Select the Accounts to be get Considered. (All Accounts / My Accounts)
4. Enter the Filter Conditions. (Ex: Account : Industry = 'Banking')
5. Select the Columns to be visible in the Table, by using Add / Remove Buttons.
6. Arrange the Columns in the required order by using "Up / Down" Navigation Buttons.
7. Select the Visibility Options.
Select the Users (Only To Me / To All Users / To a Group of Users)
8. Click on "Save" button.

Observation:
It will add a New List View Option inside the Picklist. When the User Selects the Filter from the
Picklist, the corresponding records will display in the Table.

16 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Creating the Custom Application
The Administrator / Salesforce Developer can create their own custom applications based on the need.

Ex: Banking, Finance, Insurance, HealthCare,...etc.

Note: We can Customize / Leverage the Custom Applications based on the need. And we can remove the custom
application from the organization, if it no longer needed.

We can create our own Custom application with the below navigation.

Click on "Setup" menu.


1. Goto the "Build" menu in left panel.
2. Click on "Create" and expand it.
3. Click on "Apps" link.
4. Click on "New" button, to create the New Application.
5. Select the Option "Custom App" and click on "Next" button.
6. Enter the Application Label, Name and Description.
7. Click on "Next" button.
8. Select the Application Logo / Image, by using "Insert Image" button.
9. Click on "Next" button.
10. Select the Required Object Tabs, to be used inside the Application, by using "Add / Remove"
buttons.
11. Arrange the Tabs in the required order by using "Up / Down" Navigation button.
12. Select the Default Landing Tab from the Picklist.
13. Click on "Next" button.
14. Select the "Visible" checkbox, to make the application to be accessible to all users inside the
organization.
15. Click on "Save" button.

Observation: It will create a New Custom Application with the specified name, And the Application Name will be
populating in the "App Launcher" at the end of the list.

Note: We can arrange the Application names list inside the App Launcher by using "Re-Order" button.

Document Object:
Document is a Standard object, which contains all the Static Resources to be get used inside the Salesforce
Applications. Document Object can hold one or more resources, which can be of type "Images, Pictures,
Documents (Text / PDF / Word,.etc), Audio and Video Files, etc.

Upon using an image inside the Application, we have to upload the Image into the Document Object first. And
then we can re-use the image in multiple places in the organization.

Step 1: Get the Required Images from the Internet / Collect from the Web Designer.

17 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Step 2: Upload the Images into the Document object.
Add the "Documents" tab on the TabBar.
1. Click on "Documents" Tab.
2. Click on "New" button.
3. Enter the Document Name, Label and Description.
4. Select the Checkbox "Externally Available this Image", to make the image to be
accessible by the external users.
5. Select the Image by using "Choose File" button.
6. Click on "Done" button.
7. Click on "Save" button.

Observation: Image will be uploading into the Document object successfully.

Step 3: Create the Custom Application, by Selecting the Image as the Logo for the Application.

Note: Upon using an Image as the Logo for the Application, the Logo size should not be exceeds 20KB.

CREATING CUSTOM OBJECTS IN SALESFORCE

Object Represents a Table, which can be used to store a collection of records inside it. Objects are the Custom
Tables, which can be used to store organization specific / application specific data. All the objects in Salesforce will
get resides in "Database.com".

Salesforce provides 2 types of Objects.

1. Standard Objects: These are the readymade objects provided by Salesforce by default, which has been
created upon Salesforce CRM application development.

Ex: Account, Contact, Opportunity, Campaign, Lead, Case, Solution, Order, Contract, Forcast, Product,
Pricebook, Performance Cycle, Goal, Metric, Feedback, etc.

Note:
 We can use these Standard objects inside our applications, And we can customise the
standard Objects based on the need.
 But, We can't remove the Standard Objects from the Salesforce organization, it will impact on
the Salesforce CRM Application.

2. Custom Objects: Salesforce allows us to create our own custom objects based on the application
requirement. Custom objects are database tables that allow you to store data specific to your application
in Salesforce.com. You can use custom objects to extend Salesforce.com functionality or to build new
application functionality.

18 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Ex: Project__c Table, Candidate__c Table, Position__c Table, etc.

Note: Custom Object Names will be post-fixed with “__c” (Which represents “Custom”)

Once you have created a custom object, you can create a custom tab, custom related lists, reports, and
dashboards for users to interact with the custom object data.

Note: We can customise the Custom Object in future based on the Need. And we can remove the Custom
object from the organization, if it is no longer needed.

Governor Limits:
 In Developer Edition, we can create max. of 400 Custom objects.
 In Unlimited Edition, we can create max. of 2000 custom objects.

Note: Salesforce supports purely the ORM Technology (Object Relationship and Mapping), where it Creates a New
Table in Database.com upon creating a new Object in Salesforce.

Each Object represented as a Table in the backend / Database (Database.com).

Object Type Object Name Table Name


Account Account
Contact Contact
Opportunity Opportunity

Standard Objects Lead Lead


Campaign Campaign
Case Case
Solution Solution
.....etc ....etc
Position Position__c
Custom Object Customer Customer__c
(Each Table Name postfixed
Client Client__c
with “__c”. Which indicates it is
a Custom Object) Candidate Candidate__C
.... etc ... etc
Note:
 In-order to manage the records inside the object, Salesforce provides a Tab for each object.
 By using the Tab, we manage the records inside the objects by performing the DML operations like INSERT
/ UPDATE / DELETE/ UNDELETE. And we can view the required records.

19 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


CREATING OBJECT NAVIGATION

The Developer / Administrator inside the organization will have the rights to create custom objects in Salesforce.
We can create the custom objects as below.

Goto Setup  Goto Build Menu  Goto Create  Click on "Objects"

1. Click on "New" to create a New Custom Object

2. Enter the Object Name, Plural Name, API Name, and Description as below

3. Select the Check boxes in the Optional Features Section as below

 Allow Reports: This feature allows the user to generate the reports based on the data exist in the object.
 Allow Activities: This feature allows the user to Create the Tasks / Assigning the Task / Generating the
Events based on the Object Records.
 Track Field History: This field allows the user to Track the Field History whenever any of the person
modified the record values. (To Track the values like.. Who modified the record, when they modified the
record, what field’s values modified, old value and new values of the field etc.)
 Allow in Chatter Groups: It allows us to include the field changes in the chatter feeds.

4. Select the Object’s Deployment Status as “Deployed”

20 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


 In Development: I the object’s Deployment status is “In Development”, this object can’t be used by the
other users.
 Deployed: This object can be used by other users, in-order to create the records. i.e. It is ready to use by
the users.

5. Select the Check Box “Launch a New Custom Tab Wizard for the Custom Object”, Which creates a new Tab
for the object to manage the records (Insert / Update/ Delete/View).

6. Click on “Save & Next” button

7. Select the Custom Object Tab Style from the Lookup field.

8. Click on “Next” button

9. Make this Tab to be visible for all the profiles by selecting the “Visible” checkbox. Click on “Next” button

10. Click on “Save’ button

Observations:

1. Upon creating the Object, it will create a New Table, whose name will be Post-fixed with "__C". (i.e.
Each custom object name will be post-fixed with "__C".)

FYI: "__C" represents, it is a Custom object.

Ex:
Object Name Table Name
Position --> Position__C
Client --> Client__C
Hiring Manager --> Hiring_Manager__C
Candidate --> Candidate__C

2. Upon creating a Custom object, Salesforce will provides 5 fields by default in all the objects.
21 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
1. ID --> Stores the 18-Characters Id of the record
2. Name Field.
3. Owner Field
4. Created By Field
5. Last Modified by field.
3. Upon creating a Custom object, Salesforce will provides the required User Interfaces also in-terms of a
"Tab". Which is used to manage the records exist inside the object. Which will be added to the TabBar by
default.

4. Upon creating a Custom object, Salesforce will provides a Table, User Interface (Tab) and the Business
Logic layer.

CREATING CUSTOM TABS IN SALESFORCE

Tab provides a Graphical User Interface, by which the users / customers / partners / employees can manage the
records inside the object.

Upon creating a Custom object, if the user didn't select the last checkbox "Launch a New Custom Tab Wizard After
Saving the Custom Object", then Salesforce will not provide the "Tab" for the object. We need to create the Tab
for the object manually.

Note: An object can have only one Tab. (i.e. Object To Tab, we have one-one association)

Salesforce provides 4 types of Tabs.

1. Custom Object Tabs: This feature is used to create a Tab to be used to manage the records exist inside
the object.

2. Web Tabs: These are used to re-direct the user to the specified URL / path of the External Application
upon click on the Tab.

Ex: Re-direct the user to "Office 365", Re-direct the User to "Weather Map Application", etc...

3. Visualforce Tabs: By using this feature, we can re-direct the user to the specified Visualfore page,
Upon click on the Tab.

4. Lightning Page Tabs: By using this feature, we can re-direct the user to the specified Lightning page,
upon click on the "Tab".

Upon creating a custom object tab, we have to follow the below navigation

Click on "Setup" menu.


1. Goto the "Build" menu in left panel
2. Click on "Create" option and expand it.
3. Click on "Tabs" link.

22 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


4. Goto "Custom Object Tabs" section.
5. Click on "New" button, to create a New Tab.
6. Select the Required Object Name from the Picklist, to create the Tab.
7. Select the "Tab Style", to be applied
8. Click on "Next" button.
9. Make the Tab to be get visible for all the profile users.
10. Click on "Next" button.
11. Click on "Save" button.
Observation: It will create a New Tab for the specified object, and the Tab will be visible on the TabBar by default.

CREATING CUSTOM FIELDS IN OBJECT

Field represents a column inside the associated object. An object can have one or more fields inside it. Fields /
Columns are used to store the application specific data.

Ex:
Account Object: Rating Field represents  Account Table: Rating Column.
Account Object: Name field represents  Account Table: Name Column

Salesforce provides 2 Types of fields.

1. Standard Fields: These are the readymade fields given by the Salesforce by default.
Ex: ID, Name, Owner, CreatedBy, LastModifiedBy
2. Custom Fields: Upon customising the Salesforce application or building our own custom applications
we can create our own custom objects also based on the need.
(I.e. Developers can able to add some new fields to the objects (either Standard Object / Custom
Object)

Governor Limits:

• In Unlimited Edition: We can create max. of 800 custom fields per an object.
• In Free Developer Edition: We can create max. of 500 custom fields per an object.

We can list out the Fields exist inside the object as below.

1. Standard Navigation: (Ex: Account Object Fields)


Click on "Setup" menu.
1. Goto "Build Menu" in left panel.
2. Click on "Customise" and expand it.
3. Click on "Required Object Name" (Ex: Accounts) and expand it.
4. Click on "Fields" link.

2. Force.com Quick Access Menu (Ex: Position Object Fields)

23 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Click on the Required Object't Tab (Ex: Positions)
1. Expand the "Force.com Quick Access Menu".
2. Click on "View Fields" link.

3. By using Schema Builder.

STANDARD FIELDS Vs. CUSTOM FIELDS

S.No STANDARD FIELDS CUSTOM FIELDS


1 These are the Readymade fields Based on the application requirement, Salesforce
provided by the Salesforce by default Developer / Administrator can create their own
Like Id, Name, Owner, etc. required fields inside the object. Which are called as
Custom Fields.
2 We can customise the Standard Fields We can customise / remove the custom field, when it
based on the Need. But, we can’t is no longer needed.
remove the standard fields from the
object.
3 We can’t create anymore standard We can create one or more custom fields inside the
fields inside the object. object upon needed.
1. In Free Developer Edition: An object can have
max. of 500 Custom Fields.
2. Unlimited Edition: An object can have max. of
800 custom fields.
4 Each standard Field contains 2 Each custom field contains 2 properties.
properties. 1. Field Label: It represents the Label / Static text
1. Field Label: It represents the to be visible in the user interface.
Label / Static text to be visible
inside the user interface. 2. API Name: It represents the actual column
name in the table.
2. Field Name: It represents the (API – Application Programming interface)
actual column name inside the
table.
Note: Always we have to use “Field Name” to interact with the object, through programming.
5 Standard fields can be available for Custom fields can be applicable for both Standard and
both Standard and Custom objects. Custom objects.
6 Standard field’s Field Name will be look Custom field’s API Name will be post-fixing with “__C”.
like as normal words. (Ex: ID, name, __c  represents it is a Custom Field.
rating, industry, type, etc.)

24 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


FIELD TYPES / DATA TYPES IN SALESFORCE

Creating the Fields are nothing but, creating the columns inside the table. Upon creating the Columns inside the
Table, we need to specify, what type of data can be hold inside the column.

i.e. Upon creating the Field in an object, we need to select any of the datatype as below.

1. Text Type:
This Datatype is used to create a Textbox field in the object.This field will allows us to enter max.
of 255 Characters of data in a single line. This field type will allows us to enter Alphanumerical values
along with the special characters also. And, we can restrict the field to allow the specified number of
characters.

Properties:
1. Field Label: To enter the Lable / Text to be displayed along with the field inside the user
interface.
2. Field Name / API Name: To specify the column name, to be used to create a field inside
the object. Note: Custom field's API Name should be always post-fixed with "__C"
3. Description: This property is used to specify the description of the field.
4. HelpText: This property is used to enter the Online Help / Tooltip text message to be
displayed along with the field.
5. Required checkbox: This checkbox is used to make the field required / mandatory.
6. Unique Checkbox: This checkbox, will make the field value as unique inside the entire
column.
7. Length: This property is used to specify, the number of characters to be allowed inside
the textbox.
8. External ID: An external ID is a custom field that has the “External ID” attribute,
meaning that it contains unique record identifiers from a system outside of Salesforce
Note: External ID field type can be either Number / Text / Email field type. An
object can have max. of 25 External ID field's.

Question: How many ways are there to make a field required?

Ans: We have 4 ways to make a field required.

1. By selecting the Required checkbox upon creating the field.


2. By using Validation Rules.
3. By using Page Layout Customizations.
4. By using Triggers

2. Text Area:
Allows us to enter the data in multiple lines, max. of 255 characters. (Alphanumerical + Special
Characters)

25 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Properties:
1. Field Label :
2. Field Name :
3. Description :
4. HelpText :
5. Length : Number of characters to be allowed. (Max: 255)
6. Required Checkbox:
7. Number Of Lines :

3.Text Area Long:


This field allows us to enter the data in multiple lines upto max. of 1,31,072 characters. (Special
Characters + Alphanumerical)

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. HelpText :
5. Length : (Max: 1,31,072). By Default : 32,768.
6. Number Of Lines :

4. Text Area Rich:


This field allows us to enter the data in multiple lines upto max. of 1,31,072 characters. We can
change the Font Color, Size, Style and we can include the images, hyperlinks etc.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. HelpText :
5. Length : (Max: 1,31,072). By Default : 32,768.
6. Number Of Lines :

5. Email:
This field is used to enter the valid email addresses, which will be verified by the Salesforce upon
saving the record.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. HelpText :
5. Required Checkbox :

26 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


6. Unique Checkbox :
7. External ID:
6. Phone:
This field is used to store the 10 digit phone numbers. Once the user enters the 10 digit phone
number, then it will convert the phone number into US phone number format.
Ex: Contact Number : 9988776655 ---> Save --> Contact Number : (998) 877 - 6655

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. HelpText :
5. Required Checkbox :

7. Currency:
To store the Currency values. (Numerical values --> Integer + Decimal value). Field will allows to
store max. of 18-Digit Number.
Once the record gets saved, it will display the currency value by prefixing with the Currently
configured currency symbol in the Salesforce.

Ex: Annual Revenue : 1000000 --> Save --> Annualrevenue : $ 1000000


Note: We can change the Currency Symbol in the organization as below.

Setup --> Administer --> Company Profile --> Company Information.


1. Click on "Edit"
2. Goto "Currency Settings" section.
3. Select the Required Currency Symbol from the Currency Locale Picklist
(Ex: English India).
4. Click on "Save" button.

Multi Currency: We can enable the Multi-Currency option as below.

Step 1: Select the checkbox "Activate Multi Currency for the organization".
Setup --> Administer --> Company Profile --> Company Information.
1. Click on "Edit"
2. Goto "Currency Settings" section.
3. Select the checkbox "Activate Multi Currency for the organization".
4. Click on "Save" button.

Step 2: Contact the Salesforce Support, to determine the best time, to activate this
feature from the salesforce side.

Properties:
1. Field Label :
27 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
2. Field Name :
3. Description :
4. HelpText :
5. Required Checkbox :
6. Length : (Max : 18)

8. URL:
To store Website name / URL address of an application.
Ex: website : www.office365.com --> Save --> Website: http://www.office365.com

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. HelpText :
5. Required Checkbox :

9. Picklist: (Dropdown List)


This control is used to store some set of values inside it, from which the user can select only one
item at a time.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. Help Text :
5. Values : List of values to be populated inside the field.
6. Required Checkbox :
7. Checkbox : Sort value alphabetically.
8. Checkbox : Make the first value as default.
9. Checkbox : Enforce the field value integrity

10. Picklist-Multiselect:
By using this control, the user can select one or more elements from the collection of elements.
Note: The selected items will be concatenated with help of a seperator ";", and will store the value
inside the field.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. HelpText :
5. Required Checkbox :
6. Values :

28 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


7. Checkbox : Sort Values Alphabetically.

11. Date:
This field type, allows us to store the Date values inside the column by selecting from a pop-up
calendar. Ex: BirthDate, JoiningDate, Open Date, CloseDate, DueDate, etc.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. Help Text:
5. Required Checkbox : To make the field required.

12. DateTime:
This field type is used to store both Date and Time stamp value inside the column.

Ex: Meeting Start Time, Meeting End Time, CreatedDate, LastModifiedDate, etc.
Ex: I have a meeting / Client Call : 08/13/2017 06.00 PM

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. Help Text:
5. Required Checkbox : To make the field required.

13. Number:
This field type is used to store numerical type value, which includes both Integer and Decimal
values also. Note: We can store a 18-digit number inside the field.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. Help Text :
5. Required Checkbox: To make the Field Required
6. Length : Number of digits to be allowed. (10)
7. Decimal Point Values: 0 / 1 / 2 / 3 / 4 /.....
8. External ID :

14. Percent:
It will allows us to store the Numerical values, which will be stored by post-fixing with "%" symbol.
It will allows us to store an 18-digit number, which can be either Integer / Decimal value.

29 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Ex: Discount : 5 --> Save --> Discount : 5%
Service Tax : 14.5%
Marks : 74.5%

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. Help Text:
5. Required Checkbox : To make the field required.
6. Length : Number of digits to be allowed.
7. Decimal Point values :

15. Checkbox:
This field type is used to store the Boolean values inside the column. Which may be either TRUE /
FALSE.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. Help Text:

16. Text Encrypted:


This field type is used to encrypt the specified data into other format. It will use the 128-bit master
key generated by salesforce to encrypt the data.

Password : ********* ---> All the Characters


ATM PIN Number : XXXX ---> All Digits
A/C No : XXXX XXXX 1234 --> Last 4 Digits will be visible as it is.
Credit Card : XXXX XXXX XXXX 4004 --> Last 4 Digits will be visible as it is.

Properties:
1. Field Label:
2. Field Name :
3. Description :
4. Help Text :
5. Masked Type : Password / Bank Account Number / Credit Card Number / SSN Number /
US Insurance Policy Number, etc.
6. Masked Character : * / X

17. Auto Number :


This field type is used to make the column value auto generated. By using this field type, we can
generate the values for the field based on the specified format.

30 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


So, Auto Number field is called as a "System Generated Field". Auto Number field will generate
the value for the field upon saving the New record.
Note: System Generated Fields are "Read-Only" fields.

Question: What are the various System Generated Fields exist in salesforce.
Ans: ID, CreatedBy, LastModifiedBy, Auto Number, Formula Fields, Rollup Summary.

Properties:
1. Field Label :
2. Field Name :
3. Description :
4. Help Text :
5. Display Format : PID-{000000}
6. Starting Number : 100001
7. Select the checkbox : Generate Auto Number for Existing Records.

Position Record : --> ID -> 18 characters --> PID-100001


PID-100002

18. Geo Location:


By using this field, we can store both Lattitude and Longitude value of the specified location.

Properties:
1. Field Label:
2. Field Name :
3. Description :
4. Help Text :
5. Required Checkbox

19. Time:
This field type is used to store the Time value inside the field. Which is a New field type available
from "Winter'18" Release.

Properties:
1. Field Label:
2. Field Name :
3. Description :
4. Help Text :
5. Required Checkbox

31 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Creating Field inside the Object:

We can create a field inside the object, with the below navigation...

Click on the Required Object's Tab. (Ex: Accounts / Positions)


1. Expand the Force.com quick access menu.
2. Click on "View Fields" link.
3. Goto "Custom fields & Relationships" section.
4. Click on "New" button, to create a New Custom field.
5. Select the "Field Type" from the list.
6. Click on "Next" button.
7. Enter the Field Lable, Name, Description and HelpText
8. Select the Required checkbox, if needed.
9. Click on "Next" button.
10. Select the "Visible" checkbox, to make the field to be visible to all profile users
11. Click on "Next" button.
12. Click on "Save" button.

PAGE LAYOUTS IN SALSFORCE

Page Layout provides a set of graphical user interfaces, which allows us to interact with the object. And we can
perform all the DML manipulations (Insert, Update, Delete, Undelete) And Retrieval on the object records.

Salesforce provides a Page Layout for each object by default. But, we can Create one or more Page Layouts per an
object based on the need.

Note: Each PageLayout is associated with the Tab.

PageLayout contains 2 Modes as below.

1. Edit Mode/ Edit Page /Edit Layout:

Which displays the fields inside the object in "Editable" format. So, the user can create / Update
the existing record details.
Note: Edit Layout will be opened upon click on "New / Edit" button.

2. Detail Mode / Detail Layout / Detail Page:


This Layout will display the detailed information of the record, which has been created / edited by
the user.
Note: As soon as the user click on "Save" button, it will commit the required changes to the
Database and will re-direct the user to the detailed page of the record.
Detailed page contains all the associated child records in terms of "RelatedLists".

We can list out the PageLayouts of an object as below.

32 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Standard Navigation: (Ex: Account Object)

Click on "Setup" menu.


1. Goto "Build" menu in left panel.
2. Click on "Customise" and expand it.
3. Click on "Required Object's Name" and Expand it. (Ex: Accounts)
4. click on "Page Layouts".

Force.com Quick Access Menu:


Click on the "Required Object't Tab" (Ex: Positions)
1. Expand the Force.com Quick Access Menu.
2. Click on "View Object" link.
3. Goto "Page Layouts" section.

Once the Page Layout has been given by the salesforce, we can customize the pagelayout based on the
requirement with the help of PageLayout Editor.

We can perform the below customizations inside the PageLayout.

1. We can add the required sections inside the pagelayout.

2. We can specify, in how many columns we can arrange the fields inside the section. (i.e. either in
1 or 2 columns)

3. We can move the fields from one section to another.

4. We can place the feild in the required place.

5. We can configure the "Tab Key Order" for each section (i.e. either from Top to Bottom / Left To
Right)

6. We can hide the unneccesary fields from the Layout.

7. We can make the "Field Required / Read-Only"

8. We can add the required fields onto the Layout by using Page Layout Editor.

9. We can customise the RelatedList to be visible on the Layout.

10. We can customise the columns to be inside the RelatedList.

11. We can customise the buttons to be visible inside the RelatedList

12. We can embedd a Visualforce page inside the Layout.

33 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


13. We can embedd the Dashboard into the Layout.

14. We can embedd the Google Map inside the Layout.

Navigation:
Click on the Required Object's Tab Name (Ex: Positions)
1. Expand the "Force.com Quick Access Menu".
2. Click on "View Object" link.
3. Goto the "Page Layouts" section.
4. Click on "Edit" link, beside the Page Layout Name.
5. Customise the Layout based on the need.
6. Arrange the Fields by using "Always Visible" control.
7. Click on "Save" button, once the chages are done.

Chatter Feed on Custom Object:


By default, Salesforce will not provide the Chatter Feed on the Custom Object Record's detailed Layout.

We need to enable it manually as below.

Goto Setup --> Goto Build Menu in Left Panel


1.Click on "Customise" option and expand it.
2.Goto "Chatter" option and expand it.
3.Click on "Feed Tracking" link.
4.Select the Object from the Left Panel.
5.Select the Checkbox "Enable Feed Tracking".
6. Click on "Save" button.

34 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


OBJECT RELATIONSHIPS IN SALESFORCE

Every application requires a Database, which stores the actual customer details / sales details, etc.

Database contains a set of interrelated objects like Tables, Procedures, Cursors, Functions, views etc.
The data / records will get resides in a structured format by using Tables.

We can have one or more tables in a database, where the actual records get resides.

We can store the data in a single table / in multiple tables.


All Salesforce objects will get resides in “Database.com”, which is a customized database of Salesforce.
While storing the data in a single table, it causes the below issues.

1. Number of columns in the Table is restricted to 1024.


2. Redundancy (Duplicate data).
3. Performance issues (upon Updating, Insert).
To void the above issues, we have to use "Normalization" process, which allows us to decompose the
data into different table without any data loss. (i.e. We need to store the records into different objects.)

While storing the records into different objects, both the objects should be associated with each other.

We can map the association between the objects by using "Relationship" feature in Salesforce.

Note:
• Mapping the association between objects means, mapping the association among the records
available in the objects
• While mapping the association between the objects, we need a common column in both the
tables. (I.e. that can be created by using Foreign Key constraint in Database).

The Database.com database differs from relational databases in the way that record relationships are
implemented.

Instead of defining relationships through primary keys and foreign keys, the database uses relationship
fields.

A relationship field is a custom field on an object record that contains a link to another record.

Ex: Personal relationship is a two-way association between two people, in terms of relational data, a
relationship is a two-way association between two objects.

Without relationships, you could build out as many custom objects as you can think of, but they'd have
no way of linking to one another.

35 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


With relationships, you can display data about other related object records on a particular record's detail
page.

A relationship field stores the ID of the parent record in a relationship, as well as optionally providing
user interface representations in both the parent and child records.

Note:
• While mapping the association, always we need to map from Child Object to Parent Object. (I.e.
Common Column should be created on child object.)
• Salesforce uses "ID" column as the common column between the objects, because it holds the
unique value.
• Upon creating the child record, it will verify in the parent object for the associated parent record.

Salesforce provides 6 types of Relationships as below.

1. Lookup Relationship
2. External Object Lookup Relationship
3. Master-detail Relationship
4. Hierarchical Relationship
5. Many To Many Relationship
6. One-One Relationship

To map the association, Salesforce provides a set of "Relationship field types" by default. We have
the below relationships in Salesforce.

1. Lookup Relationship
2. External Object Lookup Relationship
3. Master-Detail Relationship.
4. Hierarchical Relationship

CREATING OBJECT USING SCHEMA BUILDER

Schema Builder is used to define the Object Structure and we can represents the existing object
structure and the fields and associations in "Pictorial format" on the Canvas.

Click on "Setup" menu.

1. Goto "Build Menu" in left panel.


2. Click on "Create" and expand it.
3. Click on "Objects" link.
4. Click on "Schema Builder" button.
5. Goto the Schema Builder Canvas, Click on the "Components" tab in the Left Panel.
6. Use the Required Objects / Components to build the Custom Objects and the Fields by using Drag and
Drop options.

36 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Creating Hiring Manager Object:

Name : Standard
Location : Picklist
Email ID : Email
Contact Number: Phone

Drawbacks:

Upon creating the Objects / Fields by using "Schema Builder", we have the below drawbacks.

1. While creating the Object, it will create the Table with the specified name. But, it won't provide the Tab
for the object by default. i.e. We need to create the Tab manually for the object.

2. Upon creating the Fields by using "Schema Builder", it will populate only those fields on the Page
Layout, Which has been created by selecting "Required Checkbox". Remaining fields will not be visible on
the Page Layout. i.e. We have to place those fields on the Layout, by using PageLayout Customization.

CREATING LOOKUP RELATIONSHIP

Use case: Create the Lookup Relationship between Hiring Manager and Position Objects and describe
the observations.

Pre-requisite: We should have the below objects.

1. Hiring Manager(Hiring_Manager__c)
2. Position (Position__c)

Identify the Parent and Child Objects:

Hiring Manager: Parent Object


Position : Child Object

Note: We need to create an additional relationship field on the Position object, Which references the
Hiring Manager Object.(i.e. a Lookup field to "HiringManager")

Navigation:

Goto Setup Menu Goto Build Menu in Left Panel Goto Customize Select the Child

Object Click on Fields

• It will list out all the standard and Custom Fields in the Object.
• Goto Custom Fields and Relationships section

37 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


• Click on “New” Button, to create a new Relationship field Select the Field Type as “Lookup ”
Relationship

• Click on Next and Select the Associated Parent Object from the Picklist as below

Click on “Next” , Enter the Lookup Field Label and Name

• Click on “Next”, Make this field visible to all the profiles.

38 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


• Click on “Next”

• Click on “Next” and “Save”

39 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


• Now, it creates a new Field in the Position Object with the Lookup Relationship as below

• Hiring Manager Record's detailed page will be updated with the Related list "Positions".

Observations:

1. Lookup Relationship provides the One - Many associations among the two objects by default. (I.e. One
Parent and Many Childs.)
2. While creating the child record, Lookup field is optional by default. (I.e. we may or may not select the
parent record.)
3. Re-Parenting Option is available by default in Lookup Relationship.(i.e. We can change the parent of a
child record.)
4. Upon deleting the Parent record, Child records will remains in the Child object. (I.e. Only parent record
will removed. child records will exist as it is.)
5. We can make the Lookup Relationship field as Mandatory, by selecting the "Required" checkbox upon
creating the Relationship field.
6. If the Lookup field is Mandatory(Required checkbox selected), then When we tried to delete the parent
record which is associated with the child records, Salesforce doesn't allow to delete the parent record
until all the child records has been removed.
7. We can have max. of 40 Lookup relationships per an object.
8. Both Parent record and child record will have "owner fields".
9. Sharing settings and security settings will be independent of each other.
10. We can make a standard object as a child object with the custom object in Lookup Relationship.
11. We can't apply Rollup Summary field on Lookup Relationship objects.

CREATING MASTER-DETAIL RELATIONSHIP

Use case: Create the Master-Detail Relationship between Position and Candidate Objects and describe
the observations.

Candidate Object Schema:

40 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Pre-requisite: We should have the below objects.

1. Position (Position__c)
2. Candidate (Candidate__C)
Identify the Parent and Child Objects:

Position: Parent Object

Candidate : Child Object

Note: We need to create an additional relationship field (Master-Detail type) on the Candidate object,
Which references the Position Object.(i.e. a Lookup field to "Position")

Navigation:
Goto Setup --> Goto Build Menu --> Goto Create 1. Click
on "Objects" link and expand it.

2. Click on "Candidate" Object.


3. Goto "Custom Fields and Relationships" section.
4. Click on "New" button, to create a New "Relationship" field.
5. Select the Field Type as "Master-Detail Relationship", click on "Next" button.
6. Select the Parent Object Name from the Picklist (Ex: Position) and click on "Next" button.
7. Enter the Field Label and Field Name and description.
8. Click on "Next" button.
9. Select "Visible" checkbox, to make this field to be visible to all the selected profile users.
10. Click on "Save" button.
11.

41 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Observations:
1. Master-Detail association provides One - Many association between the objects by default.
(i.e. A Parent record can have zero or more child records)

2. We can't create the Master-Detail relationship between the objects, where child object contains the
records.
3. Upon creating the child record, selecting the Parent record is Mandatory. (i.e. Lookup field is a
Required field)
4. Re-Parenting option is not available by default in Master-Detail association.
We need to enable it manually, by selecting the "Allow Re-Parenting" checkbox upon creating the field.

5. An object can have max. of 2 Master-Detail relationship fields.


6. Parent record will have the "Owner" field and Child record will not having the "Owner" field.
(i.e Child record will be completely comes under the control of Parent record.)

7. Sharing Settings and Security settings of the child record will be depends upon the parent record.
8. Upon removing the Parent record, all the associated child records will remove automatically.
9. We can't make a Standard object as the Child for a Custom object with Master-Detail association.
10. We can add Rollup Summary fields on Parent object.

Lookup Relationship Master-Detail Relationship


1. Lookup field is not a required field 1. Lookup field is a mandatory field while
while creating the child record / creating the detailed record
detailed record
2. When you delete the parent record, 2. When you delete the parent record,
child record will not be deleted(only the associated child records also get
parent record will removed) deleted
3. We can have max of 40 lookup 3. We can have max of 2 master-detail
relationships on an object relationships on an object.

4. Re-parenting option is available by 4. Re-parenting option is not available


default(i.e. we can change the parent by default.
of the child record) Note: We can enable the re-parenting
option while creating the master-
detail relationship (Enable “Allow Re-
parenting” checkbox)
5. Sharing Setting and Security settings 5. Sharing Setting and Security settings
are not dependant on parent record are dependent on parent record
42 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
6. Rollup summary fields can’t be 6. We can create the Rollup summary
applicable fields on Parent Object only
7. Standard object can be the detail 7. Standard object can’t be detailed
object for a custom object object for a Custom object
8. Owner field is available on detailed 8. Owner field is not available for
record detailed record
9. We can create the lookup relationships 9. We can’t create the master-detailed
on an object, which is having the relationship on object, which is
records. having the records

Relationships among Standard Objects:


Salesforce provides a set of standard objects as part of Salesforce CRM application.

All standard objects are associated by using either Lookup or Master-Detail.

1. Account and Contact:


Between Account and Contact, Salesforce provides the Lookup Relationship.

Account --> Parent

Contact --> Child

Note: We have a common field in Contact object with the Name "AccountID", which Hold’s the ID
of the account record to which the contact is associated

Note: Upon removing an account record, all the associated contact records will get removed
automatically. Which is a standard feature given by Salesforce. We can prevent the deletion of contact
records by using "Triggers". (i.e. Before deleting the Account, We need to get all the associated
Contacts and make the "AccountID" field value as blank.)

2. Account and Opportunity:


Between Account and Opportunity, Salesforce provides "Lookup" association.

Account --> Parent


Opportunity --> Child

We have a common field in Opportunity object, with the name "AccountID". Which holds the Account
Record Id to which the opprtunity is associated.

3. Account and Case:


Between Account and Case object, we have Lookup Relationship.

43 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Account --> Parent
Case --> Child.

We have a common field in Case object, with the name "AccountID". Which holds the Account
Record Id to which the Case is associated.

Once we map the association between the objects by using either Lookup or Master-Detail, in future
we can change the relationship type from Lookup to Master-Detail and vice-versa.

Converting Lookup Relationship To Master Detail:

- We can't apply the Master Detail Relationship on an Object, Which contains the preexisting records.

- We can convert the Look Relationship to Master Detail with the below steps.

1. We need to apply the Lookup Relationship between the Objects First.

2. Map each child record with the associated Parent record.

3. Change the Relationship Field Type to Master Detail.

Navigation:

Goto Object --> Goto Force.com Quick Access Menu --> Click on "View Fields"

1. Goto the "Custom Fields & Relationship" section.


2. Click on the "Relationship" field
3. click on "Edit" button
4. Click on "Change Field Type" button
5. Select the Field Type as "Master Detail Relationship"
6. Click on "Next" button
7. Click on "Save" button.

Now it will change the Relationship between the object from Lookup to Master Detail.

Converting Master Detail Relationship to Lookup:

Note: Converting the Master Detail Relationship to Lookup is straight Forward.

We can change the Master-Detail association to Lookup directly, just by changing the field type from
Master-Detail to Lookup type as below.

Position --> Parent


Candidate --> Child

44 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Navigation:

Click on "Child Object's Tab (Ex: Candidates)".

1. Expand the Force.com Quick Access Menu.


2. Click on "View Fields" link.
3. Goto "Custom Fields and Relationships" section.
4. Goto the "Relationship field (Ex: Position)"
5. Click on "Relationship Field Name", to see the details.
6. Click on "Edit" button.
7. Click on "Change Field Type" button.
8. Select the Field Type as "Lookup Relationship"
9. Click on "Save" button.

Observation: Now, it will change the association between Position and Candidate as "Lookup"

CREATING MANY TO MANY RELATIONSHIP

In few cases, we have to map Many to Many association between two objects, Which provides One-
Many association from both the sides.

Ex: We have Two Objects Author and Book.

UseCase: Create Many-Many association between Author and Book objects.

An Author can participate while preparing the Multiple books (i.e. One to Many from Author To Book).
A Book can be prepared by multiple Authors (i.e. One to Many Association from Book to Author)

In Salesforce, we can't map Many-Many to association between two objects directly.

We need to achieve this feature, by creating a Junction object. Which associated with both the Parents
with Master-Detail association

Standard Junction Objects:


Salesforce provides a set of junction objects, which has been created upon Salesforce CRM
Application Development.

1. Between Campaign and Contact object, Salesforce provides Many-Many association by creating a
junction object "CampaignMember".

2. Between Contact and Opportunity object, Salesforce provides Many-Many associated by creating
a junction object "OpportunityContactRoles".

45 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


3. Between Opportunity and Product(Product2) object, Salesforce provides Many-Many association
by creating a junction object "OpportunityLineItem".

4. Between Product and Pricebook(Pricebook2) object, Salesforce provides Many-Many association


by creating a junction object "PricebookEntry".

5. Between User and PermissionSet Object, Salesforce provides Many-Many association by creating
a junction object “PermissionsetAssignment”.

LOOKUP DIALOG CONFIGURATION

Upon creating the Child record, the user can select the associated Parent by using "Lookup" field. Which
will populate all the Parent record details inside a "Lookup DialogBox".

By default, it will populate the Parent Record Name. We can customize the Lookup dialog to display the
required details of the Parent record.

UseCase:
Configure the Lookup Dialog, to display all the details of the Hiring Manager upon creating the Position
record.

Implementation: We need to customise the "Hiring Manager" object's Lookup Dialog, with the required
fields.

Navigation:
Click on the Required Object's Tab (Ex: Hiring Managers)
1. Expand the Force.com Quick Access Menu.
2. Click on "View Object" link.
3. Goto the "Search Layouts" section.
4. Click on "Edit" link for the "Lookup Dialog"
5. Add the Required fields to be visible inside the Dialogbox.
(Ex: Name, Email Id, Contact Number, Location)
6. Click on "Save" button.
LOOKUP FILTERS CONFIGURATION

Once the association has been mapped between two objects, the user can select Parent Record by using
Lookup dialog upon creating a New Child record.

Lookup dialog will display all the parent records, So that the user can select only one parent.

We can filter the records to be displayed in Lookup dialog box by using "Lookup Filters configurations".

46 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


i.e. We can prevent the Salesforce to populate all the parent records in the Lookup dialog by adding the
required filter conditions as below.

UseCase:

Configure the Lookup dialog to populate only those position records which are not closed upon
creating a Candidate Record.

Configuration Steps:

Click on "Child Object Tab (Ex: Candidates)"

1. Expand the "Force.com Quick Access Menu"


2. Click on "Vew Fields" link.
3. Goto "Custom Fields and Relationships" section.
4. Goto the Relationship field (Ex: Position__C)
5. Open the Field by click on "Field Name"
6. Click on "Edit" button, to update field settings.
7. Goto "Lookup Filters" section.
8. Add the Required Condition.

Ex: Position Status Not Equals "Closed"

9. Make the Filter active by selecting "Active" checkbox.


10. Enter Lookup Dialog Text (Ex: Please select the Position Record)
11. Click on "Save" button.

Testing: Goto the Candidate object, Create a New Candidate Record, by selecting the Position Record as
Parent by using Lookup icon.

Observation: Lookup dialog has to populate the position records, which are not in Closed Status.

HIERARCHICAL RELATIONSHIP

Hierarchical Relationship can be applicable only on "User" object in Salesforce.

This feature will map the Self association, where we can make a User Record can be associated with
another user record in the same object.

ROLLUP-SUMMARY FIELD

• It is a Read-only field, which displays on detailed page of the parent record


• Rollup Summary field calculates the values from a set of related records available in the details object
/ related list.

47 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


• Rollup Summary field will automatically calculate the result based on the updates done in the related
records.

Note: Rollup Summary field can be created only on Master Table, which is in Master-Detail Relationship.
It can’t be applicable for Lookup relationship.

Ex: We can create the Rollup Summary field to calculate the Number of Contacts available for an
Account.

Rollup Summary field generates the results by using "Aggregate Functions" as below.

1. Count():
It returns an integer value, which indicates the Number of child record exist in the child object for each
parent record.

2. Sum():
This function is used to calculate the Sum value for all the child record's field.

Note: This function can be applicable only on "Number Type / Percent Type / Currency Type"
fields.

3. Max():
This function returns the Highest value from all the associated child records.

Note: This function can be applicable only on "Number Type / Percent Type / Currency Type / Date
type" fields.

4. Min():
This function returns the Smallest value from all the associated child records.

Note: This function can be applicable only on "Number Type / Percent Type / Currency Type / Date
type" fields.

Note: An object can have max. of 25 Rollup Summary fields.

Note: While summarizing the records, we can consider all the records or only the records matching the
specific criteria.

Note: Rollup Summary field will be displayed only on Detailed Page of the Master Record.

Creating Rollup Summary: Master Object (Position), Detailed Object (Candidates)


Business Requirement: Configure a Rollup Summary field, to display the Candidates Count per each
Position record.

48 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Pre-Requisite:

We should have 2 Objects as below.

1. Position (Master)
2. Candidate (Detail)
These objects should be associated with Master-Detail association.

1. Goto Setup Build Create Objects


2. Select the Parent Object(Position), to create the Rollup Field
3. Goto the Custom Fields and Relationships Section and click on “New” button, to create a new
Rollup field
4. Select the Field Type as “Rollup Summary”, Click on “Next”
5. Enter the Field Label, and Field Name and click on “Next”
6. Select the Summarized Object (Detail Object) as “Candidate” and select the Rollup Summary Field
Type (Ex: COUNT / SUM / MIN / MAX) as below
A. Select the Rollup Function as “Count” – To display the Candidates count for the Position.

7. Click on Next and Save

To Verify the Rollup Summary Field, Goto the Parent Object and View any of the record, In Detailed
Page, it will display the “Rollup Summary Field value” as below.

49 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


ONE TO ONE RELATIONSHIP

By default, all the relationship fields will provide One-Many association.

We can also implement the One-One association (i.e. One Parent and One Child)

1. By using a "Rollup Summary field" created on the Master Object by using "Count" function.
2. We need to create a Validation Rule on "Rollup Summary" field to make sure to have only
one Child.

50 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


EMAIL TEMPLATES: (Communication Templates)
Email Templates are used to share the information among the organization employees / partners / end
users / customers.

Salesforce has configured the email servers by default. So that no need to use any email servers
explicitly.

To share the information among the users we need to prepare a Draft, Which contains the Email Subject
and Email content (Body) by using "Email Templates". These are also called as "Communication
Templates".

We can use the email Template in "Outbound Email Services", which send's the email notifications from
Salesforce to the external email id's.

We can use the Email Templates, to share the information about,

1. Regarding the New Products releasing into the market.

2. Regarding New Offers and discounts based on occasions.

3. Reminder alert to the user based on Case Creation / Escalation / Closed, etc.

While sending the email notification, we can make the content as static or we can make the content
dynamic.

We can send the emails to one or more users.

Note: Salesforce provides a set of readymade Email Templates, which are common to all the users in the
salesforce organization.

We can create our email templates based on the need.

Note: All the Email Templates will resides inside the "EmailTemplate" object.

Note: Each Email Template should be resides in a Folder. All Folders information will store in “Folder”
object.

By default salesforce provides 2 email Template Folders.

1. Unfiled Public Email Templates Folder:


It contains all the readymade email templates provided by salesforce. This is a Public Folder.
Which contains a set of email templates which can be visible to all users inside the
organization.

51 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


2. My Personal Email Templates Folder:This is a Private Folder. Which can accessible by only the
authenticated people. We need to grant the access on this folder to the users. Then only they can
access.
3. We can create our own personal folder, in-order to store your personal email templates.

We can list out all the email templates exist in the organization with the below navigation.

Click on "Setup" menu.


1. Goto "Administer" menu in Left Panel.
2. Goto "Communication Templates" link and expand it.
3. Click on "Email Templates" link.

Types of Email Templates:

Salesforce provides 4 types of Email Templates as below.

1. Plain Text / Text


2. HTML (Using LetterHead)
3. Custom (Without using LetterHead)
4. Visualforce EmailTemplate.

1. Text / Plain Text:

By using this template type, we can send the email notifications with the required subject and the
content with "Plain Text" format. (i.e. Like White Background and Black Text).

We can't include any images, pictures, colors, Hyperlinks, etc.

2. HTML (Using LetterHead):

In this approach, we can place the content inside the LetterHead upon sending the email to the
people, so that we can make the email content look like attractive.

3. Custom (Without using LetterHead):

In this approach, we can prepare the subject and the Content and can make it look like attractive
with the help of "HTML programming".

4. Visualforce Email Template

By using this approach, we can prepare a visualforce page, through which can send the email
notifications to one or more people.

We can query the email templates through programming as below.

Ex: Select id, name, description, templatetype from EmailTemplate

52 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Note: Upon Saving the Email Template, each email template will get resides inside a "Folder".

Banking: Deposit : (Seperate Folder)

Withdraw : ( Seperate Folder)

Mortgage : ( Seperate Folder)

Creating the Plain Text Email Template:

We can create a New Email Template with the below navigation.

Click on "Setup" menu.

1. Goto "Administer" menu in Left Panel.


2. Goto "Communication Templates" link and expand it.
3. Click on "Email Templates" link.
4. Goto the "EmailTemplates Section" and click on "New Template" button.
5. Select the Template Type from the options like Text / HTML / Custom / VF
6. Click on "Next" button.
7. Select the Email Template Folder from the Picklist, in which the email template should get
resides.
8. Select the checkbox "Available for Use"
9. Enter the Email Template Name, and the Description.
10. Enter the Email Subject, which needs to be shared with the people.
11. Enter the Email Content, to be share with the people.
12. Click on "Save" button.

Usecase:

Create an Email Template to Notify the Contact person, upon creating a New Contact Record.

Email Subject: Congratulations..!! Your Contact Record has been created successfully.

Email Content:

Dear Customer,

Thanks for purchasing the products from our organization. From now on-wards you are a
valuable customer to our organization.

We are pleased to inform you, that your Contact Record has been created in our database
successfully for the future reference.

53 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Thanks & Regards,
Sales Team,
DELL Inc.,
Toll Free : +1 (800) 234-5678
Email : sales@dell.com
Visit us : www.dell.com

Testing the Email Template:

We can test the email template as below...

Goto the Email Templates Link.

1. Click on the Required Email Template Name.


2. Goto the "Email Template Details".
3. Click on "Send Test and Verify Merge Fields" button.
4. Select the Record from the Lookup, in-order to include the selected record content
inside the Email Template.
5. Enter the Preview Email ID in the Textbox, to notify the person.
6. Select the checkbox "Send a Preview To me".
7. Click on "Ok" button.

Merge Fields:
These are used to include the selected record content into the email template dynamically at runtime.
By using the merge fields, we can make the Email Subject and the Content dynamic.

Merge fields can be used in both Email Subject and the Content.

Syntax: {!<ObjectName>.<FieldName / API Name> }

Ex:

{!Account.Name} {!Account.Rating} {!Account.Active__C} {!Account.Pan_Number__c}

{!Account.Industry}

{!Position__C.Name} {!Position__C.Location__C} {!Position__C.Position_status__C}

{!User.FirstName} {!USer.LastName}

Usecase:

Create an Email Template, to Notify the Account Person, upon creating a New Account Record by
including the Account Record Details inside the Email Template.
54 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Subject: Congratulations {!Account.Name} ...!! Your Account record has been created successfully.

Content: Dear {!Account.Name},

Thanks for purchasing the products from our organization. From now on-wards you are a
valuable customer to our organization.

We are pleased to inform you, that your Account record has been created successfully.

Here are your Account details...:

Account Name : {!Account.Name}


Rating Value : {!Account.Rating}
Industry Value : {!Account.Industry}
Annual Revenue : {!Account.AnnualRevenue}
Account Type : {!Account.Type}
Active Status : {!Account.Active__C}
Billing Address : {!Account.BillingStreet},
{!Account.BillingCity}, {!Account.BillingState},
{!Account.BillingCountry}, {!Account.BillingPostalCode}

Please contact on the below address, if any changes required.

Thanks & Regards,


{!User.FirstName} {!User.LastName},
Sales Team,
DELL Inc.,
Toll Free : +1 (800) 890-7890
Email us : sales@dell.com
visit us : www.dell.com

Testing the Email Template:

Goto the Newly prepared Email Template.

1. Open the Email Template


2. Click on "Send Test and Verify Merge Fields" button.
3. Select the Account Object Name in the "Picklist" field.
4. Select an Account record, by using the Lookup icon.
5. Select the checkbox "Send the Preview To me ".
6. Enter the Preview Email Address.
7. Click on "Ok" button.

Observation:

55 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


It should send an email notification to the specified email id, with the required subjec and the
content, by including the selected Account record details inside the email template.

Assignment:

1. Create an Email Template to notify the Hiring Manager, upon creating a New Hiring Manager
Record, by using Merge Fields.

2. Create an Email Template, to notify the Lead Person, upon creating a New Lead Record, by
including the "Lead Record details inside the email Template".

Creating LetterHeads:
Salesforce allows to to prepare our own letter heads based on the need, with the required Header and
Foote Logo's.

We can use this LetterHead, in-order to send the email notification to the user, which gives an attractive
look and feel.

We can have one or more LetterHeads in an organization.

The Images required in the LetterHead, should be uploaded into "Documents" folder.

Goto Setup --> Goto "Administer" Menu


1. Click on "Communication Templates" link.
2. Click on "LetterHeads" link.
3. Click on "New" button, to create a New LetterHead.
4. Enter the LetterHead Name and Description.
5. Select the checkbox "Available for Use"
6. Click on "Next" button.
7. Select the Images and place into "Header and Footer" parts by using "Select Logo"
button.
8. Change the LetterHead Background Properties by using "Edit Background
Properties" button.
9. Click on "Save" button.

Note: LetterHead can be used only in "HTML Email Templates". We can have one or more Letter Heads
inside an organization.

Creating Email Template with HTML Type:


By using the HTML Email Templates, we can send the email notification to the people with the required
subject and the content along with the "LetterHead".

Which makes the email content look like attractive.


56 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Usecase:

Create an Email Template, to notify the Hiring Manager regarding the New Open Positions exist inside
the organization. Send the Email notification along with the "LetterHead".

Email Subject:

Dear {!Position__c.HiringManager__c}...!! Alert Regarding the New Open Position :


{!Position__C.Name} in the organization

Content:

Dear {!Position__c.HiringManager__c},

We are pleased to inform you, that we have few New Open Positions in the organization.
Please recruite the Candidates ASAP.

Here are the Position Details...:

Position Reference ID : {!Position__c.Reference_ID__c}


Position Name : {!Position__c.Name}
Number of Positions : {!Position__c.Number_Of_Positions__c}
Location : {!Position__c.Location__c}
Position Status : {!Position__c.Position_Status__c}
Close Date : {!Position__c.Close_Date__c}
Maximum Budget : {!Position__c.Maximum_Budget__c}
Position Description : {!Position__c.Position_Description__c}
Skills Required : {!Position__c.Skills_Required__c}

Please recruite the Candidates for the above position before the Close Date :
{!Position__C.Close_date__C}

Thanks & Regards,


{!User.FirstName} {!User.LastName},
Talent Acquisition Team,
Capgemini Inc.,
Toll Free : +1 (800) 345 - 5678
Email : careers@capgemini.com
Visit us : http://careers.Capgemini.com

Creating the HTML Type Email Template:


We have to use the below navigation to create the HTML Email Template (With LetterHead).

57 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Goto Setup --> Goto "Administer" Menu --> Goto "Communication Templates"

1. Click on "Email Templates"


2. Click on "New" button to create a New Template
3. Select the Email Template Type as "HTML (With LetterHead)"
4. Select the LetterHead by using Picklist Field (Ex: Capgemini LetterHead)
5. Select the Form Layout (Ex: Free Form Layout)
6. Enter the Email Template Name and Label
7. Enter the Letter Description
8. Select the checkbox "Available for USe"
9. Select the Folder to save Email Template as "Unified Public Email Templates".
This is a Public Folder, which contains all the Email Templates. This folder will be
accessible to all the salesforce users.
10. Click on "Next" button.
11. Enter the Email Subject in subject field.
12. Enter the Email Content in the Content part of LetterHead.
13. Click on "Save" button.

Testing the Email Template:

1. Goto the Email Template and Open it.


2. Click on "Send Test and Verify Merge Fields Button"
3. Select the Object from the picklist : "Positions" and Select any Position Record
by using Lookup option.
4. Select the Checkbox "Send a Preview To" and Enter the CC Email Address
5. Click on "Send" button.

Custom Email Template: (Without Using LetterHead)


By using this Template Type, we can prepare the email notifications to be send to the people with the
required subject and the content.

We can make the content look like attractive, with the help of HTML programming. We can use a set of
HTML tags to make the content looklike attractive.

i.e. We can change the Font, Size, Style, Color, Hyperlinks, Formatting options (Bold, italic, underline),
etc.

We can use the below HTML tags frequently inside the email template.

1. Bold Tag <b>: By using this tag, we can make the content to be displayed in Bold format.

Ex: <b> Content </b>

58 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


2. Italic Tag (<i>): This tag is used to display the specified content in Italic format / style.

Ex: <i> Content </i>

3. Underline (<u>): This tag is used to display the specified content with the underline style.

Ex: <u> content </i>

4. Break Tag <br/>: This tag is used to provide a line break in the content. i.e. we can move the cursor to
the next line.

Ex: <br/>

5. Anchor Tag : (<a>): This tag is used to insert a Hyperlink inside the content. When the user click on the
hyperlink, it will re-direct the user to the specified URL / Website.

Ex: <a href="Target URL" target="_blank / search / new"> Content </a>

Usecase: Create an email template, to notify the Candidate, upon submitting the Candidature
Successfully to a position.

Subject: Dear {!Candidate__C.Name} ..!! Your Candidature has been successfully submitted.

Content: Dear <b> {!Candidate__C.name},</b> <br/><br/>

Thanks for showing the interest in our organization positions. <br/><br/>

We are pleased to inform you, that your candidature has been submitted successfully for the
position : <b> {!Candidate__c.PositionName__c} </b> <br/><br/>

One of our HR person will contact you shortly, if your profile got shortlisted. <br/><br/>

Here are your Candidature details... <br/><br/>

Candidate ID : <b> {!Candidate__c.Candidate_ID__c} </b> <br/>


Candidate Name : {!Candidate__c.Name} <br/>
Location : {!Candidate__c.Location__C} <br/>
Notice Period : {!Candidate__C.notice_period__C} <br/>
Current CTC : {!Candidate__C.current_ctc__C} <br/>
Expected CTC : {!Candidate__C.expected_ctc__C} <br/>
Contact Number : {!Candidate__C.contact_number__C} <br/>
Email ID : {!Candidate__c.Email_id__C} <br/> <br/>

Please click on the below link, to see the Candidate Record <a href={!Candidate__C.link}
target="_blank"> Click Here To View Candidate </a> <br/><br/>
59 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Please contact on the below address, if any queries. <br/><br/>

Thanks & Regards, <br/>


<i> {!USer.firstname} {!user.lastname}, </i> <br/>
Resource Management Group (RMG), <br/>
<b> Capgemini Consulting Inc., </b> <br/>
Email : careers@capgemini.com <br/>
Toll Free : +1 (800) 345-6789 <br/>
Website : http://careers.capgemini.com

Testing the Email Template:

1. Goto the Email Template and Open it.


2. Click on "Send Test and Verify Merge Fields Button"
3. Select the Object from the picklist : "Candidate" and Select any Candidate Record
by using Lookup option.
4. Select the Checkbox "Send a Preview To" and Enter the CC Email Address
5. Click on "Send" button.

60 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


SALESFORCE WORKFLOW RULES

Workflows in Salesforce are a fantastic way to automate certain business processes. You can create a rule, and
based on certain criteria that you set, Salesforce can do a number of things, like send an email, create a task, or
update a field.

Workflows are used to automate the organization business processes. (i.e. instead of performing all the
operations manually, we can delegate few operations to the application, which can be performed by the system
automatically by itself based on user defined criteria).

By using workflows, we can execute few actions based on user defined criteria / Conditions automatically.

Each workflow contains certain Evaluation Criteria (Conditions) and Actions.

Evaluation Criteria: Defines when the workflow action needs to be get fired.

Action: It defines what operations need to perform.

Note: Each workflow can have an Evaluation Criteria, and one or more actions

Note: We can create one or more workflows per an object. It can be applicable for both Standard and Custom
object.

Note: Workflows will fire always after performing the operation on the record (Created / Edited).

Evaluation Criteria for the Workflows:

Salesforce provides below Evaluation Criteria for Workflow.

1. Created: Which fires the actions, upon creating a new record in the object.
2. Created, Every Time it’s edited: It fires the actions, whenever a new record gets created, and each time
the record gets edited.
3. Created, Anytime Edited meeting the Subsequent Criteria: Which will fire the Actions, upon a New record
is created or Modified the existing record and meeting the user defined conditions.

Actions in Workflows:

1. Send Email Notification:

Using this action, we can send an Email Notification to one / more users by using an Email Template.

2. Create a New Task / Assing a New task to a user. :

Using this action we can assign a New Task to the specified User.

3. Update a Field:

By using this action, we can update a field value with the specified text.
Note: By using a "Field Update" action, we can update only one field.
To update the multiple field values, we need to add multiple Field Update actions.
61 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
4. Send an Outbound Message:

By using this action, we can send an XML based secured SOAP message to the external system.

Types of Workflows:
We can fire the workflow actions in two ways as below.

1. Immediate Action Workflows: It fires the Actions immediately, as soon as the criteria are met.
2. Time-Dependant Action Workflows: It executes the actions, after the spoecified time interval is over.
In Time Dependant Action workflow, Actions will be placed in to the Workflow Queue till the schedules run
time. Once the Scheduled Time interval is over, then it will execute the action and it will remove from the
Queue.

Note: Time Dependant Action Workflows can't be applicable for the Criteria "Created, Every time it is
Edited".

Creating Workflow Rule (Navigation):


1. Go to the Setup Go to Build Select the “Create” Click on “Workflow & Approvals”
2. Click on “Workflow Rule” link
3. Click on “New Rule” to create a new Workflow Rule.
4.
USECASE (BUSINESS REQUIEMENT):
Create a Workflow Rule, to send an Automated Notification to the contact person, upon creating a new
Contact record.

Technical Analysis:

1. We need to make the "Email Field" required, by using a validation rule.


Ex: isblank(Email)

2. Create an Email Template by including the "Contact" object merge fields, with the required subject and
content.

Email Subject: Congratulations {!Contact.FirstName} {!Contact.LastName}..!! Your Contact details has


stored successfully.

Email Content:

Dear {!Contact.FirstName} {!Contact.LastName},


We are pleased t inform you, that your contact record has been successfully created in our database. Here
are your contact details.
Contact Name : {!Contact.FirstName} {!Contact.LastName}
62 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Title : {!Contact.Title}
Email Address : {!Contact.Email}
Phone Number : {!Contact.Phone}
Mobile Number : {!Contact.MobilePhone}
Fax Number : {!Contact.Fax}
Mailing Address : {!Contact.MailingStreet}, {!Contact.MailingCity}, {!Contact.MailingState},
{!Contact.MailingPostalCode}, {!Contact.MailingCountry}
Please contact on the below address, if any changes required.
Thanks & Regards,
Sales Team,
ABC Technologies,
Email us: support@abctechnologies.com

3. We need to create a Workflow Rule.

Object Name: Contact


Evaluation Criteria: "Created"
Action: Send an Email Notification.
Action Type: Immediate.

Goto "Workflow Rules" Link.

1. Click on "New Rule" button, to create a New Rule.

2. Select the Object Name from the Picklist on which to create a New Workflow (Ex: Contact)

3. Click on "Next" button.


4. Enter the Workflow Rule Name and Description
Ex: Contact Creation Notification Rule
5. Select the Evolution Criteria (Ex: Created) as below

6. Enter the Rule Criteria Conditions (At least One is required) as below Ex:
63 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
• Email Id != null
• Phone Number != null
• Title != null

7. Click on “Save and Next”


8. Select the Action Type:
• Goto "Immediate Actions" section.
• Select the Action Type as "Send New Email" from the picklist.

9. Click on "Next" button.


10. Enter the Action Name & Description.
Ex: Contact Creation Notification Action.

11. Select the Email Template by using the Lookup field.


Ex: Contact Creation Notification Template.

12. Select the Recipient Type as “Email Field” / User / Account Owner / Role / etc as Below

64 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


13. Enter the Additional Email Addresses – We can add upto 5 CC Email Addresses.
14. From Email Address: Default value: Currently Logged in User Email Address.

15. Click on “Save”


16. Click on “Done”
17. Activate the Workflow by using “Activate” button
18. Workflow will be created for you as below. (See Mock-up Screen)

65 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Testing Workflow Actions:

1. Create a Contact Record by providing all the values, firstname, lastname, phone, email is, etc.

2. Modify the Record values, and test the workflow actions

Negative Case: Create a Contact Record by providing Firstname, phone, email.

SALESFORCE WORKFLOW RULE - ASSIGNING NEW TASK


By using Workflows, We can assign a New Task to the specified User / Role / Record Owner.

USECASE (BUSINESS REQUIREMENT)


Create a Workflow Rule to assign a New Task to the User, while creating the New Position Record in the Object.
(I.e. upon Position Name is not Null, Status is “New Position” and Close Date is not empty, and then assign a New
Task to the user).

Go to the Setup Go to Build Select the “Create” Click on “Workflow & Approvals”

1. Click on “Workflow Rules” link


2. Click on “New Rule”, to create a new Workflow Rule
3. Select the Object on which to create a New Workflow (Ex: Position)

4. Specify the Rule Name and Description

Name: Assign New Task to User To Fill the Open Position

Description: Assign New Task to User To Fill the Open Position

5. Select the Evaluation Criteria (Ex: Created)

Enter the Rule Criteria Conditions (At least One is required) as below

66 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


 Position Name: Not Equals to NULL
 Position Status: Equals to “New Position”
 Close Date: Not Equals to NULL

7. Click on “Save and Next” Button.

8. Go to the “Immediate Actions Section” and Expand the “Workflow Action” Picklist and select the
“New Task” as below

9. Enter the Details to Assign a New Task as below.

67 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


10. Click on “Save” Button. It will create an Immediate Action as below.

11. Click on “Done” button.


12. Activate the Workflow by using “Activate” button.

68 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


SALESFORCE WORKFLOW RULE – FIELD UPDATE
Using Field Update Action, we can update a field with the specified value. We can update only one field by using a
Field update action.
To update multiple fields of a record, we need to add multiple field update actions.

USECASE (BUSINESS REQUIREMENT):


Create a Workflow Rule to Update a Field (Update the Billing Street Field with Rating field Value) in
Account Object.

Object Name: Account


Condition: While creating the Account Record or updating an existing Account record

Field to Update: (In Account Object)

Billing Street Field: Should be updated with the currently selected Rating value.

Go to the Setup Go to Build Select the “Create” Click on “Workflow & Approvals”

1. Click on “Workflow Rule”


2. Click on “New Rule” to create a new Workflow Rule
3. Select the Object on which to create a New Workflow (Account)

4. Specify the Rule Name and Description

Name: Update Billing Street Field with Rating

Description: Update Billing Street Field with Rating Value

5. Select the Evolution Criteria (Created & Every Time it is Edited) Enter the Rule Criteria Conditions (At
least One is required) as below
1. Account Name: Not Equals to NULL
2. Rating: Not Equals to NULL

69 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


7. Click on “Save and Next” Button.
8. Go to the “Immediate Actions Section” and expand the “Workflow Action” Pick list and select the
“New Field Update” as below

9. Enter the New Field Update Details as below.

1 Field Update Name: Update Billing Street Field


2 Unique Name: Update Billing Street Field
3 Description: This action will copy Rating field Value into Billing Street Field
4 Select the Object Name in which to update the field (Account)

70 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


4.1. Select the Field to Update in the Object (Billing Street)

10. Enter the New Field Value to be get updated in Billing Street Field.
1. Select the Formula Editor to Enter the Formula to update the Field, and Click on “Save” Button

11. It creates a new Field Update Action for your Workflow.

71 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


12. Click on “Done” button.
13. Activate the Workflow by using “Activate” button.

Testing Workflow Rule:

1. Create a New Account Record, by selecting “Rating” Field value as “Hot”.

2. Click on “Save” button.

Observation:

Verify the “Billing Street” field value. It should display the value as “Hot”. Change the Rating Field value
and Save it, It should update the same value in “Billing Street” field.

TIME - DEPENDENT ACTION WORKFLOWS (TIME TRIGGERS)

Time-Dependent Workflow is a very nice feature out-of-the-box from Salesforce. You can easily configure it to do
actions such as: Create Task, Send Email Alert, Field Update and Send Outbound Message. The actions will only
trigger when before or after certain date or hour as configured.

Actions for Time-Dependent Workflow is exactly the same with Immediate Workflow, and you can share the same
actions between Time-Dependent Workflow with Immediate Workflow, depend on your business needs, even to
combine Time-Dependent and Immediate workflow in the same workflow rule.

Time-Dependent workflow’s can be applicable for both Standard and Custom objects.

Note: We can’t create the Time-Dependent workflow, when the rule evaluation criteria has been selected as
“Created, Every time it is Edited”.

USECASE (BUSINESS REQUIREMENT):


Create a Workflow Rule on Position object, to send an Email Notification upon Creating a New Position Record. And
Remind the Recruiter for each specified interval as below regarding the Close Date inorder to close the position
ASAP.
i.e. Position Record Created Send Email Notification (Immediate Action).
Before 10 Days of Close Date Send Reminder Email Alert.
Before 5 Days of Close Date Send Reminder Email Alert
Before 3 Days of Close Date Send Reminder Email Alert
Before 1 Days of Close Date Send Reminder Email Alert
Before 0 Days of Close Date Send Reminder Email Alert
After 1 Days Of Close Date Change the Position Status To "Closed".

72 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Implementation:
Go to the Setup Go to Build Select the “Create” Click on “Workflow & Approvals”

1. Click on “Workflow Rules” link


2. Click on “New Rule” to create a new Workflow Rule
3. Select the Object on which to create a New Workflow (Position Object)

4. Click on “Next” Button.


5. Enter the Rule Name and Description as below.

6. Select the Rule Evaluation Criteria (Ex: Created)

7. Enter the Rule Criteria, which will verify before firing the actions.

8. Click on “Next” button.


9. Go to “Immediate Workflow Actions” Section.

• Select the Action Type as “Send Email Notification”.

73 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


• Enter the Action Name and Description.
• Select the Email Template to be used to Send Email Notification.
• Select the Recipient person details (User / Email Field / Account Owner / Creator / Record Owner,
etc)
• Click on “Save” button. (See the below Mock-up)

10. Go to “Time-Dependent Workflow Actions” section and Add the below Actions.
Action 1: Before 10 Days of Close Date --> Send Reminder Alert.
o Click on “Add Time Trigger” button.
o Specify the Schedule Date and Time. ( 10 Days Before Position Close Date)

o Click on “Save” button.


o Goto the Section Block, and Select the Action Type (New Email) as below.

74 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


o Enter the Email Action Name and Description.
o Select the Email Template to be used, to send Email Notification.
o Enter the CC Address (Optional) to 5 Email addresses. o Click on “Save” button. (See the
below Mock-up).

Then it will create a Time-Dependent Action as below.

11. Repeat Step 10, To Create the remaining Time-Dependent Actions as below.

1. Before 5 Days of Close Date --> Send Reminder Alert


75 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
2. Before 3 Days of Close Date --> Send Reminder Alert

3. Before 1 Days of Close Date --> Send Reminder Alert

4. Before 0 Days(Same Day) of Close Date --> Send Reminder Alert

5. After 1 Days Of Close Date --> Change the Position Status To "Closed".

12. Once you are done with adding all required Actions, Cli ck on “ Done ” button.
13. Click on “Activate” button, to activate the workflow.
76 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Testing Time-Dependent Action Workflows:
1. Create a New Position Record, by oviding the required details (Position Name, Email Id, Position
Status, Close Date, etc).
2. Click on “Save” button.
Observation:
1. It will send an Email Notification to the Position Record Owner (Immediate Action)
2. Verify the Time-Dependent Actions in “Workflow Queue”.
Note: Time-Dependent Action workflows can't be created, when the Evaluation criteria is selected as "Created
and Everytime it is Edited."

Once the Time-Dependent Workflow gets fired, then it will create the scheduled actions and place into
“Salesforce Workflow Queue”. Once the scheduled time is over, then action will get fire automatically.

We can monitor the pending Time-Based action with the below navigation.

Monitoring Time-Based Actions in Queue:


Goto Setup Goto Monitor option in Left Panel

1. Click on “Time-Based” workflow actions.


2. Enter the search criteria in the user interface and click on “Search” button. (We can search the actions
based on Record Name / Record Id / Created By Person / Scheduled Date / User Id / etc.)

3. It will display all the Time -Based actions stored in the workflow queue. (See Mock -up)

Note:

1. From Workflow queue, we can remove the actions manually by selecting the action name and
by using “Delete” button.

77 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


2. Once we delete the Position Record, then associated Time-based actions will removed from
the Queue automatically.
3. If we re-store the deleted record bask, then actions will not re-stored back.
4. Time-Based workflows currently support Days and Hours as the units.
5. If you create a Tim-based rule now, the rules are not applied to previously created records.
6. If the record is updated and you set the evaluation criteria to be "When a record is
created, and anytime it's edited to subsequently meet criteria" (The record should not have
previously meet the entry criteria) the actions will be queued again.
Workflow Rule Considerations:
1. Each workflow rule applies to a single object.
2. Workflow rules on custom objects are automatically deleted if the custom object is deleted.
3. The order in which individual actions and types of actions are executed is not guaranteed.
However, field update actions are executed first, followed by other actions.

4. Salesforce processes rules in the following order:


• Validation rules
• Assignment rules
• Auto-response rules
• Workflow rules (with immediate actions)
• Escalation rules
5. You can't create outbound messages for workflow rules on junction objects.
6. You can deactivate a workflow rule at any time. If the rule has pending actions in the workflow queue,
editing the record that triggered the rule removes the pending actions from the queue. If
you don't edit the record, the pending actions are processed even though the rule has been
deactivated.

SALESFORCE WORKFLOW RULE – CROSS OBJECT FIELD UPDATE


By using workflow Field Update Action, o We can update the field in the same object. (Or).
We can Update the field in the Parent object, which is associated with Master-Detail relationship

Note: While updating the Cross Object field, always it allows us to update the field from Child object to
Parent object.

USECASE (BUSINESS REQUIREMENT):


Create a Workflow Rule to Update a Field (Billing City Field) in Account Object, Based on the associated
Opportunity Record’s Stage field Value (Stage Name field value).

Object Name: Opportunity

78 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Condition: While creating the Opportunity Record or updating the existing Opportunity record

Action Type: Immediate Action


Action: Field Update
o Target ObjectName: Account.
o Field To Update : Billing City field.

Billing City Field: Should be updated with the currently selected Stage Field value in Opportunity object

Go to the Setup Go to Build Select the “Create” Click on “Workflow & Approvals”

1. Click on “Workflow Rules” link


2. Click on “New Rule” to create a new Workflow Rule
3. Select the Object on which to create a New Workflow (Opportunity)

4. Specify the Rule Name and Description

Name: Update Account Object Field

Description: Update Account Object Field (Billing City) with Opportunity Stage Field Value.
5. Select the Evolution Criteria (Created & Every Time it is Edited) Enter the Rule Criteria Conditions (At
least One is required) as below

1. Opportunity Name: Not Equals to NULL


2. Stage Name: Not Equals to NULL

79 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


7. Click on “Save and Next” Button.

8. Go to the “Immediate Action Section” and expand the “Workflow Action” Pick list and select the
“New Field Update” as below

9. Enter the New Field Update Details as below.

i Field Update Name: Update Account Billing City Field


ii Unique Name: Update_Account_Billing_City_Field
iii Description: Update Account Billing City Field

80 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


iv Select the Object Name in which to update the field (Account) 9.4.1. Select the
Field to Update in the Object (Billing City)

10. Enter the New Field Value to be get updated in Billing City Field.
1. Select the Formula Editor to Enter the Formula to update the Field, and Click on “Save” Button

11. It creates a new Field Update Action for your Workflow.

81 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


12. Click on “Done” button.
13. Activate the Workflow by using “Activate” button.

WORKFLOW RULE LIMITATIONS:

1. We can't create a New record by using Workflows.


2. We can't remove an existing record using workflows.
3. We can't update the records using Workflows. But, by using Field update action, we can update
only one field.
 To update the multiple fields, we need to create multiple "Field Update" actions.
 Which increase the complexity, which causes the performance issues.
4. We can't perform DML operations using workflows.
5. We can update the field in the parent object, but it should require Master-Detail association.
 If the objects are associated with Lookup, workflow won't to update the parent field.
 We can't update the field from Parent to Child.
6. We can't use multiple "Email Templates", upon sending the email notifications using workflows.

82 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


RECORD TYPES IN SALESFORCE
Record Types are used to automate the business processes based on the organization / business requirement.

Using Record Types, we can provide different page layouts to different users with different set of fields with different
pick list values for different business purposes.

Each record type is associated with a Page layout. Each record type is associated with a business process.

An object can have one / more record types.

Note: Each record type is associated with a Page Layout. Which contains the set of fields and picklist values.

Note: All RecordTypes will resides in "RecordType" object. We can query the recordtypes by using the below query.

Ex: "select id, name, sobjecttype from recordtype"

Note: RecordTypes can be applicable for both standard objects and custom objects as well. A PageLayout can be
referenced by Multiple recordtypes.

Usecase:
Configure the Recordtype for Account Object. (New Customer Type, Existing Customer Type)

Step 1 : Creating Page Layouts:

Page Layout provides a user interface with a set of fields to create / Edit the records in an object.

We can have one / more page layouts for an object.

For Each object (Standard / Custom), salesforce provides a page layout by default.

We can create our own page layout by cloning the existing one as below.

Goto Setup  Goto Build Menu  Goto Customize  Goto Accounts  Click on "Page Layouts"

1. Click on "New" button to create a new Layout


2. Enter the Name for the Page Layout (Ex: New Customer Layout)
3. Select the Existing Page Layout from the Picklist to make it clone(Ex: Accounts Layout).
4. Click on "Next" button
5. It provides the Page Layout Editor. Do the required changes in the page layout.
6. Click on "Save" button.

Step 2 : Creating Record Type:

We can create one or more record types for an object.

Navigation:

Goto Setup  Goto Build Menu  Goto Customize  Goto Accounts  Click on “Record Types”

83 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


1. Click on “New” button to create a New Record Type.
2. Enter the New Record Type Name, Description
3. Make the Record Type Active, by selecting the Checkbox “Active”
4. Click on “Next” button as below..

5. Make the Record Type “Enable ” for All the Profiles, by selecting the Check Box “Enable” as below

6. Click on “Next” button


7. Select the Page Layout from the “Picklist” to be applicable for the Record Type as below

8. Click on “Save” button.


9. Repeat the above steps to create another Record Type with the Name “Existing Customer Record Type”.

84 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Testing Process:

 Verify the Object and check whether the Record Types are Applied or not as below.
 Goto Accounts Tab  Click on “New” button.
 It should display the Record Types as below.

85 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Business Processes in Salesforce

Salesfoce provides the following business processes.

1. Lead Process

 It defines the sequence of steps to be perfomed while converting the lead as a customer.
 Lead Process is associated with Lead Object.
 While creating the record type in Lead object, you must have a Lead process.
 Lead process can be identified by using "Lead Status" field in the lead object.

Note: 1.We can have one or more Lead processes for an organization.

2. Record Type should be associated with only one Lead Process at a time.

2. Sales Process:

 It defines the sequence of steps to be followed while doing the sales in the organization.
 Sales process is associated with Opportunity object.
 While generating the revenue, using sales department, you should have a sales process.
 Sales process can be identified using "Stage Name" field in the opportunity object.

Note: We can have one / more sales processes for an organization.

Note: While creating the Record Type in Opportunity object, it should associated with a sales process.

3. Support Process:

 It defines the sequence of steps followed during providing the service to the customer.
 It is associated with Case Object.
 While creating the Record Type in Case object, you must have a Support Process.

Note: Support Process can be identified using "Status" field in the Case object.

Note: We can have one or more support processes in an organization.

4. Solution Process:

 It provides the steps to be followed while providing the solution to the customer
complaints.
 It is associated with the "Solution" object.
 While creating the Record Type in solution object, we should have Solution Process.

Note: Solution Process can be identified by using "Status" field in the solution object.

Note: We can have one/ more solution processes in an organization.

86 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Creating Lead Processes

Lead Process is used to track the status of the Lead Record in the Lead Life Cycle. We can define one or more Lead
processes in an Organization.

1. A Lead Process can be associated with one or more Lead Record Types.
2. A Record Type in the Lead object is associated with only One Lead Process.

We can create the Lead Process as below.

Goto Setup  Goto Build Menu  Goto Customise  Goto Leads  Click on “Lead Processes”

1. Enter the “Lead Process Name” to create (Ex: Product Lead Process)
2. Enter the Description (Optional)
3. Click on Save button as below

4. It Create a Lead Process and it will ask you to define the process steps. (i.e. Options to be displayed in
the Lead Status Field.) as below
- We can customize the options in the Lead Process based on the requirement.

87 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


5. Click on “Save” button
6. It provides the Newly Created Lead Process as below..

Creating Lead Record Type

To Create a Record Type in the Lead Object, we have to use the below Process.

Pre-Requisite: You should have a Lead Process in the Lead Object.

Navigation:

Goto Setup  Goto Build  Goto Customize  Goto Leads  Click on “Record Types”

1. Click on “New” button, to create a New Record Type


2. Enter the Record Type Label and Description(Optional)
3. Select the Lead Process, to be associated with the Record Type
4. Select the “Active” checkbox, to make the Record Type Active as below

88 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


5. Select the Page Layout to be associated with the Record Type from the Page Layout Picklist
6. Make the Record Type to be Enable for All the Profiles (By selecting the Enable for Profiled checkbox)
as below

7. Click on “Next” button


8. Click on “Save” button
9. It will create a Record Type with the specified details and display the record Type details to you, to
customize the Pick List Field Values. As below

10. Click on “Industry” picklist and customise the options. As below

11. Click on “Save” button

Note: Repeat the above steps to create the required Record types in the Lead Object.

89 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


PROCESS BUILDER
Salesforce process builder is a powerful tool you can use to automate business processes. Process builder
allows you to do more than a simple workflow would.

It is a tool that allows you to automate business processes using a graphical representation of your
process.

It has a simple interface that allows you to point and click to select objects and fields while setting up
immediate and time-based actions.

It is like workflow tool that helps you easily automate your business processes by providing a powerful and
user-friendly visual representation of your process.

The Process Builder’s simple and powerful design allows you to build customize the automated process.

Actions Available In Process Builder


There are several different actions you can trigger the process builder. These actions are:

Trigger Apex code:


You can use Salesforce process builder to invoke Apex code you have written within Salesforce.
Apex can be anything from custom logic to save a record to complex business processes. To invoke an
apex class in process builder we have to use "@InvocableMethod" attribute.

Create a record:
This will allow you to create new records and set certain field values for the new record.

Email alerts:
In order to send an email from a process, you must create the email alert. To send an email alert
that email should be associated with the same object on which process is started. Email template contains
the standard text, list of recipients, and template

Trigger a flow:
You can launch a flow from your process to automate complex business processes.

Post to Chatter:
Process builder post to chatter action helps to post information to any user or group chatter feed
within Salesforce. The post will appear in the chatter field as if the person who triggered the process had
written it. You can reference groups or topics and add merge fields.

Submit for approval:


Only the record that started the process will be submitted. You can’t submit any related records
for approval.

90 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Update records:
Update one or more records that are related to the record that started the process. You can
update the record with manually entered values or by using the values from related records. We can
update records of parent or child whereas workflow only updates same or parent object from the child.

Quick actions:
You must already have global actions or an object specific action created within Salesforce to use
these quick actions. You can then select to log a call, send an email, or update a record.

Process:
This action will call one process to another process. For this action, you need to choose process
type as it invoked by another process.

Limitations:

1. The invocable method must be static and public or global, and its class must be an outer class.
2. Only one method in a class can have the InvocableMethod annotation.
3. Other annotations can’t be used with the InvocableMethod annotation.

Navigation:
Setup --> Build --> Create.
1. Click on "Workflows & Approvals" link.
2. Click on "Process Builder".

UseCase: Configure a Process, to Send an Email Notification to the Contact Person upon creating a Contact
Record.

Step 1: Create the Email Template, to be used to send the email notification to the customer with the
required subject and the content.

Email Subject: Congratulations {!Contact.FirstName} {!Contact.LastName} !! Your Contact Record


has been created successfully.

Email Content:
Dear {!Contact.FirstName} {!Contact.LastName},

Thanks for purchasing the products from our organization. You are a very valuable
customer to our organization from now onwards.

We are pleased to inform you, that your Contact record has been created successfully in
our database for the future reference.

Here are your Contact Details...

91 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Contact ID : {!Contact.id}
Contact Name : {!Contact.FirstName} {!Contact.LastName}
Email ID : {!Contact.email}
Designation : {!Contact.Title}
Department Name : {!Contact.Department}
Phone Number : {!Contact.Phone}
Fax Number : {!Contact.Fax}
Mailing Address:
{!Contact.MailingStreet},
{!Contact.MailingCity},
{!Contact.MailingState},
{!Contact.MailingPostalCode},
{!Contact.MailingCountry}.

Please contact on the below address, if any queries.

*** This is an Auto-Generated Email. Please Do Not Reply.

Thanks & Regards,


{!USer.FirstName} {!User.LastName},
Sales Team,
Dell Inc.,
Contact us: +1 (800) 989-9000
email us: sales@dell.com
Visit us: www.dell.com

Step 2: Create an Email Alert.

Setup --> Build --> Create.


1. Click on "Workflows & Approvals" link.
2. Click on "Email Alert".

Step 3: Configure the Process by using Drag and Drop options.


3.1. Add the required actions and the Conditions to be get verified before firing the actions.

UseCase: Configure a Process, to Synchronize the Account Record's Phone and Fax values into the
associated Contact Records Phone and Fax fields.

AND(
NOT isNew(),
OR( isChanged(Phone) , isChanged(Fax) )
)

92 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Invoking Apex Methods:
By using Process Builder, we can invoke an apex class method. Which contains a set of statements to
perform a particular operation. Inside the apex method, we can perform all the DML operations.

Syntax:
Public Class <Class Name>
{
Public static void <MethodName>()
{
// Write the Business Logic...
}
}

Rules:
1. The method should be defined with "Public / Global" access specifier.
2. The Method should be always defined with "Static".
3. We can pass the Parameters of Type Primitive Type, List of Primitive Type, List of List Of
Primitive Types, SObject Types, List Of List of SObject Types, USer Defined Types.
4. Method should be defined with "@InvocableMethod" annotation.
Label : We can specify the meaning full name for the method, to be used to
identify the method.

Description : This property is used to give the comment / description about the
method.

Ex:
Public Class AccountsHelper
{
@InvocableMethod(Label='Create Accounts'
Description = 'This method will create a collection of Account Records.')
Public static void CreateAccountRecords()
{
// Write the Business Logic..
}
}

5. A class can have only one method, which should be defined with "@InvocableMethod"
annotation.

6. We have to define the Invocable method inside only the "Outer Classes". We can't define it in
"Inner Class".

93 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


UseCase: Create a Process, in-order to invoke an apex method which will create an Account record and
an associated Case record upon creating the Hiring Manager.

Step 1: Create the Apex Class.

Step 2: Create a Method with the required Business Logic to create an Account and an
associated Case Record.

Step 3: Make the method Invocable by using "@InvocableMethod()" annotation.

Step 4: Provide the Label information inside the annotation, to be used to recognize
the method.

Ex:
public class AccountsInvocableHelper
{
@InvocableMethod(Label='Create Account And Case' Description = 'This
method will Create an Account and a Related Case')
Public static void CreateAccountAndRelatedCase()
{
// Create the Account Record...
Account acc = new Account();

acc.Name = 'Invocable Account Record';


acc.Rating = 'Hot';
acc.Industry = 'Education';
acc.Type = 'Prospect';
acc.AnnualRevenue = 3400000;
acc.Phone = '9988009900';
acc.Fax = '8866556677';
acc.PAN_Number__c = 'ASDFG7878E';
acc.Active__c = 'Yes';
acc.Website = 'www.tcs.com';

insert acc;

if(acc.id != null)
{
// Create the Associated Case Record...
Case cs = new Case();

cs.Status = 'New';
cs.Priority = 'High';
cs.Origin = 'Phone';

94 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


cs.Subject = 'I am unable to connect to Internet';
cs.Description = 'Dear Customer Support, I am unable to
connect to the internet. Please look into my issue ASAP';

cs.AccountId = acc.id;
insert cs;
}
}
}

Step 5: Create the Process by selecting the action type as "Apex".

Step 6: Select the Method to be get invoke by using "Label Name" inside the Process.

95 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


VALIDATION RULES

Validation Rules are used to enforce the user to provide the proper entry of data in the fields. i.e. Upon inserting a
New record or upon updating an existing record, we need to verify whether the user has entered the data in all
mandatory fields or not.

And we need to verify, whether the user has entered the data in the correct format or not.

By using Validation Rules, we can maintain the Accuracy and Quality of data inside the application.

Note: Validation Rules will fire, always Before Inserting the record or Before updating the record into the object.

We have 2 types of Validations as below.

1. Client Side Validations: Client represents a Browser. When the user validating the Data at user interface
level, then it is called as "Client Side Validations.

2. Server Side Validations: When the user validating the Data at Database level, then it is called as "Server
Side Validations".

Note: Always it is recommended to have the validations at "Client Side". As it will reduce the number of server
trips and will reduce the Load on the Database server. Hence we can improve the performance of the application.

Client Side validations can be done by writing the Code using any of the Scripting Language like "Java Script,
JScript, VB Script, JQuery, Angular JS, Knockout JS, Extension JS, Backbone JS, etc.". i.e. We need to write some
scripting code and we need to embed the code into the PageLayout.

But, salesforce doesn't allow us to modify the PageLayout code. So, we can't insert the Scripting code inside the
PageLayout.

To avoid this problem, salesforce provides a set of readymade functions, to be used to validate the Data at client
side.

Note: Server Side validations can be done by using "Triggers".

Governor Limit:

We can create "N" number of validation rules per an object. But max. of 100 validation rules will be in
"Active" status at a time.

Note: We can have one or more validation rules for a single "field".

Functions:

1. Boolean IsBlank(Field Name / API Name): This function is used to identify the specified field value is
"Blank or not". It returns TRUE, when the specified field is Blank. Else it returns FALSE.

96 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Ex:
isBlank(website)
isBlank(recruiter_email_id__c)
isBlank(pan_number__C)
isBlank(title)

/*
Create a Validation Rule, to make the "Website" field required.
*/

Click on the Required Object's Tab (Ex: Accounts)


1. Expand the "Force.com Quick Access Menu".
2. Click on "View Validation Rules" link.
3. Click on "New" button, to create a Validation Rule.
4. Enter the Validation Rule Name and the Label.
Ex: Name : Website Field is Required.
5. Enter the Description for the validation Rule.
Ex: This Rule is used to make the Website Field Required.
6. Select the "Active" checkbox, to make the rule active.
7. Enter the Validation Conditions inside the Editor.
Ex: isBlank(Website)
8. Click on "Check Syntax" button, to verify the Condition syntax.
9. Enter the "Error Message" to be displayed upon failing the Validation Rule.
Ex: Please enter Website field value.
10. Select the Error Message Location.
1. Top of the Page.
2. At Field Level. (Select the Field Name from the Picklist)
11. Click on "Save" button.

// Create a validation Rule, to make sure Maximum Pay value should be always greater than "Minimum
Pay".

Validation Condition: Minimum_Pay__c > Maximum_Pay__c

// Create a Validation Rule, To make Close Date should be always greater than "Open Date".

Validation Condition: Open_date__c > Close_date__C

Boolean IsNull(<Field Name / API Name>):


By using this function, we can verify a specified Number field or Currency Field or Percent field value is
blank or not.
Note: ISNULL() function cannot be applicable on "Text" field. IsBLANK() function will supports both "Text
Fields and Number Fields".

97 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


Ex:
isNull(accountNumber);
isNull(annualrevenue);
isNull(current_ctc__c);

// Create a validation Rule, to make the Annualrevenue field mandatory in Lead Object.

Validation Condition: isnull( AnnualRevenue )

Text(<Picklist FieldName>):
This function is used to get the currently selected value from the Picklist field. Once the user retrieve the
currently selected value, then we need to verify the value is Blank or not.

FYI: Picklist field supports "Map" Collection by default. Where each element contains 2 values called as
"Key" and "Value".

Key --> It should be always unique. Which will populate inside the picklist field.
Value --> It may or may not be unique. We can store the Duplicate values also.

Note: Upon selecting the picklist field, it will returns the value of the selected Key. We need to verify the
Returned value is blank or not by using "IsBLANK()" function.

// Create a validation Rule, to make the Rating field as mandatory upon creating / updating an account
record.

Validation Condition: ISBlank ( Text(Rating) )

Logical Functions:
In few cases, to validate the Data one condition is Not Sufficient. We need to use multiple conditions
together to validate the information.

To achieve this feature, Salesforce provides a set of Logical Functions as below.

1. AND Function
2. OR Function
3. NOT Function

AND Function:
Syntax:
AND( <Condition1> , <Condition2> , <Condition3>, .... ,
<ConditionN> )

98 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


This function returns TRUE, when all the specified conditions are satisfied. And it will returns FALSE, if any
of the condition fails.

OR Function:
Syntax:
OR( <Condition1> , <Condition2> , <Condition3>, .... ,
<ConditionN> )

This function returns TRUE, if any of the condition satisfied.And It will returns FALSE, when All the
Conditions are Failed.

NOT Function:
This function is used to change the result of the conditions. from TRUE to FALSE and vice-versa.

// Write a validation Rule, to make the Fax value as mandatory, when the Phone is Not Empty.

AND (
NOT ISBlank(Phone) ,
ISBlank(Fax)
)

// Create a validation Rule, To make the "Type" value as Required, When the annualrevenue is greater
than 50,00,000.

AND(
annualrevenue > 5000000,
isBlank( Text(Type) )
)

ISNEW():
This function is used to verify, whether the user is working on an existing record or he is creating a New
Record. It will returns TRUE, when the user is creating a New Record. And it wil returns FALSE, when the
user is working on an existing record.

Note: ISNew() function will identify the record by using the URL provided in the Address Bar as below.

New Record --> (No Record ID)  https://ap5.salesforce.com/001/e?retURL=%2F001%2Fo


Existing Record: --> (Contains the Record ID)  https://ap5.salesforce.com/0017F000003HM8f

// Create a validation Rule, to make the Active Field value as required for "New" Accounts.

AND (
ISNew(),
isBlank( Text(Active__C) )

99 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)


)

Boolean IsChanged(< FieldName / API Name>):


This function is used to verify the specified field value has been changed or not. It returns TRUE, when the
specified field's Old value and the New Value both are different. Else it returns FALSE.

Syntax:
IsChanged(Name)
IsChanged(Website);
IsChanged(Phone)
IsChanged(email_id__C)

// Create a Validation Rule, to prevent the change of the Account Name field value.

Validation Condition: ISChanged(Name)

ISPickVal() Function:
This function is used to verify the currently selected value inside the specified picklist field is equals to the
text literal or not.

Syntax:
Boolean ISPickVal(<Picklist FieldName> , 'StringValue')

It returns TRUE, when the currently selected value inside the picklist field is equals with the string.
Else it returns FALSE.

Ex:
ISPickVal(Rating, 'Hot')
isPickVal(Location__c, 'Hyderabad')
isPickVal(active__C, 'Yes')
isPickVal(Industry, 'Banking')

/* Create a Validation Rule, To make the Rating as "Hot" for "Banking Accounts". */

AND (
IsPicklist(Industry, 'Banking')
NOT IsPicklist(Rating, 'Hot')
)

Len() Function:
This function is used to verify, the number of characters exist inside the specified field name.

Syntax:
Len(<Field Name>)

100 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Ex:
Len(Name)
Len(Passport_Number__C)
Len(BillingStreet)

/*Create a Validation Rule, to make the Last Name value inside the Contact should be between 10 - 20
characterss. */

OR(
Len(LastName) < 10 ,
Len(LastName) > 20
)

/* Create a Validation Rule, to make the PAN Number field should have 10 characters. */
Len( PAN_Number__c ) <> 10

PriorValue() function:
This function is used to get the Previous / Old value of the specified field.

Syntax:
PriorValue(<FieldName / API Name>);

Ex:
PriorValue(Rating)
PriorValue(Name)
PriorValue(Active__C)
PriorValue(Position_status__C)

/* Create a Validation Rule, to prevent the user from changing the Rating Value from "Cold To Hot". */

AND (
IsPickVal(Rating,'Hot'),
IsPickVal( PriorValue(Rating), 'Cold')
)

Regex() Function:
By using this function, we can compare the specified field value is exist in the specified format or not.

Syntax:
Regex(<Field Name>, <Expression Format> )

101 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Note: The Regular Expression can be prepared by using "Wild Card" Characters. Salesforce supports the
below wild card characters...

Ex: PAN Number : ALPPY7374E (10 Characters - Alphanumerical)

First 5 --> Characters


Next 4 --> Digits
Last 1 --> Character

[ ] --> Represents a Collection of Characters

[ A - Z ] --> Represents a collection of characters, where each


character should be in the specified range.

[ a - z ] --> Represents a collection of Lower Case letters.

[ 0- 9 ] --> Represents a collection digits to form a number.

[ A P B ] --> It represents a collection of characters, where


each character should be either "A / P / B".

[A-Z] {4} --> It Represents 4 Characters word, which should be


in upper case letters

[A-Z, a-z] {Number} --> It represents a Collection of specified


number of characters, where each character should be falls
between the specified range either in upper / lower case.

Ex:
1. PAN Number --> ALPPB4567T

1. First 5 - Characters : [A-Z,a-z]{5}


2. Next 4 - Digits : [0-9]{4}
3. Last 1 - Characters : [A-Z,a-z]{1}

PAN Number Format Regular Expression:


[A-Z,a-z]{5}[0-9]{4}[A-Z,a-z]{1}

2. PAN Number Format: ALPPB-4567-T

PAN Number Format Regular Expression:


[A-Z,a-z]{5}-[0-9]{4}-[A-Z,a-z]{1}

3. Credit Card Number : 1234 2345 3456 6789

102 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Credit Card Number Regular Expression:
[0-9]{4} [0-9]{4} [0-9]{4}[0-9]{4}

/* Create a Validation Rule, to validate the PAN Number format. */

NOT Regex(Pan_Number__C, '[A-Z,a-z]{5}[0-9]{4}[A-Z,a-z]{1}')

Assignments:
1. Create a validation rule, to make the "BillingAddress" is Required.

BillingAddress = (
BillingStreet +
BillingState +
BillingCity +
BillingPostalCode +
BillingCountry
)

2. Create a Validation Rule, to make the Industry value to be selected When the AnnualRevenue >
25,00,000

3. Create a Validation Rule, To make the Contact Record's Email Field value as required.

4. Create a validation rule, to make the Contact Record's Phone / Mobile / Home Phone value required.

Phone --> Phone


Mobile --> MobilePhone
Home Phone --> HomPhone
Other --> OtherPhone

5. Create a Validation Rule, to make the Passport Field should selected, Upon selecting the "Travel
Required" field.

103 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
CREATING FORMULA FIELDS

Formula Fields are Read-Only system generated fields, Which will displayed on the Detailed Page of the Record.
Formula Field value will be generated by salesforce, by executing the specified formula / expression upon creating
the field.

Formula field value will be generated upon Saving the record / updating an existing record.

Note: Formula fields are similar like as "Custom" fields in the object.We can have one or more Formula fields in an
object.

Upon creating the Formula we need to use the Readymade functions given by salesforce as below.

1. Abs(Number): This function returns the Absolute value of the specified number.

Ex: Abs(-45.345) --> O/p: 45.345


Abs(456.90) --> O/p: 456.90

2. Sqrt(Number): It returns the square root value of the given number.

Ex: sqrt(144) --> O/p: 12

3. Len(string): It returns an integer value, which indicate the number of characters exist in the specified string.
(Spaces also counted as a character)

Ex: Len('Welcome') --> O/p: 7

4. Trim(): It removes the blank spaces exist before/ after the specified string.

5. Upper(string): It converts all the character exist in the string into upper case letters.

Ex: Upper('welcome') --> O/p: WELCOME.

6. Lower(string): It converts all the characters exist in the string into Lower case letters.

Ex: Lower('WELCOME') --> O/p: welcome.

7. Floor(number): It returns the nearest lower value of the given number.

8. Ceiling(Number): It returns the nearest higher value of the given number.

9. Left(string,<Number Of Characters>): It returns the specified number of characters from the Left side of the
string.

Ex: Left('Welcome',3) --> O/p: Wel

10. Right(string,<Number Of Characters>): It returns the specified number of characters from the Right side of
the string.

104 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Ex: Right('Welcome',3) --> O/p: ome

11. Substring(string, <Integer startingPosition>, <Integer NumberOfCharacters>): It returns the specified


number of characters getting from the specified starting position in the string.

Ex: Substring('Welcome to Hyderabad',4,5) --> O/p: 'come '

12. Today():

- It returns the Today's system date. (mm/dd/yyyy)


Ex: Today() --> 06/26/2016

13. Year(Date):

This function will returns the "Year" portion of the specified date.
Ex: Year(Today()) --> O/p: 2016

14. Month(Date):

This function returns the month value of the specified date.


Ex: Month(Today()) --> O/p: 06

15. Day(Date):

This function returns Date value of the specified date.


Ex: Day(Today()) --> O/p: 26

16. If(<Conditions> , <True>,<False>):

If is a conditional statement, which evaluates all the specified conditions and returns TRUE, If all
te conditions satisfied.Else it returns FALSE.

17. Image(<Path Of the Image>,

Alternate Text
[,Height, Width]
)
By using this function, we can display the images dynamically at time in the record detailed page.

18. Case( <Expression> ,


<Case1>,<value1>,
<Case2>,<Value2>,
<Case3>,<Value3>,
....
...
<CaseN>,<ValueN>,
<default Value>
)
105 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
19. Text(<Picklist Field>):This function is used to get currently selected value from the picklist.

Ex: Text(Rating)
Text(Industry)
Text(Location__c)
Text(Position_status__c)

Note: Formula field result should be any of the below 8 types.


1. Text Type.
2. Number Type.
3. Percent Type
4. Checkbox Type
5. Date Type
6. DateTime type.
7. Currency Type.
8. Time Data type.

Navigation:
We can create the formula fields with the below navigation.

Goto Setup --> Goto Build Menu --> Click on "Customise"


1. Click on "Accounts" object link.
2. Click on "View Fields" Link.
3. Goto the "Custom Fields and Relationship" section.
4. Click on "New" button, to create a New Formula field.
5. Select the Field Type as "Formula" and click on "Next" button.
6. Enter the Field Lable and Field Name and optionally description.
7. Select the Formula Field Type from the 7 types.
8. Click on "Next" button.
9. Goto the "Formula Editor" to enter the formula expression.
10. Click on "Check syntax" button, to verify the formula syntax.
11. Click on "Next" button.
12. Select the "Visible" checkbox, to make the field to be visible to all profile users.
14. Click on "Save" button.

Note: Formula Field value can be updated by changing the source field value.
Note: Formula's will be re-calculated upon creating / modifying an existing record.

// Create a Formula Field, to calculate the 5% Service Tax on the Annual Revenue for the Account.

Result Type : Currency


Formula : ( AnnualRevenue * 5 ) / 100

106 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
// Create a Formula Field, to calculate the Total Remaining amount of the Customer.

Result Type : Currency


Formula: AnnualRevenue - Service_Tax__C

Note: We can reference a Formula Field inside an another Formula Field.

// Create a Formula Field, to Calculate the Position's Age.

Result Type : Number


Formula : Today() - Open_date__C

// Create a Formula Field, to calculate the Number of Days remains to close the position.

Result Type : Number


Formula : Close_date__c - Today()

// Create a Formula Field, to indicate whether the position record can be removed or not.
(When the Position's Close Date is over, we need a checkbox indicator. which will be selected)

Result Type : CheckBox


Formula : if( Today() > Close_date__c, true, false )

Note: Formula fields can reference the fields from the Same object, or from the Parent object's also
which are associated by using either Lookup or Master-Detail.

// Create a Formula field, to display the Associated Account Record's Industry value inside the
Contact Record.

Result Type : Text


Formula : Text(Account.Industry)

// Create a Formula Field on Candidate Object, to display the Associated Position Record's Hiring
Manager Email Id.

Result type : Text


Formula : PositionName__r.HiringManager__r.Email_ID__c

Note:
We can have max. of 10 object references inside the "Formula Field".
We can extend the number object references by contacting the salesforce based on the need.

107 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
DATA MANAGEMENT (DATA LOADER)
Data Represents --> Records. (User, Profiles, Account Records, Product Records, etc.)

Data Migration: Migrating the records from one instance to another instance.

Code : Features implemented in salesforce

Ex: Applications, Objects, Tabs, Validation Rules, Workflow Rules, Apex Classes, VF Pages, Triggers, etc...
Code Migration: Deployment.

By using Page Layouts, we can insert / update / delete only one record at a time inside the object.

To perform the operations on the Bulk records at a time, salesforce provides the "Data Management" features. By
which we can perform the Bulk Import / Export operations on the bulk records at a time in SObjects.

Salesforce provides the below ways to manage the bulk records.

1. By using Apex Programming


2. By using Import Wizard
3. By using DataLoader Tool (On-Premise)
4. Third Party Tools:
We can use the below third party tools to manage the records.
1. Workbench
2. DataLoader.io
3. DataLoader CliQ
4. Aside.io
5. Informatica Cloud

For Data Migration:

By using this Data Migration, we can perform Import and Export operations in Salesforce. (i.e. We can insert ,
Update ,Delete, Retrieve the records from the object.)

1. Import Wizard:

It's an on-demand feature given by salesforce to perform Only Import operations (insert and Update).
By using this feature, we can insert / update the records into the object like Account, Contact, Solutions,
Campaign Member and all custom objects.

Note: By using import wizard,we can perform the operations on max. of 50,000 records. We need to
supply the records to the Import Wizard in-terms of ".csv" file format.

2. Data Loader:

Data Loader is an On-Premise Tool, provided by salesforce, to perform both Import and Export operations
in salesforce objects.(i.e. We need to install the DataLoader into our local system)

108 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
By using DataLoader, we can perform Bulk Imports & Bulk Export operations on all Standard and Custom
objects in salesforce.

By using DataLoader, we can perform the below operations.

1. Insert
2. Update
3. Delete
4. Export
5. Export All
6. Upsert
7. Hard Delete

Note: We need to install the DataLoader tool in to our device.

Navigation:
Goto "Setup" menu and click on it.
1. Goto "Administer" menu in left panel.
2. Goto "Data Management" and expand it.
3. Click on "DataLoader" link.
4. Download the DataLoader tool into the local device.

DataLoader comes in 2 flavors.


1. DataLoader for Windows
2. DataLoader for Mac

Note: We need to configure / install the Java into our local system, before installing the "DataLoader". As
the DataLoader has been built upon the "Java Programming".

Note: By using this DataLoader, we can perform the import/ export operations on the Bulk Records upto 5
Million records.

Note: DataLoader will use the ".csv" file formats to perform the import and export operations. i.e. To
insert the Bulk records, we have to place all the records in the ".csv" file and supply the .csv file as the
input to the Data Loader.

Upon performing the operations into the records, if any operation fails, then DataLoader allows Partial
Processing. (i.e. Instead of Rolling back the whole transaction, it will continue with the rest of the records
in the file.)

Once the operations has been Done, then DataLoader provides 2 Output files as below.
1. SuccessFile : Records information, which are processed successfully.
2. Error File : Which contains the records information, which has been failed.

109 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Upon exporting the records, salesforce provide the exported record in .CSV file formats.
DataLoader implements the Batch Processing internally, where all the records will be divided into the
various smaller chunks / Batches.

Each batch contains set of records.


1. Using Apex API :
Minimum Batch Size : 1
Maximum Batch Size: 2000
Default Batch Size: 200

2. Using Bulk API :


Minimum Batch Size : 1
Maximum Batch Size: 10000
Default Batch Size: 2000

DataLoader tool, we will have the below Buttons, to perform the operations.

1. Insert: By using this button, we can insert either one or more records into the associated object. We
need to supply all the records information by placing inside a ".csv" file as the input to the DataLoader.

2. Update: We can update the existing records in the salesforce object by using this option.
Note: Upon updating the records, the record should be supplied along with the "Record ID".

3. Delete: We can remove one or more records from the Object.


Note: We need to have the record id, to remove the record. Once the record has been removed,
then deleted records will ge resides in "Recycle Bin" for 15 days.

4. Export: This button is used to get either One / More / All records from the object. Upon fetching the
records, we can add the required user defined conditions to filter the data.

5. Export All: It returning the records from the specified object along with the deleted records.
Note: Salesforce maintains a Hidden Field in each object with the Name "isDeleted". Which is a
Checkbox field. Which indicates, whether the Record has been removed or not.

isDeleted = TRUE --> i.e. Record has been removed from the object
isDeleted = FALSE --> i.e. Record is not yet deleted from the object.

6. Upsert: Upsert = Update + Insert. By using Upsert, we can perform both insert and update operations
in a single attempt.
The Records which are having the Id's in the ".csv" file will get updated with the new values.
The Records which are not having the Id's in the Input file (".csv") will get inserted into the object.

7. Hard Delete: We can remove the records permanently from salesforce object.

110 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Note: By default, Hard Delete button will be in disabled state in the DataLoader. To enable the
Hard delete button, we should have "Bulk API Hard Delete" permission in the profile level.

Click on "Setup" menu.


1. Goto the "Administer" menu in left panel.
2. Click on "Manage USers" and expand it.
3. Click on "Users" link.
4. Select the Required "User" (Ex: Development User) and click on "Profile Name" (Ex: CIS
Salesforce Profile).
5. Click on "Edit" button, to update the Profile Settings.
6. Select the checkbox "Bulk API Hard Delete".
7. Click on "Save" button.

Login into the DataLoader with "Development User" Credentials.


Goto DataLoader Tool and Click on "Settings" menu.
1. Select the checkbox "Use Bulk API"
2. Select the checkbox "Enable Bulk API in Serial Mode"
3. Click on "Save button".

Observation: Hard Delete button in the "DataLoader" will be get enable.

Login into the DataLoader:


To process the bulk records, we need to login into the DataLoader with the valid credentials.

We can login into the DataLoader in 2 ways.

1. By using "OAuth" (Open Authentication)


2. By using Password Authentication.
1. We need to provide the Salesforce Login USer Name.
2. Provide the Password. (Password + Security Token)

Generating Security Token:


Login into the Salesforce Account
1. Click on Your Name and expand it.
2. Click on "My Settings" link.
3. Goto the "Personal" and expand it.
4. Click on "Reset Security Token" link.
5. Click on "Rest My Security Token" button.

Observation: It will generate the Security Token, and will send the security token to the user's email id
automatically by default.

111 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
Note:Upon performing the operations on the Records, DataLoader will divide all the records into the
various smaller chunks called as "Batches". It will perform the operation on each batch separately one by
one.
If one batch has been failed, then it will not impact on the other batches in the operation.
DataLoader will divide the records into the batches based on the API used internally.

Bulk API: (Batch Size : 1- 10,000)


Minimum Batch Size : 1
Maximum Batch Size : 10,000
Default Batch Size : 2000

Note: We need to instruct to the DataLoader, to use "Bulk API", to process more records per batch by
selecting the checkbox "Use Bulk API" from Settings Menu.

Question:
How to Login into the DataLoader just by using "User Name and Password". Without providing
the "Security Token"?.

Ans:
We can login into the DataLoader, without providing the "Security Token", with the help of by
configuring the "Login IP Ranges".
We need to enable the Login IP Ranges for the User Profile in the Organization.

Goto the Salesforce instance :


1. Goto "Setup" menu and click on it.
2. Goto "Administer" menu in the left panel.
3. Click on "Manage USers" and expand it.
4. Click on "Users" link.
5. Select Any user and Click on the "User's" associated Profile Name.
6. Goto the Profile and Goto "Login IP Ranges" section.
7. Click on "Add" button.
8. Enter Starting IP Range : 0.0.0.0
9. Enter Ending IP Range : 255.255.255.255
10. Enter the Description.
11. Click on "Save" button.

Now, Login into the DataLoader with the "User Credentials". Enter the User Name and Password
and login. (Note: No need to provide the Security Token).

112 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
SECURITY FEATURES OVERVIEW
Upon Creating a Salesforce account, it will reserve some amount of memory in the Salesforce server.
Based on the selected Country name in the registration form, it will allocate the memory in the associated
region’s available server.

Newly created Salesforce account is called as a Salesforce.com Organization (Simply: Org)

Each Salesforce.com organization, will be identified by using an unique identification number called as
"Salesforce.com Organization Id", which starts with "OOD".

In a single Salesforce instance (Ex: AP2 / AP3 / NA41/ etc.), it will allocates the memory for 8000+
Salesforce.com organizations.

Each organization in the Salesforce instance will have the access to "Salesforce CRM" application.

Salesforce maintains Common Set of Standard Objects, for all the organizations in the instance. i.e.
Salesforce is not maintaining a separate set of objects for each organization.

If any of the organization people, creates a New Account Record, then it will reside in the Same "Account"
table.

To Differentiate the Records, between the Organizations, Salesforce includes a Field called as
"Organization ID", in each object. Which holds the Organization Id, along with the account record.

If multiple users exist in an organization, then to differentiate the records between the users inside the
organization, Salesforce maintains "UserID" field in each object. Which contains the User Id of the Person,
who creates the record.

When the user make a request to Salesforce server, then along with the request details, it will forward
the Currently Logged In user Id and Organization id also.

Ex: Requested URL+ Form Data + Header Information + Browser Info. + O.S. Information + Session ID + IP
Address + OrganizationID + USer ID
We can add, one or more users inside a Salesforce organization. All the User Records will resides in
"User" table.

For each user, Salesforce allocates a unique identification number called as "UserID", which starts from
"005".

User Management:

Once the Salesforce.com organization has been configured, then we can able to add the users to the
organization. We can add one or more users to an organization.

Upon creating the User, we have to select the license which needs to be assigned. i.e. Every user should
associated with a "License". Without the license, we can't add a new user record.

Each license will provides the access on some features of Salesforce application.

Salesforce provides, the below licenses as part of free Developer Edition.

1. Salesforce License (Full License): 2

This license will allows the users to access both "Standard and Custom functionalities" inside the
organization. (like applications, objects, fields, other features)

2. Platform License: 3

This license will grant the access on purely Custom functionalities (objects, applications, fields,
features, etc) along with few standard objects (Account, Contact, Task, Event, etc)

3. Chatter Free Licenses: 5,000 (To access the Chatter feature to communicate the users.)

4. Customer Community License: 5 (To add the users to access the Community portals.)

Note: We can buy the additional licenses by contacting the Salesforce or Salesforce partners.

Note: Upon creating a User record, we need to grant the permission on the Salesforce application with
the help of a "Profile".

1. Each Profile will be associated with a License : (i.e. Profile to License, we have One-One
Association)
2. A License can be get assigned to one or more profiles. (i.e. License To Profile, we have One to
Many Association).

PROFILE:

It is a component, which contains a set of permissions to be get assigned to one or more users inside the
organization.

Profile decides, what operations the user can perform inside the Salesforce organization.

Upon creating a User record, we should assign a Profile mandatorily. (i.e. Profile is a mandatory field,
upon creating the User).

2
Each user should have only one profile. (i.e. User to Profile, we have 1-1 association)

But, a Profile can be assigned to one or more users in the organization. (i.e. Profile to Users, we have
One-Many association).

Note: All Profiles will get resides in "Profile" object.

Salesforce provides 2 types of profiles as below.

1. Standard Profiles:

These are the readymade profiles, provided by Salesforce by default.

Ex: Authenticated Website Profile, Standard User Profile, Platform user profile, ReadOnly
profile, etc.

Note: We can't modify all the options exist inside the "Standard profile". We can modify upto some
extent.

So, as a best practice. It is always recommended to create your own custom profile, by cloning an
existing one.

2. Custom Profiles:

The Developer / Administrator, can create their own profiles, by cloning an existing one. Which
can be assigned to one or more users.

Note: We can't remove the Standard profiles from the Salesforce organization. But, we can remove the
custom profiles, if it is no longer needed. We can modify all the options exist inside the "Custom
profile".

Creating Custom Profiles:

Goto Setup Menu.


1. Goto "Administer" menu in Left Panel.
2. Click on "Manage User" link.
3. Click on "Profiles" link.

3
4. Click on "New Profile" button, to create a New Profile.
5. Enter the Profile Name in the Text Box.
6. Select the "License Type" from the Picklist.
7. Select the "Profile" from the picklist, to make it clone.
8. Click on "Save" button.

Create the Below Two Profiles:

1. Salesforce Licensed Profile.

Profile Name : CIS :Salesforce Profile


Existing Profile: Standard Salesforce User
Licence Type : Salesforce
Click on "Save" button.

2. Platform Licensed Profile:

Profile Name : CIS: Platform Profile


Existing Profile : Standard Platform User
License Type : Platform License.
Click on "Save" button.

Once the Profiles get created, then we can assign these profiles to one or more users, As Profile is a
mandatory field upon creating a User Record.

In Free Developer Edition, Salesforce provides the permission to create the user as below.

1. Salesforce Licensed Users : 2


2. Platform Licensed Users : 3
3. Chatter Free Licensed Users : 5000
4. Customer Community Licensed Users : 5

CREATING USER RECORD:

We can create one or more users inside a Salesforce organization. Upon creating a User Record, we have
to provide the Profile.

Note: Each user should be associated with a License. Without a user license, we can't create user
records. All User Records will get resides in “User” object

Goto Setup Menu.


1. Goto "Administer" menu in Left Panel.
2. Expand "Manage Users" link.
3. Click on "Users" link.
4. Click "New User" button, to create a User Record.
5. Enter the User information.
(Ex: FirstName,Email Id, USerName, LastName, Title, Alias Name, Company,
Designation, Department, Profile, License Type, Role, etc.)
6. Click on "Save" button.
4
Observation: Once the User Record has been created, it will send the Account Activation Link to the
user's Email Address.

We need to activate the account, by using "Account Activation Link", by providing Password, Confirm
Password, Security Question and Answer.

Create the Below Users with the Specified Licenses:

Salesforce Licenses: 2 (CIS Salesforce Profile)

1. Training Batch 66 (System Administrator)


2. Development User. (developmentuser17@gmail.com)

Platform Licenses: 3 (CIS Platform Profile)

1. Testing User (testinguser17@gmail.com)


2. Manager User (manageruser17@gmail.com)
3. Customer User (customeruser17@gmail.com)

Salesforce allows us to add new users in the organization based on the need.

Note: Each user should have a License and a Profile mandatorily.

Note: We can't remove the user record from Salesforce. But, we can prevent the user from logging into
the Salesforce application as below.

Prevent the User from Login:

We can prevent the User from login into the salesforce instance with the below 2 options.

1. Deactivate the user: We can deactivate the user with the below navigation.

Goto Users Link.


1. Select the User Record and open it.
2. Click on "Edit" button, to modify the user.
3. Unselect the checkbox "Active".
4. Click on "Save" button.

Note: Once the User gets deactivated, then the assigned licenses will be returned back to the
administrator. (So that we can assign this license to another user.)

2. Freeze the user: Instead of deactivating the user record, we can suspect the user permissions for
some time by "Freezing" the user record.

Goto Users Link.


1. Select the User Record and open it.
2. Click on "Freeze" button.

Note: We can unfreeze the user by using "Unfreeze" button exist in the user record.

Note: If you "Freeze" the user record, then the assigned license will not be returned back.
5
Grant Account Login Access:

In-order to troubleshoot the problems of a user, we can grant our Salesforce account login access to our
Organization's Salesforce Administrator or to a Salesforce Customer Support person without sharing the
user credentials(UserName and Password) to Admin / Customer Support person.

i.e. Organization's Salesforce Administrator / Salesforce Customer Support persons can login into our
user account without using our credentials.

We need to grant the Access of the Salesforce to Administrator as below.

Login into the Account by using "User Credentials"

Goto Your Name --> Click on "My Settings" link.


1. Click on "Personal" link and expand it.
2. Click on "Grant Account Login Access" link.
3. Select the Person Type (Administrator / Customer Support) from the Picklist.
4. Select the Time Period to grant the Login Access
(Ex: 1 Day, 3 days, 1 Week, 1 Month, 3 Months, 1 year)
5. Click on "Save" button.

Observation: In Salesforce Administrator's Account, He will be getting a "Login" link beside the user
record. The administrator can click on the link to login into the account directly.

6
Login Access Policies:

To troubleshoot the users / developers issues, the Administrator can get the User Account Login access
forcefully as below.

With this feature enabled, System Administrators can log in as any user in their organization without
asking internal end-users to grant login access.

Goto Setup --> Goto "Administer" menu.


1. Click on "Security Controls" menu and expand it.
2. Click on "Login Access Policies" link.
3. Goto "Manage Support Actions" section.
4. Select the “Enabled” checkbox "Administrators Can Log in as Any User".
5. Click on "Save" button.

Note: Then Administrator can get the “Login” link for all users inside the organization. So that he can
login as any user.

Prevent Users from "Force Logout from Session":

Once the Administrator as logged in a specific user and logged out from the account, Salesforce logout
the whole session.

We can close only the logged-in user’s session as below. So that it will come back to Salesforce
Administrator's account automatically.

Goto Setup --> Goto "Administer" menu.


1. Click on "Security Controls" menu and expand it.
2. Click on "Session Settings" link.
3. Goto "Require secure connections (HTTPS)" section.
4. Unselect the checkbox "Force ReLogin After Login As a User".
5. Click on "Save" button.

Reset the User Account Password:

Once the User has been added inside an organization, if the user forgot the account password (or) if he
tried to login into the Salesforce account multiple times with the invalid password. Then the user account
will get locked.

Then the user can reset the Account password, by contacting the Salesforce Administrator in the
organization. We can reset the user password as below.

Goto Setup --> Goto "Administer" menu.


1. Click on "Manage Users" menu and expand it.
2. Click on "Users" link.
3. Open the Required User Record, to reset the password.
4. Click on “Reset Password” button.

7
Observation: Then Salesforce will generate a Reset password link and will send the link to the user’s
email id automatically. So that the user can change the password.

Setup Audit Trials:

This Audit Trail is available for administrators. Setup Audit Trail tracks the recent setup changes that you
and other admins have made to your org. Audit history is especially useful in orgs with multiple admins.

Note: Only the “System Administrator” or a user with “View Setup and configuration” permission can
use this feature

To download your org’s full setup history for the past 180 days, click Download. After 180 days, setup
entity records are deleted.

The history shows the 20 most recent setup changes made to your org. It lists the date of the change,
who made it, and what the change was

Goto Setup --> Goto "Administer" menu.


1. Click on "Security Controls" menu and expand it.
2. Click on " View Setup Audit Trail" link.

Login History:

Admins can monitor all login attempts for their org and enabled portals or communities. The Login
History page shows up to 20,000 records of user logins for the past six months.

You can download the past six months of user logins to your Salesforce org.

Goto Setup --> Goto "Administer" menu.


1. Click on "Manage Users" menu and expand it.
2. Click on " Login History" link.
3. Select the File Format
3.1. CSV Format
3.2. GZIP format – For faster download, as it provides the compressed format.
4. Goto “File Content” Section. And select the option “All Logins” from the PickList
5. Click on “Download Now” button.

ROLE HIERARCHY
In every organization, it should have a set of designations which can be assigned to one or more
employees.

Like the simalr way, Salesforce provide Role Hierarchy which can be configured based on the
organization structure and we can assign the roles to one or more users in the organization.

By default, salesforce provides a set of Roles, which we can use to assign to the users. If the existing
Roles are not suitable, then we can setup our own role hierarchy.

8
Note: Role Hierarchy makes the Subordinates Records to be visible to the Upper Level Role persons by
default.

Ex: When the Sales Representative creates a New Record in an object, then the same record to be get
visible to the Sales Manager by default.

Note: All the Roles will be stored in "UserRole" object.

A user can have only one role. But a Role can be assigned to one or more users.

Configuring Role Hierarchy:

Click on "Setup" Menu.


1. Goto the "Administer" menu in Left Panel.
2. Click on "Manage User" link and expand it.
3. Click on "Roles" link.
4. Click on "Setup Roles" button.
5. Configure the Role Hierarchy.

CEO
|
|---> CTO
| |
| ---> VP
|
|---> COO
|
---> CFO

Once we setup the Role Hierarchy, then we can assign the Roles to Each user in the organization as
below.

Assigning Role to User:

We can assign the Role to each User separately, one by one as below.

1. Goto "Administer Menu" and Expand "Manage Users Link".


2. Click on "Users" link.
3. Select the User Record, and click on open to assign a Role.
4. Click on "Edit" button.
5. Select the "Role" from the Picklist field.
6. Click on "Save" button.

We can assign a Role to One or more users at time as below.

1. Goto "Administer Menu" and expand "Manage Users" link.


2. Click on "Roles" link.

9
3. Click on "Setup Roles" button.
4. Goto the Role Name (Ex: CFO), and Click on "Assign" link.
5. Select the Users from the Picklist, to whome we need to assign the Role.
6. Click on "Save" button.

Note: After assigning the Roles to the users, Once the subordinate person creates a Record, then all the
Users in the organization will get the access on the record (including Subordinates, Siblings, Manager).

CEO (System Administrator - Training Batch User)


|
|---> CTO (Development User)
| |
| ---> VP (Customer User)
|
|---> COO (Manager User)
|
---> CFO (Testing User)

To prevent the visibility of the record from the Subordinates and Siblings, we have to use "OWD".

10
ORGANIZATION WIDE DEFAULTS (OWD)
OWD Provides baseline level of access to all users in the organization on each object in Salesforce.

OWD will be used to grant the Record Level Access to the users inside the organization. OWD can be
assigned to both Standard and Custom objects in Salesforce.

Note: OWD can be applicable on "Object" level. For each object we can assign a different OWD option.

Note: OWD will make the visibility of the records to the users based on "Role Hierarchy"(i.e. OWD is
Depends on "Role Hierarchy")

Salesforce provide the Below OWD Options..

1. Private
2. Public ReadOnly
3. Public Read/Write
4. Public Read/Write/Transfer
5. Public FullAccess
6. View Only
7. No Access
8. Use
9. Controlled By Parent

Note:

1. Private, Public ReadOnly and Public Read/Wrtite options are common to all the Salesforce
objects except "PriceBook" object.
2. Public Read/Wrtite/Transfer will be available for only "Lead and Case" objects.
3. Public FullAccess option will be available for only Campaign object.
4. Pricebook contains the options as "No Access, View Only, Use".
5. "Controlled By Parent" option will be available for "Child Objects", which are associated with
Master-Detail association.

Configuring the OWD:

We can assign the required OWD option to each object as below.

Goto "Setup" menu.


1. Goto "Administer" menu in the Left Panel
2. Click on "Security Controls" and expand it.
3. Click on "Sharing Settings" link.
4. Goto "Organization Wide Defaults" section.
5. Click on "Edit" button.
6. Select the "OWD" option for each object.
7. Click on "Save" button.
Private:

When the object's OWD has been assigned as "Private", then the records in the object will the visible to
"Record Owner" and his "Manager"(Superior in the Role).

i.e. Owner of the record will have the full control (View, Edit, Delete, Share) and Manager also will have
the Full control on the record.

Note: Other users in the organization, will not be able to access the record.

Note: When the Object's OWD is "Private", then Salesforce enables "Sharing" button on each record's
detail page.

By using Sharing button, we can make the record to be visible to other users in the organization.

To share the Record to one or more users, we have to use "Sharing Settings" feature offered by Salesforce.

We can share the Record in Three ways as below.

1. Manual Sharing (By using Sharing Button


2. Automated Sharing (Sharing Rules)
3. Apex Sharing (By using Apex Programming)

MANUAL SHARING:

Manual Sharing can be done by using "Sharing" button, visible on each record's detail page. By using
Sharing button, we can make the record to be visible to one or more users.

Note: We can share the record based on either User / Roles / Roles and Subordinates / Public Groups.

Note: Sharing button will be enabled, once the object's OWD has been assigned as "Private".

1. Sharing Record To Single User:


By using this option, we can share the record visibility only one user in the organization with
the required Level of Access.

Usecase: Login as the Development User and Create an Account Record. And make the
Account Record to be visible to “Testing User “ with “ReadOnly” Access.

Click on the Required Object's Tab (Ex: Accounts)


1. Open the Account Record, to be make it visible.
2. Goto "Detailed" page of the account record.
2
3. Click on "Sharing" button.
4. Click on "Add" button, to add the Users to whom we need to grant the
access on the record.
5. Select the User “Testing User” from the Picklist.
6. Select the "Access Level" from the Picklist (i.e. Read Only)
7. Click on "Save" button.
Observation: Login into the Testing User, The newly created record should be visible to the
Testing User. But, he can’t Edit / Delete the record from the object.

Note: If we need to grant the access on a collection of records to one or more users, it will take more time.

To grant the access to a collection of users, we need to create a "Public Group". And add all the users to
the group and share the record to the "Public Group".

Public Group:

It is a collection of users. Which can be used to share the information to all the group members at a time.
We can have one or more Public Groups inside the organization.

Creating Public Group:

Goto Setup Menu


1. Goto "Administer" menu in Left Panel.
2. Expand "Manage Users" link.
3. Click on "Public Groups" link.
4. Click on "New Group" button, to create a New Group.
5. Enter the Group Name and the Description.
Ex: Hyderabad Sales Group.
6. Add the Members to the Group (User / Role / Public Group).
7. Click on "Save" button.

Note: All Public Groups will be resides in "Group" object. Whose id, will starts with “OOG”. And All the
Group Members information will be maintained in "GroupMember" object.

AUTOMATED SHARING (SHARING RULES):

Sharing each record inside the object to one or more users is difficult process. To make it simplified, we
can automate this sharing process by creating "Sharing Rules".

For each object, we can have one or more sharing Rules.

Note: Sharing Rules will be get fired, upon creating or updating an existing record in the object.

We can share the Record by selecting the Rule Type as below.

1. Share Records Based on Owner:


We can share the record to one or more users based the Record Owner.
2. Share Records Based on Criteria:

3
We can share the record to Role / Role and Subordinates / Public Group, based on the user defined criteria.

Upon Creating / Updating an existing record, Sharing Rule will verify the record conditions. If the
conditions are match, it will make the record to the associated users. Else record will not be visible.

UseCase: Create a Sharing Rule on Account object, To make the Account records to be visible to
"Hyderabad Sales Group", upon satisfying the below criteria.

1. Rating = 'Hot'
2. Industry = 'Healthcare'
3. Active = 'Yes'
4. Ownership = 'Private'.

Implementation:

Goto Setup Menu.


1. Goto "Administer" menu in Left Panel.
2. Click on "Security Controls" and expand it.
3. Click on "Sharing Settings" link.
4. Goto "Sharing Rules" section.
Note: All Sharing Rules will be visible as the "Related Lists"
Ex: Account Sharing Rules, Opportunity Sharing Rules, Campaign Sharing Rules, Lead
Sharing Rules, Position Sharing Rules, Customer Sharing Rules, Hiring Manager Sharing Rules,
etc.
5. Click on "New" button, to create a New Sharing Rule on Account Object.
6. Enter the Rule Name and Description.
Ex: Grant Account Access to Hyderabad Sales Group
7. Select the Rule Type.
7.1. Based On Owner.
7.2. Based On Criteria. (Select this option)
8. Specify the Rule Conditions.
1. Rating = 'Hot'
2. Industry = 'Healthcare'
3. Active = 'Yes'
4. Ownership = 'Private'.
9. Select the Users, to grant the Visibility.
9.1. Select the "Public Group" from the Picklist.
9.2. And Select "Hyderabad Sales Group".
10. Select the Access Level on the Record, by using Picklist (Ex: Read Only, Read/Write)
11. Click on "Save" button

4
Public ReadOnly:

When the object's OWD has been assigned as "Public ReadOnly", then Record Owner will have the Full
control on the Record (i.e. Read, Create, Edit, Delete and Share). And his manager will also have the full
control on the Records.

But, Other users in the organization can able to see the record. But they can't able to Edit / Delete the
record. (i.e. Other Users - Subordinates or Siblings just have ReadOnly access on the record).

Public Read/Write:

When the object's OWD has been assigned as "Public ReadOnly", then Record Owner will have the Full
control on the Record (i.e. Read, Create, Edit, Delete and Share). And his manager will also have the full
control on the Records.

But, other users in the organization can able to see, and Edit the record. But they can't Delete the record.
(i.e. Other Users - Subordinates or Siblings just have Read and Write access on the record).

Note: Upon creating a New Custom object, Salesforce assigns the default OWD option as "Public
Read/Write".

Note: When the User have "View All and Modify All" permissions in the Profile, then Profile will override
the OWD.

Public Read/Write/Transfer:

This option is available for only "Lead and Case" objects in Salesforce. By using the "Transfer" option, we
can transfer the ownership of the record from one user to another User(005) or a Queue(00G) .

Queue: Queue is nothing but a location, which holds a collection records for some time, which are in
waiting status.

We can configure one or more Queue's inside an organization.

Each queue contains 2 feature as below.

1. Queue Supporting Objects:


Queue doesn't support to store the records of all standard objects in Salesforce.
It supports the records of Lead, Case, Feedback, FeedbackRequest, FeedbackQuestion,
Performance Cycle, Goal, Metric, Matrix and All Custom object records.
Note: Upon creating the Queue, we need to select the One or more objects to be supported
by the queue.

2. Queue Members:

These are the set of users, who can access the Queue Records.

Note: Records will be exist in the Queue, until any of the Queue Member has accepted it.

5
Creating a Queue: We can create the Queue’s in the organization as below.

Goto "Setup" menu.


1. Goto "Administer" menu in Left Panel.
2. Goto "Manage Users" and expand it.
3. Click on "Queues" link.
4. Click on "New" button, to create a New Queue.
5. Enter the Queue Name, Label, and Description.
6. Select the Queue Supporting objects by using "Multiselect Picklist"
(Ex: Lead, Case)
7. Select the Queue Members by using the Multiselect -Picklist.
(i.e. We can add one or more users)
8. Click on "Save" button.

Note:

 All Queue's will be stored in "Group" object in Salesforce with the "Type = Queue".
 All the Queue Members information will stored in "GroupMember" object.
 Queue Supporting Objects information will store in "SupportingObjects".

Assigning Records to Queue:

We can assign a record to either a User / Queue as below.


Goto "Leads" tab and click on it.
1. Open any of the Lead Record.
2. Goto "Detailed" page of Lead Record.
3. Goto "Lead Owner" field.
4. Click on "Change" link
5. Select the Owner to Transfer the Ownership of the record.
(Ex: Select the Option as "Queue" from the Picklist)
6. Click on "Lookup" icon, It will populate all the Queues in the Organization, which
supports the specified object records.

6
7. Select the Queue from the List (Ex: Hyderabad Sales Queue)
8. Click on "Save" button.

Observation: The Lead Record's Owner will be transferred to "Queue".

Once the Record has been assigned to Queue, then All the members of the queue can accept the record
as below.

Accepting Queue Records:

1. Login into the Queue Member USer Account, with his credentials.(Ex: Development User)
2. Click on "Leads" tab.
3. In Lead Object's Enhanced List View, it provides a New List View option with "Queue Name"
(Ex: Hyderabad Sales Queue).
Once you select the Queue Name, All the Records in the queue will get populated.
4. Select the record by using "Checkbox", to accept it.
5. Click on "Accept" button.

Observation: Lead Record's Owner will transferred from "Queue" to the Accepted Queue Member.

ASSIGNMENT RULES
Assigning the Lead/ Case records to either a User / Queue is a difficult process, when we have more
number of records. Which is a time consuming process.

To avoid this problem, we can make this process automated by using Assignment Rules.

Assignment Rules are used to assign a Lead / Case record to either a User / Queue based on the user
defined conditions.

i.e. We can transfer the ownership of the record to the specified user or queue dynamically at runtime,
instead of assigning the record to the currently logged-in user by default.

Salesforce provides 2 types of assignment rules.

1. Lead Assignment Rules


2. Case Assignment Rules

LEAD ASSIGNMENT RULES:

By using Lead Assignment Rules, we can assign a Lead Record to either a USer or Queue dynamically at
runtime, based on the user defined conditions.

Note: Each Assigning Rule will have one or more Rule Entries / Conditions, which indicates the Rule
Condition and the "User / QueueName", to whom the record should get assigned.

Ex:
Lead : City = 'Hyderabad' --> Hyderabad Queue
Lead : City = 'Mumbai' --> Mumbai Queue

7
Note:

 An organization can have one or more Lead Assignment Rules, but only One Lead Assignment
Rule will be in "Active" at a time.
 Assignment Rules will get fired upon creating a "New Record / Updating an existing record" in
the object.

UseCase:

Configure the Lead Assignment Rules, to Auto Assign the Lead Record to the Queue as below.

Conditions:

Lead : City = 'Hyderabad' --> Hyderabad Sales Queue


Lead : City = 'Bangalore' --> Bangalore Sales Queue
Lead : City = 'Mumbai' --> Mumbai Sales Queue
Lead : City= 'Dehi' --> Delhi Sales Queue

Implementation Steps:

Pre-Requisite: We should have the below 4 Queues, which should supports "Lead Object
Records".
1. Hyderabad Sales Queue
2. Mumbai Sales Queue
3. Delhi Sales Queue
4. Bangalore Sales Queue

Goto "Setup" menu.


1. Goto "Build Menu" in Left Panel.
2. Click on "Customise" and expand it.
3. Click on "Leads" link and expand it.
4. Click on "Lead Assignment Rules" link.
5. Click on "New Rule" button, to create a New Assignment Rule.
6. Enter the Rule Name in the Textbox:
Ex: CIS Auto Lead Assignment Rule.
7. Select the "Active" checkbox, to make the rule "Active".
8. Click on "Save" button.
9. Open the Newly created Lead Assignment Rule by click on the "Rule Name".
10. Goto the "Rule Conditions / Entries" section.
11. Click on "New Entry" button, to add a Rule Entry.
12. Sepcify the Sort Order (1 / 2 / 3 /...), which describes in which order the conditions
has to be verified.
13. Sepcify the Rule Condition
Ex: Lead : City Field = 'Hyderabad'
14. Specify the Action.
Ex: Assign the Lead Record to "Hyderabad Sales Queue".
15. Click on "Save" button.

8
16. Repeat the steps 11 - 15, to add one or more rule conditions / entries.
17. Click on "Save" button.

Testing Lead Assignment Rules:

Once the Lead Assignment Rule has been configured, then we can test the assignment rule by creating /
updating an existing Lead Record as below.

1. Goto "Leads" tab on "Tab Bar" andf click on it.


2. Click on "New" button, to create a New Lead Record.
3. Enter the "Lead Record details" in the fields.
4. Goto "Optional Features" section.
5. Select the checkbox "Assign using Active Assignment Rules".
6. Click on "Save" button.

Observation: It should create a New Lead Record, with the specified details and it has to be assigned to
the associated "Queue" based on the City and Lead Status field values

Negative Testing:

1. Open an existing Lead Record.


2. Click on "Edit" button
3. Change the City value, from "Hyderabad to Bangalore".
4. Select the checkbox "Assign using Active Assignment Rules"
5. Click on "Save" button.

Observation: Lead Record has to be transferred to "Bangalore Sales Queue", and all Queue members
should get notification alert.

CASE ASSIGNMENT RULES:

By using Case Assignment Rules, we can assign the Case Records to either a User / Queue dynamically at
runtime, based on the user-defined conditions.

We can have one or more Case Assignment Rules in an organization. But only one Rule, will be in "Active"
status at a time.

Once the Case records has been assigned to "Queue", then Queue Members can accept the Case records
from the Queue. Which transfer the ownership of the Case record from Queue to the accepted queue
member.

UseCase: Configure the Case Assignment Rule, to auto assign the Case Records as below.

1. Case : RecordType = "Product Record Type", then Assign the Case Record to "Product Support
Queue".
2. Case : RecordType = 'Inquiry Record Type', then Assign the Case Record to "Inquiry Support
Queue".

9
WEB TO LEAD / ONLINE LEADS
We can capture the Leads by using various channels as below.

1. Through By conducting Campaigns


2. Through by using Tele Marketing
3. By using Email Marketing
4. By using Advertisements
5. By using Trade shows, etc.

Salesforce provides an alternative way to show the interest by using "Organization Website".

Every organization contains its own website, which describes the details about the organization, their
services, their employees, revenue, locations etc.

By using "Web To Lead" feature, we can capture the Leads through online (Using Organization Website).
i.e. Without using Salesforce instance, we can create the Lead records into "Lead" object.

Note: By default each Salesforce organization enables the "Web To Lead" feature.

We can disable this feature, by unselecting the "Enable Web To Lead" checkbox as below.

Goto Setup Menu.

1. Goto "Build" menu in left panel.


2. Click on "Customise" and expand it.
3. Click on "Leads" link and expand it.
4. Click on "Web To Lead" link.
5. Goto "Web To Lead" Settings section.
6. Unselect the checkbox "Enable Web To Lead"
7. click on "Save" button.

To Capture Online Leads, we have to enable the "Web To Lead" inside the Salesforce organization.

Step 1: We need to generate a HTML Form / USer Interface, to capture the Lead Details as below.

Goto "Build" menu in Left Panel.


1. Click on "Leads" link and expand it.
2. Click on "Web To Lead" link.
3. Goto "Web To Leads" section.
4. Click on "Generate Web To Lead Form" button.
5. Select the Required fields from the "Multiselect Picklist" to be placed on to the User
Interface by using "Add / Remove" buttons.
6. Arrange the Fields in the required order by using "Up and Down" navigation buttons.
7. Enter the Return URL, which re-direct the user to the specified form(Ex: Thank you
form), once he click on "Submit" button. (Ex: http://www.google.co.in)
8. Click on "Generate" button.

Observation: Salesforce generates the HTML Code with the Selected Fields
10
Step 2: Generate the HTML Page

1. Copy the Salesforce generated HTML Code from the Editor.


2. Paste the Code into a Notepad.
3. Save the file with the extension ".html / .htm"

Step 3: Provide the Salesforce Generated Code to the "Organization's Web Designer".

1. Web Designer will add the required Styles, Background colors, images to the HTML form and
make it look like attractive.
2. And He will upload the code into the "Organization's Website", so that all the people can
access the Form.

Step 4: Users can Access the Organization Website and Click on the Form and Enter the Details in the field.

Upon click on "Submit Query" button, it will send the details to the specified Salesforce
organization and re-direct the user to the "Return URL".

To connect to the Salesforce organization, it will maintain "Hidden Fields inside the HTML form " as below.

<input type=hidden name="oid" value="00D28000001iRGX">


OID : Organization ID, to which it has to interact to create a New Lead Record.

<input type=hidden name="retURL" value="http://www.google.co.in">


retURL : To re-direct the user, upon click on "Submit Query" button.

Note:

 We can configure the "Default Lead Creator", by using "Web To Lead Settings" section.
 Upon creating a Lead Record, through organization website (Web To Lead) Salesforce will fire
the "Assignment Rules" automatically, and will assign the lead record based on the conditions.

11
CONFIGURING PROFILES
Profile contains a Set of Permissions to be get assigned to one or more users in the organization. Profile
decides, what operations the user can perform in the organization.

Note: Upon Creating a User Record, Profile is a Mandatory Field. I.e. without the Profile, we can't add a
New User. A user should have only one Profile and Only One Role.

All the Profiles will get resides inside the “Profile” object.

Profile is acting as a mediator component between the Users and the Salesforce Organization.

When the user tries to perform the DML operations, each user request has to be authorized by the
Force.com platform.

Once the User Request has been authorized, then Salesforce organization will verify the User's profile
level permissions. Based on the Profile level permissions, the user can perform DML operations. Else he
will get the error message "Insufficient Privileges".

We can list out all the profiles with the below navigation.

Goto Setup --> Goto "Administer" menu.


1. Click on "Manage Users" and expand it.
2. Click on "Profiles" link.

Note: Each Profile will be associated with a "License". But a License can have one or more profiles.
Salesforce Provides 2 types of Profiles.

1. Standard Profiles:

These are the readymade profiles given by the Salesforce. By default, Salesforce provide a set of
standard profiles which can be assigned to one or more users.

Ex: ReadOnly Profile, Authenticated Website Profile, Standard User Profile, Salesforce Platform User
Profile, Custom: Sales Profile, Custom: Marketing profile, Custom: Support Profile, .. etc.

Note:

1. We can't remove the Standard profiles from the organization.

2. We can change the Profile settings up to some extent. i.e. We can't modify all the
permissions inside the standard profile.

Note: As a best practice, it is always recommended to create our own custom profile, by cloning an
existing one.

Salesforce Administrator or Developer will create the profiles based on the requirement.

2. Custom Profiles:

The Developer / Administrator, can create their own profiles, by cloning an existing one. Which
can be assigned to one or more users.

Custom Profiles can be removed, when it is no longer needed.

Note: Before removing the Profile we have to make sure that, the profile is not referenced by any user in
the organization.

We can modify all the settings exist inside the "Custom" profile.

Note: Each profile should be associated with a License.

Creating Custom Profiles:

Goto Setup Menu.


1. Goto "Administer" menu in Left Panel.
2. Click on "Manage User" link.
3. Click on "Profiles" link.
4. Click on "New Profile" button, to create a New Profile.
5. Enter the Profile Name in the Text Box.
6. Select the "License Type" from the Picklist.
7. Select the "Profile" from the picklist, to make it clone.
8. Click on "Save" button.

2
By using Profile, we can configure the below features.

1. We can specify, what applications to be visible to the users.

We can grant the Access on the required applications to the users and we can specify the default landing
application also we below.

Goto Setup --> Goto "Administer" menu.


1. Click on "Manage Users" and expand it.
2. Click on "Users Link"
3. Goto the Required User Record, and Click on on the Assigned Profile Name
(Ex: CIS Salesforce Profile)
4. Click on "Edit" button, to modify the profile settings.
5. Goto "Custom Apps Settings" section.
6. Select the "Checkboxes" to grant the access on the application and select the "Radio
button" to make the default application.
7. Click on "Save" button.

2. What Tabs to be visible to the user:

Tab provides a user friendly graphical user interface, which contains a set of visual appearance controls
to manage the records by using point and click options (using Mouse pointers).

Salesforce provides the below Tab setting options in profile.

1. Default ON: It makes the tab to be displayed on the Tab Bar by default.

2. Default OFF: It doesn't display the Tab on the Tab Bar by default. But we can make it visible on
the Tab Bar by using "Customize My Tabs" button.

3. Tab Hidden: It doesn't display the Tab on the Tab Bar and even in All Tabs ("+"). i.e. The user is
not having the access on this tab.

3. What Record Types to be visible to the user:

- By using this options, we can specify what record types to be visible to the users.

- We can decide the default Record Type for the object.

UseCase:

Configure the Profile, to make all Salesforce license users can create the account records, without record
type selection.

Goto Setup --> Goto "Administer" menu.


1. Click on "Manage Users" and expand it.
2. Click on "Users" link.
3. Goto the Salesforce License User and click on the assigned Profile Name

3
(Ex: CIS Salesforce Profile).
4. Goto "Record Type settings" section.
5. Goto "Required Object" (Ex: Account)
6. Click on "Edit" link.
7. Move the record types from the "Selected Record Types" picklist.
8. And Add "Master" as the "Default" RecordType.
9. Click on "Save" button.

4. What Objects To be visible to user: By using these options, we can specify, what objects to be visible
to the users. Grant the Access on the objects by selecting the checkboxes.

5. What operations the user can perform on each object (Standard or Custom)

By using these options, we can grant upto what level the user can perform the operations in each object.

For Each object, Salesforce provides the below rights.

View All: It grants the access to the users on the Account object records created by all the users in the
organization (View Only Access).

Modify All: It grants the View and Edit Access on all the records in the Account object, created by all the
users in the organization.

Note: ViewAll and ModifyAll Permissions in the profile will override the object's OWD.

6. What Page Layouts to be applicable to the user.

7. What General Permissions to be applicable to the user.

8. What Administrator permissions to be applicable to the user.

9. What System Permissions to be applicable to the user.

10. What Session Timeout settings to be applicable to the user.

This option allows us to specify the default session timeout settings.

We can specify the Session inactivity time intervals like 15 minutes/ 30 min/ 1 hour / 2 hours/ 4
hours / 8 hours / 12 hours.

4
Note: If the user didn't send any request to the application within the specified time, then session
memory will be get released from the application server. So that it will re-direct the user to "Login Screen".

11. What Apex Classes to be accessible by the user.

12. What Visual Force pages to be accessible by the user.

13. What Password Policies to be applicable to the user:

By using this feature, we can specify the

1. Password complexity requirements


2. Number of characters to be acceptable for password.
3. Invalid Login attempts.
4. Remembering the Previous Password History.
5. Password Lock-out Period time
6. Password Re-Activation Period, etc.

14. What Login Hours to be applicable to the users:

By using this feature, we can configure the Login Hours, which restricts the users to login into the
application within the specified timings.

If the user tried to login into the application, after the specified Login hours, Salesforce prevent the user
to login.

Note: Once the specified Login Hours are over, still the user is accessing the application, then Salesforce
application will be change into the Read-Only mode. So that User can access the existing record.

But, he can't perform any DML operations (Create, Edit, Delete, etc.).

We can specify the Organization wide Business hours, which will be common to all the users in the
organization as below.

Goto Setup --> Goto "Administer" menu.

1. Click on "Company Profiles" and expand it.


2. Click on "Business Hours" link.
3. Click on "New Business Hours" button.
4. Enter the Name, Description.
5. Select the Time Zone from the Picklist.
6. Enter the Business Hours.
7. Click on "Save" button.

Note: Organization wide business hours can be used to calculate the time period to escalate the cases
based on the specified SLA (Service Level Agreement)

5
15. What Login IP Ranges to be applicable to the users.

By using this feature, we can enforce the user to access the Salesforce application from the
specified "Trusted IP Ranges" only.

1. We can specify a separate Login IP Ranges for each set of users by using "Profiles".

2. We can make common set of IP ranges to all the users in the organizations as below.

Goto Setup --> Goto "Administer" menu.

1. Click on "Security Controls" and expand it.


2. Click on "Network Access" link.
3. Click on "New" button.
4. Enter the Starting IP Address, Ending IP Address and Description.
5. Click on "Save" button.

Note: We can add multiple Trusted IP Ranges for an organization.

PERMISSIONSETS
PermissionSet’s are used to grant the additional permissions to one or more users in the organization.

By using Permission set we can grant the similar access like Profile, but except the Login IP Ranges and
Login Hours.

PermissionSets will override the "Profile level permissions". (i.e. We can extend the Profile level
permissions using PermissionSets.)

We can have one or more permissionsets in an organization.

Note: Use permission sets only when a subset of users need additional permissions

Note: Upon creating a New User Record, Profile is Mandatory. But PermissionSet is not mandatory.

Usecase: Create a PermissionSet to grant "Edit" access on Account object and "Edit" access on
"Position" object to "Customer User (Platform Profile)".

Goto Setup --> Goto "Administer" menu.

1. Click on "Manage Users" and expand it.


2. Click on "PermissionSets" link.
3. Click on "New" button, to create a new PermissionSet.
4. Enter the Name, label and Description.
Ex: Name: Grant Edit Access on Account and Position Object.
5. Click on "Save" button.
6. Goto the PermissionSet settings and Edit the Properties to grant the below access.
Ex: Object Permissions
Custom App Permissions
Connected App Permissions
6
Apex Classes Settings
Visualforce Page Settings
General Permissions
System Permissions
Custom Permissions
etc.
7. Click on "Object Permissions / Settings" link
8. Click on the Required Object name (Ex: Accounts)
9. Click on "Edit" button.
10. Select the Required Permissions.
Ex: Record Access: Read (Select), Edit (Select), Create (select).
11. Click on "Save" button.
12. Repeat the steps 6-11, to add any more permissions.

Note: By using permissionsets, we can't grant "Login IP Ranges and Login Hours permissions."

Assign PermissionSet To User:

Once the Permissionset has been created, then we can assign the PermissionSet to one or more users in
the organization.

And a User can have one or more Permissionsets.

Note: User and PermissionSet objects contains “Many-Many Relationship”, with the help of a Junction
object called as “PermissionSetAssignment”.

Goto Setup --> Goto "Administer" menu.

1. Click on "Manage USers" and expand it.


2. Click on "Users" link.
3. Goto the "Required USer Record".
4. Select the Record and Open it.
5. Goto "PermissionSets Assignement section."
6. Click on "Add" button, to add a new permisionset.
7. Select the Required PermissionSets in the Picklist(Multiselect).
8. Click on "Save" button.

Testing PermissionSet:

Case 1.

Login into the "Customer User" and Open Any existing record created by "Customer User".

Observation: The Record should display the detailed Page along with "Edit" button.

Case 2.

Login into the "Testing User" and Open Any existing record created by "Testing User".

7
Observation: The Record should display the detailed Page.(Note: It should not provide Edit button.)

Grant Access Using Heirarchies:

By default, OWD grants the visibility of the Subordinate records to his manager based on the Role
Hierarchy.

We can prevent the visibility of subordinate record to his manager by unselcting "Grant Access Using
Hierarchies" checkbox as below.

Goto Setup --> Goto "Administer" menu.

1. Click on "Security Controls" and expand it.


2. Click on "Sharing Settings" link.
3. Goto "Organization Wide Defaults Settings" section.
4. Click on "Edit" button.
5. Goto "Grant Access Using Heirarchies" checkbox column.
6. Unselect the checkbox for the required objects.
7. Click on "Save" button.

Note: We can unselect the checkbox for only "Custom Objects". Not for Standard objects of salesforce.

SALESFORCE DATA SECURITY MODEL ARCHITECTURE

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy