Admin Material
Admin Material
CRM
Administration
Material
By Feroz Baig
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.
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.
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.
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.
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)
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.
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.
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).
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.
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.
To buy the Data from Data.com, Salesfore provides the 2 below Licenses.
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
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.
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.
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.
Editions of Salesforce:
Salesforce provides the various Editions of Licenses, which can be purchased by the customers to automate their
business processes.
Note: Upon accessing the salesforce application, each user should have a License. Without the License, we can't
add a user record.
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.
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.
Once the Salesforce account has been created, the user can login into the account by using the below URL.
Note:
By using these Tabs, we can perform all the DML operations on the Objects. (INSERT, UPDATE, DELETE, UNDELETE)
and View.
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:
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
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.
Navigation:
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.
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.
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)
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.
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.
The user can customize the Table by adding the required columns to be displayed inside the Table as below.
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".
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.
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.
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.
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.
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".
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.
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.
The Developer / Administrator inside the organization will have the rights to create custom objects in Salesforce.
We can create the custom objects as below.
2. Enter the Object Name, Plural Name, API Name, and Description 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.
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).
7. Select the Custom Object Tab Style from the Lookup field.
9. Make this Tab to be visible for all the profiles by selecting the “Visible” checkbox. Click on “Next” 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".)
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.
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)
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
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
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.
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.
2. Text Area:
Allows us to enter the data in multiple lines, max. of 255 characters. (Alphanumerical + Special
Characters)
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 :
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 :
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.
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 :
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 :
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.
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:
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
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.
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
We can create a field inside the object, with the below navigation...
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.
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.
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.
2. We can specify, in how many columns we can arrange the fields inside the section. (i.e. either in
1 or 2 columns)
5. We can configure the "Tab Key Order" for each section (i.e. either from Top to Bottom / Left To
Right)
8. We can add the required fields onto the Layout by using Page Layout Editor.
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.
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.
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.
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.
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
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.
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.
Use case: Create the Lookup Relationship between Hiring Manager and Position Objects and describe
the observations.
1. Hiring Manager(Hiring_Manager__c)
2. Position (Position__c)
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
• It will list out all the standard and Custom Fields in the Object.
• Goto Custom Fields and Relationships section
• Click on Next and Select the Associated Parent Object from the Picklist 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.
Use case: Create the Master-Detail Relationship between Position and Candidate Objects and describe
the observations.
1. Position (Position__c)
2. Candidate (Candidate__C)
Identify the Parent and Child Objects:
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. 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.
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.
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.)
We have a common field in Opportunity object, with the name "AccountID". Which holds the Account
Record Id to which the opprtunity is associated.
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.
- 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.
Navigation:
Goto Object --> Goto Force.com Quick Access Menu --> Click on "View Fields"
Now it will change the Relationship between the object from Lookup to Master Detail.
We can change the Master-Detail association to Lookup directly, just by changing the field type from
Master-Detail to Lookup type as below.
Observation: Now, it will change the association between Position and Candidate as "Lookup"
In few cases, we have to map Many to Many association between two objects, Which provides One-
Many association from both the sides.
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)
We need to achieve this feature, by creating a Junction object. Which associated with both the Parents
with Master-Detail association
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".
5. Between User and PermissionSet Object, Salesforce provides Many-Many association by creating
a junction object “PermissionsetAssignment”.
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".
UseCase:
Configure the Lookup dialog to populate only those position records which are not closed upon
creating a Candidate Record.
Configuration Steps:
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
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
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: 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.
1. Position (Master)
2. Candidate (Detail)
These objects should be associated with Master-Detail association.
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.
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.
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.
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.
Note: Salesforce provides a set of readymade Email Templates, which are common to all the users in the
salesforce organization.
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.
We can list out all the email templates exist in the organization with the below navigation.
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).
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.
In this approach, we can prepare the subject and the Content and can make it look like attractive
with the help of "HTML programming".
By using this approach, we can prepare a visualforce page, through which can send the email
notifications to one or more people.
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.
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.
Ex:
{!Account.Industry}
{!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.
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.
Observation:
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.
The Images required in the LetterHead, should be uploaded into "Documents" folder.
Note: LetterHead can be used only in "HTML Email Templates". We can have one or more Letter Heads
inside an organization.
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:
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.
Please recruite the Candidates for the above position before the Close Date :
{!Position__C.Close_date__C}
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.
3. Underline (<u>): This tag is used to display the specified content with the underline style.
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.
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.
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/>
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/>
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.
Evaluation Criteria: Defines when the workflow action needs to be get fired.
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).
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:
Using this action, we can send an Email Notification to one / more users by using an Email Template.
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".
Technical Analysis:
2. Create an Email Template by including the "Contact" object merge fields, with the required subject and
content.
Email Content:
2. Select the Object Name from the Picklist on which to create a New Workflow (Ex: Contact)
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
12. Select the Recipient Type as “Email Field” / User / Account Owner / Role / etc as Below
1. Create a Contact Record by providing all the values, firstname, lastname, phone, email is, etc.
Go to the Setup Go to Build Select the “Create” Click on “Workflow & Approvals”
Enter the Rule Criteria Conditions (At least One is required) as below
8. Go to the “Immediate Actions Section” and Expand the “Workflow Action” Picklist and select the
“New Task” as below
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”
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
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
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 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”.
7. Enter the Rule Criteria, which will verify before firing the actions.
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)
11. Repeat Step 10, To Create the remaining Time-Dependent Actions as below.
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.
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.
Note: While updating the Cross Object field, always it allows us to update the field from Child object to
Parent object.
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”
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
8. Go to the “Immediate Action Section” and expand the “Workflow Action” Pick list and select the
“New Field Update” as below
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
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.
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.
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)
Page Layout provides a user interface with a set of fields to create / Edit the records in 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"
Navigation:
Goto Setup Goto Build Menu Goto Customize Goto Accounts Click on “Record Types”
5. Make the Record Type “Enable ” for All the Profiles, by selecting the Check Box “Enable” as below
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.
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: 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.
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.
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.
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.
To Create a Record Type in the Lead Object, we have to use the below Process.
Navigation:
Goto Setup Goto Build Goto Customize Goto Leads Click on “Record Types”
Note: Repeat the above steps to create the required Record types in the Lead Object.
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.
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.
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 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.
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) )
)
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".
Step 2: Create a Method with the required Business Logic to create an Account and an
associated Case Record.
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();
insert acc;
if(acc.id != null)
{
// Create the Associated Case Record...
Case cs = new Case();
cs.Status = 'New';
cs.Priority = 'High';
cs.Origin = 'Phone';
cs.AccountId = acc.id;
insert cs;
}
}
}
Step 6: Select the Method to be get invoke by using "Label Name" inside the Process.
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.
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.
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.
/*
Create a Validation Rule, to make the "Website" field required.
*/
// Create a validation Rule, to make sure Maximum Pay value should be always greater than "Minimum
Pay".
// Create a Validation Rule, To make Close Date should be always greater than "Open Date".
// Create a validation Rule, to make the Annualrevenue field mandatory in Lead Object.
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.
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.
1. AND Function
2. OR Function
3. NOT Function
AND Function:
Syntax:
AND( <Condition1> , <Condition2> , <Condition3>, .... ,
<ConditionN> )
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.
// Create a validation Rule, to make the Active Field value as required for "New" Accounts.
AND (
ISNew(),
isBlank( Text(Active__C) )
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.
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:
1. PAN Number --> ALPPB4567T
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}
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.
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.
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)
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.
6. Lower(string): It converts all the characters exist in the string into Lower case letters.
9. Left(string,<Number Of Characters>): It returns the specified number of characters from the Left side of the
string.
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
12. Today():
13. Year(Date):
This function will returns the "Year" portion of the specified date.
Ex: Year(Today()) --> O/p: 2016
14. Month(Date):
15. Day(Date):
If is a conditional statement, which evaluates all the specified conditions and returns TRUE, If all
te conditions satisfied.Else it returns FALSE.
Alternate Text
[,Height, Width]
)
By using this function, we can display the images dynamically at time in the record detailed page.
Ex: Text(Rating)
Text(Industry)
Text(Location__c)
Text(Position_status__c)
Navigation:
We can create the formula fields with the below navigation.
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.
106 Capital Info Solutions, Shyamala Plaza, Ameerpet, Hyderabad (+91 – 8686864286)
// Create a Formula Field, to calculate the Total Remaining amount of the Customer.
// Create a Formula Field, to calculate the Number of Days remains to close the position.
// 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)
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.
// Create a Formula Field on Candidate Object, to display the Associated Position Record's Hiring
Manager Email Id.
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.
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.
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.
1. Insert
2. Update
3. Delete
4. Export
5. Export All
6. Upsert
7. Hard Delete
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.
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.
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".
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.
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.
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.
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.
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.
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).
1. Standard Profiles:
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".
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.
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.
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
We need to activate the account, by using "Account Activation Link", by providing Password, Confirm
Password, Security Question and Answer.
Salesforce allows us to add new users in the organization based on the need.
Note: We can't remove the user record from Salesforce. But, we can prevent the user from logging into
the Salesforce application as below.
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.
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.
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.
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.
Note: Then Administrator can get the “Login” link for all users inside the organization. So that he can
login as any user.
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.
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.
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.
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
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.
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.
A user can have only one role. But a Role can be assigned to one or more users.
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.
We can assign the Role to each User separately, one by one as below.
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).
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")
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.
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.
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".
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.
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.
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.
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".
Note: Sharing Rules will be get fired, upon creating or updating an existing record in the object.
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:
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.
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.
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".
6
7. Select the Queue from the List (Ex: Hyderabad Sales Queue)
8. Click on "Save" button.
Once the Record has been assigned to Queue, then All the members of the queue can accept the record
as below.
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.
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:
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
8
16. Repeat the steps 11 - 15, to add one or more rule conditions / entries.
17. Click on "Save" button.
Once the Lead Assignment Rule has been configured, then we can test the assignment rule by creating /
updating an existing Lead Record as below.
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:
Observation: Lead Record has to be transferred to "Bangalore Sales Queue", and all Queue members
should get notification alert.
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.
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.
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.
Observation: Salesforce generates the HTML Code with the Selected Fields
10
Step 2: Generate the HTML Page
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.
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.
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:
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.
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.
2
By using Profile, we can configure the below features.
We can grant the Access on the required applications to the users and we can specify the default landing
application also we below.
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).
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.
- By using this options, we can specify what record types to be visible to the users.
UseCase:
Configure the Profile, to make all Salesforce license users can create the account records, without record
type selection.
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.
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.
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".
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.
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.
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.)
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)".
Note: By using permissionsets, we can't grant "Login IP Ranges and Login Hours permissions."
Once the Permissionset has been created, then we can assign the PermissionSet to one or more users in
the organization.
Note: User and PermissionSet objects contains “Many-Many Relationship”, with the help of a Junction
object called as “PermissionSetAssignment”.
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.)
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.
Note: We can unselect the checkbox for only "Custom Objects". Not for Standard objects of salesforce.