Salesforce Admin Book

Download as pdf or txt
Download as pdf or txt
You are on page 1of 135

Salesforce Admin

Salesforce Admin 1
Multi Tenant Architecture 5
How to create and manage user accounts 5
Discuss user profiles and roles 5
Objects in Salesforce 5
Fields in Salesforce 8
Global Picklist in Salesforce 8
Dependent Fields 8
Formula Field in Salesforce - Calculated Field, 1 OR More fields 8
Relationships in Salesforce 11
Questions 13
Junction Object [ Many - Many Relationship ] 15
Questions 16
Self Lookup [ Lookup with Same Object ] 18
Hierarchy Lookup 18
External Objects in Salesforce 18
External Lookup in Salesforce 19
Indirect Lookup in Salesforce 19
Lookup Filters in Salesforce 19
Cross Object Formula fields in Salesforce 19
Rollup Summary fields in Salesforce 19
Schema Builder 21
Validation Rules in Salesforce 21
Validation Rule Continue 23
Page Layout 25
Compact Page Layout 25
List View 25
Security Model in Salesforce 25
Profile 25
Permission Set 26
Permission Set group 26
Login IP Ranges 27
Login History 27
Login Hours 28
Network Access 28
Activations 28
Universal IP Range 28
Organisation Wide Defaults (OWD) 29
Questions to Ask 32
Group ( Public Group ) 32
Queues in Salesforce 32
Queues vs Group 33
Behind the Scene of Sharing 35
Sharing Rules in Salesforce 37
Questions related to Sharing Rules 39
Share Records Using Teams in Salesforce 40
Lead Process 41
Record Type in Salesforce 43
Lightning App Builder 45
Feed Tracking in Salesforce 47
Dynamic Forms in Salesforce 49
Quick Actions in Salesforce 50
Global Actions 50
Dynamic Actions 51
Duplicate Management in Salesforce 52
Limitations of Duplicate Rules 53
Email Templates in Salesforce 54
Email Communication 55
Automation Processes in Salesforce 59
Screen Flows in Salesforce 59
Input Components in Salesforce Flows 59
Screen Flow Scenarios 60
Screen Flow Scenario #2 60
Record Triggered Flows 62
Types of Record Trigger Flows 63
Email Alerts in Salesforce 66
Flow Session Error handling 67
Auto Launched Flows 69
Asynchronous Flows 70
Approval Processes 72
Simple Approval Process 73
Multi-Step Approval Process 74
Lead Management 77
Web-to-Lead 78
Lead Assignment Rules 80
Rule 1: Geography-Based Assignment 81
Rule 2: Industry-Based Assignment 81
Rule 3: Large Deal Assignment 81
Rule 4: Round-Robin Assignment 82
Rule 5: Hot Leads Assignment 82
Lead Auto Response Rules ( Acknowledge ) 86
Lead Conversion Process 92
Lead Field Mapping 92
Case Management 94
Web-to-Case 94
Email-to-Case 97
Case Auto Response Rules 101
Case Assignment Rules 106
Business Hours 110
Case Escalation Rules 112
Activity Management in Salesforce 120
OWD Email in Salesforce 123
Email Deliverability 123
Setup OWD Email 124
Associate Contacts to Multiple Accounts 127
Person Accounts 128
Multi Currency 129
Reports & Dashboards 130
Types of Reports 130
Tabular 130
Summary 130
Matrix 131
Joined Report 131
Relative Date Filters in Reports 132
Report Folders 132
Dashboard Folders 132
Formula in Reports 132
Filters in Reports 132
Report Sharing 132
Email Reports 132
Lead Convert Report 132
Dashboards 132
Dynamic Dashboards 132
Email Dashboards 132
Reports and Dashboards Limits and Allocations 132
Audit Trail 133
Data Import & Export 133
Import Wizard 133
Export Wizard 133
Data Loader 135
AppExchange 135
Google Chrome Extensions 135
Salesforce Inspector reloaded 135
Salesforce Booster 135
Salesforce Show field API Names 135
Salesforce Logins 135
Salesforce Admin Certifications 135
Multi Tenant Architecture

https://cdn.sanity.io/images/nosafynr/pf-
production/611437d637c03368bf182d034147772bd361179f-999x422.png

How to create and manage user accounts

Discuss user profiles and roles

Objects in Salesforce

● Standard Object - Can create new fields/properties inside Standard


Object
○ Account - Represents a Company
○ Contact - Represents an Employ of a Company
○ Lead - Potential Customer [ Interest is not shown ]
○ Opportunity [ Associated with Company & Employee ] -
Customer shown interest
○ Case - Complains from our customer
○ Product -
○ Campaign -
○ Task -
○ Event -
○ CampaignMember
○ https://developer.salesforce.com/docs/atlas.en-
us.object_reference.meta/object_reference/sforce_api_objects_
list.htm
● Custom Object -
○ We create our own custom object
○ API Name always end with __c for any custom object or for any
custom field

Name Email Phone Salary

John Doe

Barbara

Jack

Any Real World Entity is an Object -

An Object can have two things

1. State [ Property ] - Details about the Object


2. Behaviour - What that object will do
● Pen - Generic
○ Name
○ Company
○ Colour
○ Type
● Chair
● Books - Generic
○ Name
○ ISBN
○ Pages
○ Author
○ Publisher
○ Published Year
○ Copies Sold
○ Price
● Person
○ Name
○ Age
○ Email
○ Phone
○ Address
○ AADHAR
○ SSN
○ Father
○ Spouse
● Building
○ Height
○ Width
○ Rooms
○ Floors
● The Meaning of Standard Object in Salesforce
○ Account
○ Contact
○ Lead
○ Opportunity
○ Case
○ Product
○ Campaign
● Introduce the concept of custom objects and fields.

Fields in Salesforce

● Demonstrate how to create custom fields.


○ Data Types
[email protected]
○ 108934 - What Is this?
○ INR - 108934

Global Picklist in Salesforce

Dependent Fields

● Controlling Field
○ Picklist [Single - Select]
○ Checkbox
○ Standard Picklist Field Can be used
● Dependent Field
○ Picklist [Single - Select]
■ Picklist [Multi - Select]

Formula Field in Salesforce - Calculated Field, 1 OR More fields

TEXT(City__c)+", "+ TEXT(State__c) +", "+TEXT( Country__c )


TEXT(City__c)&", "& TEXT(State__c) &", "&TEXT( Country__c )

IF( TEXT(City__c) NOT NULL


TEXT(City__c)+", "+
IF ( TEXT(State__c) NOT NULL
TEXT(State__c) +", "+

IF( TEXT( Country__c ) NOT NULL


TEXT( Country__c )
null - ISNULL() - TRUE
'' - ISBLANK() - TRUE

IF(
Would_you_recommend__c > 8,
IMAGE("/img/samples/light_green.gif", "GREEN"),
IF(
AND(
Would_you_recommend__c > 6,
Would_you_recommend__c < 9
),
IMAGE("/img/samples/light_yellow.gif", "YELLOW"),
IMAGE("/img/samples/light_red.gif", 'RED' )
)
)

CASE( Priority,
"Low", IMAGE("/img/samples/stars_100.gif", "1 Star"),
"Medium",IMAGE("/img/samples/stars_300.gif", "3 Star"),
"High",IMAGE("/img/samples/stars_500.gif", "5 Star"),
"")

IF (
CASE(
Status ,
"Open",1,
"Waiting for approval",1,
0
)=1,
IF(
SLA_Date__c =
TODAY(),IMAGE("/img/samples/flag_yellow.gif","Yellow"),
IF(
SLA_Date__c <
TODAY(),IMAGE("/img/samples/flag_red.gif","Red"),
IF(
SLA_Date__c >
TODAY(),IMAGE("/img/samples/flag_green.gif","Green"),
"")
)
)
,
IF(
ISPICKVAL( Status , "Closed"),
IF(
Close_date_complaint__c = SLA_Date__c ,
IMAGE("/img/samples/flag_yellow.gif","Yellow"),
IF(
Close_date_complaint__c < SLA_Date__c,
IMAGE("/img/samples/flag_red.gif","Red"),
IF(
Close_date_complaint__c > SLA_Date__c,
IMAGE("/img/samples/flag_green.gif","Green"),
"")
)
),
IMAGE("/img/samples/flag_green.gif","Green")
)
)
IF(
TEXT( Priority ) == 'Low',
IMAGE("/img/samples/light_green.gif", "GREEN"),
IF(
TEXT( Priority ) == 'Medium',
IMAGE("/img/samples/light_yellow.gif", "YELLOW"),
IF(
TEXT( Priority ) == 'High',
IMAGE("/img/samples/light_red.gif", 'RED' ),
IMAGE("/img/samples/light_red.gif", 'RED' )
)
)
)

○ City, State, Country


○ Picklist field in Formula
○ Number field in formula
○ https://help.salesforce.com/s/articleView?id=sf.formula_field_li
mits.htm&type=5
● Application in Salesforce
● Assignment

Relationships in Salesforce

[https://www.pantherschools.com/types-of-relationship-in-salesforce/ ]

● Lookup
○ Used to connect two objects with each other in Parent to Child
fashion
○ Lookup field will always be on the Child Object
○ One parent can have multiple child
○ Parent field on child object will always be optional
○ If a Parent gets deleted, the child record will still remain inside
Salesforce. Only the lookup field will get cleared on Child
Record.
○ If we restore the parent record from Recycle Bin then the lookup
field on the Child Object re-populated with the Parent Record.
● Master-Details
○ Used to connect two objects with each other in Parent to Child
fashion
○ Master-Detail field will always be on the Child Object
○ One parent can have multiple child
○ Customer
■ Order
■ Invoice
■ Payment
■ Refund
○ Parent field will always be required on the child object. i.e.
child can not exist without parent
■ Invoice
■ Invoice Line Item
○ If Parent gets deleted child record will also get deleted from
Salesforce
○ If we restore the parent record from Recycle Bin then the child
record will also get restored
○ In case of Master details, the child object/record will not have
any owner. Ownership will always be decided from the parent
record/object.
○ Questions to ask for Master-Details
■ Invoice
■ Invoice Line Item
■ Can a child exist without a master? - YES [ Lookup
]
■ Can Child have their own Owner? - YES [ Lookup ]
■ Do we require a roll-up summary field on the
parent object? - YES [ Master-Detail ]
■ Can Rollup-Summary be done via code? -
YES [ Lookup ]

SR.N Lookup Master Details

1 Parent field is optional on Parent field is always requied on


child Object/Record Child Object/Record

2 Rollup Summary field is not Rollup Summary field is


available on lookup available on master-detail
relationship relationship on Parent Object

3 Child Records can have it's Ownership & Sharing will be


own Owner controlled by parent record
4 If a Parent gets deleted, the If Parent gets deleted child
child record will still remain record will also get deleted from
inside Salesforce. Only the Salesforce
lookup field will get cleared on
Child Record.

5 If we restore the parent record If we restore the parent record


from Recycle Bin then the from Recycle Bin then the child
lookup field on the Child record will also get restored
Object re-populated with the
Parent Record.

6 We can create up-to 38 We can create up-to 2 Master-


Lookup fields on the Child Details fields on child objects.
Object An object can be part of 2
master-detail relationships.

7 Standard Objects can be on Standard Objects will never be


the Child Side for Lookup on the Child Side for Master-
relationship Detail relationships.

8 Standard Objects can be on Standard Objects can be on the


the Parent Side for Lookup Parent Side for Master-Detail
relationship relationship

9 Can create lookup field on the Can Not create Master-Detail


child object if the record exists field on the child object if the
record exists

Questions

● Can we create the Master-Detail Relationship in the Object which


already has the record existing in Salesforce? -
○ Create a Lookup and change it to master after populating all
the values into lookup field
○ Take a backup for all existing records, delete the records,
create the M-D field, upload the record with master-details.
● Can we change the master-detail relationship to lookup?
○ Yes but only if there are no rollup-summary fields on the
master object.
○ After deleting the rollup-summary field on the master object.
● Can we change the lookup relationship to master-detail in Salesforce?
○ Only if the lookup field has a value populated.
● Can we have the Standard object as the child in case of Master-Detail
in Salesforce?
○ No
● Can we have the Lead Standard object as part of Master-Detail in
Salesforce?
○ No
● What is the relationship between Account & Contact?
○ Lookup
■ Child can be created without parent
■ If we delete parent, the child records will still be
available inside Salesforce
○ Master-Details
■ Child can not be created without a parent. Fail
■ If we delete parent, the child records will also get
deleted
■ Rollup Summary field is available on master-detail
relationship on Parent Object - Fail
■ Ownership & Sharing will be controlled by parent record -
Fail
○ Special kind of relationship that is managed by Salesforce -
Correct
● What is the relationship between Account & Opportunity?
○ Lookup with Cascade Delete - Correct
● What is the relationship between Account & Opportunity?
○ Lookup
■ Child can be created without parent
■ If we delete parent, the child records will still be
available inside Salesforce
○ Master-Detail
■ Child can not be created without a parent.
■ If we delete parent, the child records will also get
deleted
■ Rollup Summary field is available on master-detail
relationship on Parent Object
■ Ownership & Sharing will be controlled by parent record

Junction Object [ Many - Many Relationship ]

● A Junction object is a Custom object with 2 Master-Detail


Relationship
● A Junction object is an object with 2 Master-Detail Relationship
○ Parent field is always required on Child Object/Record
○ Rollup Summary field is available on master-detail relationship
on Parent Object
○ Ownership & Sharing will be controlled by parent record
○ If Parent gets deleted child record will also get deleted from
Salesforce
○ If we restore the parent record from Recycle Bin then the child
record will also get restored
○ We can create up-to 2 Master-Details fields on child objects.
An object can be part of 2 master-detail relationships.
○ Standard Objects will never be on the Child Side for Master-
Detail relationships.
○ Standard Objects can be on the Parent Side for Master-Detail
relationship
○ Can Not create Master-Detail field on the child object if the
record exists
● Student
○ Id, Name, Email, Phone
● Subject
○ Id, Name
● Student - Subject
○ Student
○ Subject

Questions

● Which master object the child object inherits permission from?


● Why are we choosing master detail?
● If I delete the Primary Relationship field on the Child Object what will
happen?
○ Secondary relationship will become primary
● What will happen if we restore the primary relationship deleted field
on the junction object?
○ Field will get stored with lookup relationship and value will get
populated
● If we delete any of the parent records what will happen?
● What are the standard junction objects available?
○ OpportunityLineItem [ Opportunity Product ]
■ Opportunity
■ Product
○ PriceBookEntry [ PriceBook Entry ]
■ PriceBook
■ Product
○ OrderItem [ Order Product]
■ Order
■ Product
Self Lookup [ Lookup with Same Object ]

○ Used to Create the Hierarchy Relationship


○ Amazon.com
■ Amazon.air
■ Amazon private airport - India

Question

● Why lookup not master-detail?

Hierarchy Lookup

● Special Lookup field


○ User

External Objects in Salesforce

● API Name Ends with __x


● External Database that can be accessed by Salesforce
○ Public External Objects
○ Secure External Objects
■ ODATA 4.0 [ Open Authentication ]
■ ODATA 2.0 [ Open Authentication ]
○ https://trailhead.salesforce.com/content/learn/projects/quickst
art-lightning-connect/quickstart-lightning-connect2
○ https://www.youtube.com/watch?v=n-XyCNeyr3U
○ https://trailhead.salesforce.com/users/chaddavies/trailmixes/ex
ternal-objects
● https://orderdb.herokuapp.com/orders.svc
External Lookup in Salesforce

● Is used to related two External Objects


● Also Used to related any Standard or Custom Object with External
Objects
● In case of Standard or Custom Object the External Lookup field will
be on Standard or Custom Object Object only
● Order - ORD-34545 [ Master ]
○ Products [ Laptop, Mobile, Charger, book, Tablet ]
■ Order Item [ Order Product ] - Detail/Child

Indirect Lookup in Salesforce

● is used to relate any Standard or Custom Object with External


Objects
○ Parent Objects/Record
● Parent Object requirement
■ Unique Field should be present

Lookup Filters in Salesforce

○ Employee Country == Company Country AND Company Active


== True

Cross Object Formula fields in Salesforce

Rollup Summary fields in Salesforce

● Available on Parent Object in case of Master-Detail Relationship


○ Count
○ Min
○ Max
○ Sum
● Sum of Amount
○ Created DATE = LAST Week
● https://help.salesforce.com/s/articleView?id=sf.filter_dates_relative.h
tm&type=5
Schema Builder

● Display relation between objects


● Can modify the custom object & custom field information
● Can not modify standard object information
● Can create new objects and new fields inside custom or standard
object

Validation Rules in Salesforce

● Phone No validation
● Email Validation
● Required field validation
● Zip Code Validation
● Name Can not Contain “Test” [ Test Employee (Proper Case) ]
○ If name contains test/Test/TEST/teST/ tEsT
■ test employee [ lower case ] - CONTAINS(Name, "test")
■ TEST EMPLOYEE [ Upper Case ] - CONTAINS(Name,
"TEST")
● Employee Name Can not Contains the keywords “test & employee”
○ Contains Test ( OR, II )
○ Contains Employee
■ CONTAINS(LOWER(Name), "test") ||
CONTAINS(LOWER(Name), "employee")

OR(
CONTAINS(LOWER(Name), "test"),
CONTAINS(LOWER(Name), "employee"),
CONTAINS(LOWER(Name), "abc"),
CONTAINS(LOWER(Name), "xyz")
)

● Employee Name Can not Contains the keywords “test & employee”
only when we are creating new record
○ A new Employee Record is being created [ New Record ] -
ISNEW()
■ AND , &&
○ The Name field contains either ( test OR employee )

AND(
IsNEW(),
OR(
CONTAINS(LOWER(Name), "test"),
CONTAINS(LOWER(Name), "employee"),
CONTAINS(LOWER(Name), "abc"),
CONTAINS(LOWER(Name), "xyz")
)
)

● Employee Name Can not Contains the keywords “test & employee”
only when we are updating the existing records

AND(
IsNEW() == false,
OR(
CONTAINS(LOWER(Name), "test"),
CONTAINS(LOWER(Name), "employee"),
CONTAINS(LOWER(Name), "abc"),
CONTAINS(LOWER(Name), "xyz")
)
)

AND(
NOT IsNEW(),
OR(
CONTAINS(LOWER(Name), "test"),
CONTAINS(LOWER(Name), "employee"),
CONTAINS(LOWER(Name), "abc"),
CONTAINS(LOWER(Name), "xyz")
)
)

Assignments

● Contact Account, First Name & Email should not be blank while
creating the record
● Contact related account industry must be Education for creating any
contact record.
● Opportunity stage must be selected.
● Opportunity amount must be greater than zero.
● Opportunity close date must be greater than or equal to today's date.
● Account Shipping Address Can not be blank
● Ensure that the opportunity close date is within 90 days of the
opportunity creation date.
● While Changing the Opportunity Stage to Closed Won, make sure
amount is greater than 0

Validation Rule Continue

● Field Required
○ ISBLANK(FirstName) || ISBLANK(AccountId)
● ISPICKVAL
○ Works with Picklist field
○ TEXT(StageName) == 'Qualification' && Amount <=15000
○ ISPICKVAL(StageName, "Qualification") && Amount <=15000
■ Qualification OR
■ Needs Analysis OR
■ Value Proposition
○ AND Amount > 15000
○ ( ISPICKVAL(StageName, "Qualification") ||
ISPICKVAL(StageName, "Needs Analysis") ||
ISPICKVAL(StageName, "Value Proposition") ) && Amount
<=15000
● CASE
○ Text
○ Number
○ Picklist

( CASE( TEXT(StageName) , // Remote


"Qualification", 2,
"Needs Analysis", 3,
"Value Proposition", 4,
"Prospecting" , 1,
0 ) >= 1
) && Amount <=15000

● BLANKVALUE
● TODAY
● DATETIMEVALUE
○ Field with data type Date
○ Field with data type Date Time
● DATEVALUE
○ Field with data type Date
○ Field with data type Date Time
● ISCHANGED
○ ISCHANGED(fieldAPiName)
● PRIORVALUE
○ Returns the previous value for the field
○ PRIORVALUE(fieldApiName)
○ Used in case of update DML
● The Opportunity Stage can not be updated to Closed Won or Closed
Lost if the Previous Value of the Opportunity Stage is Prospecting
○ Check if Stage is Changed AND
○ ( Check if Stage is Changed to Closed Won OR Closed Lost )
AND
○ Check if the Previous value of Stage field is Prospecting AND

AND(
ISCHANGED( StageName ),
OR(
ISPICKVAL( StageName , "Closed Lost") ,
ISPICKVAL( StageName , "Closed Won")
),
TEXT(PRIORVALUE( StageName )) == "Prospecting"
)
● ISBLANK
● TRIM
● ISCLONE

Page Layout

● Record Type
● Default Record Type - [ Master ]

Compact Page Layout

● Highlight Panel
● Only 1 Primary Layout

List View

○ https://help.salesforce.com/s/articleView?id=sf.filter_dates_rel
ative.htm&type=5

Security Model in Salesforce

Profile

1. Collection of Permissions for the Users including


a. Object Access
b. Field Access
c. App Access
d. Tab access
e. Layout
f. Lighting Pages
g. Lighting Apps
h. Connected Apps
i. Apex Classes
j. VF Pages
k. Etc
2. Base Level Security for the Objects & Fields
a. Only 1 profile can be assigned to a Users

Permission Set

3. Permission Set is used to extend the Permission of a User that is


provided at Profile Level
4. Student__c Custom Object
a. Fee__c Custom Field
i. HOD - Read
ii. Dean - Read
iii. Admission Team - Edit/Read
iv. Director - Edit/Read
5. More than 1 Permission Set can be assigned to a Users

Permission Set group

1. Collection of Permission Sets for specific functionality


2. HOD - 10 Users ( Special Cases )
a. Teacher - profile
i. Subject
ii. Course
iii. Attendance
iv. Review
b. Training & Placements - Permission Set
i. Company
ii. Contact
c. Cultural Activities - Permission Set
i. Event
ii. Event Attendee
iii. Guests
iv. Participants
d. Lightning User - Permission Set
3. T&P, Cultural Head Group
4. https://help.salesforce.com/s/articleView?language=en_US&id=sf.per
m_set_groups.htm&type=5

Login IP Ranges

5. Profile Level
6. To Restrict the unauthorised login into Salesforce Org from an
unknown IP Address/Location.

Login History

7. Tells us the History of the User Login


8. Used for Audit Purpose
Login Hours

9. Profile Level
10. To restrict the User to Login into Salesforce from outside the
Company Working Hours
11. Audit Purpose

How the Login Flow Works when user is Login

Network Access

12. To Prevent the Verification code being sent while login from unknown
device, browser or IP Address

Activations

13. Stores all the IP Ranged and Browsers Clients to check when to send
the notification

Universal IP Range
Organisation Wide Defaults (OWD)

Base Level Security for Records

● Private - Most Restrictive


○ Only Record Owner Can read/edit/delete/change owner of the
record.
○ The user who is on the above in Role Hierarchy can perform the
access that is granted as profile level. For example, users
having Red & Edit Permission for Student Objects can read and
edit the record. If the user has delete access then the user can
delete the record as well.
● Public Read Only -
○ Only the Record owner can Edit/Delete/Change Owner of the
Record.
○ The user who is on the above in Role Hierarchy can perform
the access that is granted as profile level. For example, users
having Red & Edit Permission for Student Objects can read and
edit the record. If the user has delete access then the user can
delete the record as well.
○ Any user that is having min read permission for that object will
be able to access the record.
● Public Read/Write -
○ Only the Record owner can Edit/Delete/Change Owner of the
Record.
○ The user who is on the above in Role Hierarchy can perform
the access that is granted as profile level. For example, users
having Red & Edit Permission for Student Objects can read and
edit the record. If the user has delete access then the user can
delete the record as well.
○ Any user that is having min read permission for that object will
be able to access the record. If the User has Edit access then
the user will be able to modify the record as well.
○ The User having Read/Edit Permission at Object Level can not
Change the Record Owner if the user is not above in the Role
Hierarchy.
● Controlled By Parent -
○ Will be available for the child/detail object in case of Master-
Detail Relationship

● Public Read/Write/Transfer
○ Case
○ Lead
○ The User having Read/Edit Permission at Object Level can
Change the Record Owner as Well.

Questions to Ask

● Is there a possibility that all the users need View Access


○ If yes - Public Read Only
■ Employees
● Is there a need that all the users can Read/Edit the record as well
○ If yes - Public Read/Write
● If the answer is no for the above questions then
○ Private

Group ( Public Group )

Record Sharing purpose

● Collection of Users, Roles, Public Groups and Roles & Subordinates

Queues in Salesforce

● Can be the record owner - Record Sharing


○ Finance Team - 5 Users ( queue )
■ Invoice for Approval - Record Owner is Queue
○ Development Team - 55 Users
■ New features - Queue is the Record Owner
○ Support Team - 67 Users
■ Customer Support Request - Queue is the Record Owner
○ IT & Networking team - 23 Users
■ Networking issues
■ Login issue
■ Laptop issue
■ Software patching ( upgrades )
Queues vs Group

Sr. No Queue Group

1 Is used to assign/own the Is used to share the records to


records to a group of users, the group of users, roles or
roles or groups. groups.

2 Can be the owner of the record Can not be the owner of the
records

3 Users who are part of the Users who are part of the Group
Queue can change the record can not change the record
owner. owner if they are not the record
owner.

4 Queue can be created for any Groups can be created and used
Custom objects and for some across any objects in Salesforce.
of the Standard objects like -
Case and Lead

5 The members of a group can The members of a group can be


be either users, public groups, either users, public groups, roles
roles or all of them. or all of them.

6 Groups can be part of the Queue can not be part of a


Queue. Group.

● Record Sharing is possible only when


○ OWD is either for Default Internal Access or Default External
Access
■ Public Read Only
● Permission for Record Edit
■ Private
● Permission for Record Edit or Read
■ In the Record Details Page - Sharing Button will be
enabled.
● Manual Sharing
○ In the Record Details Page - Sharing Button will be enabled.
Behind the Scene of Sharing
Sharing Rules in Salesforce

● Sharing Rules
○ Used for sharing the record with the users, roles or group of
users ( public group )
● Types of Sharing Rules
○ Criteria Based Rules
■ Executes based on certain criteria
● Owner Based Rules
○ Bases on Record Owners
■ For Example, Record created by CEO needs to be shared
with COO, CFO
■ Record created by External Users need to shared with
Certain Internal Users

● Guest user access, based on criteria


○ Enabled only if there is Experience Cloud Enabled
Questions related to Sharing Rules

● Can we share the record to a user using Sharing Rules?


○ Yes & No
○ No - When the question can we directly share the record with
user without using Groups or Roles
○ Yes - With the help of a public Group.
● When can we create Sharing on any Object?
○ OWD is either private or public readonly.
● Let’s say that you are working for a company XYZ. They have a
requirement they want to share the Lead Record whose company
field is having some value with the 20 Different Roles & 7 Different
Public Groups. Can we do this using a single sharing rule?
○ Yes - Create a new public group and all the required roles and
public groups inside that new group and then share the record
with this new group.
● Can we share the record using the Profile or Permission Set in
Salesforce?
○ Yes
■ View All or Modify All - Object Level
■ View All Data or Modify All Data - Profile/Permission Set
● PermissionSetAssignment
○ Junction Object
■ User
■ Permission Set
■ Permission Set Group

Share Records Using Teams in Salesforce

Teams - Used to Share the Record

● Teams in Salesforce
○ Case Team -
■ SR Number
● Payment Transfer
○ Target Bank -
○ Source Bank -
○ Transaction Number - Unique Id
○ Date -
○ Status - they will check from the bank
○ Amount - 894 Rs
○ Settlement Time - 3 Days ( approx. )
■ Will add the user as Team
● Read
● Edit
■ Group of Users
○ Account Team
■ Group of Users
● Account Access
● Contact Access
● Case Access
● Opportunity Access
■ PantherSchools - Company
● Amit Singh - John Doe
● Aman Tiwari - Barbra Levi
○ Will add a team under account
○ Opportunity Team
■ Group of Users
● Solar Panel Install
○ Solar Plant - Not My expertise
■ Will add the user as a Team
○ Home - My Expertise

Lead Process

● Marketing Campaign
○ Lead Generate
● Ads
○ Lead Generate
● Referral
○ Lead Generate
● Delhi - Mumbai
○ Option 1
○ Option 2
○ Option 3
● Used to Create the Record Type for the Lead Object
● Controls the Picklist values for the Lead Status Object

● Sales Process
○ Used to Create the Record Type for the Opportunity Object
○ Controls the Picklist values for the Opportunity Stage Object

● Support Process
○ Used to Create the Record Type for the Case Object
○ Controls the Picklist values for the Case Status Object
Record Type in Salesforce

● Used to Control the Different Picklist values


● We can show different fields to different record types in the detail
page with the help of page layout

Scenario - If record type is not visible to the User

● Record Type is Not Active


● Record Type is Active but not Assigned to User Profile/Permission Set
Lightning App Builder

Lightning App Pages

● Invoice Management
● Expense Management

Lightning Home Page


Feed Tracking in Salesforce

● Enabled at Object Level


● Chatter
○ If enabled for any field, then any changes into that field will be
posted to the chatter.
■ You can select up to 20 fields.
■ Account Name

● Field History Tracking


○ You can select up to 20 fields.
Dynamic Forms in Salesforce

● Detail page can be Upgraded


○ Fields - Read Only, Required
○ Fields - Dynamic Filters
■ Show/Hide
○ Parent Object Fields can be added into child object detail page
■ In the current release ( Sandbox )
○ Page Layouts changes will be managed from the Lightning App
builder Page.
○ Get rid of creating multiple page layouts
● Dynamic Related Lists
○ Related List - Lightning App Builder
○ Related List Columns
● Object Specific Action(s)
○ Quick Action(s)
■ Create a button and add that button on Account Details
Page
■ Upon clicking on that button, it should open the modal to
create the contact record with the following fields
● First Name
● Last Name
● Title
● Email
● Account Name - Pre Populated with the Account
Name
○ Requirement can be achieved via
■ Quick Action - forget -
■ Screenflow -
■ Lighting Web Component -
■ Screenflow + Lighting Web Component
-
○ Steps to Test Quick Action
■ Create Quick Action on the Object
Level - Done
■ Add the Quick Action to Page Layout -
Done
■ Test it - Done
■ When any Contact is created, the Contact Phone and Fax
should be updated with the Phone & Fax of related
Account
● Requirement can be achieved via
○ Quick Action - forget
■ Predefined field values ( Auto Populate
)
○ Record Trigger Flow
○ Apex Trigger

Quick Actions in Salesforce

Global Actions

● + ( sign )
● Can not be associated with any parent record by default.
● Global actions need to be added into the Publisher Layouts to be
visible.

Dynamic Actions

● Document Status - Picklist


○ Pending
○ In Progress
○ Submitted
● Document Requested - Checkbox
● Document Verified - Checkbox
● Object Specific Quick Action
○ Request Document
■ Update Record
○ Verify Document
■ Update Record
● Requirement - You have the above two quick action on Student
Object
○ If the value of Document status field is either blank or Pending
then show “Request Document” and hide “Verify Document”
button
○ If the value of Document status field is In Progress then hide
“Request Document” and show “Verify Document” button
○ If the value of the Document status field is either Submitted or
Verified then hide the “Request Document” and “Verify
Document” button.
● Answer
○ Before Dynamic Action
■ Combination of Record Types + Layouts
○ After Dynamic Action
■ Dynamic action
Duplicate Management in Salesforce

● Amit Singh - [email protected] - Existing Contact


● Amit Singh - [email protected] ( Duplicate Contact )
● Matching Rules
○ Defines the Conditions based on the fields the record is
duplicate.
○ Matching Methods
■ Exact
■ Fuzzy - Logic
● Based on different field
● Scores
○ 100% - Exact ( Best Match )
○ Avg Match
○ Min ( Worst ) Match
○ Match Blank Fields
■ 2 Records ( Suppose ) and Match Blank Fields is set to
true
● If Name field on the both records is blank then it’s
a match
● If Name field on one record is populated and on
the other it is blank then it’s not a match
● Duplicate Rules
○ Used by Matching Rules


○ Student Object OWD is private
■ User A has created the Student record Amit Singh -
[email protected]
■ User B is having access to the above student.
■ User B is trying to create the record with the same value
Amit Singh - [email protected].
Limitations of Duplicate Rules

● Only a few Standard Objects can be used


○ Account
○ Lead
○ Contact
○ Individual
○ Enrollment
● All the Custom Objects can be used
● Duplicate rules will only work if there is the change/modification in
the fields that are in being used in the Matching Rules.
● Duplicate rules does not work if the record is being restored from
Recycle Bin
● Requirement for duplicate management
○ Duplicate Rules
○ AppExchange Application
■ Functionalities
■ Cost ( $ )
○ Custom Development
■ Cost ( $ )
■ Man Hours
■ Support
● Paths
○ The Object must need to have at least 1 picklist field
○ Every Record Type can have it’s own Path for different picklist
field
Email Templates in Salesforce

Email Templates ( Used for Communication )

● Lightning Email Template


○ Drag & Drop Builder ( Did not worked )
■ Access Drag-and-Drop Content Builder
● Will not work - Existing Email Template

Subject: Namaste 🙏(नमस्ते) - Welcome to [Your Institution Name]! 🎓

Dear {{{Student__c.Name}}},

Namaste 🙏(नमस्ते) - Welcome to PantherSchools 🎉 We are thrilled to

have you join our educational community and embark on a journey of

knowledge and growth.

Your Details are given below:

● Student ID: {{{Student__c.StudentID__c}}}


● Program/Class: {{{Student__c.Department__c}}}
● Start Date: 07th Aug 2024

Key links are given below:

● Student Portal: Access your personalised student portal here, where


you can view your course schedule, grades, and important
announcements.
● Orientation Session: Join our upcoming orientation session on 07th
Aug 2024. We'll provide essential information about the academic
year, campus facilities, and answer any questions you may have.

Important Contacts:

● For academic queries, contact +91-978638767533.


● For technical support, reach out to +91-978638767533.

Best Regards,

{{{Sender.Name}}}

Email Communication

● Classic
○ Text ( normal email template )

An Opportunity is assigned for approval.

<b>Name -</b> {!Opportunity.Name}


<strong>Amount -</strong> {!Opportunity.Amount}
Stage - {!Opportunity.StageName}
Close Date - {!Opportunity.CloseDate}
Link - {!Opportunity.Link}

Thanks & Regards,


Amit Singh
{!Organization.Name}
○ HTML without letterhead
■ Images
■ Links
■ Colouring of text
■ Formatting of text

Dear {!Student__c.Name}, <br/><br/>

Your documents are awaiting submission! Please do the


needful.<br/><br/>

<strong>College Email -</strong>


{!Student__c.CollegeEmail__c}<br/>
<strong>Phone - </strong> {!Student__c.Phone__c}<br/>
<strong>Student Id - </strong>{!Student__c.StudentID__c}<br/>
<strong>Portal Link - </strong>{!Student__c.Link}<br/><br/><br/>

Thanks & Regards,<br/>


Amit Singh<br/>
{!Organization.Name}

○ HTML With letterhead


■ On top of email template ( letterhead ) - Company
branding
■ Images
■ Links
■ Colouring of text
■ Formatting of text
○ VF Page
■ Coding Required
<messaging:emailTemplate subject="Opportunity {!relatedTo.Name}
Requires Approval" recipientType="Contact"
relatedToType="Opportunity">

<messaging:htmlEmailBody >
<html>
<body>
<p>Dear {!recipient.Name},</p>
<p>An Opportunity requires your approval. Please
review the details below and take action:</p>
<p>
<b>Opportunity Name:</b>
{!relatedTo.Name}<br/>
<b>Account Name:</b>
{!relatedTo.Account.Name}<br/>
<b>Amount:</b> {!relatedTo.Amount}<br/>
<b>Close Date:</b> {!relatedTo.CloseDate}<br/>
<b>Stage:</b> {!relatedTo.StageName}<br/>
</p>
<p>
To review the full details and take action,
please click on the following link:<br/>

</p>
<p>Thank you for your attention to this
matter.</p>
<p>Sincerely,<br/>
Your Salesforce Team</p>
</body>
</html>
</messaging:htmlEmailBody>
<messaging:attachment renderAs="PDF"
filename="YourProducts.pdf">
<html>
<body>
<p>You can display your {!relatedTo.name}
Products as a PDF</p>
<table border="0" >
<tr>
<th>Name</th><th> Description </th>
<th> Quantity </th><th>ListPrice</th>
</tr>
<apex:repeat var="cx"
value="{!relatedTo.OpportunityLineItems}">
<tr>
<td><a href =
"https://pantherschools-c-dev-
ed.develop.lightning.force.com/{!cx.id}">{!cx.Name}</a></td>
<td>{!cx.Description}</td>
<td>{!cx.Quantity}</td>
<td>{!cx.UnitPrice}</td>
</tr>
</apex:repeat>
</table>
</body>
</html>
</messaging:attachment>

</messaging:emailTemplate>
Automation Processes in Salesforce

Screen Flows in Salesforce

Input Components in Salesforce Flows

● Text, Name, Title


○ Text
● Picklist
● Lookup
● Radio
Screen Flow Scenarios

Create a flow that will take the input from the User and will create a new
case. This screen flow will sit inside the Contact Record Page so whenever
the case is being created it should get created under that contact only and
the user can not change the contact from the flow. Below are the fields
that should be there in the Screen flow while creating the Case

1. Subject
2. Description
3. Priority
4. Status - Default to New
5. Case Reason

● Fault Path
● Success Message with Link

Screen Flow Scenario #2

Your company PantherSchools is looking for a solution which will take the
Case # as input and then If the case is present in the System Display the
following details of the case and if case is not present display the error
message “Case Not Found”.

Note:- Store the Error Message in a custom Label and use it.

● Edit Record
● Get Record
● Delete Record
Screenflow

Account Create → Name, Industry

Contact Create → First Name, LastName, Email, Phone

Opportunity Create → Name, Amount, Stage, Type, Close Date, Description

Account Create → Contact Create → Opportunity Create → Opportunity


Contact Role →

Rollback the Records if there is any error while creating any other object.
Record Triggered Flows

Record Triggered flows are the automation process which executes


automatically, when there is any DML happens in any object and these
types of triggers do not require any User Intervention.

● Create
● Update
● Delete

Global Variable -

→ $Record [ All Fields ]

→ $Record__Prior [ All Fields ] previous state in case of Update

Name → Google.com from Alphabets Inc

$Record.Name → Google.com

$Record__Prior.Name → Alphabets Inc

$Record.Industry ← Education

$Record.Description ← Updated From Lightning Flow

[ Assignment ]

Whenever an account is created do a Chatter Post on the account detail


page and below the message.

Account {!$Record.Name} was created on {!$Record.CreatedDate} by


{!$Record.CreatedBy.FirstName} {!$Record.CreatedBy.LastName}
Types of Record Trigger Flows

Trigger Types of Record triggered Flows

● After Save Flow


● Before Save Flow
● Async
● Record Trigger Orchestration
1. Create a Record Triggered flow so that when a lead is created then
create a follow up tak for that lead with the following information.
a. Subject - Followup with the lead - {!$Record.FirstName}
{!$Record.LastName}
b. Description/Comments - A new lead- {!$Record.FirstName}
{!$Record.LastName} has been created. Please Follow Up with
the lead and capture the interest.
c. Due Date - 3 Days from today
d. Name(Who) - Lead.Id
e. Status → New/Not Started
f. Priority → High

A new Lead {!$Record.FirstName} {!$Record.LastName} has been assigned


to You.

Dear User,

A new Lead {!$Record.FirstName} {!$Record.LastName} has been assigned


to You. Here are the more details about the Lead

Name - {!$Record.FirstName} {!$Record.LastName}

Email - {!$Record.Email}

Company - {!$Record.Company}

Industry - {!$Record.Industry}

Status - {!$Record.Status}

Regards,
PantherSchools

Object - Opportunity

Event - Update

Trigger Type - After Save Flow

When to Run the Flow for Updated Records

When to Run the Flow for Updated Records


● Every time a record is updated and meets the condition requirements
○ Existing Value for Stage Name → Prospecting / Closed Lost
○ Changed the Description Field
○ Changed the other fields except Stage Name
● Only when a record is updated to meet the condition requirements
○ Stage Name → Prospecting / Closed Lost
■ Changed the Description Field

New Value != Closed Won ( $Record )

Old Value == Closed Won ( $Record__Prior )


Email Alerts in Salesforce

● Email Template is must


○ Student [ Done ]
● Workflow Email Alert that is using using Email Template for the
Object
● User Email Alert in Flow
○ $Record.Id

Lead/Contact

Activity → Task/Event

Who(WhoId)

WhatId is not available in case of Lead

→ Send Email

● Email Template Id

Assignments -

● DataTable
● Reactive
● Validation
● Dynamic Show/Hide
● Flow Orchestration

Flow Session Error handling

● Error Handling Using Flows


○ Create a Custom object [ Error log ] with the following fields
■ Name ( standard field )
■ Flow Name -
■ Error Title -
■ Error Content
■ Flow Node
■ Flow Type
● Screen Flow
● Record Triggered Flow
● Auto Launched Flow
● Platform Event Trigger
■ Component Type
● Flow
● Apex Trigger
● Apex Class
● Batch Apex
● LWC
● Aura
■ Affected User - Lookup User
■ Severity
● Error
● Warning
● Success
● Information
Auto Launched Flows

● Auto-Launched Flows ( No - Trigger )


○ No Screens
○ Increase Reusability
○ Remove Duplicate Logic
○ Helps in Developing Complex Flows with multiple Subflow
● Auto-Launched Flows ( No - Trigger ) Can be Used
○ Screen flows
○ Record Trigger Flow
● Every Auto-Lauched flow is a subflow

● Subflown with Screens [ Screenflow ]


○ Screens
○ Increase Reusability
○ Remove Duplicate Logic
○ Helps in Developing Complex Flows with multiple Subflow
● Subflow can be used
○ Screen flows
○ Record Trigger Flow

Subflow - An Screenflow can itself act as subflow

Auto-Launched Flow ( No - Trigger ) - Referred by Flow, Apex, Rest API


Asynchronous Flows

● Time Based (Asynchronous) Flows - Record Triggered Flow


○ Assignment Rules
■ Lead
■ Case

● Scheduled Flows
● Callouts From Flows
○ NA
Approval Processes

● Email Templates
○ Approval Assigned →
○ Approval Approved → Record Owner
○ Approval Reject → Record Owner
Simple Approval Process

○ Prerequisite
■ Discount Field on Opportunity
■ Discount Status Picklist on Opportunity
■ Discount Approval

Multi-Step Approval Process

Discount Approval
1. Discount < 2 % - User can Self Approve - Step Not Needed
2. Discount >=2 % && < 4 - Manager Approval Needed Approval is
needed
a. Done
3. Discount >=4 && < 6% - Manager & Sr. Manager Approval is needed
a. Manager Approval Pending
b. Manager Approved
c. Done
4. Discount >=6 && < 8 % - Manager & Sr. Manager & VP Approval is
needed
a.
5. Discount >= 8 % - Manager, Sr. Manager, VP Approval, CEO is needed
→ Approve From Email

→ Assignment - Calling Approval Process From Flow


Lead Management
Web-to-Lead

<!-- ------------------------------------------------------------
---------- -->
<!-- NOTE: Please add the following <META> element to your page
<HEAD>. -->
<!-- If necessary, please modify the charset parameter to specify
the -->
<!-- character set of your HTML page.
-->

<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-


8">

<!-- ------------------------------------------------------------
---------- -->
<!-- NOTE: Please add the following <FORM> element to your page.
-->
<!-- ------------------------------------------------------------
---------- -->

<form
action="https://webto.salesforce.com/servlet/servlet.WebToLead?enc
oding=UTF-8&orgId=00D5j00000DP3HG" method="POST">

<input type=hidden name="oid" value="00D5j00000DP3HG">


<input type=hidden name="retURL"
value="https://academy.pantherschools.com/course/">

<!-- ------------------------------------------------------------
---------- -->
<!-- NOTE: These fields are optional debugging elements. Please
uncomment -->
<!-- these lines if you wish to test in debug mode.
-->
<!-- <input type="hidden" name="debug" value=1>
-->
<!-- <input type="hidden" name="debugEmail"
-->
<!-- value="[email protected]">
-->
<!-- ------------------------------------------------------------
---------- -->
<label for="first_name">First Name</label><input id="first_name"
maxlength="40" name="first_name" size="20" type="text" /><br>

<label for="last_name">Last Name</label><input id="last_name"


maxlength="80" name="last_name" size="20" type="text" /><br>

<label for="email">Email</label><input id="email" maxlength="80"


name="email" size="20" type="text" /><br>

<label for="company">Company</label><input id="company"


maxlength="40" name="company" size="20" type="text" /><br>

<label for="city">City</label><input id="city" maxlength="40"


name="city" size="20" type="text" /><br>

<label for="state">State/Province</label><input id="state"


maxlength="20" name="state" size="20" type="text" /><br>

<input type="submit" name="submit">


</form>
Lead Assignment Rules

Lead assignment rules are used to assign the leads to the Users or Queues
based on the Certain Criterias.

Always develop the error proof Assignment Rules by adding a Last Entry in
the Rule with no criteria that will assign the Leads to Fallback Queue.

Note:- There will be only 1 rule Active at a time and one rule can have
multiple entries for the same Rule.
Rule 1: Geography-Based Assignment

Criteria:

Country equals "United States"

Assignment:

Assign to the "US Sales Queue"

Rule 2: Industry-Based Assignment

Criteria:

Industry equals "Technology"

Assignment:

Assign to the "Technology Sales Queue"

Rule 3: Large Deal Assignment

Criteria:

Deal size greater than $100,000


Assignment:

Assign to the "Enterprise Sales Queue"

Rule 4: Round-Robin Assignment

Criteria:

No specific criteria

Assignment:

Assign leads in a round-robin fashion among the members of the "Sales


Round Robin Queue."

3 → Sales Rep

1 → Lead → 1st Sales Rep

2 → Lead → 2nd Sales Rep

3 → Lead → 3rd Sales Rep

4th → Lead → 1st Sales Rep

5th → Lead → 2nd Sales Rep

Rule 5: Hot Leads Assignment

Criteria:

Lead Score greater than 80

Assignment:

Assign to the "Priority Sales Queue"

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Lead Assignment Notification</title>
<style>
body {
font-family: 'Arial', sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 20px auto;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.header {
background-color: #3498db;
color: #fff;
padding: 20px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.content {
padding: 20px;
}
.footer {
background-color: #ecf0f1;
padding: 10px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
.button {
display: inline-block;
padding: 10px 20px;
font-size: 16px;
color: #fff;
text-decoration: none;
background-color: #3498db;
border-radius: 5px;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h2>Lead Assignment Notification</h2>
</div>
<div class="content">
<p>Hello {!Lead.OwnerFullName},</p>
<p>Congratulations! A new lead has been assigned to you.
Please review the details below:</p>
<ul>
<li><strong>Lead Name:</strong> {!Lead.Name}</li>
<li><strong>Email:</strong> {!Lead.Email}</li>
<li><strong>Phone:</strong> {!Lead.Phone}</li>
<!-- Add more lead details as needed -->
</ul>
<p>Take action now and start nurturing this lead to
conversion. Thank you for your prompt attention!</p>
</div>
<div class="footer">
<p>Best Regards,<br>Your Salesforce Team</p>
<a href="{!Lead.Link}" class="button">View in Salesforce</a>
</div>
</div>
</body>
</html>
Lead Auto Response Rules ( Acknowledge )

Lead Auto-Response Rules in Salesforce are mechanisms designed to


automate the process of responding to leads when they are created. These
rules enable organisations to promptly acknowledge and engage with
potential customers who express interest in their products or services. The
primary goal is to ensure that leads receive timely and personalised
communication.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Thank You for Your Interest!</title>
<style>
body {
font-family: 'Arial', sans-serif;
background-color: #f8f8f8;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 20px auto;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.header {
background-color: #3498db;
color: #fff;
padding: 20px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
text-align: center;
}
.content {
padding: 20px;
text-align: left;
}
.footer {
background-color: #ecf0f1;
padding: 10px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
text-align: center;
}
.button {
display: inline-block;
padding: 10px 20px;
font-size: 16px;
color: #fff;
text-decoration: none;
background-color: #3498db;
border-radius: 5px;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h2>Thank You for Your Interest!</h2>
</div>
<div class="content">
<p>Dear {!Lead.Name},</p>
<p>Thank you for expressing interest in our
products/services. We appreciate the opportunity to connect with
you. A representative will review your information shortly.</p>
<p>In the meantime, feel free to explore our website for
more information about what we offer:</p>
<p><a href="https://www.pantherschools.com/"
class="button">Visit Our Website</a></p>
<p>Should you have any immediate questions, please don't
hesitate to contact us at <a
href="mailto:[email protected]">engineeringkipathsh
[email protected]</a> or <a href="tel:+91-1290876563">+91-
1290876563</a> </p>
</div>
<div class="footer">
<p>Best Regards,<br>PantherSchools Team</p>
</div>
</div>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Thank You for Your High-Value Interest!</title>
<style>
body {
font-family: 'Arial', sans-serif;
background-color: #f8f8f8;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 20px auto;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.header {
background-color: #4caf50;
color: #fff;
padding: 20px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
text-align: center;
}
.content {
padding: 20px;
text-align: left;
}
.footer {
background-color: #ecf0f1;
padding: 10px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
text-align: center;
}
.button {
display: inline-block;
padding: 10px 20px;
font-size: 16px;
color: #fff;
text-decoration: none;
background-color: #4caf50;
border-radius: 5px;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h2>Thank You for Your High-Value Interest!</h2>
</div>
<div class="content">
<p>Dear {!Lead.Name},</p>
<p>We are thrilled to learn about your interest in our
products/services, especially considering the substantial amount
you are considering--exceeding $100,000.</p>
<p>Your potential deal is important to us, and we are
committed to providing the highest level of service to meet your
needs. A dedicated representative will be in touch with you
shortly to discuss the details and ensure a seamless
experience.</p>
<p>In the meantime, feel free to explore more about our
offerings on our website:</p>
<p> <a href="https://www.pantherschools.com/"
class="button">Explore Our Offerings</a> </p>
</div>
<div class="footer">
<p>Best Regards,<br>PantherSchools Team</p>
<a href="https://academy.pantherschools.com/"
class="button">Explore Our Offerings</a>
</div>
</div>
</body>
</html>
Lead Conversion Process

Lead Field Mapping

https://help.salesforce.com/s/articleView?id=sf.lead_conversion_mapping.ht
m&type=5

Lead Field → Data Type that must match with the data type of
Contact/Account/Opportunity Fields

Picklist → Picklist/Text

Number → Number

Boolean → Boolean

Currency → Currency
Standard Field Mapping in a customised way

Lead ( Record Type ) → International leads → International leads

Lead → Custom Field → Formula (Text) → RecordType.Name /


RecordType/DeveloperName [ Not added in UI ]

Mapping → Opportunity → Custom Field [Not Added in UI] → Text → Lead


(Record Type Formula )

Flow → Opportunity is Created AND Custom Field is not Null → Update


Record Type

Lead Record Type Mapping [ Custom Metadata / Custom Setting ]


Scenario of Existing Record Conversion

1. Lead → Ms Kristen Akin


2. Lead → Company Name → Aethna Home Products
a. Already Existing Account → Aethna Home Products
b. Contact → Name → Email → Phone → Account Name ( Company
Name )
i. Existing Contact
3. Contact → New
4. Opportunity → New
5. Account - Existing

Case Management

Web-to-Case

<!-- ------------------------------------------------------------
---------- -->
<!-- NOTE: Please add the following <META> element to your page
<HEAD>. -->
<!-- If necessary, please modify the charset parameter to specify
the -->
<!-- character set of your HTML page.
-->
<!-- ------------------------------------------------------------
---------- -->

<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-


8">

<!-- ------------------------------------------------------------
---------- -->
<!-- NOTE: Please add the following <FORM> element to your page.
-->
<!-- ------------------------------------------------------------
---------- -->

<form
action="https://webto.salesforce.com/servlet/servlet.WebToCase?enc
oding=UTF-8&orgId=00D5j00000DP3HG" method="POST">

<input type=hidden name="orgid" value="00D5j00000DP3HG">


<input type=hidden name="retURL"
value="https://academy.pantherschools.com/course/">

<!-- ------------------------------------------------------------
---------- -->
<!-- NOTE: These fields are optional debugging elements. Please
uncomment -->
<!-- these lines if you wish to test in debug mode.
-->
<!-- <input type="hidden" name="debug" value=1>
-->
<!-- <input type="hidden" name="debugEmail"
-->
<!-- value="[email protected]">
-->
<!-- ------------------------------------------------------------
---------- -->

<label for="name">Contact Name</label><input id="name"


maxlength="80" name="name" size="20" type="text" /><br>

<label for="reason">Case Reason</label><select id="reason"


name="reason"><option value="">--None--</option><option
value="Installation">Installation</option>
<option value="Equipment Complexity">Equipment Complexity</option>
<option value="Performance">Performance</option>
<option value="Breakdown">Breakdown</option>
<option value="Equipment Design">Equipment Design</option>
<option value="Feedback">Feedback</option>
<option value="Other">Other</option>
</select><br>

<label for="email">Email</label><input id="email" maxlength="80"


name="email" size="20" type="text" /><br>

<label for="phone">Phone</label><input id="phone" maxlength="40"


name="phone" size="20" type="text" /><br>

<label for="subject">Subject</label><input id="subject"


maxlength="80" name="subject" size="20" type="text" /><br>

<label for="description">Description</label><textarea
name="description"></textarea><br>

<input type="hidden" id="external" name="external" value="1"


/><br>

<input type="submit" name="submit">

</form>

Limits of web to cases

● 5000 Cases in 24 hours


● 50,000 in queue → that Salesforce manages → next day cases will be
created

Email-to-Case

● Case Created from Specific Email


○ Configured Email to Case
[email protected]
[email protected]
[email protected]

Types of Email to Case

● Normal
● On-Demand Email-to-Case
○ Mostly Used
Steps to Configure Email-to-Case

1. Enable Email-to-Case assuming the comparison has been


2. Create Email Routing
3. Verify Email Routing
a. Click on link sent via email from Salesforce
4. Verify Email-to-Case by sending and Email
a. amitsingh@g-
31kp6k8cs7pbbmkxyf7ape749c2qdrtpsn9jlyf11h3ts0wfuz.5j-
dp3hgea1.ap27.case.salesforce.com
5. Add Routing to the Support Email
6. Verify the Email routing by sending an email to the Email where
routing is added
a. For Example - [email protected]
Case Auto Response Rules

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>High Priority Case Response</title>

<style>

body {
font-family: 'Arial', sans-serif;

background-color: #f5f5f5;

margin: 0;

padding: 0;

.container {

max-width: 600px;

margin: 20px auto;

background-color: #ffffff;

padding: 20px;

border-radius: 8px;

box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);

.header {

background-color: #e74c3c;

color: #ffffff;

padding: 20px;

text-align: center;

border-radius: 8px 8px 0 0;

h1 {

color: #ffffff;

p{

color: #555555;

line-height: 1.6;

.case-details {
margin-top: 20px;

padding: 20px;

background-color: #f9f9f9;

border-radius: 8px;

.case-details p {

margin: 10px 0;

.case-priority {

font-weight: bold;

color: #e74c3c; /* Red for high priority, you can adjust color
accordingly */

.response-message {

margin-top: 20px;

padding: 15px;

background-color: #f2dede; /* Light red background for the


response message */

border-radius: 8px;

.case-record-link {

display: block;

margin-top: 15px;

text-align: center;

.case-record-link a {

display: inline-block;

padding: 10px 20px;


background-color: #3498db;

color: #ffffff;

text-decoration: none;

border-radius: 5px;

.footer {

margin-top: 20px;

padding-top: 10px;

border-top: 1px solid #dddddd;

text-align: center;

color: #777777;

</style>

</head>

<body>

<div class="container">

<div class="header">

<h1>High Priority Case Response</h1>

</div>

<p>Hello {!Case.SuppliedName},</p>

<p>We understand that you have submitted a High Priority or Urgent


case. Your case details are as follows:</p>

<div class="case-details">

<p><strong>Case ID:</strong> {!Case.CaseNumber}</p>

<p><strong>Case Subject:</strong> {!Case.Subject}</p>


<p><strong>Case Description:</strong> {!Case.Description}</p>

<p><strong>Case Priority:</strong> <span class="case-


priority">{!Case.Priority}</span></p>

<p><strong>Case Source:</strong> {!Case.Origin}</p>

<p><strong>Submitted Date:</strong> {!Case.CreatedDate}</p>

</div>

<div class="response-message">

<p>Your case has been marked as High Priority or Urgent. Our team
is actively working on it to provide a swift resolution. We appreciate your
patience.</p>

</div>

<div class="footer">

<p>This is an automated response. Please do not reply to this


email.</p>

</div>

</div>

</body>

</html>
Case Assignment Rules

Priority → High → High Priority Queue

Priority → Low → Low Priority Queue

Priority → Medium → Medium Priority Queue

Default Queue

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Case Assignment Notification</title>
<style>
body {
font-family: 'Arial', sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 20px auto;
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.header {
background-color: #4CAF50;
color: #ffffff;
padding: 20px;
text-align: center;
border-radius: 8px 8px 0 0;
}
h1 {
color: #333333;
}
p {
color: #555555;
line-height: 1.6;
}
.case-details {
margin-top: 20px;
padding: 20px;
background-color: #f9f9f9;
border-radius: 8px;
}
.case-details p {
margin: 10px 0;
}
.case-priority {
font-weight: bold;
color: #e74c3c; /* Red for high priority, you can
adjust color accordingly */
}
.case-source {
font-style: italic;
color: #3498db; /* Blue for email source, you can
adjust color accordingly */
}
.case-record-link {
display: block;
margin-top: 15px;
text-align: center;
}
.case-record-link a {
display: inline-block;
padding: 10px 20px;
background-color: #3498db;
color: #ffffff;
text-decoration: none;
border-radius: 5px;
}
.footer {
margin-top: 20px;
padding-top: 10px;
border-top: 1px solid #dddddd;
text-align: center;
color: #777777;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>Case Assignment Notification</h1>
</div>

<p>Hello {!Case.OwnerFullName},</p>

<p>You have been assigned a new case. Please review the


details below:</p>

<div class="case-details">
<p><strong>Case Number:</strong> {!Case.CaseNumber}
</p>
<p><strong>Case Subject:</strong> {!Case.Subject}</p>
<p><strong>Case Description:</strong>
{!Case.Description}</p>
<p><strong>Case Priority:</strong> <span class="case-
priority">{!Case.Priority}</span></p>
<p><strong>Case Source:</strong> <span class="case-
source">{!Case.Origin}</span></p>
<p><strong>Assigned Date:</strong> {!Case.CreatedDate}
</p>
</div>

<p>If you have any questions or need further information,


please reach out to the assignor or reply to this email.</p>

<p>Thank you for your prompt attention to this matter.</p>

<div class="case-record-link">
<a href="{!Case.Link}" target="_blank">View Case
Record</a>
</div>

<div class="footer">
<p>This is an automated notification. Please do not
reply to this email.</p>
</div>
</div>
</body>
</html>
Business Hours

09:00 AM - 06:00 PM IST

01:00 PM - 10:00 PM IST

09:00 PM - 06:00 AM IST


Case Escalation Rules

Case Escalation Rules

→ Rule Entries ( Multiple Entries )

→ Escalation Actions ( Multiple Action )

SLA - Service Level Agreement

→ Case/Service Request/Inquiry

Case → Priority

Case → Priority + Status + Subject ( keywords )

Case Priority

Urgent → 1

High → 3

Medium → 8

Low → 24

Business Hours → 09:00 AM - 06:00 PM IST


Scenarios

● Case Created → 2:00 PM IST with Urgent Priority


○ 3:00 PM IST
■ Within Business Hours
● Case Created → 4:00 PM IST with High Priority
○ 7:00 PM IST ( 2 hours today + 1 hours tomorrow )
■ 10:00 AM IST
● Case Created at 6:00 PM IST with Urgent Priority
○ 7:00 PM IST ( Not within Business Hours )
○ 10:AM IST Tomorrow
Step 4: Specify how escalation times are set

● When case is created → As soon as the case created


● When the case is created, and disable after case is first modified →
As soon as the case is created → Escalation time will start → As soon
as the case is modified → Escalation time will stop
● Based on last modification time →
○ Case Created at 01:00 PM IST
■ Case Escalation Started → 4:00 PM IST
○ Case Modified at 3:00 PM IST
■ Case Escalation Started → 6:00 PM IST
○ Case Modified at 5:00 PM IST ( Business hours end at 6:00 PM )
■ Case Escalation Started → 11:00 AM IST
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Case Escalation Notification</title>
<style>
body {
font-family: 'Arial', sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 20px auto;
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.header {
background-color: #e74c3c;
color: #ffffff;
padding: 20px;
text-align: center;
border-radius: 8px 8px 0 0;
}
h1 {
color: #ffffff;
}
p {
color: #555555;
line-height: 1.6;
}
.case-details {
margin-top: 20px;
padding: 20px;
background-color: #f9f9f9;
border-radius: 8px;
}
.case-details p {
margin: 10px 0;
}
.case-priority {
font-weight: bold;
color: #e74c3c; /* Red for high priority, you can
adjust color accordingly */
}
.case-source {
font-style: italic;
color: #3498db; /* Blue for email source, you can
adjust color accordingly */
}
.case-record-link {
display: block;
margin-top: 15px;
text-align: center;
}
.case-record-link a {
display: inline-block;
padding: 10px 20px;
background-color: #3498db;
color: #ffffff;
text-decoration: none;
border-radius: 5px;
}
.footer {
margin-top: 20px;
padding-top: 10px;
border-top: 1px solid #dddddd;
text-align: center;
color: #777777;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>Case Escalation Notification</h1>
</div>

<p>Hello {!Case.OwnerFullName},</p>

<p>The following case has been escalated and requires your


urgent attention:</p>

<div class="case-details">
<p><strong>Case ID:</strong> {!Case.CaseNumber}</p>
<p><strong>Case Subject:</strong> {!Case.Subject}</p>
<p><strong>Case Description:</strong>
{!Case.Description}</p>
<p><strong>Case Priority:</strong> <span class="case-
priority">{!Case.Priority}</span></p>
<p><strong>Case Source:</strong> <span class="case-
source">{!Case.Origin}</span></p>
</div>

<p>If you have any questions or need further information,


please address the escalation promptly.</p>

<div class="case-record-link">
<a href="{!Case.Link}" target="_blank">View Escalated
Case</a>
</div>
<div class="footer">
<p>This is an automated notification. Please do not
reply to this email.</p>
</div>
</div>
</body>
</html>
Activity Management in Salesforce

Activity Management in Salesforce involves tracking and managing various


interactions and tasks related to leads, accounts, contacts, opportunities,
and other custom or standard objects. Activities include events, tasks,
emails, and calls.

Task

● A task in Salesforce represents a to-do item or an action that needs


to be completed. It is typically associated with a specific record, such
as an Account, Contact, Lead, or Opportunity.
● Tasks are often used for follow-up actions, reminders, or routine
work that needs to be done. They can be assigned to a specific user
or a group, and they have due dates and priority levels.
● Examples of tasks include making a phone call to a client, sending an
email, or completing a specific action related to a customer or deal.
● Event:

Event

● An event in Salesforce represents a calendar appointment or a


scheduled activity. Events are time-bound and can be associated
with a specific date and time, as well as with a particular record.
● Events are often used for activities that have a specific time slot,
such as meetings, conferences, or appointments. They can be
associated with multiple participants, and users can track responses
(accepted, declined, etc.).
● Examples of events include scheduling a client meeting, planning a
webinar, or setting up a team training session.
Key Differences:

Timing:

Tasks are often more flexible in terms of timing and can be completed
within a broader timeframe, whereas events have specific dates and times.

Purpose:

Tasks are generally used for actions and to-do items, focusing on
completion, while events are used for scheduling and tracking time-bound
activities.

Associations:

Both tasks and events can be associated with records (e.g., Accounts,
Contacts), but tasks are more focused on actions, while events are tied to
specific dates and times.

Collaboration:

Events are more collaborative and can involve multiple participants with
tracking of responses, making them suitable for meetings and
appointments. Tasks are typically assigned to individual users or groups.

Name → WhoId ( Person )

● Lead → Person
● Contact → Person

Related To - WhatId

● Any Standard or Custom Object if the Activity is Enabled


● Can not be Lead or Contact
OWD Email in Salesforce

In Salesforce, an Organization-Wide Email Address (OWA) is an email


address associated with your Salesforce organization that allows for
sending mass emails, such as email alerts or email merge operations. It
provides a centralized and consistent sender identity for communications
from your organization.

Email Deliverability

● All Emails → All Email will be sent


● System Emails → Only System Emails → Password Reset, Maintenance
Email
○ Flow, Apex, Manually → Will not be sent
● No Access
○ No Emails will be sent
Setup OWD Email
Associate Contacts to Multiple Accounts

AccountContactRelation
Person Accounts

Prerequisite → Record Type

1 → Account → Contact [ Same Information ]


Multi Currency
Reports & Dashboards

Reports and Dashboards within Salesforce serve as robust tools, enabling


users to analyse, visualise, and extract valuable insights from their data.

To Create a Report a Report Type ( Template ) is Very Important

Report Type → Object ( Fields ) → Related Objects ( Fields )

Types of Reports

Tabular

→ Simple

Summary

Row Level → One Level Grouping

● All Cases by Status


● All Cases by Contact
● All Cases by Priority
● All Cases By Owner
Matrix

Row & Columns → 2 Level Grouping

● All Cases by Contacts


○ Cases Status Wise

Joined Report

→ 2 or more related objects report up-to 5 blocks

→ Owner ( Users ) X will not work


Relative Date Filters in Reports

https://help.salesforce.com/s/articleView?id=sf.filter_dates_relative.htm&ty
pe=5

Report Folders

Dashboard Folders

Formula in Reports

Filters in Reports

Report Sharing

● Viewer
● Editor
● Manager

Email Reports

Lead Convert Report

Dashboards

Dynamic Dashboards

Email Dashboards

Reports and Dashboards Limits and Allocations

https://help.salesforce.com/s/articleView?id=sf.rd_reports_dashboards_limi
ts.htm&language=en_US&type=5
Audit Trail

Data Import & Export

Import Wizard

Export Wizard
Data Loader

AppExchange

Google Chrome Extensions

Salesforce Inspector reloaded

Salesforce Booster

Salesforce Show field API Names

Salesforce Logins

Salesforce Admin Certifications

You might also like