You are on page 1of 123

Salesforce

You might think that Salesforce is just a CRM. It stores your customer data, gives you processes to
nurture prospective customers, and provides ways to collaborate with people you work with.
Salesforce comes with standard functionality for tracking common sales objects like accounts,
contacts, and leads. But DreamHouse is a realty firm, so it has needs specific to its industry and
business model  With the platform, you can customize and build whatever it is that makes your
company unique.

Administration: CRM
Wat is CRM and what does it do?
CRM = Customer Relationship Management, software that stores customer contact information (like
names, addresses, and phone numbers) and keep track of customer activity (like website visits,
phone calls, email and more)

What CRM does?


 helps with contact, lead and opportunity management
 track Deals, Product planning, manufacturing planning and shipping
What is salesforce CRM?
Salesforce = world’s number 1 CRM platform, is cloud-based applications for sales, service, marketing
but also a platform where you can also develop your own applications
idea  salesforce  connect desktop and mobile device to salesforce

Organizations in salesforce
o Production: where the client works real-time with original data (default)
o Sandbox: are copies of your production (with sample data that you CAN CHANGE) in a
separate environment  used for development and testing.
o UAT – user acceptancy test: preproduction

Introduction

Standard (created by Salesforce)  Customize (created by organization: create, modify, delete)


Right corner of salesforce you can see per cloud the standard applications (chatter, content,
marketing, service)

Creating custom objects


Object = data table in salesforce’ database which stores users data/information (name, salary, email,
domain) and organization’s information.
 standard objects: can be renamed, but never can be deleted
o Leads: any person that may be interested in your products/services
o Accounts: info about organization with a relationship to your company
o
Contacts: individual directly associated with an account and possibly one/more
opportunities
o Opportunities: store info about open and close deals and track any potential
generating sales deal or event
o Campaigns: a marketing initiative (ads, email) that you conduct in order to generate
prospects and build brand awareness
o Cases: store customers’ questions, feedback or issues
o Solution: Represents a detailed description of a customer issue and its resolution
o User: to allow a person log in to SF and access information
o Reports and Dashboards: info you can display that provides a summary of your data
and there are visual representation of your custom report data
o Documents: repository of reference documents online eg. Contract
eg. Standard object are related to account records: cases and opportunities
o Products: used on opportunities, Pricebook
 Custom objects = created by user, can be customized by adding fields, creating relationships
• each object has 5 standard fields (name, label, data type, controlling field, indexed)
Must be configured: Name field is a standard field to identify records and can be text
field or auto-number (eg. V-0002)
• Enterprise Edition (200) and Unlimited and Perf Edition (2000)
• Optional features: allow reports, activities, track field history, in chatter groups

Assets are related to Products, Cases, Accounts, Contacts

Setup > build > create > object > new custom object > custom fields & relationships
Creating custom fields
Record = rows in object database tables. Records are the actual data associated with an object.
Fields are columns in object database tables.

 field label: appear in the user interface: on the contact page and easy to understand
 field name: what you see in the API  API name: __c (customer object)
Able to change the API name
 Help text: text is explained if the user scrolls over the info-button next to the field
 Custom Field types: allow users to select a value: picklist or lookups
eg. Time Field: store info about preferred contact hours of customer, record the opening and
closing hours for store location (2 Time fields: opening, closing)

Customization options for standard fields


 Field labels can be changed
 Standard picklist values can be added, renamed, reordered, deleted
 Field-level help text can be added
 Field-level security
 CANNOT delete standard fields, but you can remove non-required standard fields from page
layout to hide them for users
 Field history tracking: need to be enabled on a field  add related list to object page layout
enable fields history tracking on Case Status field and add related list to Case page layout
(up to 20 some standard and any custom fields on an object) automatically track changes in
the values of fields, the user that made the change, date/time of change or added a field to
the page layout (up to 18 months for org, and 24 months via API)
 Lookup filter can be added/edited: restrict the valid values and filter the records displayed
(eg. Restrict account name field on opportunity to allow only active accounts)
 In Classic: required or optional, in LE: required (even it is optional during Setup)
 if a lookup filter is defined on a lookup field means that user can only pick a value
that meets the previously used filter criteria (filter is case sensitive)
 Applied to hierarchical relationship, master-detail relationship and lookup fields to
the Account, Contact, User, CO and Available in the Partner and Customer Portal
 Benefit of using Lookup Filter instead of a VR: Improves user efficiency when
selecting related records
 They can reference fields on the target object as well as fields on records related to
the target object or fields related to the user

Data loss

 Changing field type of custom field data being lost (warning!): any list views based on the
field may be deleted (eg. change Percent to Number, one Currency to another currency)
 Field type of custom field that is referenced by Process Builder cannot be changed
 Assignment rules and Escalation rules may be affected
 Deleting a custom field if there are no references to it (VR, workflows, processes)
A deleted field, its data and field history can be stored within 15 days until it is permanently
deleted: all field history data is deleted and changes are no longer tracked.
 Hard-deletion: to free up custom field allocation

Custom field attributes

• Default field values: certain field types can have a default value set
>< Don’t assign default values to fields that are both required and unique
• Text field: can be set as case sensitive: values as ABC or abc, treated as different values

Setup > object manager > field & relationships > new > (1) data type > (2) enter details > (3) set
field-level security: visibility and editability by profile > (4) add to page layout

Creating custom tabs


Tab = user interface between app and object. It is required so user can interact with the object to
store records.
1. Create, name the tab and select the object:
If you create custom object  a new tab must be created to be able to create records via UI
2. Choose the user profiles for which the tab will be available
Check if the object permission is correctly applied to the profile
3. Choose the app for which the custom tab will available: add tab to app
Profile don’t have access to app, the profile can still have access to tab and objects of the app

Custom tabs can be custom objects, Web tabs, Visualforce tabs, Lightning tabs
Setup > App Setup > Customize > Rename Tabs and Labels: rename Tab Names of standard objects.

If you add custom object tab:


 Recent items
 Sidebar search
 Added to New Link/ Create New Object drop down
 Custom Reports
Declarative development = developing without code  you use forms and drag-and-drop tools to
perform customization tasks.
Programmatic development = which uses things like Lightning components, Apex code, and
Visualforce pages.

Creating custom apps


App= collection of tabs made visible to certain profiles; workspace where the user works – a set of
objects, fields, and other functionality that supports a business process.
• Standard Apps eg. Sales, Marketing, Service, Community, Chatter, Content, Console apps
• Custom Apps: can have both standard and custom object tabs
eg. Create two custom apps with different tabs and apply one each to two different profiles
 Create New App: user is taken to developer.force.com page:
Selecting tabs, selecting profiles, adding a logo
• You can see which app you’re using and switch between apps using the App Launcher

Every profile must have at least 1 visible app, except profiles associated with Customer Portal users
because apps are not available for them

Distinction in two Lightning apps


 Lightning apps can have their own colors and brand images
 Use pinned list view as the default list view for records that frequently accessed by the users

User no longer can view some of the tabs:


 User has customized the navigation bar of the app:
• Default On: allows the tab to be visible in the app and when viewing all tabs
• Default Off: allows the tab to still visible when viewing ‘All Items’ in App Launcher,
not visible in the app
 User has used the App Launcher to switch to a different app
 User has logged into the wrong SF org
 Admin could modify the access to a tab for a profile, not for individual user:
Enable ‘Tab Hidden’: tab will not be visible in app by default and the user cannot enable it

Lightning App Builder  create Lightning Pages


• Create an App Page
• Create a Home Page: customize Home page for different profiles in LE (users cannot
customize their own Home Page): company logo, dashboard snapshot, custom links
 Home page can be assigned to each app
• Create a Record Page: customized record page available to users  must be activated
(customizations: Lightning components can be added, edited, reordered, removed)
eg. Lightning component Path not displayed on opportunity record page until sales reps have
been trained to utilize it: modify existing opportunity record page and remove the sales Path
component using Lightning App Builder or create and activate a new opportunity record page
in LB and assign it only to the sales reps
 Different record pages displayed for different record types
 Record page doesn’t have to be assigned just to profiles, can be assigned at different
levels: as the org default, as app default, as app/ record type/ profile assignment
• Create an Embedded Service Page

Creating custom links


Used for:
 Running an S Control (eg. Java Applet)
 Running a report
 Launching an external URL
Creating records
Related lists eg. Account object: contacts, opportunities, cases
 user can personalize related lists My settings > Customize my page

Record types let you offer different business processes (paths), picklist values, and page layouts
to different profiles for standard/custom objects.
 Used for different purposes and gathers different info
eg. call center: different fields required for cases involving mortgages compared to car loans
 Assigning a record type to a profile : ability to create records of that record type, but can still
see records of all the record types
 Each object has system-generated master record type that is hidden: record that exist before
record types are established
 Default record type is used when user doesn’t select one (data import, flow, conversion) or
predefined record type (click on ‘New’ button automatically select record type)
set at the profile level or in the personal/user settings (2 or more active record types)
 Record type filter or segment picklist values based on user’s profile
picklist value is added and not visible to a user: the picklist value has not been added to the
record type of the record the user is viewing
The same picklist field for two different teams
 Sales process controls the Opportunity Stage field, the record type controls all other
picklist fields

Tags = words or short phrases that users can associate with records to describe and organize their
data in personalized way

Steps to create a record type


Business Process – Page layout – Record type – picklist values

1. Preparation: create a page layout > add any additional picklist values
2. Create record type: Object manager > object > record type > label, name > select page
layout for each profile OR one page layout to all profiles > save
3. Select picklist values: in action: edit next to field > selected values list

Record type assignment

• In Profiles, page layout assignments are specified for every record type; even when a record
type is not available to that profile  2 record types, assign a different page layout to each
record type
• Record types can be assigned to a profile or individual users through permission sets
• Change record type: Profiles > record type settings

Page Layout
A page layout controls what the fields, sections, related lists, buttons show on a record, on detail and
edit pages  Modify or create page layouts using the drag-and-drop editor.
• Fields (also Custom fields): Add, remove, and move and can make read-only or required.
• Sections: used to organize fields on the page
 create a new section – add the fields with page layout editor
• Related Lists: fields displayed, sort order (ascending/descending), change columns, buttons
and custom links users see
eg. still have access Contact records, but don’t want to see Contacts when viewing an
Account page: create an Account page layout without Contacts related list
To ensure that users see the correct page layouts: assign page layouts to different user profiles:
so that each type of user can see fields that are relevant

Search Layouts
= change the fields appear in search results (global search, lookup search), field displayed in lookup
dialog, ‘Recently Viewed’ list view

Business processes
= capture the lifecycle of leads, opportunities, cases or solutions for different user profiles
 business process can be associated with one or multiple record types and when creating a record
type; a business process is selected (implement more business processes, multiple record types too)
 For those objects the business process must be first created before a record type
 It reference a standard/ master picklist field and the values can be customized
Eg. Three divisions: two using same sales process, another their own sales process. Two
business processes can be set up and related to three record types for each division.
Eg. The Sales process for the new line is more complex than the current one, admin added
new picklist values to Stage field  only stages are visible based on the product line: create
Sales process and record type for each product line

Types of business processes


 Lead process defines different picklist values for Lead status
 Sales process defines different picklist values for Opportunity stage
 Support process defines different picklist values for Case status
 Solution process defines different picklist values for Solution status

Launch a new product and admin needs to ensure that aftersales support for this new product. How
ensure that cases are opened for the new product are only visible to a group of support engineers?
Use a new support process (to define lifecycle of the cases), record type, page layout,
and queue (to assign the cases only to a specific support group)

Visibility only needs to be restricted to certain fields for some employees and if field-level security is
not changed 2 different sets of fields visible to 2 groups  2 page layouts (control fields)
Not 2 record types: because they control business processes and picklist values what is not necessary
display different fields based on whether an account is a Customer or Partner
create 2 record types and assign a different account page layout to each record type
Manage sales tasks differently between their computer system sales and computer accessories sales
and display different fields for each  1 business sales process  2 record types and 2 page layouts

Sales reps should only take web leads for business customers. Individual customers must come
through in-person contact.  1 business process for different customers (2 record types)
one business Lead process and create two record type: Business and Individual. Adjust the picklist
for the Individual record type to remove Web as a lead source

Both Eastern and Western Sales teams use opportunities. Each team sells a different set of product
and records the region in which the lead is based.
Create Eastern and Western opportunity record types. Adjust product picklist to match each region’s
team. Also adjust region picklist so it only matches the regions that each team covers

Global finances deals with US-based and foreign-based customers. There is a requirement to verify if
contact information is in the correct format for the location.
Create different fields for all the possible location info (Phone, number, country field)
Create different 2 record types and 2 page layouts for each country. Add the fields to each page
layout and assign the page layouts to record type.

Two active record types created for customers from different countries. There are available for all
users with account executives profiles but you want to set record types specifically for a number of
them to ‘Customer’ record type (= default record type). Configure default account record type for
every designated account executive in their personal settings (by AE or admin)

Want to assign General record type to be the default for all rep but still have the options to choose
what record type to use when creating Leads manually
In Profile page > record type settings: configure the default Lead record type to ‘Customer’
rep users create new records, they will be prompted to choose from record types but will have the
‘Customer’ record type radio button automatically ticked

Different sales processes for project under and above 500k. The projects above have to go through
Finance and have more meetings  different sales processes can be added to Opportunity
Create a business process and set the stage picklist for projects under 500k and for those over 550K

Settings
Both users and admins can customize Salesforce:
 Personal Settings: Users can set their own personal customizations. Personal settings are
visible only to the user who sets them up
 Administrative Settings: Admins can make changes to the setup for an entire Salesforce
organization. Organization-wide settings affect all users, although a user's personal settings
can override certain organization-wide settings

List Views
List views can be created for object: help the users review records that interest them and allow them
to see only data that they have access to (records they own, read/write access, shared with them)
 found if you click on a tab in an app (pin their default list view on each tab)
 Save list views for future use
 You can filter your records by field value and customize which fields to display in your list.
 If your list is long, you can sort the records alphanumeric by one of the field columns
 Share the list view: specify which groups of users have access to the list view
Selecting List View Controls > Sharing settings
User creating the list view has the ‘Manage Public List Views’ permission via their profile or
permission set:
 Can make the list view available to themselves, all users, public groups, roles
(if not enabled, the list views they create are only available to themselves)
 would be able to edit existing public list views, including adding more filters
 Enable ‘Printable List Views’: print list views of (not all) standard and custom objects
max 1000 number of records to be printed
 Follow records  view related Chatter posts
 Cannot be exported
 Edit records in List View: Enable Inline Editing or Enable Enhanced Lists (UI settings)

SF features or settings can be shared with all users, roles, public groups, r&s, territories, t&s
 List Views
 Queues:
 When queue is created, a list view is automatically created
 Records can be placed in queue manually or automatically via assignment rules
 Custom objects can be assigned to a queue (cases, leads, orders, contracts,
knowledge articles versions)

Object manager > Enter View Name (Cases) > setting: new list view > select the fields to display* >
filter: field equals value
* The default fields are automatically selected (choose up to 15 fields) and only display fields that are
available in your page layout

Salesforce Architecture
 The Salesforce platform is the foundation of our services. It’s powered by metadata and
made up of different parts (data services, AI, robust APIs for development)
 All our apps sit on top of the platform. Our prebuilt offerings like Sales Cloud and Marketing
Cloud, along with apps you build using the platform, have consistent, powerful functionality.
 Everything is integrated. Our platform technologies like Einstein predictive intelligence and
the Lightning framework for development are built into everything we offer

Multitenancy = sharing resources: Salesforce provides a core set of services to all our customers in
the multitenant cloud  trusted, multitenant cloud:
 you are sharing space with other companies
 getting the latest and greatest features with automatic (upgrades three times a year)
 Since Salesforce is a cloud service, you never have to install new features

Metadata = data about data, data describing the characteristics of certain data
 structure of your Salesforce org. Eg. The metadata associated with a particular document (the
data) can be, the author, the date of writing, the publisher
 All of these standard and custom configurations, functionality, and code in your org are
metadata. Part of the reason you can move so fast on the platform is that Salesforce knows how to
store and serve you that metadata immediately after you create it.

Navigate setup
Setup is your one-stop-shop for customizing, configuring, and supporting your org.
Object Manager: where you can view, customize standard and custom objects in your org.
Setup Menu: The menu gives you quick links to a collection of pages that let you do everything from
managing your users to modifying security settings.

o Administer: manage your users and data. You can do things like add users, change
permissions, import and export data, and create email templates.
o Platform Tools: You do most of your customization in Platform Tools. You can view and
manage your data model, create apps, modify the user interface, and deploy new features to
your users. If you decide to try your hand at programmatic development, Platform Tools is
where you manage your code as well.
o Settings: manage your company information and org security (add business hours, change
your locale, and view your org’s history)

Setup pages
# Item Why it’s a must-see
1 Company Information  At-a-glance view of your org
 Find your org ID
 See your licensing information
 Monitor important limits like data and file usage

2 Users  Reset passwords


 Create new users and deactivate or freeze existing users
 View information about your users

3 Profiles  Manage who can see what with user profiles


 Create custom profiles

4 View Setup Audit Trail  See 6 months of change history in your org
 Find out who made changes and when
 Tool for troubleshooting org configuration issues

5 Login History  See 6 months of login history for your org


 View date, time, user, IP address, and more login data
 Use for security tracking and adoption monitoring
Company settings

In Company Information page: org name, default language, default time zone, primary contact

Organization ID identifier
ID will be different across environments (Development, Test, Production)

Licenses
Within Company Information page, the license sections list the number of licenses available, used
System Overview page will show system limits (the most used licenses and the number remaining)
o User License: define the baseline of features available to users (SF, Chatter Free, Force.com)
 each user has 1 license need to be selected!  NOT update the license
o Feature License: grants access to additional features that are not include in standard license
such as Marketing, Knowledge, CRM content
Select the checkbox next to the feature on the user record: multiple features

Data Storage & used space

 Data Storage: is used by creating records (most records use 2KB of storage)
Unlimited edition: 10 GB of data storage + additional: 20 MB per user license
 File Storage: is used by storing files in Attachments, Documents tab, Files tab, Content,
Chatter and Site.com assets
10 GB of file storage + 2 GB per user license
 Big objects: limit is enforced contractually: up to 1 million big object record stored and
additional capacity can be purchased via licenses
 Both storages eg. large volume of contract records with attachments
 exceeded storage limit, you can use Complimentary Document storage for additional space

Impact of large data volumes


 Reports run slowly or time out
 Searches run more slowly
 Full sandbox refresh takes longer as there is more data to copy

Fiscal year
o Standard fiscal year: follow the Gregorian calendar (12 months structure: 4 quarters of 3
months) and can start on the first day of any month eg. financiel year begins in July and ends
in June (= 12 months) and be named for the starting or ending month (eg. start month: April
and named on ending month with opportunity closed date of Nov 2018  Fiscal year: 2019)
 Default Fiscal year: January set as the ending month
o Custom fiscal year: using custom periods based on their financial planning requirements
 Once custom fiscal year is enabled, it cannot be deactivated and reverted back to
standard, but it can follow 12mth structure
 Allow fiscal quarters to be determined by week, instead of by month)
Structure: eg. 4-4-5: 4 quarters per year = 13 weeks per quarter, in each quarter 3
periods: two periods of 4 weeks and the last period is of 5 weeks
 The fiscal year does not start on the first day of the month
 Impact: forecasting, reports and quotas  all existing f&q from the first period of
that year will be deleted and from periods before the first year are not deleted
 enable customizable forecasting, cannot use the standard forecasting option

Fiscal year: Setup > company profile: fiscal year > change start month to July > save

Locale Settings:
Default locale determine local parameters: the format of Dates/Times, first/last name, addresses,
phone numbers, number display format (eg. affect export csv file by determines the delimiter)
Default locale setting (Company Information page) can be overridden by users (personal settings)
eg. majority is US, inform Europeans users to change the locale settings in personal settings: My
Settings > my personal information > Language & Time Zone

Language settings:
A language is in use by the company or any of users cannot be deactivated
Levels of language support:
 Fully supported: all SF features including UI, Setup, Help will display in the selected language
(18 such as English, French, German, Russian, Spanish)  available for selection for
default org language or user display language
 End user: have translations for all standard object, field labels and pages but not Setup and
Help (17 such as Vietnamese, Polish, Greek)
 Platform: translations for customizations and standard fields. If translations are not provided,
labels fall back to English (30 such as English for Australia, Canada, Irish, Hindi)

Business Hours & Holidays


Business hours determine the times when users are available to support customers
Multiple business hours as default
 Case escalation rules: when to escalate a case (only available in the Classic UI)
holidays will be excluded when calculating a case escalation
 Entitlement processes = timelines that include milestones that your support team must
complete to resolve records like cases or work orders and give consistent support service

Currencies
o Single Currency (default): on Company Info Page using the Currency locale
 currency symbol in amount fields will reflect the Currency locale
o Multi-Currency: adds the ability to amounts in different currencies on records
 currency field is left blank or inactive currency, then use the personal currency of the user
Add multiple currencies
Where the active currencies are located:
Primary currency reflects the corporate default currency  Company information page
Secondary currency reflects the personal default currency  personal setup/ user record

1. First contact SF.com


2. Setup > company information > edit > enable multiple currencies
After enable multiple currencies:
 Define a list of currencies and make them active
add additional currency in ‘Manage Currencies’
 Set the corporate currency – Set the exchange rates for currencies
3. Setup > company information > currency setup button (need to activate): Active and
Inactive Currencies will be listed out* > in active currencies: new > currency type > enter
conversion rate (relative to corporate currency) > number of decimal places > save

Activating currencies: so that they can be used in currency amount fields


 users will be able to create new opportunity record in any active currency
Deactivating a currency does not alter amounts but your users are no longer able to enter new
amounts using the inactive currency
 Deactivate an activated currency, but can’t deactivate the corporate currency.

New corporate currency: in active currencies: ‘change corporate’ button

Update Conversion rates


Update currency values for deals by editing conversion rates. This lets you manage the static
exchange rates between your active and inactive currencies and the corporate currency.
 Previous conversion rates are not stored

in active currencies: edit rates > enter conversion rates

Advanced Currency Management allows dated exchange rate to be recorded to track the
opportunity amounts when the opportunities are closed.
 The amounts will not change every time the exchange rate is updated: amounts will use the
applicable exchange rate
Setup > company information > currency setup button > enable advanced currency management

UI
User Interface Settings are global settings and apply to all users of an org

User Interface settings > ‘Disable Navigation Bar Personalization in LE’


 admin can select this option to prevent users from rearraging or adding items to navigation bar
OR app settings: Disable end-user personalization of nav items in this app’

User Interface settings > Themes and Branding: create a new theme, upload org’s images, colors.
Only one theme can be active at a time and is for the entire org

Enable drag-and-drop scheduling on List Views


Show customer Sidebar Components on all pages
User interface settings
Directly edit records (multiple records at one time) in the list view:
(other than give the user Mass Edit for Lists permission – updating up to 200 records)

o Inline editing: lets users quickly edit field values (when the record is saved/updated),
on a record page without loading each record individually  available in Visual force pages
o Enhanced lists: give you the ability to quickly view, customize, and edit list data

o Enable collapsible sections (in small space): collapse or expand sections on a page layout
 quickly finding info that is relevant to users
o Show quick create: on a tab home page allows users to create a record quickly with minimal
information.
o Enable hover details: Hover detail displays an interactive overlay containing record details.
Users can quickly view information about a record before clicking to view or edit the record.
o Enable related list hover links: Related list hover links display at the top of record detail
pages and custom object detail pages in Setup. Users can also click a related list hover link to
jump to the related list without having to scroll down the page.
o Enable separate loading of related lists: improve performance if there is a large number of
related lists  will load the primary/main record details first and then load the related lists
eg. Account screen is taken a long time to load
o Enable separate loading of related lists of external objects: When enabled, related lists of
external objects are loaded separately from primary record details.

API
API (= application programming interface) = SF provides programmatic access to your organization’s
information instead of using UI and allow different pieces of software to connect to each other and
exchange information eg. connect your apps with other apps
 API is needed for: Integration tools and using the dataloader

Limits: number of API requests that can be made in 24 hour period based on edition and number of
user licenses  API usage can be monitored on the Company Information Page

Availability of API: (same as customizing profiles: need that UI)


• Enterprise Edition
• Unlimited Edition
• Developer Edition
• Performance Edition: has Service Cloud, Sales Cloud, SF platform
• Contact Edition
• Group Edition
• Professional Edition

 When you add a custom object or field, the platform automatically creates an API name that
serves as an access point between your org and the database. Salesforce uses that API name to
retrieve the metadata and data you’re looking for.
 The core of the API’s power is that all of your data and metadata is API enabled and API gives
Salesforce a huge amount of flexibility.
 Every time you use Salesforce, whether you’re using standard functionality or building a
custom app, you’re interacting with the API.
Customization with code: some functionality is beyond the constraints of a metadata framework. For
such cases, developers can create needed functionality in open-ended development environments,
using common programming languages, or Apex.

User management
New user
Areas to consider when creating a new user:
 Licensing: user license, feature license  only active users use license
 Security: role, profile (only one role and one profile assigned)
 profile depend on the license type selected eg. Chatter Free is selected as license type, the
profiles available are Chatter Free User and Chatter Moderator User
 Localization: locale, language, time zone, currency
 User details: User has username / Email Address / First and Last Name / License /Profile /
Role (optional)

Required fields: first/last name/alias and nickname (auto generated), email/username, user
license/profileID, role (required, but don’t need to be selected  you can create a user without role
In Data Loader: License will be assigned automatically based on Profile selected for the user

Username:
 unique across all SF org globally (including Production org, Sandboxes, Trial org)
Production and Sandbox are on different server sets (production serves: login.salesforce.com
and Sandbox: test.salesforce.com) so the same username can be used
 must be in the format of and email address (not need to be valid) but multiple users can have
the same email address. The username and the email address can be different.

Setup process:
1. Activation/ verification link sent via email is clicked (will expired after 7days)
 to reduce access issues: extend the number of days before verification link expires
 email activation feature can be disabled by request to Salesforce.com support
2. A password is created
3. A security question is created

User object access


• Private: users have read access to own user record and those below them in role hierarchy
• Public read only: all users can see one another’s user detail pages, users in lookup, list views,
ownership changes, search

Visibility to Campaign records:


 ‘Marketing User’ checkbox on the user record is selected
 User’s profile has the ‘Create’ permission on the Campaign record

Account owned by an inactive user needs to be updated:


 Update by admin
 All users have the visibility to record and create/edit permissions on account object
Grant authorized users ‘Update Records with Inactive Owners’ permission
Add multiple users (up to 10) at one time:
Manage users > Add ‘multiple users’ button
 All users will have the same license type assigned but users can be allocated to different
roles and the same or different profiles
 Have the same username and email address
 Click on ‘generate passwords and notify a user via email’ to all users upon clicking save
 use Data Loader if you have 200 multiple users: users will not have a password generated.
After that they have been loaded, the users can be selected from a User list view and then
select with ‘Reset Password’ button the passwords of all selected users
 Individual user records will need to be edited after creation

Login History: provide info on past login attempts


• Troubleshoot why a user cannot login
 Without having to request login access from the user:
Select ‘Admins can log in as any user’ (security controls > Login Access Policies page)
OR user: personal setup menu > grand account login access
• API access records, saved file format: CSV or GZIP
• Max record size: up to 20,000 login records for the past 6 months
• Login status column indicate success/reason for failure to login
 admin can see how many failed login attempts
• Find info about login attempts: on Login History Page, Login History related list on user
record, User Detail Section on user record

Resetting passwords:
 Self-reset: click on forget password link on the login page (max of 5 times in 24h period)
 Admins can reset passwords for single user (user record), multiple users (user page) as many
times it’s needed.

Enable ‘Mass email users’:


first the users are selected from list view (allocated to profile) – selecting email template

Delegated admin
assign user to delegated group that has ‘user administration permission’
• Create and edit users
• Assign users in roles and profile (assign profiles and permission sets that have modify all data
permission)
• Assign permissions sets (not modify permission sets)
• Assign users to public groups
• Reset passwords
• Manage the specific custom objects
Deactivate/freeze users
Activate: enable the user to login and access SF
Re-activation or later access (temporary workers, license limitations)

Users are permanent (cannot be deleted): you can remove their license or deactivate them to
remove access to the system.

Deactivate users record: (!warning!): user can no longer login and have access to SF
The history of orders/offers, the ownership, the security/ visibility remains
 Enable ‘User Self Deactivate’ : users to deactivate their own accounts to save time on
deactivation requests of large number of external Community and Chatter users
 Reusing/transferring the records of the deactivated user to another user (not recommended)
 Reasons a user cannot be deactivated:
• User license (eg. Deactivate user account  license becomes available for
reassignment, not automatically)
• Permission set and profile: if they are the (sole) recipient of a Workflow Email alert,
Customer Portal Admin/object default owner, selected in a Custom Hierarchy Field
(look up field to let one user associate with another)

Freeze: cannot deactivate immediately, you can freeze users to lockout immediately but
TEMPORARILY prevent users from logging in (also can freeze/unfreeze from the Mobile app)
 But the license is not released, then you have to deactivate

Admin can do by lock out:


 Unlock: user’s account that has been locked due to too many failed attempts. The counter
will reset to 0 if the user gets locked out.
 Reset the password using ‘Reset Password’ button: automatically restores his access to
account (user don’t have the permission to reset their own passwords when they are locked)

License types
 Sales Cloud – Contact, Group, Professional, Enterprise
 Service Cloud – Prof, Enterprise, Performance
 Force.com – Enterprise, Light
Each Users has 1 User license, but features licenses can be added: entitles a user to access an
additional feature that is not included with his or her user license
IF you deactivate user license, it’s available to reassigned to another employee in the company, but
NOT AUTOMATICALLY

User authentication
Single Sign-On
Single sign-on: standardize authentication where you using single user credentials with an external
identity provider  memorize one password (cannot reset) and consistent password policies
(managed by identity provider – not SF password policies that apply)

 SAML: Security Assertion Markup Language


 Delegated authentication: configured to use a stronger form of user authentication such as
integration with a secure identity provider and make the login page private and accessible
only behind a corporate firewall

Multi-factor authentication
Multi-factor authentication: increases an org’s security by requiring a second level of authentication
for every user login next to usual username and password. It can be service-based or policy-based.
Verification methods:
o Salesforce Authenticator App: that integrates seamlessly into your login process. Users can
quickly verify their identity via push notifications.
o Third-party TOTP authenticator apps: one-time password generator (eg. Google or Microsoft
authenticatior)
o U2F Security key: Small physical tokens that look like a thumb drive. Users simply connect
the key to their computer then press the key’s button to verify their identity.

MyDomain: customize your login process


MyDomain = Salesforce Identity feature lets you create a subdomain for your Salesforce org.
 having your own URL to the SF org
 Highlight/customize the brand of the company
 Helps in better management of login and authentication
 Required for single sign-on (SSO) with external identity providers (Google and Facebook)
 Developing custom Lightning components

Tested My Domain before deployment


 Log in using the My Domain subdomain name
 Test tabs and links to see it they display the new subdomain
 Update all app URLs

Options that admin has for setting the page displayed after logs out of SF:
Display standard SF login page, custom logout page, custom SSO page

If org using My Domain and prevents login, but user still tries to use the latter to log in, the login
attempt will appear with the URL in the login history.
When you don’t see an entry for the time when the user was attempting to login in: the user entered
an incorrect username, then it would not be listed in the login history

Trailhead Playground has a My Domain  start with a cute animal name and some random numbers
to ensure uniqueness. The My Domain name ends with -dev-ed: which means that the My Domain is
for a Salesforce Developer Edition org eg. cunning-panda-e4smb1-dev-ed
 can’t create a subdomain within a subdomain, so you can’t use a Trailhead Playground. Instead,
you use a production Developer Edition org.

AppExchange
= marketplace for SF and third parties to offer out-of-the-box options to extend SF functionality:
 Apps: managed packages, composite apps, function-specific apps
 Lightning Components: out-of-the-box building blocks to customize your Lightning pages
 Lightning Data = data solutions that let you compare your CRM data against outside sources
for validity  similar to data.com offerings but new sources eg. Sales & Marketing data
integration, external data sets
 Lightning Bolt Solutions: ready-made solutions for communities to help users get started
quickly: community templates, industry-specific use cases
 Flow Solutions: connecting with third-party systems without integration or code
eg. accepting a credit card payment, conducting credit checks, adding a video player,
weather forecast  install ‘Flow Solutions’ from AppExchange and use it in the flow

AppExchange is also a community, that starts with Salesforce partners who creating solutions and
services on top of Salesforce

List applications:
 Customers
 SF employees (SF Labs) develop free apps, usually not supported
 Partners app often have subscription fee
 software-vendors

S-Control: to store your code or refer to code elsewhere.


 Custom s-controls can contain any type of content that you can display in a browser:
custom HTML Web form, Excel file (URL), Java applet, Snippet, Active-X control, XML
 Used in Custom Link, Button, Dashboard Component (not external feed of the data),
Not in Import Wizard
 When test driving an application on the AppExchange, it’s possible to view S-Control:
 Custom web tab may consist of URL, S-Control, S-Control Snippet

AppExchange strategy
AppExchange strategy helps ensure that you’re getting the highest value apps without duplicating
functionality or investing in something that you don’t need.

Follow these steps to develop a good AppExchange strategy

1. Identify departments that use or plan to use Salesforce = primary stakeholders


2. Research what’s available on AppExchange that best meets your stakeholder requirements.
What business problem are you trying to solve? What are your main pain points right now?
How many users need this app? What’s your budget? What’s your timeline?
 help you identify apps that are the best fit for each department or business case.
3. Download the packages in a test environment (like a free Developer Edition or sandbox).
Ensure that the app you’re installing doesn’t interfere with any other apps you’ve installed or
customizations you’ve made. * Sandboxes are copies of your production in a separate
environment with sample data. They’re used for development and testing.
4. If you’re choosing between multiple apps, take some time to evaluate what you’ve tested:
invite your stakeholders to demo the apps and provide feedback.
5. Receive a notification while installing a managed package if is not authorized by the
AppExchange Partner Program
6. Make sure you keep your users in the loop about what’s changing, and provide training and
documentation as necessary.

Where do I install the app, production or sandbox?


First install apps in a nonproduction environment (sandbox or Developer Edition org)
 Testing the app because AppExchange apps can interfere with existing customizations (in
unmanaged package types)

Do I give app permissions to admins only, all users, or specific profiles?


That depends on who the app is for. If you want to limit access to a particular set of users, plan to
modify those user profiles before you install the app.

A connection from SF to existing cloud application is required: first search for a connector or app for
application on the Appexchange

Sending survey forms and collating survey results directly within SF:
 Use SF native survey functionality
 Look for AppEchange solution to install
Insight into customers’ interactions with company via social media:
 Install an app form AppExchange to pull info from social media apps
 Enable ‘Social Customer Service and Social Accounts, Contacts and Leads’:
built-in functionality for interacting with customers via social accounts (link Twitter)

Develop an AppExchange strategy for finding the best listing

1. Solution type:
 Lightning component: plugs into Salesforce, out-of-the-box building blocks
 A consultant: help building a custom solution for a complex business problem?
You have limited resources for this project, so you really prefer something that works
out of the box  solution: such as an app
2. Functionality—What does the solution need to do? Which of these features are must-haves
and which are nice-to-haves? You need user adoption data such as who’s logging in most
often, to know which features they’re using  listing description (overview: login history and
trends, and usage of sales-oriented objects such as opportunities)
3. Budget—Are you open to paying for the right solution, or does it need to be free?
AppExchange supports both one-time payments and subscriptions. Free if possible  listing
summary
4. Stakeholder needs—Who is using the solution? Make sure that you meet with these
stakeholders to understand their needs, expectations, and timelines.
Definitely want to share the data that you gather with managers so show that in chart/graph
 listing summary
5. Testing—Do you have somewhere you can test everything first? Before installing a solution
in a production org, we always recommend testing in a Developer Edition or a sandbox.
6. Technical considerations—Does the solution need to be compatible with a specific
Salesforce edition or feature?  not easily changed!
Compatible with Lightning Experience  In the Highlights area on the Overview tab, we
confirm that the app is Lightning Ready

Tabs
 head to the search bar if you’ve got an AppExchange strategy. If you’re not sure where to start,
browse a collection or check out solutions by type.
In the search bar: Salesforce adoption > search AppExchange.

Home page
Gets personalized to your Salesforce experience after you log in
 Recommended for you: personalized list of recommended solutions and consultants.
 Categorized solutions
 Filter by price, rating to refine listings based on your requirements:
• AppExchange Uses cases: generic (data loader, docu signing, geolocation); functional
(sales, finance, marketing); Industry-specific (health, real estate, education)
• Collaboration app, data management, HR/marketing/service/ finance app

Two kinds of listings: solutions and consultants.

 A solution is something that plugs into Salesforce and extends its core functionality and
include many listings that are free to install and use eg. an app that integrates an external
survey tool with Service Cloud, Lightning components, Lightning Bolts, and Lightning Data.
 Solutions by type: if you’re not in the mood to browse, gives you 5 types of solutions such
as apps. In type you can filter by price, rating based on your requirements.
 Consultants are Salesforce professionals who specialize in building custom solutions for
specific clouds or industries (industry knowledge) 1,000 consultants on AppExchange
Eg. a consultant can work with an equipment manufacturer to develop a set of apps for
assembly technicians

When you’re not sure where to start:


Collections: groups of listings curated by AppExchange experts, and perfect for browsing: a handy
way of finding top solutions in a particular area

o Product and industry collections: product collection organized listings according to


Salesforce product such as Service or Marketing Cloud. Industry let you view listings by major
industry such as Healthcare & Life Sciences
 As with the product selection at your favorite online store, what’s available on
AppExchange is always changing and growing
o Learn section: app news, how-to guides, best-of lists, and opportunities for connecting with
AppExchange enthusiasts and experts alike  communities can be a great source of
inspiration

Listing elements
A listing provides detailed information about the solution or consultant and lets you confirm that it
aligns with your strategy. When AppExchange Superheroes view listings, they know exactly where to
look to make sure that the solution or consultant meets their requirements.

 Listing summary section—Provides images and videos, along with key details such as
average rating. For solutions, this is also where you find pricing info, and for consultant
listings, the firm’s geographic focus.
 Listing actions bar —Save/Get it know: For solutions, where you go to learn more about it via
demos and test drives, and to start the installation process. For consultant listings, it’s where
you go to learn even more about the consultant.
 Test drive: lets you experience the solution in a read-only Developer Edition org
configured by the provider. You receive login credentials and can explore
functionality in the org using sample data.
 Free Tria: lets you experience the solution in a writable Developer Edition org for a
limited time period. Similar to a test drive, a free trial is configured with sample data.
Unlike a test drive, you can customize the org and continue using it if you decide to
buy  Click Get It Now and look for the option to install in a sandbox
 Overview tab—Provides a detailed description of the solution or consultant, the solution
provider’s or consultant’s contact information, and links to documentation, such as case
studies. For solutions, you can also view details about the package (type and contents)
relevant user login history and trending, adoption of key Salesforce.com features
 hightlights area: if the app is Lightning Ready
 Expertise tab —Only for consultant listings. It highlights products and industries the
consulting firm specializes in, the level of expertise in those areas, and Salesforce
certifications earned.

Packages
AppExchange solutions are delivered in packages (= set of components: tabs, objects, fields, reports,
validation rules, Apex code)  cannot upload custom fields on standard objects to AppExchange
 Packages going to be posted as a unit on AppExchange
Eg. Install an AppExchange credit card payment package:
Sales Reps process credit card payments when an Opportunity is Closed Won

Package types
The solution provider decides which package type to use to distribute the solution, which in turn
influences how the solution behaves in your org.
 create a Managed Package in developer edition

Attribute Managed Packages Unmanaged Packages

Customization Little customization is possible, but cannot You can customize Apex code and metadata, if desired.
change the solution’s code or metadata to Not locked or protected so all components can be modified
ensure upgrades will be succesful

Upgrades The provider/AppExchange vendor can To receive an upgrade, you must uninstall the package
automatically upgrade the solution: add from your org and then reinstall a new version from AppExchange.
functionality

Org limits The contents of the package don’t count The contents of the package count against the app, tab,
against the app, tab, and org wide limits and org wide limits

Used Partners to distribute/sell apps to Used to distributed open source projects to developers
customers (on a subscription basis)  If you’re interested in getting under the hood of a solution

Force.com

 Customize, create apps as a service and without software


 Customize standard apps provided by Salesforce.com or build their own on-demand app
 Group the standard and custom tabs into new custom apps
 Force.com Builder: point-and-click customization tool: build custom apps or modify apps

AppExchange App types

o Native apps: 100% built in the SF platform and don’t depend on external apps
o Composite apps: build with combo of force.com and other techno/external systems
o Client apps: access to another system, server to communicate for exporting data

Install the adoption dashboards app


 Org—You’ll install the app in the Developer Edition org that you use for testing new features
 Ursa Major’s users won’t be impacted if something unexpected happens.
 Documentation—On the Overview tab of the listing, there’s a datasheet that recommends
following Salesforce’s normal install procedure.
 Access—You’re the only person who needs to use the app, so you’ll install for admins only.

View key details about a package installed from the AppExchange, such as the number of custom
apps, tabs, and objects it uses. You can also assign licenses to users, uninstall/purchase packages:
Setup > Installed Packages > view components (more info) > package details page: custom fields,
custom objects, apex classes and see if there are conflicts

The app includes two dashboards


o Focuses on user behavior, such as the number of logins by region or role.
o Focuses on usage of key objects, such as the number of new account records created.
User adoption data is at the top of your list of requirements

Dashboards > All folders > Salesforce Adoption Dashboards > Click 1 - User Adoption (Logins) to
open

Even without production data, you can see that the dashboard provides all the functionality you
were looking for in your AppExchange strategy:
who’s logging in most (1) and least (2), total logins (3) and logins by role (4)

Save
Finding that it met your needs in its default configuration, you went ahead and installed the app in
production  Looking now at the User Adoption dashboard with live data
 On the left (1), you have a clear picture of who is logging in to Salesforce regularly.
 On the right (2), you see a few people who can benefit from a gentle nudge  to schedule
some hands-on training.

Connect with community: By writing a review


 you help fellow superheroes understand whether a solution or consultant is right for them.
 help the solution provider or consultant understand what’s working and what’s not, which
can drive future improvements.

Data Model
= a way to model what database tables look like in a way that makes sense to humans.
In Salesforce, we think about database tables as objects, we think about columns as fields, and rows
as records. So instead of an account spreadsheet or table, we have an Account object with fields and
a bunch of identically structured records

Create object
Objects are containers for your information, but they also give you special functionality. For example,
when you create a custom object, the platform automatically builds things like the page layout for
the user interface.

Create a field
 ID: A 15-character, case-sensitive field that’s automatically generated for every record.
 Name: You can use text names or auto-numbered names that automatically increment every
time you create a record
 System: Read-only fields that provide information about a record from the system, like when
the record was created or when it was last changed (eg. CreatedDate, LastModifiedDate)
 Custom: Fields you create on standard or custom objects are called custom fields
eg. You can create a custom field on the Contact object to store your contacts’ birthdays

A data type indicates what kind of information the field stores.


 Checkbox—for fields that are a simple “yes” or “no”
 Date or DateTime—these field types represent dates or date/time combinations, like
birthdays or sales milestones.
 Formula—this special field type holds a value that’s automatically calculated based on a
formula that you write
Customize

 Give your objects and fields descriptive, unique names to improve clarity.
 Help out your users: might not always be clear about the purpose of a particular object or
field. Include descriptions for your custom objects and help text to give more details.
 Require fields when necessary: force your users to fill out a field when they’re creating a
record on a certain object  Make important fields required to avoid incomplete data.

Object relationships
= a special field type that connects two objects together
A related list on parent record displays related child objects (field on child object links to parent)

 One-to-one relationship eg. between the Property object and a Home Seller object.
 One-to-many: relationship with many child objects and one parent object
eg. single account can have many related contacts, opportunities, cases
related lists display the many side of one-to-many relationship
 4 different forms: (1) LookUp, (2) hierarchical, (3) master-detail, (4) Self

LookUp relationships
= link two objects together (any standard objects, except Activities or Quotes) represented on a
record page in the UI. It allows you to navigate from records in one object to the related records in
another object and allow users to select a record from another object during data entry (using cross-
object formulas*)
 Relationship is optional: Lookup field does NOT need to be a required field on page layout
Lookup CANNOT have universal requiredness
 Can be one-to-one, one-to-many, external (parent external object), indirect (child external
object), hierarchical (user object only), self (lookup to a different records of the same object)
 Not inherit the sharing and security settings from another object
 Objects usually work as stand-alone objects: child objects are independent and have a
separate settings (child records can have a different owner than parent record). If you delete
a parent object, the child object remains in the system, child object may/not have a parent
Unlike the option ‘Delete this record also’ is selected
 Dependent lookup: allow a lookup to have a filter to reference another field on the same
object eg. the contact lookup would reference (associated with) the account name field on
case records

*Cross-object formula field: eg. in opportunity record, display the name field of parent account
related to account that is associated with the opportunity

Relationships between objects represented on record page in the user interface:


Lookup relationship and related lists

Lookup relationship can be changed to master-detail relationship: only if lookup field in all records
contains a value and then change the type of relationship field
eg. all Application records have a value in Job field

Create customer relationship field


Object manager favorite > fields & relationships > new > Lookup Relationship > related to: Contact
> for field name enter contact > save
Hierarchical Relationship: lookup relationship model, used for ‘user’ object only
You can use them for things like creating management chains between users.

User has two managers:


SF has one Manager field on the user record and create additional manager field as a hierarchical
relationship (type is only available for user object: which allows association between one user and
another that does not directly or indirectly refer to itself)

Master-Detail Relationships
= Closely links custom objects together through parent-child relationship such that the master object
controls certain behaviors of the detail and subdetail record. Master-detail relationship fields are
always on child/detail object (up to 10,000 child records)
 Child Record must have a parent: parent object is required
 Can be one-to-one, one-to-many, many-to-many
 The child object inherits the sharing, security settings and record owner of the master object
detail record doesn’t have a record owner. Cascasde record-level security, record deletion
 Child/Detail object is dependent on the master. If a record on the master object is deleted,
all its related detail records are deleted as well eg. delete account and 15 contacts associated
with the account.
Unlike ‘Reparting’ setting is enabled: detail records do NOT need te be deleted if the parent
record is deleted because it will be associated with another master record
 A standard object cannot be on the detail side of a relationship with a custom object
 Roll-up Summary Field (custom object field) on parent/master object
Object manager > fields & relationships > new > master-detail relationship > related to: master
(property) > name > save

Many-to-many relationship: a junction object must be created = sits between two objects and have
a Master-detail relationship with both objects
eg. Position object and Candidate object: one position can be related to multiple candidates and one
candidate can be related to multiple positions  junction object: Application

Lookup relationship is implemented between Application and Interview


 delete an object that is related to a junction object by a lookup relationship:
delete related fields in the junction object

Creating the Two Master-Detail Relationships:

1. On the junction object, create a Primary master-detail relationship: Select one of the master
objects to relate to your junction object (detail object)
 Record ownership and look & feel is inherited from Primary Master object
2. On the junction object, create the Secondary master-detail relationship: Select the other
desired master object to relate to your junction object. If you delete the primary master-
detail relationship or convert it to a lookup relationship, the secondary master object
becomes primary.
 Account and contacts: account can be related to many contacts and contact can be related to
one-many accounts (enable Contacts to Multiple Accounts)  lookup relationship
 Accounts and opportunities: account can be related to many opportunities but opportunity
can be related to only one account  Lookup relationship but behaves as master-detail
relationship: deleting an account record deletes all related opportunities
 Accounts and cases: account can be related to many cases and case can be related to only
one account  Lookup relationship
 Contacts and cases: a case can be related to one contact and a contact can be related to
many cases  Contact has lookup relationship to Case (master object)

Schema Builder
= dynamic environment for viewing and modifying all the objects, relationships and data model in
your app. Quickly add new custom objects, custom fields, and relationships, simply by dragging and
dropping. Automatically implements changes and saves the layout of your schema any time you
move an object
Setup > schema builder > clear all > auto-layout

Schema Builder is enabled by default and lets you add the following to your schema:
 Objects: Custom and standard objects
 Elements: All custom fields except Geolocation
 Legend: Lookup relationships and Master-detail relationships

Create field with schema builder


Elements > choose field type (relationship, formula fields) and drag it into the object > fill out the
details about new field > select always require value in this field to save record > save

Data Management
SF Record ID = globally unique ID (read-only field) assigned every record when created
Updating a record using Data Loader: record ID, external ID, Parent external ID
• In UI: every record has its own 15-character case-sensitive identifier
• API/ Data Loader: will accept either 15 or 18, but 18-character case-insensitive ID is
recommended convert 18-character into 15-character by erase 3 characters
• Record ID’s don’t change even if it is deleted and later undeleted
• Not displayed on the record detail page, but the ID can be found in the URL (18-ch), Reports
(15-ch), Data Loader export file (18-ch)
• SF record ID’s are identical in Production = Full Copy Sandbox

External ID’s = unique identifier from a system outside of SF and can be used for matching records
when data is imported or integrated (not only importing solutions) (up to 25 external ID’s)
eg. ‘SAP account number’ can be added to Account object as external ID. When data are imported
into account object records can be matched using the ‘SAP’ field instead of record ID
 Field type: must be number, text, email
Setup > object manager > field & relationships > new > type: number > select unique: case
sensitive > select external ID
 Matching by external ID is available for any objects that has an External ID and can be
imported via the Data Import Wizard
 If an object has multiple external ID fields; select the field to match by
Import data
Data being imported into SF is required to be in CSV format (= comma separated values) = plain text
file that contains a list of data (accepted by Data Loader and Data Import Wizard)
 ID must be in csv file

Two main methods for importing data

Data Import Wizard—lets you import data in common standard objects and custom objects. It can
import up to 50,000 records. One import job can be done at the time.
It provides a simple interface to specify the configuration parameters, data sources, and the field
mappings that map the field names in your import file with the field names in Salesforce.

Data Loader—this is a client application that can be downloaded to desktop (runs on both Windows
and Mac operating systems) and can import up to 5 million records, of any data type, either from
files or a database connection.
 User interface: interactively specify the configuration parameters, CSV files, field mappings
 Command Line Interface (Windows only): specify the configuration, mappings, actions in
files. This enables you to set up Data Loader for automated processing eg. 6PM daily imports

OR use an AppExchange tool (Jitterbit Data Loader)


Select Command:
o Insert: create a new record
o Update: update an existing record  ID needs to be in csv files
o Upsert: update an existing record if a match is found; if not then a new record is inserted
o Hard Delete: delete records without moving to the recycle bin (Use Bulk API)
o Export all: export soft-deleted records (= in Recycle Bin)  restore deleted records from Bin
o Automate operation: (Command Line) automate the loading process by setting up
configuration, actions and mapping from command line
o Batch operation: nightly imports

Data Import Wizard Data Loader


Accessed by end users and Admins Accessed by Admins (with ‘Modify All’ permission)
Available from setup menu Client application: needs downloading to desktop
load less than 50,000 records. load 50,000 to five million records
(more: Third-party app in the AppExchange)
Accounts, Contacts, Leads, Solution, Campaign Support all objects and uploading attachments
Members, Custom objects allowed
Not automate process Automate import process: schedule data loads
Find duplicates/matching records No option to find duplicate
 fields: Account Name and Site fields used together with Duplicate Management: prevent
duplicates from being created (Account, Contacts,
Leads and custom objects)
Running workflow rules and processes – optional Workflow rules, VR, triggers will fire – not optional
Insert, Update, Upsert Bulk Import, Update, Export, Upsert, hard delete
Not save mappings Save mappings

Data Import Wizard steps:

1. Use your existing software to create an export file.


2. Clean up data: data quality (accuracy, usability, credibility, adoption)
 Remove duplicate records (ABC and ABC Labs): duplicate management controls
whether and when duplicated can be created
When setting fields to be unique eg. field in one record has a value of ‘Account’ and
another record has a value of ‘account’
 Sensitive: allow records: would be treated as different values
 records with duplicate values can be created
 Insensitive: records not be allowed and duplicate values not be created

Matching Rules: identify duplicates by defining criteria to compare records:


Multiple fields can be used for matching in matching rules
eg. having the same exact email address
 activate matching rules!
 Cross-object: two matching rules

Duplicate Rules: tell SF what action happens to duplicates: allow or block


Action on create (allow > alert/report) and Action on edit: block
 Available for Accounts, Contacts, Leads, Custom objects
 Multiple duplicate rules can active at the same time on the same object
 Create reports based on duplicates
 Created with quick create or via community-self-registration, restored with undelete,
manually merged, added with Lightning sync

Duplicate Jobs/Duplicate Record Sets: used in LE (Perf and Unlimited Edition) with standard/custom
matching rules to scan existing accounts, contacts, leads for duplicates and merging them
Multiple jobs can be scheduled to run to find duplicate records from different objects

 Validation rules: ensure users meet org standards for data entry
 Org-wide standards for data entry
 Enforce naming conventions
 Merging records: records considered as duplicates can be optionally merged
Before merging select one record as the Master and keep some field values
 Data.com Clean: tool for updating Accounts, Contacts, Leads records by matching
them with Data.com database records (manually or automatic)
 D&B Optimizer: validate and update Accounts, Contacts, Leads information
 Mass Update Addresses ensure standard for address fields when there are variations
in spelling for country  convert all standard country fields to ISO codes
3. Prepare your import file:
 Match field names: between your data fields with the Salesforce fields
 Add columns for record owner: import file should include an owner for each record
4. Prepare Salesforce: configuration changes required in SF to handle the imported data.
 Create custom fields: if data is not yet captured by SF
 Add new values to picklists but if you import picklist value that doesn’t match the
existing picklist value:
 Unrestricted picklist: the record will be added but picklist values will not be
added to list of selectable values (values will be blocked)
 Restricted picklist: record will fail and the value will be blocked
select ‘Restrict picklist to values defined in the value set’
Data Import Wizard uses the picklist’s default value
 Create external ID’s

Steps in Data Import Wizard


1) Start the wizard: select Data Import Wizard > launch wizard
2) Choose the data that you want to import
Click standard/custom objects > lead > update existing records > dragging the CSV to
upload area of the page > choose a character > next

Add new and update existing records:


New records have to be inserted, but existing records have to updated if a match is found based on
criteria: email address  choose for the option: ‘Add new and update existing records’
 unique values (ID, email) should be selected to ensure duplicate prevention
 Match Contact by: email
 Match Account by: Account ID/External ID

3) Map your data fields to Salesforce fields:


 Click Map to the left of each unmapped field.
 In the Map Your Field dialog box, choose the SF fields you want to map > click map
The Map Your Field dialog box also gives you the option of saving data from
unmapped fields in a general notes field for accounts and contacts: choose
Account/Contact Note from the Map > click Map.
4) Import data: Review page > Click start import
 if import is completed, email notification will be sent containing summary of import job
5) Check import status: Setup > Bulk Data Load Jobs: list of recent and in progress import jobs
and only admin has access to it

Import Articles tool:


Existing articles (from multiple record types) and translations can be imported into SF Knowledge
1. create a .ZIP folder: .CSV file for each article + .properties file setting the article’s parameters
(data format, character encoding)
2. articles must sort out by type and match its predefined Article Type in SF Knowledge
3. Field will be mapped, not support subfields
4. Article translations if org has enabled multiple languages for its Knowledge base

Import Settings
 Update existing record information with the matching data from import file
 Trigger Workflow rules and processes when their criteria are met by imported records
 Assign all contacts to campaigns during the import

Need to know

 Default values: if you do not map the field in the import wizard, the default value for the
field is automatically inserted into the new or updated record
 Formula fields and roll-up summary fields: CANNOT accept import/export data  read-only
 Fail to import if a required field is missing
 Validation rules: deactivate validation rule before an import job if any of records that fail the
validation: eg. a lot of old records fail the VR: deactivate VR – run the update for old records
– activate VR again – run update for new records
 Workflows: manually switched off before a data import job if any of these processes may
prevent records from being uploaded successfully

Steps of Data Loader on Data Insert, Update, Upsert


1. Login to Data Loader
2. Select query: Insert, Update, Upsert
3. Select object and CSV file
4. Map fields: automatically match fields to columns or manually
5. After operation is finished, view output files: success and error

Different import wizards


Mass Transfer
Mass Transfer records: transfer multiple records (up to 250) from one user to another within SF and
the related records (for Accounts and Leads) as well. Objects that are available for transferring are
listed on the Transfer Tool.
If you want to transfer only 10 records of a custom object displayed in list view to another owner:
select the records in the list view and click on change owner
Data management > Mass Transfer > Accounts > select new owner – criteria – records
 Accounts: open activities, open opportunities, contracts, notes & attachments
Leads: open activities
Custom objects
 User permissions: record owner or user above in role/territory hierarchy
 System permissions: users with ‘modify all data’ or ‘modify all’ can transfer
 Sharing rule, manual sharing access would be removed

Mass Transfer for approval requests:


a) Find records that are currently in approval process
b) Mass remove selected records or Mass transfer to another user
Mass Reassign: add, remove, and replace members in (opportunity) teams
Transferring Individual Records:
 User permissions: record owner or user above
 To receive a transferred record, the user needs at least ‘read’ permission on object
 Leads can be transferred to users or queues

Mass Deleting
Mass Delete records
Two best practices are recommended prior to Mass Deleting records:
Run and export a report to archive data before deletion or schedule a weekly data export and
download the backup zip files (Data Export Service)
 Accounts, Activities, Cases, Contacts, Leads, Solutions, Products, Reports
Also related records can be deleted
 Optionally permanent deleted bypassing the recycle bin
 Data Loader can be alternative to mass delete records but with small number of records
Recycle Bin
Deleted records are stored for 15 days, after they are permanently deleted
App Launcher: All items  be added to navigation bar
 ‘Restore’, ‘Delete’ or ‘Empty Org Recycle Bin’ in UI (permanent deletion of all items in bin)
 Storage limit: 25 x org storage (MB)  if limit is exceeded, older records are automatically
deleted (been there for at least 2 hours)

Export data
Data is being exported can be CSV, XLS, XLSX
SF cannot guarantee the date and time the export will complete

Records should be backup before any changes are made:


Export records – save a backup – add new data – update records

Salesforce offers two main methods for exporting data/data backups

Data Export Service/Wizard—an in-browser service (Setup menu) and helpful for scheduling exports
manually weekly (7 days) or monthly (29 days) or automatically at weekly or monthly intervals.
 Weekly exports are available in Enterprise, Performance, and Unlimited Editions.
 Monthly export are available in Professional Edition and Developer Edition
Automated and scheduled export of complete sets of object data:
 email is sent with a link to a downloadable zip file (.csv files)
• Data can optionally be included: Images, docu’s, attachments, Chatter files, CRM
content and data from Sandbox environments is not supported
• Export backup duration and automated exports should normally be scheduled
outside office hours
• Select a particular day of the month or week eg. 1 Sunday

1. From Setup > Data Export > Export Now or Schedule Export
 The Export Now: prepares your files for export immediately. This option is only available
if enough time has passed since your last export.
 The Schedule Export: to schedule the export process for weekly or monthly intervals.
2. If you want images, documents, attachments included in your data, select those
3. If you're scheduling your export, select the frequency (only available for organizations with
monthly exports), start and end dates, and time of day for your scheduled export.
4. Under Exported Data: select the types of data:
“include all data” (recommend) or object-specific data
5. Click Start Export or Save. SF creates a zip archive of CSV files and emails you
 Large exports are broken up into multiple files.
 Zip files are deleted 48 hours after the email is sent

Data Loader: to bulk export data and only available in Enterprise Edition
 back up automatically: use the command line interface of Data Loader and schedule the export
 automatically store data on network server eg. local company server
• Export options: include (Export all) or exclude (Export) soft-deleted records (= in Recycle Bin)
• Not support extraction of attachments
• Use SOQL queries to selectively export records that fit a certain set of criteria
• Support importing/exporting from Sandbox environment (Enterprise and Unlimited Edition)
1. Setup > Dataloader.io > launch > login with SF > environment: production/Sandbox
2. Click NEW TASK > EXPORT > object
3. SOQL Query: Field – operation – value

Setting of ‘Insert null values’ will insert or update fields with null values: blank cells in csv files are
treated by Data Loader as no changes are needed in those fields
Eg. update record that have picklist field status of ‘New’ and make that field blank instead:
export the records, change the ‘New’ to blank and upload the data using the DL using ‘Insert null
values’ setting

Report Export (such as the Data Loader): useful for exporting a subset of records and fields
• Exported in CSV or XLS format by opening report > selecting export button
• No limits on number of rows/columns but the tool such as Excel where you open the
exported data: only see the first 2K records in UI
• Settings page appear to choose report view: Formatted Report (xlsx) or Details Only (xls/csv)

Reached data storage limit and archive old records = backup to make space to add new contacts
 export data (either by creating a report or Data Loader) and use Data Loader to delete the data

Reports & Dashboards for Lightning experience


Folder
Folders are used to control access to reports, dashboards, documents (files) or email templates
(access can range from private to shared, but not follow org-wide defaults or role hierarchy)
and organize, store and remove reports and dashboards between folders
 Subfolders: In LE hierarchy of subfolders (max of 3 levels) organize reports and dashboard in
logical structure. Subfolder can be created in user created folders, not in Public or Private
folders  Folder sharing is at the root level, not subfolder level: share a folder with a user,
the sharing rights apply to any subfolders, not have to share subfolders individually
 If you want to view or email report or dashboard, the r&d must be in public folder with
access granted to users, roles, territories, public groups

Two sharing models for folder:

 Traditional
 Folders can be set public, hidden, or shared (must be in public folder)
 All users with access to the folder have the same level of access
 Users access can be set to read-only or read/write
 Enhanced: (enabled by default for new org)
 Different groups of users can be given different access to the same folder
 Users access:
• Viewer: view reports, dashboard in the folder and see what level of access
• Editor: viewer + save, rename and delete reports and dashboard in folder
• Manager: editor + share, delete folder, rename folder and assign access

Two methods to find a folder quickly in SF org?


• Global Search: allow users to search for records, apps, folders in SF org
• All Favorites list in Reports and Dashboards contain folders that been marked as favorite
Reports
A report is a list of records that meet the criteria you define, displayed in rows and columns.
During report creation: grouping, data filters, add charts
Every report is stored in a folder: Main folder types for reports for any user:
 Standard report type is stored in a standard folder
 Custom report type is stored:
• In custom folder
• Unfiled folder: controlled by admin
• My personal folder: controlled by the user

Enhanced Report tab: used to find and create reports and dashboards in the same place
‘Find Reports and Dashboards’ search box: search for the selected folders

What records you will have access to when running reports:


Records you own, owned by users below you in hierarchy, read/write access, shared records

Questions: Which products are my top sellers? Which marketing campaigns have been the most
successful? How satisfied are my customers?
Before building a report: map those requirements to report criteria

What makes a product a top seller, revenue or quantity?


Do you want to see the results grouped by product family?
Follow-up Questions
What is your date range?
If we stop selling a product, should it show on the report?

Show all Closed Won opportunities.


Group products by product family.
Requirements
Do not show inactive products.
“Top sellers” here means quantity rather than revenue.

Report Type = Opportunities with Products


Report Format = Summary
Grouping = Product Family
Show = All Opportunities
Criteria Date Field = Close Date
Range = Current FY
Filter = Product ‘equals’ Active
Filter = Opportunity Stage ‘equals’ Closed Won
Filter Logic = 1 AND 2
Report type
A report type is like a template that makes reporting easier: determine which field and set of
records, objects are available in a report based on the relationships between a primary object and its
related objects. Reports display only records that meet criteria defined in the report type
 Never change report type if the report is created
 The chosen report type determines: the available filters, default columns, object and fields
Report options at the top of report are different because of the report type
 Field layout determines which fields are available for reports based on the report type
o Standard Report types: Primary object and related objects are fixed: no lookup

Used: when objects and fields available in report type meet report criteria and use when
building “with” related records; always are with related record
 Standard and custom fields for each object are included in report builder
 when a field is created, it will be automatically available in the report*
 Field cannot be hidden from a report type and will always be available
 Standard reports are NOT visible through the Reports search
 Customize standard reports: must saved it as customized report (= custom report)
o Custom Report types: admin create in setup available in report builder
Select which of the related records and fields will show on the report. Primary object can be
defined (not changed after saving) and up to 3 related objects (edit)
Used: records in report type does not meet report criteria. Used to specify types of related
records included (“with” or “without” related records)
 new Custom Report type needs to be deployed: for users to find it
 Fields available in the Report Builder can be limited, reorganized and renamed
 When a field is created, needs to be added to field layout to make it available
(edit properties: if fields are checked on field layout are included in report by default)
 Fields can be hidden from the report type to prevent the field from being used
 Include additional fields eg. related to a lookup such as Parent Annual Revenue
 Field types NOT added to custom report type:
• History fields
• Product schedule fields
• The Age field on cases and opportunities
*Add a new field to Opportunity object: The new field will be automatically insert into all existing
standard (Opportunity report type, Opportunities with Products report type, not Opportunities with
Account report type)

Save as: Create a new report by changing the options of a report and then savings as new report

Report formats
Report formats are not explicitly selected in Lightning report builder, but they automatically adapt
based on the grouping that is configured in the report

1. Add or remove fields by dragging and dropping


2. Choose the correct filters and range
3. Choose the report type
*Bucketing lets you quickly categorize report records without creating a formula or a custom field.
When you create a bucket field, you define multiple categories (buckets) used to group report values.
Supported in Dashboards: allow floating report headers (Tabular: only column headers, S/M also can
float the Grouped By info)

o Tabular (default): a list of records, displays an ordered set of fields in columns where each
row represents an actual record  the simplest and fastest way to look at your data.
Use? For a mailing list, activity reports, data cleanup, export, backup
 Cannot be used to set up groups of data, formulas, charts
 Cannot used to run a dashboard report: doesn’t have row limits
If you have limit on number of rows  as a source report in dashboard component

1. Reports > New Report > report type: ‘Opportunities’ > Filters, apply the following filters:
For the Show Me standard filter > All opportunities > done
For the Opportunity Status standard filter > open > apply
For the date standard filter > Created Date and Current FY for the range > apply
For the fastest results, always set the smallest date range you can. If your report has to sift
through a great many dates, it can take longer to show the information you’ve asked for.
2. The following columns/fields should already be included in your report: Opportunity
Name, Type, Lead Source, Amount, Close Date, Next Step, Stage, Probability (%), Fiscal
Period, Age, Created Date, Opportunity Owner, Owner Role, Account Name > Save
3. Name your report Open Opportunities This Year > Enter a description and save the report
in the Public Reports folder > Run

o Summary: group records by row with subtotals (up to 3 levels of grouping)


eg. Sum of opportunity amount grouped by close month
 ‘Sorted By’ option will appear: more than one level of grouping
 most people find that most of their reports tend to be of this format.

1. Reports > New Report > report type: ‘Cases’ from the Customer Support Reports folder >
Filters, then apply these standard filters:
For Show Me > All Cases > Apply.
For Date Field: Opened Date > All Time for the range > Apply.
2. From the Add filter > apply a field filter for cases where Open equals True > Search for and
select Open > From the dropdown list: True > Apply.
3. Verify that these columns appear in your report: Case Owner, Subject, Date/Time Opened,
Age, Open, Closed, and Account Name. If necessary, add them.
4. To make this report a summary report you need to group rows:
Outline > Under GROUP ROWS: Add group: Priority
5. See the totals for each priority level: turn off Detail Rows at the bottom of preview page.
6. Save the report as Open Cases for All Time > accept the auto-generated unique name.
7. Enter a description, choose the Public Reports folder > Save.

o Matrix: group records both by row and column (2 levels of summarization) and used to
Compare totals, more detailed view of data, analyzing large amount of data
Use? At-a-glance overview of data, like total revenue or quantity of products sold
 The Stacked Summaries option (enabled by default) metrics are grouped by row
instead if it is disabled the metrics are placed in different columns
 Like pivot table
 most time-consuming to set up, but the most detailed
 Mathematical operations: sum, avg, min/max

Exercise: wants to know revenue trends, month over month  showing sales for each month:
1. Reports > New Report > report type: ‘Opportunities’ > filters:
For the Show Me standard filter > All Opportunities > Done.
For the Opportunity Status standard filter > Closed Won > Apply
For the Date Field standard filter > Close Date. For Range, select Current FY > Apply
2. To summarize the report by Sum of Amount: More actions dropdown arrow on the Amount
column > Summarize > Sum
3. To change the report format to matrix, first group rows by Close Month and columns by type:
Outline > Under GROUP ROWS > Add group > Close Month >
Under GROUP COLUMNS > Add group > Type: Outline
4. Matrix reports are usually easiest to consume with details hidden: turn off Detail Rows.

o Joined: multiple reports (different report type) can be displayed side-by-side using blocks.
Report types can only be joined if they share common fields with each other
Each block shows data from 1 report type like a “sub-report,” with its own fields, columns,
sorting, and filtering (at most 5 blocks: each block up to 2000 records = 10,000)
Used? Performance scorecard, support cases by status with blocks for new and closed cases,
opportunity pipeline report with blocks for different opportunity statuses
 Principal report type (of the first block) can be changed
 Existing unjoined reports can be converted into joined reports
 Options available for joined report run page: group, filter, add chart, summarize, add
report to dashboard, not update records

Exercise: create a basic Opportunities report, add three blocks, filter each block by the appropriate
status, and then group the results by sales rep.
1. Reports tab > new report > report type: opportunities > click arrow next report > joined
report > apply
2. Add another report type to joined report: add block > report type
3. Customize joined report: add columns, groups, filters, formulas > save
4. Describe the report > select folder > save > run

Sharing model on reports


Reports will only show records the user has access to: two different users with different permissions
run a report, the report will show different data depending on what records they have access to

Run report access:


 Users need to enable ‘Run Reports’ permission on their profile
 User should have access to the object (records) which contains information
 User should have access to the folder where the report is stored

• Folder sharing determine access to folders in which reports are stored (view, edit, manager)

Private folder: cannot be accessed, only visible to user who created the folders
 in sharing settings: enable ‘granted access using hierarchies’ if OWD = private to let sales
manager see the reports that are owned by a sales rep
• OWD and other sharing settings determine default visibility to records you see in reports
 Sharing model = public: all users will see the same records in the report
 Sharing model = private: only be able to see data to which they have access, as well
as those below them in role hierarchy if it is enabled  different users will see
different results for the same report
• Page layouts have no impact on record visibility in reports: a field can be viewed even if it is
not visible on a page layout

Report subscriptions: Schedule reports and emailing reports:


Schedule a report: Click on Run Report > drop-down: Schedule Future Runs
 scheduled reports run in the time zone of the user who schedules the report

 Frequency: Daily, weekly or monthly


 Date range: start and end date
 Specify the report to email and it is emailed within 30 min of preferred start time
 Specify the running user

Recipients:
• users, public group (employees), roles
• Recipients of the report must be SF users
• Running user and recipients must have access to the folder in which the report is saved
• Data in the report may not be the same data the receiving user has visibility to
Report Builder
= report editing interface: drag-and-drop report builder
 upgrade of Report Builder: you get Scatter chart
 turned on by default for the new org (for Group, Professional Edition)
 Admin has Report Builder permission by default
 Accessibility Mode (in Person Settings): old report wizard only available

The object relationship determines which records the report type includes. Each object relationship
specifies a primary object and optionally one or more related objects
 Primary object with related object—eg. Opportunities with Products, the only records that
would be displayed on the report would be opportunities that have at least one related
product record
 Primary object with or without related object—If we were to create a custom report type,
Opportunities with or without Products, then opportunities would be displayed whether or
not they have a related product record.

Create a new custom report type of ‘Contacts with Inquiries with Activities’: see activities associated
with inquiries that are related to contacts. It can be used to display contacts (primary object) which
have at least one inquiry, with the inquiry related to at least one activity

Areas of the Report Builder


 Fields (based on object)
 Preview (display)
 Report options (filter report data, generate groupings, change info is being displayed)
Tools for customizing report data
Bucket Fields
• Fields: Number, Percent, Currency, Picklist and Text
• A bucket field can be created from an existing column
• Fields can be used for grouping, filtering and categorizing report values based on criteria
• Up to 5 bucket fields and 20 buckets for each field
• Cannot be created in joined reports
Summary Fields
• Number or Currency fields can be summarized by SUM, AVERAGE, MIN/MAX
• Summary values are displayed at all grouping levels
• appear in summary/matrix reports at the total level
Row-Levels Formulas
• can be used to calculate the difference between two date/time fields
eg. difference between ‘Date/Time Opened’ and ‘Case Accepted Time Stamp’
• specific info that is not available in a standalone field
• Only 1 row-level formula per report, up to 3 unique date/time fields
Custom Summary Formulas
• Calculate additional totals based on numeric fields (number, percent, currency)
eg. Max revenue at grouping level
• up to 5 formulas per report
• Can be used in a report built from a custom report type: Created for summary, matrix and
joined reports with at least one grouping require
• Can reference formula fields, but CANNOT reference other summary formulas
Conditional Highlighting
• Allows summarized values (grand and summarized totals) to be colored depending if value
meets the criteria/ threshold  up to 3 ranges (Classic)
• Used in summary and matrix report
Grouping report data
• Grouped by choosing a field (when at least 1 row is grouped (2), column (2) can be grouped)
eg grouped by date field: apply a calendar of fiscal period
Reporting snapshots
= provides info on historical data by storing data schedules over time, so protects data from deletion
 Comparative analysis or trend analysis
 Source report: tabular, summary
Export reports
You must run the report before you can export or print it because ‘Export button’ and ‘Printable
View’ are otherwise not available in Report Builder
 Formatted Reports (xlsx): maintain visual presentation  directly publish to consumers
 Joined Reports: always exported as Formatted Reports
 Printable view (only Classic) or use the browser’s print function to print reports
 Details Only (xls or csv)  data cleanup, backup, data quality
 Data Export Service: allows immediate export or schedule it for a future time
 Data Loader

Use filters
The field layout determines which fields the report type includes. For example, each opportunity
record has fields like Account Name (Text), Amount (Number)
Custom report type: allow you to expand filtering options on standard reports

Filter type Description


Standard filter Show Me: filters object around common groupings (“My accounts”, “All accounts”).
Date Field: filters by a field (Created Date or Close Date) and a date range (“All Time”
or “Last Month) that can accept manually entered values
Field filter For each filter: set the field, operator, and value (field types: numeric, date, datetime)
With tabular, summary, and matrix reports, you can drag a field from the Fields pane
to the Filters pane to add a report filter  Available for reports, list views, workflow
rules. Filtering on picklist field: select ‘no selection’ to limit results to the records that
are blank or contain ‘null’ values
Filter Logic Add Boolean conditions to control how field filters are evaluated. You must add at
least 1 field filter before applying filter logic  combine filters with AND/OR/NOT
Cross-object filter To limit the records displayed to those ‘with’ or ‘without’ child object records and
filters can be set on the child records, Accounts with Cases (up to 3)
Add subfilters to further filter by fields on the child object (up to 5 subfilters)
 allow you to exclude/include data
Row Limit For tabular reports, select the maximum number of rows to display, then choose a
field to sort by and the sort order.
Exercise: a report of accounts who are direct customers.

Field Filter

1. Reports > New Report > select the report type: ‘Accounts’ > Filters >
2. Click Show Me standard filter > select My accounts > apply
Click Date Field standard filter > select Created Date > For Range: select All Time > apply
3. In the filters pane: click Add – Field Filter: field (type) – operator (equals) – value (Customer
– Direct) > apply > save
4. Save your report as Direct Customer Accounts and accept the auto-generated unique name

Filter logic
= lets you apply filters based on conditions
Exercise: Erin wants to see her accounts who are either direct customers or resellers
 Filtering a standard Accounts report takes Erin most of the way there:
 Account Owner equals Erin Donaghue
 Type equals Customer – Direct
 Type equals Channel Partner / Reseller

Operators:
o AND: find records that match both values
o OR: finds records that match either value
o NOT: finds records that exclude values

But filters 2 and 3 conflict with each other  causing the report to return no data.
Report Builder > click filters: Add Filter Logic > 1 AND (2 OR 3) > the report only contains accounts
owned by Erin who are either customers or resellers

Cross-Object filters
= allow you to extend reports to objects related to the original objects defined in the report type
 Exclude data- Opportunities without activities in the past 90 days. Erin doesn’t want to waste
time calling these opportunities.
 Include data - Contacts without accounts. Lincoln wants to add these contacts to accounts

1. Reports > New Report > Select the ‘Accounts’ report type > Filters > set the Created Date
range to All Time > Click the More Actions arrow > select Add Cross Filter >
2. In the filters pane: click Add – Cross filter: Select a parent object* > choose operator
Select a child object from the secondary Object dropdown > Select Opportunities > apply
3. Optionally add subfilters: Click Add Your Related Child Object Filter (Add Opportunities
Filter) > field - equals – value: Prospecting, Qualification, Needs Analysis, and Value
Proposition > apply > save
4. Name the report Accounts with Early Stage Opportunities > save

*Your choice determines which related objects you see in the child object list

Report charts
If you don’t want to create a dashboard, but just want to add a chart to your report but the record
must have at least 1 group: any summarized field, custom summarized formula or record count
 Charts in Run Page (= report viewer in LE, improved UI with enhanced performance):
represent all the records, even those over the limit of 2000 records
 any chart in report can be added to page layout

Each point/bar/wedge/segment in chart represents data from a summary row of a grouping

 Horizontal bars: comparing distance or time, limited to a single grouping


 stacked bar: show summary values from two levels of grouping in report
eg. compare status of leads by campaign and also to compare the totals for each status
 Vertical columns: grouping by a date field or showing relative counts such as comparing
different employee counts at companies, used on summary report with a single grouping
 go to filtered source report: click on individual groups, legend entries, the x-axis
 Line chart: show changes in value over time
show summary values from two levels of grouping in report (as stacked bar)
 Donut chart (%): data is displayed as multiple groupings contributing to a total value (in them
middle), each wedge presents data from a summary row of grouping
 Funnel chart (%): multiple groupings to show proportions among the set,
larger segment suggests area of interest eg. viewing opportunities stages in a sales pipeline
 Scatter chart: data grouped by summarized values for one or two groups of data
eg. how stage duration correlated with the number of activities for opportunities

Combination charts: display more than one summary value in chart and add a second axis range
Donut chart and funnel chart do NOT support combination charts

Embedded charts allow you to add up to 2 charts on a page layout


Before you add a chart, check that:
 Its source report is in a folder that’s shared with users who need access. Reports in personal
report folders are unavailable to add to a page.
 The source report format is summary or matrix.
 The source report has a chart.

Select object > select record in object > click on setup > edit page > drag report chart (related
records) into canvas > save
Dashboard
A dashboard = visual display of data from reports which are very useful in analyzing data, keeping
track of changes. The relationship between a dashboard component and report is 1:1; Each
dashboard component shows data from one underlying report. However, you can use the same
report in multiple dashboard components on single dashboard (eg. same report in bar and pie chart)
 not use dashboards on standard reports
 also follow a dashboard in Chatter to get updates about the dashboard posted to your feed.

Every dashboard is stored in a folder: to view dashboard components, you need access to the
underlying reports as well.

Open a report: the user can be navigated to the source report, filtered report, record detail page,
other URL

Dashboard components (up to 20 components)


 depend on source report

1. Gauge: when you have a single value to show within a range of custom values
 how far a user is from reaching a goal eg. target revenue of sales user
2. Table: show a list of records in row and column format eg. list the top 5 sales performers
 only Table has Photos
3. Chart: show data graphically (horizontal bar, vertical column, pie, donut, funnel, line, scatter)
4. Metric: when you have one key value to display eg. total amount of all closed won opp
5. Lightning table: (up to 200 records and 10 columns) from any field available in report type
6. Legacy table: show columns and use color and scale to improve interpretation of data
(NOT BE CREATED IN LE, ONLY EDITED)
7. Visualforce page if you want to create a custom component
8. Snapshot: post a static image of component to dashboard feed  first row of any
dashboards on the Home Page display

 In LE: the smallest possible dashboard component that can be added is 1 row by 1 column

Chart segments = interactive and clicking on a segment may open a filtered view of the source report

Joined reports: can be displayed in dashboard components but the report’ chart must be used
Data filters and other settings will be disabled in the component

Data flows from report to components:

 Table and chart components: use data from each group level of their source reports
(summary/matrix): groupings and subtotals
 drill-to-detail dashboard component: when they click on table or chart, users are taken to
record detail page (only if source report is grouped by record name, record owner, or feed
post)
 Gauge and metric components use data: ‘grand total’

User access
Reports show only info you can access whereas Dashboards show info which you even cannot access.
• Me —according to your access
• Another person —according to the data access level of the person you specify
• The dashboard viewer —according to their own access to data (= dynamic dashboards)
Running user
• “View All Data,”: change ‘view dashboards as’ user to any user in the org
• “View My Team's Dashboards,”: change the ‘view dashboards as’ user to any user below
them in the role hierarchy
• “Other User’s Dashboard”: can edit the dashboard if they have access to it, even if they
aren’t the running user and don’t have “View All Data.”

Refreshing dashboards:
NOT automatically refreshed:
 Be manually refreshed: click on ‘refresh’ button
 Schedules refresh daily, weekly, monthly  automatically send an email of updated
dashboard to group of users

User permissions
 Subscribe to dashboards: schedule refreshed and send notifications by email based on
conditions that trigger the report run eg. ‘record count of open cases’ > 100
 Only users with access to the dashboard can be added as subscriber
 Any filters applied to dashboard are not applied to the emailed dashboard
 Dashboard subscriptions can be by user, group, role-based
helps maintain a subscriber list current as users change roles or leave groups
 Create and customize dashboards in personal folders
 Create, edit, delete dashboards and manage their sharing in all public folders

Types of dashboards
Each dashboard has a running user, whose security settings determine which data to display
Running User concept in Dashboard allows users to view Data which normally they cannot view

o Fixed Dashboard: ‘View dashboard as’/running user is fixed to a specific user: all viewers will
see dashboard data based on the access level of this user regardless of their own personal
security settings  perfect for sharing the big picture across a hierarchy or motivating team
o Dynamic Dashboards: data is displayed on dashboard changes according to access level of
the logged-in user who is currently viewing: see data according to their own access, the
source reports cannot vary  eliminate to create the same dashboard for multiple users
In order for sales manager to see data of sales reps, enable ‘Grant Access Using Hierarchies’
for the objects containing the report data
Actions that are allowed if you writing a trigger for dynamic dashboards: insert, delete

Limitations
 You can't follow components on dynamic dashboards  users cannot customize the
dashboard
 You can’t save dynamic dashboards in private folders
 Dashboard subscription is disabled: you can’t schedule refreshes automatically 
must be refreshed manually
 Limit for Enterprise and Unlimited edition

Dashboard builder
The dashboard builder = intuitive interface for building dashboards from source reports
Drag and drop reports as data source of component, chart type to create component onto dashboard
 cannot choose joined or historical trend reports (= report on changes to field values over time)

Create a dashboard in the Dashboard Builder


1. Select the running user
2. Select components
3. Select the data source
Permission to add, create, edit and delete dashboard: manage dashboards

Creating a Filter needs to be done in Classic!


Edit > filter > select field > Under Filter Options: select an operator and provide one or more values
to filter by > name > save
 Filters can’t be added to dashboards that contain Visualforce components.
 It’s not possible to filter on bucket fields. However, it is possible to use a report filtered on a
bucket field on the dashboard page.
 Filters aren’t applied in refresh schedules or subscription email a dashboard.
 You can’t filter data on a joined report in dashboard view

Display dashboard on Home tab or Lightning app: Edit page > add the dashboard component

1. Switch to Salesforce Classic to edit them.


2. Dashboards tab > new dashboard > Edit Dashboard Properties
3. Click View dashboard as drop-down button next to the View dashboard as field > Select
Run as logged-in user or Under View Dashboard As:
4. From the Properties window: Save > from the Dashboard Builder: Save again

Extend Your Reporting Strategy with AppExchange


On AppExchange, there are sample report and dashboard packages available from Salesforce Labs.
These can be downloaded and installed into your sandbox or production environment.

With reports and dashboards, here are a few considerations:


 Some of the packages come bundled with a handful of custom fields.
 Reports, dashboards, folders, and custom fields all have names, which can conflict with
existing names in your org.
 Packages all come with report and/or dashboard folders.

Installed packages > click name of yours > view components

Modify reports
Before modifying an existing report  make a copy so you don't write over a report that you or
someone else might want to keep! Save As: name > private reports > save
 never overwritten a standard report

Modify dashboards
Copy: edit arrow > saves as > create
Edit > edit mode in drag-and-drop dashboard builder:

Common ways to customize an existing report or dashboard:


 Add a date range
 Use a relative date value like TODAY, YESTERDAY, LAST WEEK, and LAST MONTH
 Group by owner
 Change/add dashboard component type
 Change order of columns  Add or remove columns
 Change the report format to tabular, summary, or matrix

Desktop tools
Salesforce Outlook Integration = cloud based compared to Salesforce for Outlook
Download SF app and installed in Outlook > choose environment: production/Sandbox
Setup > email > outlook integration and sync > settings
o View, search, create SF records related to an email: Log emails to exact people and records in
SF (Records from contacts, accounts, users, cases, leads, opp, CO)
o Add-in functionalities: show related SF records, manage tasks, use email templates to ensure
consistent messages to customers in order to save time
o Enable ‘Email to SF’: automatically relate emails as activities to SF records like contacts, leads
o Enable ‘Enhanced email with Outlook’: Add emails from Outlook to SF records as Email
messages objects. If you not enable this: emails would be associated as tasks in SF

Salesforce for Outlook  Lightning Sync: contacts and events to sync between Outlook and SF
(eg. lets reps relate these calendar events to Salesforce records)
• Tasks cannot be synced
• Synced events can be automatically deleted in both systems (SF and Outlook) but
synced contacts cannot be deleted automatically in other calendar app
• Sync Recurrence pattern can be set to daily, weekly, monthly, yearly
• Sync private events and event series: Synch repeating events: admin needs to enable ‘Sync
event series’ in Lightning Sync configuration
• Items that cannot be assigned to SF records appear in My Settings > ‘My Unresolved Items’

Using Lightning Sync and Outlook Integration together is ideal solution for customer who use
Microsoft Exchange, Outlook, 365: with Lightning Sync users can sync contacts, events or both
between Exchange and SF and with Outlook Integration users can related emails to records in SF and
access SF records from Outlook

Quick action can be add to the Outlook publisher layout

Admin setup
In Salesforce: Setup > Lightning for Outlook > Settings > enable > save
If you’re using Exchange 2016 or 2013 on-premise, update Exchange Metadata URL.
In Outlook Web App (OWA): open Settings > Manage apps > select Salesforce > Lightning for
Outlook appears: enable

Installations options for installing SF for Outlook:


 Manual: customize what contacts, events, tasks you want to sync
 Automatic: sync all contacts, tasks

Mobile App Customization


Introduction
Salesforce mobile app is an enterprise-class app that provides your users with instant access to your
CRM data and functionality.
 included with every Salesforce license.
 Salesforce Mobile App replaces SF Classic and SF Touch
 It works out of the box with no setup required.
 It isn’t just an app. It’s a platform  it’s infinitely customizable.
Well, things that work in a desktop environment don’t always work as well in a mobile
environment. (eg. Let’s say you added a bunch of custom fields, which means your
opportunity page layout has over 100 fields, long time to load for enormous page)
 Not available to Mobile App: account hierarchy, merging accounts and contacts,
manage campaign members, lead history related list

Three features you can use to customize the mobile app


 Mobile navigation, for Lightning apps and the Mobile Only app
 Compact layouts
 Quick actions

Customize Navigation menu


Mobile navigation menu is: a signpost. Your users rely on it to get from place to place in the
Salesforce mobile app as efficiently as possible. Items that can be accesses in navigation menu:
actions (posts, tasks, files), Path, Chatter, Approval request, notes

What you can change


 Users can individually reorder navigation menu items with ‘Edit’ button
 Smart Search Items: a dynamic list of user’s recently accessed objects to the navigation
menu. If Smart Search Items is one of the first four items in navigation menu, some recent
items appear in the navigation bar at the bottom
 Menu items: any items you place above Smart Search Items
 App section: contains any items you place below/after Smart Search Items elements
 Record highlights: first four fields that are assigned to the compact layout for the object
 Customize ‘SF Mobile and Lightning Experience Actions on object page layout: ‘Buttons’
section available as actions in SF App Action bar.
 If you want to include Visualforce pages, Lightning Pages, or Lightning components in the
mobile navigation menu, you have to create tabs for them.

Features
o Chatter in Mobile App
• Post to groups, download files, update service cases or sales opportunities
• Chatter posts can be edited directly from the app
• Chatter tab can be used to access the record feed
• Mute post: they don’t want to receive emails and push notifications related to posts
o Mobile App Offline access (enable ‘Offline Edit’)
• Action (Log a Call, Post, Change owner), SF Communities are not supported offline
• Offline Chaching = securely access to most recent records anytime, anywhere
• Offline Preferences: select up to 7 items to access offline (tasks, campaigns, contacts)
o Create/edit Opportunities, Account, Contact, Cases records
o Records can be submitted for approval
o Converting leads: based on duplicate alert a user receives when converting a lead, the user
can decide to save records that could create duplicates or select other record to avoid them
o Path: device users working on leads and opportunities
o Account and Opportunity Teams
o View info about users in account: check ‘users in Assigned Territories’ related list on account
o View, but not create/edit Dashboards (single-column on phone and two-column layout on
tablet) & Report highlights: display up to 8 key performance indicators in the header
o Create custom notification types (in notification builder) for number of events
 push notifications must be enabled: approval request, task assignment, Chatter group
mention, report thresholds are met
o View Twitter profiles (via Lightning App builder)

Quip app: edit documents and collaborate with coworkers


 integration between SF and Quip: click on Quip docu link in SF app opens docu in Quip app and
only users with access to Quip are able to open it in Quip

SalesforceA: app which allow admins to access important info and user management on device
• Create a new user (not multiple users), frozen, locket out users, activate or deactivate
• Edit details except role, assign permission set or user license to user`
• Wiew login history, reset passwords

Customize Mobile Only navigation menu


 the most important items are at the top:
1. Setup > Mobile apps > Navigation > Salesforce Navigation
2. Rearrange the selected items so that the top five are in the following order: Events,
Chatter, Tasks, Dashboards, and Smart Search Items. Note The first four items in the list
become the first four icons in the navigation bar for your users
Customize Compact Layouts
Layouts make Salesforce such a flexible CRM platform: You can customize the appearance of so
much stuff with layouts.

Compact layouts control which fields appear in the header.


 Isn’t required, but recommend using to put important fields into record headers
 Not all fields appear in the list, you can assign up to 10 fields (including the Name field)
compact layouts don’t support text areas (long), text (rich), multi-select picklists
 Set Compact layout as the primary layout for the object  Unlike with page layouts where
you can assign a different layout to each profile, one compact layout is applied to all users.
 If an object has more than one record type: Record Type Overrides
 can assign specific compact layouts to different record types.

Improve the appearance of contact detail page:


1. Create a compact layout for the contact object:
Object manager > contact > compact layouts > new > Label: Mobile contact layout >
add fields to layout (name, phone, stage, email) > sort fields by up/down: name field first
2. Assign the Compact Layout to Users:
Compact layout assignment > edit assignment > primary compact layout: mobile contact
layout > save

Test the Compact Layout in the Salesforce Mobile App


Open navigation menu > tap contacts > select a contact > refresh: see some new key details
Create Quick Actions
Quick actions have the most potential to transform the mobile experience:
The Salesforce mobile app comes with some handy built-in actions, and they live in the action bar
and action menu (…) at the top of the screen. The action bar is visible on most pages, so quick actions
are just one tap away for your mobile users.

 You can create custom actions tailored to your own business processes and cases.
 Each action has its own unique page layout  limit the fields to ones users truly need.
 You can prepopulate fields on the page layout to save time

Types of quick actions

Object-specific actions let users create or update records in the context of a particular object. In the
Salesforce mobile app, object-specific actions show up on record detail pages. So for example, an
action associated with the opportunity object is only available when looking at an opportunity.

Global actions let users create records (not update) but the new record has no relationship with
other records. And they’re called global actions because they can be put anywhere actions are
supported—on record detail pages, but also places like the feed or Chatter groups.
 they’re things that users want to do quickly, but not necessarily completely and can follow up with
later (eg. Broker is hosting open house, meets prospective buyer: don’t navigate to specific page or
associate the person with other information)

Create Global Quick Actions


Exercise: use app to make the process of adding prospective buyers as fast and easy as possible:
 Create a New Prospect global action to collect new potential buyers’ contact info.
 Limit the fields on the layout to just the essentials, like name, number, and email.
 Include a custom Stage field to indicate the buyer’s current stage in the home purchasing
process, and set the default value of the field to “Prospect”.

1. Create the custom Stage field in our org:


Object Manager > Contact > Fields and Relationships > new > data type: Picklist > Field
Label: Stage > In the text area: values (Prospect, Showing, Offer, Closing, Archive) > visible
2. Create a global action:
Setup > Actions > Global Actions > new action > action type: create a record >
Target Object: Contact > Label: New Prospect > save
3. Customize the action layout: That’s why it’s such a time-saving feature for mobile users; you
can pare down to the essentials and limit fields  make sure the custom Stage field gets
added to the layout (best practice is to include fewer than 5 fields, and no more than 8)
Global Actions list > click on layout next global action > Remove the Account Name and
Title fields from the layout > Add the Stage field to the layout > save
4. Set Predefined Field Values: Way to speed up the process of data entry: Prepopulate values
for certain fields on an action layout.
Exercise: he wants to set the default value of the Stage field to “Prospect”:
Click on global Action > In the Predefined Field Values > New > name: Stage
> specific value = default value
5. Action to the Global Publisher Layout: The action won’t be available in the Salesforce mobile
app until we add it to the global publisher layout. The global layout only applies to the action
bar on pages that aren’t related to a specific object (like the feed or Chatter groups)
In SF Mobile & Lightning Experience: click on override the predefined actions: Mobile &
Lightning Actions > drag the quick action into the mobile section (make sure it is the first
item!) The order of the actions here determines their order in the mobile app

SF Mobile & Lightning Experience Action

• Add a custom button in App Action bar (buttons are available as actions):
customize ‘SF Mobile and Lightning Experience Actions’ on object page layout
• Change a price book on opportunity using Mobile App:
add price book field on Opportunity page layout: see the field
add ‘Edit’ quick action into SF Mobile & Lightning Actions on Opportunity page layout: edit

Test Global action in Salesforce Mobile App


Open navigation menu > chatter (to navigate to the feed) > new prospect in action bar > enter data
 stage field should default to ‘Prospect’ > save

Create Object-specific action


 Object-specific actions can update records.
 Object-specific actions can create records that are automatically associated with related info
eg. action that simultaneously creates a contact and associates it with an account
 To expose object-specific actions in the mobile app: editing the object’s page layout

Exercise: brokers a fast way to schedule a new showing in the Salesforce mobile app, so he’ll create
an action that will appear on the contact detail page.

1. Create the Property Custom Object: It would be hard for brokers to schedule a new showing
without being able to associate it with a specific property.
Object manager > custom object > Label: Property > allow activities > save
2. Create a custom tab for the Property Object:
Tab > Tabs > New > Object: Property > Tab Style: Real Estate Sign > Accept defaults > save
3. Customize the Event Object for Showings: A showing is a type of event, he doesn’t want to
use standard events for showings because users need to enter extra information, like the
buyer’s feedback  Let’s create a page layout specifically for showings, then create an event
record type and link it to the new page layout.
Object manager > event > page layouts > new > Existing: Event layout > name > save
Object manager > event > record types > new > Label – name > apply one layout to all
profiles: showing layout > save
4. Create lookup field for showings: Create a custom Property field so brokers can associate
showings with properties. Do that with lookup from activities object to property object.
Object manager > activity > fields & relationship > new > lookup relationships > in related
list: Property > Label – name > visible > Related list label: Showings > save

When a broker schedules a new showing, it’s automatically associated with the record for the
prospective buyer  create an object-specific action for contacts:
1. Object manager > contact > Buttons, Links, and Actions > new action > action type: create a
record > Target object: Event > Record type: Showing > Label: New Showing > save
2. Layout editor: remove fields (related to, assigned to, name) > add property field to layout +
make it required* > save > yes to warning**
3. Predefined values > new > name: subject > Formula value: “Showing” > save
*You can double-click the field to edit its settings: read-only or required
**it’s fine to remove the ‘assigned to’ field from the layout because it defaults to current user

Don’t remove a required field from the layout unless:


 The field has a default value.
 You specify a predefined field value for the action.
 The field already contains data eg user entered required info during created the record.

Test action in Salesforce Mobile App

Open navigation menu > tap Properties > new > for property name enter street address > save
Open navigation menu > tap Contacts > tap new showing > complete fields > save
Open navigation menu > tap Properties > tap related > tap showings

Exercise: enter feedback action that brokers quickly update the event record wither their notes
Create custom feedback field for activities:
Object manager > activity > fields & relationships > new > Field type: Text area > Label – name:
feedback > visible > deselect event and task layout > save

Other mobile apps


DupeCatcher enables users to identify, block and dedupe leads, accounts, contacts, person accounts
Scanning: Download the Scan mobile app > scan business card and upload > fill out the lead or
contact depending on what type of record you want to create
SF Classic Lite: very limited in comparison to SF mobile app: cannot view content library, does not
support custom objects, custom mobile configuration

Data Security
Overview
Although you can configure the security and sharing model entirely using the user interface, the
model works at the API level: any permissions you specify apply even if you query or update the data
via API calls, the security of your data is protected, regardless of how users get to it.

Types:

o Public:
 There are no restrictions on record access.
 Users can view and edit any record that their profile permissions allow.
 This is the default model in Salesforce.
o Private:
 Users can only access records that they own.
 They cannot see records owned by other users in reports and search results.
o Hybrid: combination of public and private access: Users can access records that they own,
and only the records of other users that are necessary for their job function.
Security options: Levels of Data Access
Organization: Logging access: password policies, limit login hours, IP restrictions
Objects: Access to object-level data is the simplest thing to control: profiles, permission sets
Fields: You can restrict access to certain fields, even if a user has access to the object
Records: You can allow particular users to view an object, but then restrict the individual object
records they're allowed to see. You can manage record-level access in these four ways:
 Organization-wide defaults specify the default level of access users have to each others’
records  to lock down your data to the most restrictive level.
 Role hierarchies give access for users higher in the hierarchy to all records owned by users
below them. Role hierarchies don’t have to match your organization chart exactly. Instead,
each role in the hierarchy should represent a level of data access that user needs
 Sharing rules are automatic exceptions to organization-wide defaults for particular groups of
users, so they can get to records they don’t own or can’t normally see. Use sharing rules to
extend sharing access to users in public groups, roles or territories
 Manual sharing allows owners of records to share them with other users. Manual sharing
isn’t automated like org-wide sharing settings, role hierarchies, or sharing rules.

Auditing features in SF
o Setup Audit Trail: (download for last 6 months) track recent setup changes (show 20
changes)  using Data Import Wizard, resetting passwords
eg. who added a field to the account page layout
o Field History Tracking: automatically track changes in the values of fields or added a field to
the page layout. To enable FHT for all custom objects and some standard objects, admin
must add the related list to page layout (up to 18 months for org, and 24 months via API)
o Login History: monitor all login attempts (for the last 6 months)

Organization security controls


When you ensure that only employees who meet criteria can log in to Salesforce, you're protecting
your data by managing authorized users, setting password policies, limiting when and where log in

Password policies
Implement restrictions which make passwords more secure:
 at the profile level: Profile edit page: PP can be edited for each type of profile
 at the organization level: Security controls > PP > set restrictions for all users
 Profile PP settings override org-wide PP for that profile’s users
 Changes to org-wide PP do not affect profile-specific PP which may be different
Customize the password settings:

Default password requirements


 a password must contain at least 8 characters including 1 alphabetic character and 1 number
 security question answer can’t contain password
 password cannot contain user’s username and can’t match user’s first/last name
 when change password: cannot reuse the last 3 passwords
Password expiration
 Expire for all users (Security control > expire all passwords), except those without permission
 Number of expired certificates High risk
 Default is 90 days, but can be set to 30,60,90,180 days, ‘1 year’, ‘never expires’ Informational
Resetting passwords:
 For better protection
 To unlock a user
 Change the password of specific users/all users by clicking the ‘reset password’ button
Login Attempts: number of invalid attempts can be specified (no limit, 3, 5 or 10) High risk
Lockout periods: set to 15min, 30min, 60min or Forever (must be reset by admin)

Customizing Password Restriction


o Password complexity requirement eg. must include numbers, uppercase + lowercase letters
o Minimum password length (value between 5-50) medium risk
o Password question requirement: set tot ‘none’ or ‘cannot contain password’ low risk
o Enforce password history: reuse passwords (0-24)
o Require a minimum 1 day password lifetime: not allowed to change P more than once a day
o Obscure secret answer for password resets (hide text when typing)
Security Health check
= identify and fix security vulnerabilities in security settings
Health Check score: measure of how the settings in Session Settings, Password Policies and Network
Access meet the SF baseline standard values. A higher score indicates the more the values are at a
lower risk setting and closer to the standard (100% = met all settings)
 Risk categories: High, Medium, Low, Informational Security Settings
View info on Health Check page: Enable ‘View Health Check’ permission automatically enables
‘View Setup and Configuration’ permission

IP restrictions
Network-based security: covers IP range restrictions, profile-based IP restrictions, login hours
• Limits when people can login
• Limits where people can login
• When she wants to make it difficult to use stole credentials

At the profile level (login IP address restriction)


Suppose that certain users shouldn’t be able to log in if they’re using IP address outside of the office
Setup > Profiles > select one > Login IP ranges > new > enter start and end point > save

At the organization level (list of trusted IP addresses)


Setup > security controls > network access > new > enter start and end point of range of IP
addresses
 If you have an address outside this trusted IP range, you aren't excluded from logging in. You
simply have to verify your identity by entering a verification code: when user logs in from
unrecognized device/browser and outside trusted IP address.
The benefit of Trusted IP ranges in network access: removes login restrictions; users that login within
the network (even for the first time) will not be required to verify their identify

User access
 established on the profile
 IP Ranges: define a list of IP addresses from which users can log in without receiving a login
challenge for verification of their identity
 Login hours: Specify the hours when users can log in based on the user profile.
 OAuth: is an open protocol to allow secure API authorization in a simple and standardized
way from desktop and web applications
 Security token: an automatically generated key that you must add to the end of your
password in order to log in to Salesforce from an untrusted network.
 will be refreshed/reset every time their password is reset
You need security token to access SF via Data Loader and SF for Outlook
Data Loader: security token and username/password
 Computer activation is required when
1. The user is not logging in from within a Trusted IP range
2. Browser cookie in not indicating a prior login is present.
3. The user has not logged in from the current IP address previously.

When a user logs in the first time to SF:


 Their IP address is added to a trusted list
 A cookie is placed in their browser

Login Hours
Login days and hours can be set at the profile level (not at org level) to restrict when users can log in
 To allow users to log in at any time: ‘clear all times’
 Prohibit profiles from logging in on specific day: ‘Start Time’: 12AM, ‘End time’: end of the
day eg. on Sunday need to restrict access for all users, except admin profile
Setup > profiles > select one > Login hours > edit > set the hours

If users are logged in when their login hours end (3.45 pm with login hours until 4.00 pm), user can
continue viewing the page, but user is logged out upon navigation to a new page or data update
operation (create, edit, save, delete)

Users will be logged out after a certain period of inactivity according to the session timeout
(rang from 15min to 24hours – session settings in profile (login hours) or at the organizational level)
Identity Confirmation
= security layer in addition to username and password, based on browser cookies
Invoked if a user logs in from an unrecognized browser or logging in from outside a trusted IP range
 don’t need identity confirmation: browser cookie exist and IP address is known

Verification methods (highest priority)

1. SF Authenticator Mobile App: SF sends push notification to mobile device, app can be
opened to verify the activity details.
eg. user left phone at home for multi-factor authentication  admin generate a temporary
verification code that can be used in place of code that they will get from mobile app
2. U2F Security Key: SF prompt the user to insert the security key into their USB port
3. One-time password generator
4. SMS: only to verified mobile number (SF account owner can verify their own mobile number
or admin can use number in format on user’s detail page)
5. Email: verification code in email to address associated with account

 Users can add their own identity confirmation methods for which they receive email
notifications. If the user did not add it, they need to contact the admin
 Email confirmation is sent to user if a new identity verification method is added

Login Forensics
NO USER INTERFACE  Setup > Event Manager > Login event > enable Storage
 A way to identify suspicious login activity
 Who logged in more than the average number of times
 Who logged in during non-business hours
 Average number of logins per user per specified time period
 Logged in using suspicious IP ranges

Organizational-level security access controls


 Trusted IP ranges: allow users to bypass identity verification if they logging in for the first
time or from an unrecognized browser  adding a trusted IP range
 Multi-Factor Authentication: increase security by a second level of authentication for login
 Password Policies: can be defined at the profile and org level to implement restrictions that
make passwords more secure
Control access to objects: profile
Object permission: control what users can do with records they own.
 Profile determines the objects users can access and what actions they can take on those
objects: create, read, edit, delete
eg. Read-Only access to account, cannot add a task or event to the account
eg. user owns a record but don’t see it because he doesn’t have Read permission to object
 Permission sets (up to 1000 per SF org): grant additional permissions and access settings to
individual users (not profiles) without modifying profile CRUD/CRED (only on object level)
 object, field, app, tab, user, Visual Force, Apex Class, Service Provider

A profile = collection of minimum settings and permissions that determines what users can see and
what they can do  Profile needs to be assigned to the user (user can have one profile and profile
can have many users)
 The settings in a user’s profile determine whether the user can SEE: access level for objects,
which part of the app/tab they can see, and page layouts
 No access to app and tabs: uncheck ‘visible’ for app in profile and profile should not have
object-level and field-level access for the objects in app (tabs)
 The permissions in a user’s profile determine whether the user can DO: grant app-specific
actions, system-wide actions or customized actions built

 Profiles are used to define/control object-level and field-level security settings and control
access to Apex classes, Visualforce pages, record types, page layouts, tab/app setting, roles
 The profiles functionality in an org depends on the user license type: license determine which
profiles are available for each user
 Profiles do NOT override sharing settings or role hierarchy to grant access to records
eg. OWD = private, profile = edit, subordinate roles below user: user will have access to
records owned by other users granted via the role hierarchy

Change from service role to sales role in same company  Change the profile and role in the User
Settings, thereby changing permissions and record visibility for the user.

Standard profiles
Object-level and user permissions cannot be changed on the standard profiles
 app settings: define which apps are available to users, permissions to apps, access to pages and
object permissions
 system settings: apply across all apps such as security setting and data visibility
 Read Only: can view records, but not create or edit them
 Standard User: can create, edit, delete records, run reports, view org setup, view but not
manage campaigns, create but not review solutions
 Marketing User: standard user + import leads, manage campaigns, create email templates
 Contract Manager: standard user + manage contracts
 Solution Manager: standard user + review and publish solutions
 System Administrator: has the widest access to data and the greatest ability to customize SF
and includes two special permissions who override all other sharing settings, but not field
level access
 View All Data
 Modify All Data: enable the user to edit any record, regardless of sharing setting
 Customizing apps
 Minimum Access – Salesforce: least privilege access that include Access Activities, Chatter
Internal User, Lightning Console User, View Help Link permissions
eg. none of users should be able to view or edit records but need access to Chatter features
and activities

Profile control:
o Standard and custom apps, tabs users can view
o Which record types are available to users
o Home Page Layout users can see: Page layouts are assigned to profiles
o Standard object permissions and fields permissions
o Login hours and Login IP ranges
o Which desktop, service providers, Apex classes, Visualforce pages users can access
o Roles and License type  set on the User record
Create custom profile
Because can’t modify user permissions, object permissions, administration on a standard profile
you create custom profiles for your users to fully customize a profile by cloning and modifying an
existing one (not available in Contact Manager, Group editions)

1. Create custom profile


Setup > manage users > profiles > clone next profile similar > name > save
Modify profile settings through a user interface:
Setup > User management settings > Enhanced Profile User Interface (up to 200 profiles)
2. Assign the profile to the users:
Setup > profiles > select custom profile > edit > standard object permissions: most
restrictive settings and permissions you can do to this type of user
Setup > users > edit to next one of them > select profile > save

System admins can modify tab settings for custom profiles:


• Default on: tab for the object will be visible in the navigation bar in app
• Default off: it is available for the user to add by customizing tabs, not visible in app
• Hidden: tab will not be visible for the object

Create permission sets


Permission sets make it easy to grant access/ to take away access to objects and fields to users who
are linked to a profile (only 1 profile, but multiple permission sets)

 Include most profile settings eg. object and field permissions, tabs, apps, page access
 Multiple users can be assigned using a permission set  user list view
 Multi-factor authentication can be set up using a permission set

Org permissions categories


 App permissions: control what actions can be performed in different apps
 Custom permissions: must be enabled, used to grant access to custom apps or processes
 System permissions: grant access to org-wide actions eg. create a report folder, use Chatter

You'll be using permission sets for two general purposes:

 Grant access to custom objects or apps.


A few of users with the same job function (assigned with one profile) are working on a special project
and they need access to an app no one else uses. If we only had profiles, you’d have to create more
profiles customized to those few users’ needs.
 Grant permissions to specific fields (temporarily or long term)
Let’s say you have a user, Tom, who needs temporary edit access to a field while his co-worker is on
vacation. You can create a permission set that grants access to the field and assign the permission set
to Tom, when she returns, just remove the permission set assignment from Tom’s record

1) Create permission set:


Setup > administer > manage users > Permissions sets > clone next to set you want to copy
> enter label and description > select user license option*: none (different) and license
(same) > save
2) Assign permission set to users:
In permission set toolbar: manage assignments > add assignment > select users + assign >
done: list of users assigned to permission set
*cloned permission set has the same user license as the original  different license: new
feature licenses such as Service Cloud User can be found on the user profile page

Permission set groups: instead of assigning multiple permission sets to a user, group permissions
sets together (only one muting permission set)
 Muting Permission Set prevents assigned user from creating or deleting records

Scenario’s
One Finance manager needs access to all opportunities: grand access to opportunities through a
permission set (because it doesn’t make sense to create a profile for one user)
CTO would like to restrict the ability to create and customize report to a certain group of users
Create a custom profile by cloning the existing standard profile wherein the ‘create and customize
reports’ permission should be removed. In addition, create a permission set to extend ‘create and
customize reports’ permissions to the selected group of users
New recruitment app, the admin want to give access to this new app to users form HR who have not
used SF before and do not need access to any other apps in SF
create a new profile by cloning an existing profile and modify it to only include permissions to app
Certain users should have the ability to import leads. They have different profiles depending on the
department they are in
Due to having different profiles, the admin should create a permission set with the permission
‘Import Leads’ and assign to the users
The admin is testing a new app with custom sales objects. Select users are helping to test the app as
it is not ready for release to org.
During the testing, a permission set granting access to the app and objects can be assigned to the
users. The admin can add more users to increase the test base
A group of sales users who require access to SF should be able to access activities and all the Chatter
features in SF. A few of them should also be able to view the records of a custom object but not be
able to access the records of any other object.
The sales users can be assigned to the Minimum Access-Salesforce profile = the least privilege profile
A permission set can be assigned to users who need to view the records of a custom object

Control access to fields


Field-level security determine which fields are read-only or visible per profile (not a user)
 First check the page layout for the profile assigned to the user: page layout makes the field
required or read-only eg. user reported that he cannot see the field on detail page
 Untick visibility for any profile, even those with ‘View All’ and ‘Modify All’
 Field-level security when you create a custom field or edit an existing field, editing a profile
 Fields can be set hidden in the page layout but then users can still access them via reports,
search results and list views
 If a field is hidden using field-level security: it does not appear in page layouts, search
results, related list, list views or reports eg. If Field Level Security prevents a user from
viewing Credit Card field on Opportunity record, the user will also be prevented from seeing
this field in a related list, in list views, in search results, in reports
eg. prevent user from including a field when running a report
>< Use field-level security to set ‘Visible’ setting to not visible for all profiles except Accounts
Receivable (only able to access the field on object via detail page, reports and the API)

Field Access
 Read-only field-level security will override the ‘Edit’ permission on the object
 Read-only field-level security will override the ‘required’ on page layout
 Field-level security will override the ‘Modify All Data’ and ‘View All Data’ permissions
 Universally required fields override field-level security:
Universally required fields always display on edit pages regardless of field-level security
 Automatically added to all page layouts
 Field cannot be hidden
 Can be applied to text, number, picklist fields

Field settings: modifying profiles or permission sets OR setup > field accessibility: in detail page

Field access with profile


Setup > manage users > profiles > select profile > object settings > select object for which you want
to update the field > edit > kind of access > save
Setup > object manager > field & relationships > click on field page > set field-level security

Field access with permission set


Setup > permission sets > select ps > object settings > select object > edit > under field permissions:
kind of access > save
Manage assignments > users who need the permissions > add assignments > done

Control access to records


Record access is a combination of both:
Role = control the level of visibility that users have to an org’s data/records
 user may be associated to one role
Profile = determines what users can do with the records they have access to
The Profile determines if a user can read/create/edit Contact records, the Role determines if he can
see/edit Contact records owned by his subordinates

Record owner has special privileges:


 View and edit the record.
 Transfer the record
 Delete the record.

Key principles
 The permissions on a record are always evaluated according to a combination of object-
level, field-level, and record-level permissions.
 When object-level: profile permissions (structure: object setting and field permissions)
conflict with record-level permissions (sharing rules, manuel sharing)  the most restrictive
settings win
 You use org-wide defaults to lock down your data to the most restrictive level, and then use
the other record-level security tools to grant access
 Access to records user doesn’t own are set first by the org-wide defaults:
defaults can never grant users more access than they have through their object permission.
 Two different users will not get the same search results on searching for a common keyword
 because they have different access
Org-Wide Sharing

Set org-wide sharing defaults


Defines the default level of access users have to records they do not own in each object. OWD are
used to restrict access to records  OWD setting doesn’t override user permissions.

Considered when changing OWD settings:


 Changing OWD settings and increasing default access (public read only  public read/write)
will take effect immediately
 Changing OWD settings and decreasing default access will take some time for SF to
recalculate user access

Organization-Wide Defaults: Access options to custom or (mostly) standard objects


 Private: Only the record owner*, and users above that role in the hierarchy, can view, edit,
and report on those records. *Record owner = user or queue
 Public Read Only: All users can view, search, report on records, but only the owner, and
users above that role in the hierarchy, can edit them.
 Public Read/Write: All users can view, edit, and report on all records.
 Public Read/Write/Transfer all users can view, edit and change ownership of record
 only for Leads and Cases
 Controlled by Parent: A user can view, edit, or delete a record if she can perform that same
action on the parent object  for custom objects and Contacts and Orders
eg. task is related to an account that can be edited by user, then the user can also edit the
task, even if they are not the owner of the task
eg. grant account owners edit access to all related contacts regardless who owns the
contacts

You can't set the OWD for the Review object, because that object is on the detail side of a master-
detail relationship  detail record automatically inherits the sharing setting of its parent.
In our app, the Review object is automatically set to Private.

Setup > administer > security controls > sharing settings > org-wide defaults area: edit > select
default access > To disable automatic access using your hierarchies: deselect Grant Access Using
Hierarchies* for any custom object that does not have a default access of Controlled by Parent.
*Even if Grant Access Using Hierarchies is deselected, some users (“View All” & “Modify All” object
permissions and the “View All Data” & “Modify All Data” system permissions) can still access records
they don’t own. Eg. OWD = private, role is high in hierarchy you can see objects (sharing setting)

OWD by Price Books


Users can select any Price Books that they have access to or shared with them
Price Book OWD: Sharing settings > OWD > object: price book
• View only: allows visibility of the Price Book but not use it
• Use (default): allows visibility to Price Book and to use it on opportunity
• No Access: restricts visibility to Price Book and prices
and add sharing to grand access to users that should have visibility to each Price Book

Campaign object access options


• Public Full Access: users can view, edit, transfer, delete and report on all Campaign records
eg. Ben is the owner of a campaign, all other users can view, edit, transfer, delete campaign.
Campaign Member object access options
• Campaign member: OWD = Controlled by campaign: to allow users to see only the campaign
members associated with the campaign they have access to
• Campaign member: OWD = Controlled by Lead or Contact: to allow users to see only the
campaign members associated with the Lead or Contact record they have access to
 sharing rule on Campaign object to define access to Campaign Member records (Lead or
Contact) if the OWD is set to ‘Controlled by campaign’  increase access, not define baseline

Role Hierarchy
In private or hybrid sharing model, the role hierarchy open up access to records to users that have a
role above the record owner in the role hierarchy (= vertical access)

 Controls data visibility


(view records his subordinate does not own but can view, view/edit/delete/transfer his
records and subordinates records, extend sharing on both his and subordinates records, not
view all folders that subordinate have access to: reports, documents, email templates)
 Controls record roll up – forecasting and reporting
 Role hierarchies don't have to match your company hierarchy  Every user has only one
role and each role in the hierarchy just represents a level of data access that a user needs
 The role hierarchy allow additional record access when object OWD is set to more restrictive
than Public Read/Write (Private/Public Read-Only)
 Role hierarchy access does not override object access determined by profiles because record
and object permissions the most restrictive wins

By default, the Grant Access Using Hierarchies option (sharing setting) is enabled for all standard
objects but it can only be changed for custom objects that do NOT have OWD = Controlled by Parent
1. Create role: Setup > administer > manage users > roles > set up roles > show in tree view >
add role with highest up in hierarchy > under company: add role
2. Assign users to role: click role > assign users to role (one or more)

When a Role Hierarchy alone is not sufficient when providing record access to users:
Sharing rules, Manual Sharing, Teams (Account, Sales and Case)  Teams must be enabled in setup

Opportunity Teams
eg. give number of colleagues access to opportunity and one colleague able to view but not update
Read or read/write access to an opportunity, but only read-only access to the related account and
account contacts
Account Team might be utilized for sharing and reporting
Read or read/write access to an account as well as the related records
Access to opportunity and cases can be set to private, read, read/write access
Add users to the Case Team: allows group to work together on a case record
eg. number of colleagues to have visibility on case related to an account he owns

Manager Group Sharing


= share records with their managers of manager subordinate groups  Once it is selected, it can be
used in Manual sharing, Sharing rule or Apex managed sharing
Sharing settings > other settings > enable ‘Manager Groups’  Sharing Rule or Manual Sharing

Manual User Sharing


= enabled/prevented from sharing their own user records with other users across the org
Sharing settings > other settings > enable ‘Manual User Record Sharing’

Standard Report Visibility


= control visibility of standard reports that might expose data of users to whom a user doesn’t have
access Sharing settings > other settings > enable ‘Standard Report Visibility’

Sharing rules
= automate exceptions to OWD to grant additional record access to users on an object-by-object
basis at the same level based on their role, territory, public groups, membership or manager groups
 Irrelevant for public data access models
 Not change the specified groups or roles for sharing rules

Parameters admin must specify when creating a sharing rule:


 Share which records? Owned by certain users and meeting certain criteria
not to folders and list views
 With which users? Public groups, roles, roles & subordinates
 What kind of access? Either Read-Only or Read/Write access

Sharing Rule type (where OWD = private)


 Owner based: all the accounts of owner X, are shared with group (eg. grand read only access
to records owned by users with ‘Sales rep North’ with users in the ‘Sales rep South’ role)
 Criteria based (horizontal access): Sharing based on field values (eg. grand view and edit
access to opportunities of type ‘Existing Business’ with all internal users)
 Accounts, opportunities, cases, contacts, leads, campaigns, and custom objects.
not contracts
 Most field types

The reports of Mr. Professor (India) has to be shared


with all the users in the faculty lead USA  won’t be
possible with the role hierarchy

 use the sharing rule (R or R/W)


eg. records of custom object shared with 4/9 sales managers. Only records have the ‘Pending’ value
on the ‘Status’ field should be shared (OWD = private): create a sharing rule for the custom object to
share records with ‘Pending’ status with public group, contains sales managers

User sharing: allows you to show/hide an internal or external user from another user in org

Define public groups


= collection of individual users, other public groups, roles and roles & subordinates, roles &
territories that all have a function in common
 only admins can create public groups
 use to simplify sharing rules when there is more than one sharing rule required

When you modify which users are in a group rule, the sharing rules are re-evaluated to add/remove
access as necessary

1. Public group: Setup > public groups > new > label, name > add members > save
2. Sharing rule: Setup > sharing settings > in manage sharing settings: choose object > new
sharing rule > rule type: based on record owner > select which records to be shared > select
users to share with > select sharing access setting > save

Queues: similar to Public Groups in that they are groupings of users, but they are used for record
ownership rather than sharing rules

Manuel sharing
= enable/prevent users from sharing their own user records with others ACROSS the organization
NOT AUTOMATED
 To record owners, the roles above owner in hierarchy, admins, any user with Full access
Full Access: can also extend sharing access to other users, not full access
 For objects in OWD = private or public read-only
 Shared with other individual users (even a single user), roles, roles & subordinates,
territories, territories & subordinates, public groups, manager groups
 TURNED ON: Object manager > account > open record > ‘Sharing’ button > add – user(s) to
share with  ONLY AVAILABLE IN CLASSIC
 TURNED OFF: disable ‘Manual User Record Sharing’

 establish sharing rules at the user and record level

Exercise

If a user is assigned a profile that has read object access to accounts, what records will the user be
able to see? Depends on the sharing model and user’s role ( record assess)

Profile (object permissions: read/edit): edit records + OWD (private):


the most restrictive permissions is OWD: as long as you are not the account owner, you cannot read
or edit an account
Ensure security of data sent to and returned from their SF community site?
Require secure connections for SF community site to redirect traffic from HTTP, HTTPS

Lightning Flow
People Expect Automation and personalized experience  Integrate various systems, Configure
process logic, Design and build an end-user experience, Make the experience available from
anywhere: desktop or mobile devices, internal apps, or external portals.

Lightning flow = the product that encompasses building, managing, and running flows and processes.

Type of business process Description Tools


Guided visual experience Business processes that need Flow builder
Guide community member through input from users (employees or
requesting a new credit card with a customers)
step-by-step wizard

Behind-the-scenes-automation: Business processes that get all Flow/process builder, Apex


When an opportunity is won, the necessary data from your
automatically create a renewal Salesforce org or a connected
opportunity system.
Approval automation Business processes that Approvals
determine how a record, like a
time-off request, gets
approved by the right
stakeholders.

Apex
Use Apex when you need more (complex) functionality than is available in Process or Flow Builder.
Then call the resulting Apex as an Apex action in the process or an Apex action element in the flow.
record types cannot be deleted if they are referenced in the Apex
Process Builder
= process automation feature that is more advanced than workflows and use drag-and-drop visual
interface (but still using the if/then requirement)
Process Builder > Workflow: create a record, submit for approval, launch a flow
Workflow > Process Builder: send outbound messages

Lets you build processes:

If an opportunity is created or updated


(trigger) and it’s high-value and closed won
(criteria), then create a draft contract
(immediate action). Six days after the
opportunity closes (schedule), create a
follow–up task for the account owner
(scheduled action).

Process definition:
1. Select process type:
• Record change: a record is created or edited (most common)
• Invokable by another process  infinite loops (two processes invoke each other)
• A Platform event occurs: a message from external system
2. Define the object for the process
3. Define the criteria when it will run
4. Define activities that need to be automated
5. Activate the process

Trigger: Identify When the Process Should Run


For record change process type: the trigger determines which object and which of the following
changes the process should pay attention to.
 Only when a record is created
 Anytime a record is created or edited

Criteria: Determine Whether or Not to Execute Actions (true or false)


While a process gets one trigger, you can add as many criteria nodes. If the record doesn’t meet the
criteria, the process skips those actions and moves on to the next criteria node in the process. In each
criteria node, you can:
 When the conditions are met
 The custom formula evaluates to true
 No criteria – always execute the actions.

 enable ‘Advanced’ section of the criteria node: only execute actions when changes are made
to the record  process ignores record changing that aren’t relevant to criteria

If a record meets one criteria, an email should be sent, but if the record meets a different criteria, a
task should be created and it is possible that record meets both criteria

1. Add criteria > name: Closed won and high value > select ‘conditions are met’
2. Check whether opportunity has been closed won:
choose field (opportunity) – operator (equals) – type (picklist) – value (closed won)
OR (opportunity > closed) – equals – type (Boolean) – value (true)
(opportunity > won) – equals – type (Boolean) – value (true)
3. With another condition, check whether opportunity is high value:
Choose opportunity – greater than – currency – 250,000
4. Click advanced > yes > save

Actions: What the Process Should Do, set as an invocable process


 Each immediate action is executed as soon as the criteria evaluates to true
 Each scheduled action is executed action at the specified time based on:
 A specific date/time field on the record that started the process.
Eg. 10 days before the record’s close date
 The time that the process ran eg. 3 days from now

1. Set a schedule: 6 – days – after – CloseDate > save


2. Add an immediate action: add action > action type: create a record > Name > record type:
Contract > Associate contract with opportunity’ s account: Type (field reference) – value
(opportunity – account ID) > status: select Draft from the list > save
3. Add a scheduled action: add action > action type: create a record > name: Follow-up task >
record type: Task > set the task’s field values:
Assigned to ID – field reference – (opportunity > account ID > owner ID)
Priority – picklist – high
Status – picklist – not started

Process action types


 Create record of any (un)related object
 Update the record: select object record or any related record to object
 Submit that record for approval:
 Email alert on the same object as the process, using a specified email template
 Send notifications with a custom message
 Post to a Chatter feed eg. process on Topic object that creates a Chatter post automatically.
The process can be triggered when ‘CreatedByID’ field of Topic object equals ID of user
 Invoke Apex class: ideal for getting complex calculations done or trigger another code
 Invoke a Flow: ideal for performing operations that include: getting a user input, deleting
records, updating unrelated records  can be scheduled on a certain frequency
 Quick Actions: that creates a record, update record or logs a call
 Quip: eg. send a message in chat or docu, add members to a chat
 Process Builder process: helpful for when there are many repeated steps
 Send a survey invitation to leads, contacts, users (must be an active survey)

Order of execute actions

*Very angry admins work pretty efficiently

Before trigger: Validation rules – duplicate rules


After trigger: Assignment rules – Auto-response rules – Workflow rules (immediate action)
Escalation rules – Entitlement rules – Update Parent Rollup Summary – save records
Action supports partial save:
 if an action has error in process or flow, any successful record changes will be saved
 attempts to complete remaining actions in a bulk operation up to 3 times
Failed actions NOT support partial save: the entire transaction will be rolled back
Flow Builder
Which lets you build flows (= application that automates a business process by collecting data and
doing something in your Salesforce org or an external system)
Setup > flows > new flow > screen flow > freeform

 When a user clicks something, like a button


 Record change
 Platform event occurs
 At a specified time and frequency

Connectors (2) define the path that the flow takes at run time. They
tell the flow which element to execute next.

Resources (3) are containers that represent a given value, such as


field values or formulas. You can reference resources throughout your
flow. Eg. look up an account’s ID, store that ID in a variable, and later
reference that ID to update the account.

Flow elements fit into four different categories:


o Screen: interact with users: Display data to your users or collect information from them.
You can add simple fields to your screens, like input fields and radio buttons, file upload.
o Logic: Control the flow. Create branches, update data, loop over sets of data, or wait for a
particular time.
o Actions: Flows can delete records and create/edit unrelated records
They can also create Chatter posts, submit records for approval, and send emails.
o Integrations: Connect your flow to an external database by using core actions or Apex
actions. Core actions let you make requests without going through the Salesforce server.
Flow Builder also has a couple of tie-ins to platform events.

Toolbox:
 From the Elements tab, add new elements, like Screen and Create Records, to your flow.
 From the Manager tab, create resources (such as variables, stages, and choices)

FIRST THING YOU NEED TO DO: Make your flows look like lightning:
select ‘enable lightning runtime for flows’

Wait element
= automate process that require a time-based waiting period: for events it needs to wait for
Setting time-dependent action can be added to a workflow rule but since requirements also needs to
convert the lead  use Process Builder with a flow action to convert the lead and add a Wait
element to set a one day wait period to automatically email the contact

Scheduled flow: flow will run automatically

Scheduled flow: select a set of records based on criteria. A ‘send email’ action weekly can be added
to the flow to send an email reminder to customers who continue to have failed audit status.
OR more complex solution: invoke a flow from Apex job that implements a Schedulable interface,
then schedule the class to run weekly to send the email reminder
 Process Builder and workflow rule they only start when record changes and only send email alerts
cannot be schedules to perform actions (the can only schedule actions)

Add a screen to collect user input


1. Drag a screen element onto canvas > name: new account
2. In screen components: click text, text again > select the first: account name > select the
second: enter phone number
3. Select the footer and under control navigation: deselect previous and pause > done

Create records elements


1. Drag a create records element onto canvas > name: Create Account
2. How to set records fields: Use separate resources, and literal values
3. Create a record of this object: select account
4. In Field: select Name, In Value: select SCREEN COMPONENTS | Account_Name.
5. In Field: select Phone, In value: select SCREEN COMPONENTS | Phone_Number

Create the screen that enables file uploads


1. Drag a screen element onto canvas
2. In screen properties: Label: the screen upload file > under control navigation: deselect
previous and pause*
 this File Upload component lets users upload more than one file at a time to the created account.

Distribute our flow to the right users: add it to the Home page
Home page layout consists of components
1. Create a home page:
Lightning App Builder > new > select home page > name > clone salesforce default page >
home page default > finish
2. Drag the flow component to the top of the right column:
For flow: select quick account > save > activate the page > assign this page to the org
default home page > save
3. Make sure users can run the flow: add the flow to a permission set > assign to users
Combine the Power of Process Builder and Flow Builder
When Process Builder Isn’t Enough:
 Post to a community feed.
 Submit a related record for approval.
 Delete records.
 Create a bunch of records and associate them with each other.
 Perform complex logic.

Configure the more complex functionality in a flow, and then add a flow action to your process. If a
flow can’t do what you need > add an Apex action to your process.
 Activate the flow so that you can reference it in Process Builder

The renewal should be a clone of the original opportunity and products  In Process Builder, you
can’t grab the ID of the created record and use it elsewhere, but you can do that in a flow: build a
process that calls the flow when an opportunity is closed won.

You can also build autolaunched flows, which run in the background like a process. The main
difference is that autolaunched flows don’t require any user interaction to start: can’t have screens

Setup > flows > new > select autolaunched flow (No Trigger) > freeform

You can’t edit an activated process > Clone to create a new version of the current process.
In the Closed Won Opportunities process, add a criteria node named Closed Won with this filter
condition: field: opportunity > stage, value: closed won

Flow variables in four types:


 Variable: a single value (eg. Hello world, 6, true)
 Collection variable: Multiple values of the same data type (1, 2, 3, 4 , 5)
 Record variable: A set of field values for a single record (ID, name for one account)
 Record collection variable: A set of field values for multiple records of the same object type
(ID, name for multiple accounts)

To store the opportunity and its opportunity products, we create a record variable and a record
collection variable. Later, when we add the flow as an action in the process, we pass data into these
variables, so they must allow input.

From manager in toolbox > new resource > resource type: variable, data type: record, API name:
opportunity > available for input: selected > done > new resource > API name:
oppProducts_Orginal, object: opportunity product, allow multiple values (collection): selected

Clone the opportunity


1. From elements in toolbox: drag assignment element into canvas > label: Update
Opportunity fields
2. Set the stages for prospecting: variable (record (single) variables | opportunity |
StageName) – operator (equals) – value (picklist values | Prospecting)
3. Set close data to 90 days from today > add assignment
4. variable (record (single) variables | opportunity | CloseDate) – operator (equals) – value
(new resource)
5. set values: field (resource type) – value (formula), API name – ninetyDays, data type – date
6. in formula: leave ‘insert a resource’ blank > TODAY() + 90 in text box > done > done
7. create opportunity: drag create records into canvas > Label: Clone opportunity> done
8. click node at the bottom of Update Opportunity fields to Clone opportunity

Clone the opportunity products


Before we clone those products, we need to associate them with the renewal opportunity instead
of the original opportunity and set the total price for each product to null. (Opportunity products
can’t have both a unit price and a total price.)

The only way to update items in a collection is to iterate over the collection with a loop.
A loop tells the flow to process each item in the collection one at a time, executing the same logic.
Each time the loop iterates, the loop variable represents an item in the collection. When a loop
starts, the first item in the collection variable is copied into the loop variable.

In the loop, we update each item’s Opportunity ID and Total Price, and then we add the item to a
new collection variable. After the loop, we use the new collection variable to create the opportunity
products  inside a loop: avoid executing actions like creating or updating records

1. Drag a Loop element onto the canvas > Label: Iterate Over Products.
For Collection Variable: RECORD COLLECTION VARIABLES | oppProducts_Original* > done
2. Connect Clone Opportunity to the loop.
3. Set loop variable’s opportunity ID to the ID of new opportunity and its total price to null
4. Drag an Assignment element onto the canvas > Label: Update Opportunity Product > In Set
Variable Values: configure these assignments > Add Assignment to add a second line
RECORD (SINGLE) VARIABLES > Current Item from Loop Iterate_Over_Products >
OpportunityId Equals RECORD (SINGLE) VARIABLES > opportunity > Id
RECORD (SINGLE) VARIABLES > Current Item from Loop Iterate_Over_Products > TotalPrice
Equals Leave blank
5. Connect the loop to Update Opportunity Product > Select loop connector window appears.
6. Verify that for each item in the collection is selected in the Loop Connector field > Done.
7. Add the updated loop variable to a new record collection variable.
8. Drag another Assignment element onto the canvas > Label: Add to New Collection, For
Variable: New Resource > create a new resource variable with these values:
API name (oppProducts_new)
9. For operator: add, for value: RECORD (SINGLE) VARIABLES | Current Item from Loop
Iterate_Over_Products > Delete the period between {!Iterate_Over_Products and the right
bracket } and then click outside of the Value field.
10. Connect Update Opportunity Product to Add to New Collection > connect Add to New
Collection to the loop.
11. To clone the opportunity products: drag a Create Records element onto the canvas > set
these values > label: clone products, how many records to create: Multiple
12. Connect the loop to Clone Products.

*This option tells the loop which collection to iterate over when assigning items to the loop variable
Finish the flow
Save the flow > click Show Advanced > Type is set to Autolaunched Flow > save  Activate the flow
so that you can reference it in Process Builder.

Finish the process


When an opportunity is Closed Won, the process starts ‘the flow’. In the process, we use variables to
pass values from the opportunity record and its children into the flow
1. Open closed won opportunities process > in closed won criteria group: add immediate
action, type (flows), name (Create renewal)
2. For flow: select renew opportunity
3. Under set flow variables > add two rows > set values:
opportunity – field reference – select the opportunity record that started your process
oppProducts_original > field reference – opportunity > OpportunityLineItems
When an opportunity is Closed Won, the renewal should always be created. But you need to
make sure that draft contracts and follow-up tasks are created if the opportunity is also
considered to be high value.
4. Drag closed won criteria node above closed won and high value
5. For the closed won criteria group > click stop > select evaluate the next criteria > save
6. Activate the process

Approval process
Isn’t included in Lightning Flow but Lightning Flow does support automation of approval of records.
 specific automation use cases
= Define a series of steps and actions for approving standard/custom object that meets certain
criteria: a single step or a complex multi-step process with multiple approvers

 Process Builder and Flow can be used to submit records for approval (not workflow rule)

 The actions to take based on what happens during the approval process.
If the request is approved  update fields on the (employee’s) record
If the request is rejected  send a notification to (the employee)

Manager approves opportunities that are discounted more than 40%. The opportunity should reflect
its approval status: Approved or Not Approved.

Before a Submit for Approval


 Record editability: approver, admin are able to edit record locked by approval process
 Initial Submitters: which users can submit the record for approval (user roles, members of
public groups)
 Approval process may NOT be used for user object
 Email template: used to notify approvers  if email template is not specified, an email using
a standard template
 Fields on page layout: specify which field of the record to be approved
 Approval steps: what actions will take place for records (records, approvers are assigned,
ability of approver’s delegates to respond to the request is determined)
 Initial step: determine what to do to records that don’t meet criteria
APPROVE / REJECT / GO TO THE NEXT APPROVAL STEP
 Next steps: what happens if an approver rejects the request

1. Click on ‘Submit for Approval’ button on the record


2. Entry criteria: if the record meets the criteria (error messages if it doesn’t)
discount rates of up to 40% (require Manager’s approval) and discount rates more than 40%
(require CEO’s approval)
3. Initial Submission action eg. lock the record, sent outbound message to another application,
update the value of a field on the record
4. Assign approver: submitter choose manually, automatically using a user field (such as
Manager field) and approver’s delegate (= appointed user with approver permissions;
approve and reject, NOT reassign -> select option on user detail page or in ‘My Settings’)
 Parallel approval routing: send approval requests to multiple approvers in single step
approver setting can be set to Unanimous (all approvers needs to approved) or First
Response (only one approver)
 The approver = queue: approval request emails are sent to queue email address
if queue members need to be notified of approval: queue send email to members
5. Approval actions: Actions can be set for approval/rejection:
• Task
• Email alert: send emails to sales reps once opportunity is approved
• Field update: ‘Approved by Manager’ and ‘Approved Date’ fields
• Outbound message
6. Final Actions: record is either unlocked (rejected or recalled) or stay locked (approved)

Considerations

 When a record is submitted for approval, it is locked for changes (except from the admin and
the approver) until the record has completed the approval process
 Approval Audit History related list: to track where record is in an approval process: include
name of approver and approval date
 When the approval process is edited: Last Modified By Field, Audit trial, History Record on
Approval page layout
 Delete approval process: make sure it is inactive
Delete pending approval request

Track each opportunity’s discount percent  Custom field (Opportunity)


Request approval from managers if opportunity discount > 40%  Approval process (Opportunity)
Notify managers when an opportunity discount needs approval  Email alert (template)
When managers respond, update opportunity’s approval status  Approval actions (Field Update)
Create email template
1. Setup > Templates > Classic Email Templates > new template > type: text
2. Configure the email template: folder (unfiled public classic template), available for use
selected, name (approve opportunity discount), encoding (general us & western Europe);
subject (please approve this discounted opportunity), email body (user manager click, {!
Opportunity.Name}* has been discounted. Please approved this discount. Thank you)
*{!Opportunity.Name} helps the approver by providing a link to the opportunity record. This allows
them to review the record before responding to the request.

Add custom fields


Create custom fields  track the discount percentage and approval status for each opportunity
1. New > Data Type: Percent > Label (discount percent), length (default), decimal places
(default), required selected
2. New > data type: Picklist > Add a Picklist field: Label: discount percent status > picklist
values: approved, not approved

Create an approval process


 Setup > Approval Processes > Manage Approval Processes for object: Opportunity
 Create New Approval Process | Use Jump Start Wizard *
 Configure the approval process: name (Approve Opportunity Discount)
• Approval Assignment Email Template (Approve Opportunity Discount),
• Specify Entry Criteria (Opportunity: Discount Percent greater than 0.4)
• Select Approver (Let the submitter choose the approver manually) > Save
 Approval Process Detail Page:
 Under Approval Actions: Add New | Field Update > Configure with these values:
Name (Approved), Field to Update (Discount Percent Status), A Specific value
(Approved) > save
 Under Rejection Actions: Add New | Field Update > configure it with these values:
Name (Not Approved), Field to Update (Discount Percent Status), A Specific value
(Not Approved) > save
 Activate approval process

*The Jump Start Wizard helps you create a simple approval process by making decisions for you.

Responding to approval request


Approver can view approval requests from their home page
 Email alert: with link to the record and pending approval (check in notification builder)
• Approvers can reply to email notification to approve or reject
 enable email approval response in process automation settings
• Comments can be added on the second line in the email reply
 Through a Chatter post in their feeds
 Mobile app: approvals navigation item: a list of pending approvals  shortcut action
buttons

Use Cases

 Opportunity: sales reps can request approval from their sales manager for opportunities
with discount above 30%
 Quote has been generated and add discount of 15% applied based on quantity of items. The
sales rep can ask for approval from his manager before sending a copy to the custom
 Contract: before activating a partner contract in which the auto-calculated end data is less
than 2 years, account executive can ask for further evaluation from his manager
 Time Tracker: Paid-Time-Off (PTO) requests can be use approval process to allow employees
to submit leave requests for their manager’s approval
 Project deadline extensions, hiring process, overtime requests, authorization, approval for
purchase or funding

Picklist administration
Picklists are fields that allow users to select either single or multiple values from a predefined list
Picklist values added separately for each record type (page layout – record type – picklist values)
 The field defines the type of picklist
• Speed up data entry
• Facilitate searching, reporting, and filtering.
• Maintain data quality by allowing only permissible values.
• A (picklist) field can be made required: force a user to make selection
• Picklist value can be deactivated, this will not affect existing values
• They’re not ideal for long entries, or values that are unique.

The value set defines the choices a user sees, their order and the default value, and other settings.
• Global value set where picklist is restricted: value defined once and reused by custom picklist
fields  help to eliminate duplicating picklist values sets
• Master picklist: defining all possible picklist values that can be used in any Record Type

And picklist fields can have the following properties:

 Restricted picklist: keep users from adding new values (either through the API or other apps).
This is useful for keeping your data clean and consistent, otherwise you can get records with
values like “Vamilla” instead of “Vanilla”
 Dependent picklist: You can link two picklists together to create a controlling-dependent
relationship. Users select a value in a controlling picklist, which filters the values available in
a second, dependent picklist  save UI space, and improve data integrity
Eg. Admin has created two picklist fields: Field Manufacturer and Field Model. The choice
selected from Manufacturer (controlling) changed the choices in Model (dependent) picklist
Eg. Create a controlling picklist for preferences to select “all”,“gluten-free”.
Then, set the cookie flavor picklist as a dependent picklist of the preference picklist. When
someone selects “gluten-free” the cookie flavor picklist shows only the gluten-free flavors.

Object > Fields & relationships > field dependencies > new > choose controlling field and
dependent field > Use the field dependency matrix* > preview to test > save
*to specify which dependent picklist values are available when selects each controlling field value.
 If your org uses record types, choose a record type to test how it affects your controlling and
dependent picklist values: use record types to filter/segment picklist values based on user’s
profile  The record type and the controlling field together determine what values are
available in the dependent picklist.

Types of picklists:
o Standard: Standard picklist fields are included for the common fields you likely want on
standard objects that come with your org  sometimes share a standard value set.
Standard picklist fields contain predefined values, which you can add, remove, and reorder
o Custom picklist: picks one value at the time:
• Local: values are unique to specific picklist field
• Shared: values are selected from a global picklist value set
• Multi-select: When a user picks one or more values at a time
(Gingerbread;Strawberry;Chocolate)

Benefits of custom picklist:


• Multiple values can be entered
• Helps maintain data quality
• Reduces time to enter data

Multi-select picklist
 Multi-select picklists have a lower limit on total values.
 You can convert a custom picklist to a multi-select picklist to support multiple values in the
field, later. However, when you convert a multi-select picklist to a picklist field that doesn’t
support multi-select, SF clears the values because the new field only allows one value.
 Only specific functions in formulas can reference multi-select picklists
 Reports referencing multi-select picklists should use includes to collect all results that contain
more than one value.
 In report results/dashboards, multi-select picklist selections are grouped independently.
Eg. One record has a, b, and c values. Another record has b,c values. Another has only c
selected. You’ll get three different groupings: one for a;b;c, one for b;c and another for c.

Standard Picklist Custom Picklist Custom Multi-select


Add/Remove from Page Layouts x x x
Delete from Your Org x x
Set a Default Value x x x
Use a Formula for a Default Value x x
Can Select Multiple Values x
Can Add Values via Apps or API x x x
Can Be Restricted x x
Can Be a Dependent Picklist x x
Can be a Controlling field x x
*controlling field: standard picklist, standard checkbox, custom picklist, custom checkbox
Values can be defined three ways
 Use built-in set of values for the standard picklist fields that come with your Salesforce org.
 Set individual values when you create the picklist. These are specific to a single picklist field
 Create a global value set, custom set of values to share with more than one picklist field.

Indexed field is stored in the database in a way that supports quick retrieval. SF automatically
analyzes performance and periodically assigns fields to be indexed  optimize report performance.
Printable View: See all of your values at once  helpful view while you set up a dependent picklist.
 Inactive values: Existing records containing a value when you set it to Inactive continue to
contain the value. eg. They aren’t popular in summer, so you set that value to inactive all
summer  There is a limit on total combined active and inactive values
 Replace values: If you replace a parent value in a controlling picklist  picklist dependency
on that value is lost  have to re-create the dependency using the new parent value.
Create new value > click on Replace
 Change the Label: appears in the UI.
Change the API Name: identifies the value for use in formulas and programming references.
 once set, this value shouldn’t change, otherwise references to the value can break.
The API name is a unique identifier for a value, even when the label changes.

Use formulas for default picklist values


Based on certain conditions and values from other fields  default picklist values changes.
Eg. change the default value for a field based on the profile or if a customer’s total cookie purchases
are above a certain number, their frequent customer status changes
 Setting the right default can speed data entry.

Setup > object manager > fields & relationships > edit next picklist field > general options: add
formula > show formula editor* > save
*let you check syntax and gives you picklists to suggest fields, operators, functions for your formula

Default value for the macaron flavor is flavor of the month for some months, otherwise is vanilla:
CASE(MONTH(TODAY()),1, "Gingerbread",2, "Strawberry",4, "Chocolate",7, "Raspberry",11,
"Pumpkin",12, "Mint", "Vanilla")

Define something for default values in case the formula doesn’t resolve to an active value.
IF($Profile.Name = "Fast Response Sales", "High", "Standard")
If you want the field to remain blank when the user isn’t in the Fast Response Sales profile, use:
IF($Profile.Name = "Fast Response Sales", "High", null)

Change field type


Setup > object manager > fields & relationships > edit next picklist field > change picklist field type
 Custom picklist  multi-select picklist: Inactive values will be lost
 Multi-select picklist  custom picklist that doesn’t allow multi-selection, SF clears the values
for that field on existing records.
Global value set
Consistency of values across more than one picklist makes it easier to enter the right values, and your
data is more reliable. As you change the values in a global value set, the revised values show up in all
the picklists using it.

 Global value sets are always restricted: protects your values, because changing global value
set values modifies the values for all the fields that reference the global value set.
 Individual fields that use the global value set can have their own default values, independent
of the global value set’s default.

Independent custom field values are more flexible, but higher maintenance.

Create: Picklist > picklist value sets > global value sets > new > save
Use: Object manager > field & relationships > new > picklist > use a global value set > save

If you find that a particular set of values for one field makes a good set for another field, you can
promote the existing value set to a global value set:
Object manager > field & relationships > edit one field > promote to global value set*
*If Promote to Global Value Set is not available, then select ‘Restrict picklist to the values defined in
the value set’ (can be added via API, not UI)

Formulas & Validations


Use formula fields
= read-only (non-editable) fields that automatically calculate a value based on field values (include
fields in related objects) or a formula

 Merge fields can reference other fields to which he doesn't have access to allowing him to
view restricted data in standard or custom objects, parent/lookup object, but cannot
reference other formula fields
 child record fields need to be populated with the parent record field information
eg. open a case from an account they need to fill all the account-related field info
 Formula: calculate mathematical output (4000 character is the limit of size of formula)
eg. sum of lead scoring fields, calculate how many days are left until opportunity’s close date
eg. opportunities not been update in the past 20 days automatically be flagged: formula to
calculate how many days since the last update and display a red flag if criteria are met
 Any change in formula/expression automatically updates the value of formula field
 Recalculated automatically  each time a user views the record
 Ensure data validation
 formulas are case sensitive (capitalization of field names), whitespace doesn’t matter
Limitations:
 Not display on record edit pages  formula field is read-only
 They are not searchable
 Cannot reference field types: text area (long), text area (rich), picklist (multiselect)

Formula editor
• Simple formula: allow selection of fields from the same object and use of operators
• Advanced formula: allow selection of fields from the parent object and use of functions
Formula editor may be used for formula field, workflow field update, S-Control but NOT for default
values on Standard fields
7 Formula fields types:
1. Number: Fahrenheit = 1.8 * Celsius__c + 32
2. Currency: Gross Margin = Amount - Cost__c (eg. Commission a salesperson receives)
3. Percent: Discount = (Amount - Discounted_Amount__c) / Amount
4. Date: Reminder Date = CloseDate - 7
5. Date/time: Next = NOW() + 1
6. Checkbox: TODAY() > CloseDate
7. Text: Full Name = LastName & ", " & FirstName

Object manager: opportunity > fields & relationships > new > type: formula > data type: text

Delete formula field


 Custom field allocation within 15 days after deletion
 If field is restored, it needs to be manually added back to page layouts and marked as
required/unique again if needed. The field history is available again.
If the field was part of master-detail relationship, will be restores as a lookup  converted
 Cannot delete a field if it is referenced in the application (eg. field updates in workflow)

Function menu: Some functions can be used as-is (for example, the TODAY() function returns the
current date), while others require extra information = parameters. The LEN(text) function finds the
length of the text you input as a parameter, returns a value of 5.

FORMULA FUNCTIONS

 HyperLink, Substitute, RPad (not a vlookup)

 ISPICKVAL: determines if the value of a picklist field is equal to a text literal


IF(ISPICKVAL(picklist_field)) = CASE (picklist_field)
IF (OR (ISPICKVAL (Priority, “High”), ISPICKVAL (Status, “New”)),
ROUND (NOW ()- CreatedDate, 0), null): returns the number of days a case has been open if
the status is new or the priority is high. If the case was opened today, this field displays zero
 ISNUMBER: the value in Custom Field called Salary is 50.000
 formula return ‘True’, not 50.000
 TEXT: converts a percent, number, date/time or currency type field into text
 IF: determines if expressions are true or false  you can string together multiple IF’s to
evaluate a specific condition with multiple outcomes
 AND: returns a TRUE response if all values are true, and returns a FALSE response if one or
more values are false  joins together multiple conditions
 IMAGE: (eg. Color for each value)

Scenario’s
Example 1: Displaying an Account Field on the Contact Detail Page
Let’s take a single field from an Account and show it on a Contact using a cross-object formula.
select a record from another object: Account  references fields from parent objects
Setup > object manager: contact > fields & relationships > new > formula > label: Account number
type: text > advanced formula editor > insert field: Contact | Account | Account Number > insert

Example: 2 Displaying the Number of Days Until an Opportunity Closes on a Report


1. Setup > object manager: opportunity > fields & relationships > new > formula > label: Days
to close > type: number
2. Find the difference between the opportunity close date and today’s date:
formula: CloseDate – TODAY()

Debugging Formulas
Syntax errors are an inevitable part of working with formulas  Check Syntaxtells you what error it
encountered and where it’s located in your formula.
 Missing parentheses: LEN (Name: This error most often occurs when the number of opening
parentheses doesn’t match the number of closing parentheses. Also see this error if you
forget a comma between two function parameters  doesn’t match with the syntax checker
 Incorrect parameter type: If you give a function a number parameter when it expects text
 Incorrect number of parameters for function: ABS (-18, 2) If you input too many or too few
parameters into a function, the syntax checker alerts you.
 Formula result is incompatible with formula return type: You’ll see this error if you select
one data type when creating the formula field but write a formula that returns a different
data type. In the example below, you can see that My Account Formula (number) expects to
return a number, but the TODAY() function returns a date.
 Field does not exist: This error indicates that you’ve included a field in your formula that
your object doesn’t support. If you forget to put quotation marks around a text or hyperlink.
 Unknown function: In this case, check that Salesforce supports the functions you’re using.

Summary function: You can use this function only in custom summary formulas and at grouping
levels for reports, but not at summary levels.
 PARENTGROUPVAL: A “parent” grouping is any level above the one containing the
formula eg. Show the percent of each sales rep contributed to sales pipeline
 PREVGROUPVAL: A “previous” grouping is one that comes before the current
grouping in the report.

This formula creates a hyperlink to an external website using the HYPERLINK() function. Adding
hyperlinks to page layouts helps users access important information quickly from the detail pages.
Account website (text)
HYPERLINK(“http:/www.veryimportantwebsite.com”, “Very Important Website”)

Applying 12% discount and rounding the result to two decimal places using the ROUND() function.
Discounted amount (number)
ROUND( Amount – (Amount * 0.12), 2)

Checkbox formula that determines whether a particular opportunity is a “big” opportunity. It checks
whether the number of employees at the opportunity account’s associated company is greater than
1,000 AND whether the opportunity amount is greater than $10,000. If both statements are true, the
field appears as a checked box on the Opportunity page layout. Otherwise, it appears as a blank box.
Big opportunity? (Checkbox)
AND (Account.NumberOfEmployee > 1000, Amount > 10000)

Evaluate if the student has passed the exam if percent obtained > 50%:
setup > fields or relationships > new > formula: Text > advanced formula > insert functions “if” >
insert field: total percent > ‘if total_percent__c > 0.50, value if true (‘Passed’), value if false (‘Failed’)’

Roll-up Summary field


While formula fields calculate values using fields within a single record, roll-up summary fields is
custom object field that calculate values from a set of related records (up to 10 fields on object)
Define roll-up summary field on the master side of a master-detail relationship: automatically display
a value on a master record based on the values of detail records.

How many applications (child records) there have been when they look at the Job record (master
record) in master-detail relationship  create roll-up summary field on Job record
because roll-up summary field is custom field  field-level security to make it visible to HR users,
not controlled by the page layout

 Calculating roll-up summary field values may take up to 30min:


 Automatic calculation (recommend)
 Force a Mass Recalculation: manually recalculate the value
(SF NOT recalculate the value of campaign roll-up summary fields when leads or
contacts are deleted)

Summary types
 COUNT: Totals the number of related records
 SUM: Totals the values in the field you select in the Field to Aggregate option (Only number,
currency, percent) eg. Total expected revenue of all the Opportunities related to account
 MIN: Displays the lowest value of the field you select in the Field to Aggregate option for all
directly related records (only number, currency, percent, date, and date/time fields)
eg. Minimum List Price of An Opportunity
Setup > object manager > account > fields & relationship > new > roll-up summary > Label >
select object to summarize: on detail side > summary type: sum > field to aggregate

Validation Rules
= verify data entered by users meet the standards to prevent users from saving invalid data.
If user enter invalid data, the error message in VR will display on record and record will not be saved
 Validation rules are always in effect, even if a field is invisible to a user with field-level security:
if a field is invisible to a user and VR says that the record cannot be saved without entering value for
that field, then the user would never be able to save a record
 Validation rules apply to all new (save) and updated records for an object
 All editions support Validation rules
 VR are for UI users and API users

Data Validation:
 Ensures data integrity before the record is saved in SF (not when data is exported in SF)
 Can prevent duplication of records
 Make fields required in page layout

System validation rules: basic standard rules setup on the field itself  maintain data quality
BEFORE CUSTOM VALIDATION RULES

• Ensure data type is correct for the field


• Limiting field length on text, number, currency fields
• Make fields required eg. a field cannot have an empty value before saving object
• Make fields unique: looks at specific fields (text, number, email) and ensure that there is no
other record with that entry
>< Duplicate rule: used for the record as a whole when only one record should exist
• Error messages: describe cause and provide info to resolve them

Custom validation rules: complex, can involve one or more fields and contain formulas or criteria
that determine if data can be processed or rejected: evaluates the data with “True” or “False.

• Incorporate with functions and logic to meet more business-specific validation requirements
RegEx: formula function used to ensure the correct formatting of a field entry
• A message is displayed if the right criteria is not met and field value needs to be corrected
• Apply to new or existing records even if fields referenced in a rule are not displayed on a
page layout or API call
 Make fields conditionally required, depending on the value of another field
eg. don’t want users to mark an Opportunity as Closed Won (Status field) if they Account
doesn’t have a Billing Address field
eg. email field on case form should be mandatory if phone field is not provided
BUT: VR may evaluate an opportunity line item against the opportunity it’s associated with
>< page layout required fields: fields must be filled in prior to save Opportunity
 Make field unique: text, number, email can be marked as unique to prevent duplicate field
values on records
 Use a Boolean statement to evaluate data: ensure that numbers are within a specified range,
eg. discounts must not exceed 20 percent.
 Enforce that date fields are correct chronological sequence eg. start date is before end date
eg. make sure that opportunity close date cannot be set in the past (VR check the close date
against the current date)

Examples of validation rules:


VR with PRIORVALUE: prevent further changes to record when the ‘Status’ field on the record is set
to a specified value
VR with ISCHANGED: only check whether the value of ‘Status’ field is changed

Setup > object manager > account > Validation rules > new > name > error condition formula: LEN
( Account Number ) !=8 > error message: “Account number must be 8 characters long” > Check
Syntax

If marks entered for mathematics > 100, the system must throw an error:
Setup > object manager > validation rule > new > error condition formula: maths_marks__ c > 100 >
error message: “Maths marks should be less than 100”, error location: Field – maths marks

Validation rule considerations


 VR exist for activities and you create an activity during lead conversion; the lead converts but
the task isn’t created
 Campaign hierarchies ignore validation rules
 If ownership changed: VR continue to run on individual records not on records with Mass
Transfer tool of multiple records
 Web-to-Lead and Web-to-Case pass VR so VR is enforced but not show visual confirmation:
no response is provided to web user if any of the VR fail, which will cause the Lead or Case
record to not be created

Examples

Account Number is Numeric


Description: validates that Account Number is numeric or blank
Formula: AND (
NOT (ISBLANK (AccountNumber)),
NOT (ISNUMBER (AccountNumber)) )

Date must be in the current year


Description: validates that custom date field contains a date within the current year
Formula: YEAR ( My_Date__c) <> YEAR ( TODAY())
Number range validation
Description: validate that the range between two custom fields, salary min and salary max, is no
greater than 20,000
Formula: (Salary_Max__c – Salary_Min_cc) > 20000

Workflows
= lets you automate procedures and processes, to eliminate repetitive and time-consuming
processes  it is used when the process automation complexity involves a single if/then
A workflow rule sets actions into motion when certain criteria are met.
 criteria: what must be true in the record for the workflow rule to execute actions
 actions: what needs to be done when the record meets the criteria

Evaluation criteria determine to which records the workflow rule will apply.
Workflow rules are evaluated when:
• the record is created: the rule will not be evaluated after the case is first saved. If
you update the case status manually, then save record, the criteria will not be met
• the record is created, and every time it’s edited: workflow rule will fire every time
the record is edited, even though record may have already met the criteria when it
was created or in a previous edit
• the record is created, and any time it’s edited to subsequently meet criteria
if an existing record is changed from not meeting the rule criteria to meeting the
criteria, the workflow rule will fire eg. an email goes out to sales reps when an
opportunity is (changed to) closed notifying them of the closed deal

Workflow rules created after saving records do not trigger those records retroactively.
existing records are only processed if they are edited and subsequently meet the criteria

Rule criteria: how workflows can be evaluated


 Formula evaluates to true: enter a formula that returns a value of ‘true’ or ‘false’. The
workflow rule is triggered if the formula returns to ‘true’. A formula can reference merge
field in related objects  Functions: ISCHANGED to determine if a field has been updated
OR
 Criteria that are met (combo of field criteria): when record meet criteria  trigger the rule
 Filter Logic: allows you to construct expressions using AND, OR and NOT

Setup > process automation > workflow rules > new rule > add workflow action: tasks/email
alert/field update/Outbound Message > activate!
WORKFLOW RULES NEED TO BE ACTIVATED!!

Actions

 Create one workflow rule with multiple actions (and)


email alerts for anytime an Opportunity or Case is created on Accounts they own:
two workflow rules with one email alert each
 You can create 25 workflow rules per entity
 Workflows follows the user actions: if a user is authorized to perform the action, they will be
the user recorded for the automated actions done by workflow eg. John modifies a record 
will be the listed under the ‘Last Modified’ field

Workflow action: Tasks


 Includes fields: assigned to, subject, due date, status (not started), priority
eg. 7 days before Close Date: (due date: Close Date – minus – 7)
 Workflow tasks may be assigned to a user, role, team role, record owner, record creator
A single task cannot be assigned to multiple users
 Tasks > email alert: track the specific actions you plan to perform or have performed
 Reuse task: task is assigned to one or more workflow rules or approval processes
 Article management tasks: ‘Publish’ and ‘Publish as New’ are Knowledge actions
 Not create records, except for tasks
 Workflow tasks can be tracked in Activity History

Workflow action: Email alert


 Email alerts allow you to send an email to a user, role, record owner, record creator,
opportunity team role, or account team role.
 Text based or HTML email can be sent
 When creating a custom notification type, the user can choose to send to the desktop (as
browser notification) or mobile phone (as a push notification) or both
 Workflow rule: create a workflow to send email if opportunity probability or amount > 1
million OR Big Deal Alerts
 Workflow rules can be used to automate Chatter email alert using ‘Group object’
eg. new member is added to Chatter group, send email alert to group owner
 but if it is create automated post on manager’s Chatter feed: Process Builder or Flow
 Daily limit: 1000 emails per license and 2 million emails org-wide
limit is reached: emails in workflow queue left over not be sent  discarded day the after
 Sent up to 5 add external email addresses (not Salesforce users)
 Organization-wide email address override the ‘From Email Address’
 Email alerts use email templates  created before you set up the workflow action
(text, Custom HTML, HTML with Letterhead, Visual Force (not mass mailing), XML templates)
 set on ‘Available for Use’ and users need access to Email Template folder
 NOT for mass mailing

Exercise: email alert: create email automatically to all the parents


1) Preparation: create a custom student object: setup > student object > custom fields &
relationships > new > type: email > name: Parent email
2) Create email template: administer > email templates > new > type: text > field type:
student fields > selected field: father’s name > information: text in email body
3) Create email alert: setup > process automation > workflow action > email alert > new >
select email template > recipient type (email field – select available)

Workflow action: Field Updates


Field updates automatically change the value of a field to a value you specify.
Depending on type of field:
• Set a specific value or make value blank
• Calculate default values using a formula based on record type
eg. default target close date (TODAY() + 30)
• Cross-object field update: update field on master record if field on the detail record changes
 All custom-to-custom master-detail relationships
 Some custom-to-standard master-detail relationships (Account, Contact and Case)
 Few standard-to-standard master-detail relationships (eg. Opp updating Account)
• Field updates can retrigger new workflow rules

Workflow action: Outbound Messages


= send data from objects in the XML format via an API message to an external system
eg. when opp is closed won, the amount needs to be sent to external financial system
eg. message should be flashed on employee portal congratulating reps of closing a deal
 Send SOAP messages to a web URL endpoint
 Required the receiver to have web service listening
 Object is the reference of data for in the email

Workflow Actions: considerations


o Existing actions: reused in multiple workflow rules
o Immediate Workflow actions: Workflow actions can fire immediately once workflow criteria
are met. If multiple workflow actions are defined the order of execution is not guaranteed,
but field updates executed first
o Time-based Workflow actions: workflow actions are time delayed
Add Time Trigger (up to 10 per workflow rule) > add workflow action: email alert
eg. automate the notification of Support Plan, customer rep receive an email 30 days before
Support Plan expires  time trigger to fire 30 days before SP expiration date and use email
action to notify customer rep
eg. agreement is about to expire: rule criteria of agreement End date > TODAY()
• Valid range: 0-999 days or hours
• Modify existing time triggers by adding or removing actions
• Re-evaluates time triggers and adds actions to the workflow queue IF evaluation
criteria is ‘record is created and any time edited to subsequently meet criteria’.
- Only workflow rules that didn’t fire before will be retriggered
- Only workflow rules on same objects as initial field update will be triggered
- In a batch update, workflow is retriggered on entities where is a change
• Monitor ‘Time-based workflow’ queue (in Setup): cancel any pending time-based
workflow actions placed in queue

Time trigger is NOT available:


 Workflow rule is already activated (must deactivate – add time trigger – activate)
 Pending workflow actions are placed in a queue. If a record is edited, and no longer
matches the rule criteria, SF removes the time-dependent actions for that record.
 Evaluation criteria is set to every time a record is created and edited

Workflow Rule Migration


Workflow vs process builder
 Process Builder allow access and updates to fields on the record that started the process or
related records and includes more flexible actions.
Eg. The Create a Record process action, for example, lets you create any record instead of
just tasks. The Update Records process action lets you update any related record,
in Workflow you can reference fields on the parent record
 Process Builder allows multiple process criteria and actions so that they can be kept
together instead of requiring multiple workflow rules
 Process Builder also includes brand new actions that aren’t available in Workflow—
such as Post to Chatter, Submit for Approval no future releases for workflow rules
 In Process Builder, you determine the exact order of your process criteria.
In Workflow, there’s no way for you to determine which order your workflow rules run in 
always a risk of one rule overwriting what another did.

Can you change the implementation so that the team is notified via Chatter instead of email?
Let you automatically create Chatter posts: Apex triggers, Flow Builder, and Process Builder.
 It’s best practice to use one automation tool for each object

If you want to replace one case workflow rule with a process, we recommend migrating every case
workflow rule to Process Builder. Steps for process of converting workflow rules to process:
 Map your rules’ criteria into process criteria. Consider whether to nest any criteria with
invocable processes.
 Map your rules’ actions into process actions.
 Determine the optimal order of your criteria nodes.

Map your workflow criteria into process criteria


1. Determine process name
2. The object is a freebie; the same for a process as it was for the corresponding workflow rule.
3. Evaluation Criteria for a workflow rule:
 Created (process builder: only when a record is created)
 Created or edited (process builder: anytime when a record is created or edited)
 Created or edited to subsequently meet criteria
4. Rule Criteria map closely, if not exactly, from your workflow rule to your process. Just like
Workflow, Process Builder lets you set filter conditions or use a formula

Process Builder takes those workarounds and puts them in a box marked “Not Needed Anymore”.
As long as you automate everything in a single process, you explicitly set the order
 The first criteria node is evaluated first

Recommend automating everything in one process, whenever possible:


Some of your automation applies only to created records.
ISNEW() is the formula function that detects whether the record being evaluated was just created
&& ISNEW() to your formula if when record is created or edited.

Invocable Processes are modular processes that start only when another process tells them to and
that you can reference in one or more processes.
 Partially matching criteria nodes: You build an invocable process to handle all those criteria
nodes, without the common condition. In your top-level process, if the account is high value
you invoke the “Top Account” process.
 Common action for each criteria node  across multiple action groups
Rather than building the same action for each criteria node, build it once with an invocable
process  reduces the maintenance cost
Workflow rules Process builder
Rule name Evaluation Object node Criteria node Cn: Advanced
criteria option
Follow-up up when Created or When a record Contract case Selected
platinum contract edited to meet is created or close
case closes criteria edited
Notify sales about Created Only when a Top account n/a
cases field for high record is
value accounts created
Set resolution date Created “” Basis support “
for basic support

Use cases for invocable processes is if multiple criteria nodes share a condition
For each criteria node that applies only to created records
1. Convert the filter conditions to formulas.
2. Add the formula: ISNEW() function
3. Mark the Advanced option “Not selected”.
 the criteria nodes for all those workflow rules fit in one process

Criteria in the invocable processes

Object node Criteria name Criteria for executing action


Object: Case Top account Account: top account equals
True
Basic support Support plan equals basic

1. Setup > Process Builder > New > Name: New Cases, Description: Automation for all cases
on creation, The process starts when: It’s invoked by another process
2. Configure the object node: Add Object > select Case > save
3. Add Criteria: configure the Top Account criteria node > Name: Top Account
Field (Account ID) – Value (true) > save
4. Add Criteria: configure the Basic Support criteria node > Name: Basic Support
Field (Support Plan) – Value (basic) > save

Criteria in the Top-Level process

Object node Criteria name Criteria for executing action Cn: advanced option
Object: Case: Escalation Contains (LOWER Selected
when a record is keywords (case.subject), “urgent”
created or edited
Platinum contract (Case: priority equals high) Selected
case closes (Case: closed equals true)
(Case: contract type equals
Platinum)
New case ISNEW() n/a

1. In the button bar: View All Processes > New > Name: Case Management, Description:
Automation for all cases, The process starts when: A record changes
2. Configure the object node: Add Object > select Case and when a record is created or edited.
3. Add Criteria: configure the Escalation Keywords criteria node > Name > Select Formula
evaluates to true > Copy-paste the formula > Update the fields in the formula so that they
use Process Builder syntax > At the bottom of the criteria node, expand: Advanced > Yes*
4. Add Criteria: configure the Platinum Contract Case Closes criteria node > Name > Add two
rows so that you have three filter conditions to configure >
Select the fields for each row: Priority, Closed, Contract Type
Set the values for each row: Priority equals High, Closed equals True, Contract Type equals
Platinum > At the bottom of the criteria node, expand: Advanced > Yes.
5. Add Criteria: configure the New Case criteria node > name > Select Formula evaluates to
true > In the formula editor: enter ISNEW() > Leave the advanced option unselected
*execute the actions only when specified changes are made to the record?
Map your workflow actions to process actions
Building an action once and using it in many workflow rules. Salesforce provides two action types
that live under “Quick Actions”: global actions and object-specific actions  reusable actions

Create the action > set the field on page layout > detail page: set predefined field values.
 Both types can create records, but only object-specific actions can update records.
 Object-specific actions create records that are automatically associated with related
records. A record created by a global action has no relationship with other records.
Since workflow actions are always associated with a specific object, let’s focus on that

How to convert workflow actions into quick actions:


Workflow action Quick action type Action layout Predefined field values
Field update Update a record Remove all fields Set same values as the
workflow action provided
Combine multiple field
updates in one quick
action  set multiple
predefined field values
Task Create a record Remove all fields Set same values as the
workflow action provided

 Quick action to update a field on a related record. Quick actions can update fields only on the
specified record. Eg. Case-based quick action can’t update fields on associated account.
 If you’re using a quick action in another feature (like a page layout) and in Process Builder,
make sure that the action layout includes at least one field.
 When you configure a Create action, make sure that every required field either has a
predefined field value set or is included in the action layout.

In create actions: Related Record ID tells the action which record to associate the new record with.
In update actions: Related Record ID tells the action which record to update.

If you have actions that apply to multiple criteria nodes in one process—or across multiple processes:
1. Create an invocable process: set the process to start when it’s invoked by another process.
2. In the invocable process: add at least one criteria node. If you want the process to execute
those actions every time > select No criteria–just execute the actions!
3. In the invocable process: build the actions.
4. In the appropriate processes: add a Processes action to the appropriate criteria nodes
Workflow Actions vs. Process Actions
For each workflow action that’s available, there are one or two corresponding process actions.

Field Update Workflow Actions


The process action that corresponds most directly to the field update workflow is Update Records.
 Do you have multiple field update workflow actions for the same object associated with the
same criteria node?  Combine them all into one process action
 Does this field update workflow action apply to multiple criteria nodes?  Create an object-
specific action and reference it by using a Quick Actions process action. Otherwise, use an
Update Records process action.

Field Update Action Setting Description Process Builder Setting


Re-evaluate Workflow Rules If the field update results in a In the object node, expand the
after Field Change (1) change to the value of the Advanced settings > Yes
field, Salesforce reevaluates all
workflow rules on the object.
Doing so triggers any workflow
rules whose criteria are met.
Notify Assignee (2) Only available when updating Re-create this functionality
the record owner. When with an email alert.
selected, Salesforce sends an
email to new owner of record.

Task Workflow Actions


There’s no specific Task action in Process Builder because it doesn’t limit the objects whose records
you can create  use the Create a Record process action.
 With Process Builder you can automate the tasks: Eg. a workflow rule creates a task for the
account owner to submit a contract for approval. When converting that task into Process
Builder, you use the Submit for Approval action to eliminate that task for the account owner.
 Does this task apply to multiple criteria nodes? Create an object-specific action and use the
Quick Actions process action. Otherwise, use a Create a Record process action.

Email Alert Workflow Actions


Email alerts are the only workflow action that you can reuse directly in Process Builder

Email vs. Post to Chatter


However, email alerts aren’t the only process action that sends notifications.

 Message: What the notification says, rich text isn’t supported (otherwise use email alert)
 Recipients: who it’s sent to. In email alert: You can select from a variety of users, email fields,
or groups of people. In Post to Chatter: you can post to a few different feeds:
 The record that started the process
 A user—One who’s related to the record or a specific user.
 A Chatter group—Public or private, but not private with customers.
 You can mention any user, as long as you can reference user ID from the field picker.

Recipient type Email alert Post to Chatter


Related user Yes (limited) Yes (unlimited)
Related record owner Yes Yes
Creator Yes Yes
Role, subordinates Yes No
Public group Yes No
Team Yes No

 Publicity: who else can see the message. Emails are sent on a one-on-one basis. With Chatter
posts, the publicity of the message depends on which feed you post to:
 Email—Only the recipient sees the message.
 Post to a user’s feed—Anyone can see the message when they visit that user’s page.
 Post to a record’s feed—Anyone with access to the record can see the message.
 Post to a Chatter group (public)—Anyone can see message when they visit the group
 Post to a Chatter group (private)—Only members of the group can see the message.

Flow Trigger Workflow Action


You call the same flow and provide the same values to the flow’s variables.
 Process Builder’s equivalent option for {!this}: Select Object record that started your process.
 Process Builder doesn’t have an equivalent option for {!old}.

Time Triggers
The steps for creating a time trigger are largely the same as the steps for creating a schedule
(Immediate actions are the same, time-dependent actions  scheduled actions)

In Process Builder, you can reference any date or date/time field (1) or use the “from now”
construction (2), which corresponds with the Rule Trigger Date option in Workflow.
Once you convert time-based workflow actions to scheduled process actions:
Setup > Flows page > Paused and Waiting Interviews

Criteria name Immediate actions Time trigger Scheduled action


Top account Email alert: notify AE about n/a n/a
cases for large accounts
Basic support Field update: set target n/a n/a
resolution date to TODAY()
+ 30
Platinum contract case n/a 7 days after case: Email alert: email
closes date/time closed feedback request to
case contact
Escalation keywords Field Update: Set Priority n/a n/a
to Service Affecting
Field Update: Set Support
Level Tier 3
Field Update: Set Target
Resolution Date to TODAY()

Map the field update actions:

Two of the criteria nodes update the same field (Target Resolution Date) with same value ( TODAY())
 create reusable action: object-specific action on Case that sets Target Resolution Date to TODAY()
and reference the quick action in both criteria nodes (Premium Support; Escalation Keywords)
Escalation Keywords criteria node updates multiple fields  combine all of those into one action
Map the email alert actions:

You can convert the first to Chatter posts: because the recipients are accessible and rich text isn’t
important to the message, and the message doesn’t need to be private. Use the email template for
full message and mention account owner and account owner’s manager.
However, to send a feedback request to the case contact, you continue to use an email alert: in
Process Builder, only email alerts can be sent to customers (1:1 to customers)

Map the processes action:

To configure a Processes action: identify the process (New Cases) and which record to send to that
process. The invocable process should evaluate the same record as the top-level process.

Map the time trigger:

Date/Time Closed is a field on the Case object: 7 Days After Case: Date/Time Closed becomes 7 Days
After Closed Date

Only component you need that isn’t already created (that is, email alerts from the workflow rules)
and is created outside of Process Builder is the quick action

Create a quick action


1. Quick action: From the object management settings for cases > Buttons, Links, and Actions
New Action > Configure the action’s properties: Action Type: Update a Record, Label: Set
Target Resolution Date to Today > Save the action.
2. Configure the action layout: Remove all the fields from the action layout > Save the layout.
3. Set a predefined value for Target Resolution Date: In Predefined Field Values > New
Name: Target Resolution Date, In the formula editor: enter TODAY() > save

Actions in the invocable process


Process builder > open new cases process

1. Top Account: Post to Chatter: Add Action > Action Type: Post to Chatter,
For Post To: select This Record
For Message: Paste the content of the email template that the “Notify AE about cases for
large accounts” email alert references + Mention the account owner:
Enter @[] > place your cursor inside the brackets > Merge Field > Account ID to access the
associated account’s fields > Owner > Owner ID > choose / Manager > manager ID > choose
2. Basic Support: Update Actions: Add Action > Action Type: Update Records
For Record Type: select the Case that started your process.
Set the new field values: Field (Target Resolution Date) – Type (Formula) – In the formula
editor: enter TODAY() + 30 > Use this formula.
3. Premium Support: Quick Action: Add Action < Action Type: Quick Actions
> select action: Filter search by object > Case < Select Set Target Resolution Date to Today
Set field values for the action: field (Related Record ID) – type (Field Reference) – Value
(Case ID) < Choose
4. Activate the process

Actions in top-level process


5. Escalation keywords: update records: Add Action > Action Type: Update Records.
For Record Type: select the Case that started your process.
Set the new field values: field (priority) – type (picklist) – value (high)
field (support level) – type (picklist) – value (Tier 3)
6. Platinum Contract Case Closes: Schedule: set schedule > field: 7, leave days and after
selected, closed date > save
7. Platinum Contract Case Closes: Email Alerts: under schedule you created: add action >
action type: email alerts > for email alert select the one used in workflow rule > save
8. New Case: Processes: add action > action type: processes > for process: select invocable
process that you activated > value to select ID* > for value: select case that started process
> confirm > save
*you want the invocable process to evaluate the case that started the case management process
Exercise:
1. Add criteria > name: closed won and banking > conditions: stage is closed won AND/ OR
account’s industry is banking > advanced > Yes
2. Associated action: add action > action type: create a record, record type: task
Field (assigned to ID) – type (field reference) – value (account ID > owner ID)
Field (due data only) – type (formula): TODAY() + 7 > use this formula > save
3. Associated action: add action > action type: create a record, record type: create a draft
Field (account ID) – type (field reference) – value (account ID)
Field (status) – type (picklist) – value (draft)
4. Activate the process

Order of Your Process Criteria


 The end behavior can influence the order, or vice versa. Click the last element in the row (by
default, STOP), you can configure end behavior for criteria node.

Stop: When the criteria node evaluates to true, SF executes the associated actions and then leaves
the process. If the process includes remaining criteria nodes, SF doesn’t evaluate them.

Evaluate Next Criteria: When the criteria node evaluates to true, SF executes the associated actions
and then evaluates the next criteria node in the process. This option is only available when the action
group doesn’t include scheduled actions and when there’s another criteria node to evaluate.

Order in the top-level process


Platinum Contract Case Closes includes scheduled actions, so its end behavior must be Stop.
The other two criteria nodes aren’t mutually exclusive, so use Evaluate Next Criteria as the end
To make sure that the process always evaluates both Escalation Keywords and New Case, place
Platinum Contract Case Closes third.

Two of the criteria nodes update the same field: Target Resolution Date.
 Escalation Keywords updates the field to today.
 New Case updates the field to a month or two weeks from now, or today.
The action for Escalation Keywords should win, so let’s place that criteria node second. Since New
Case evaluates the next criteria, Escalation Keywords is always evaluated.
1. New case (evaluate next criteria)
2. Escalation keywords (evaluate next criteria)
3. Platinum contract case closes (stop)
Order in the Invocable process
Three of the criteria nodes evaluate the same field (Support Plan) and update the same field (Target
Resolution Date). Once one of them executes, there’s no need to evaluate the others, so mark the
end behavior for each as Stop. The order of the three Support Plan criteria nodes doesn’t really
matter, but let’s order them according to increasing value of the Support Plan.

However, you want to make sure the other criteria node (Top Account) gets evaluated. So the end
behavior for Top Account should be Evaluate Next Criteria. Place it first in the invocable process so
that it’s always evaluated.
1. Top account (evaluate next criteria)
2. Basic support: today + 30 (stop)
3. Standard support (stop)
4. Premium support: today (stop)

But first, notice that the process’s status in the button bar is Read Only. In the Actions unit, you
activated this process so that you could add it as an action to the Case Management process.
To modify this process: clone a new version. You activate the new version later, so that the Case
Management process uses the latest and greatest version.

Clone > Leave the default selections > save the new version > edit the process: drag for the order >
Change the end behavior > activate

Exercise: first clone


The process evaluates Closed Won first  drag it above
If Closed Won evaluates to true, the process also evaluates Closed Won and Banking  evaluate the
next criteria

Finish process
1. Deactivate the workflow rules that you replaced before you test the process (later: delete)
Setup > workflow rules > next to each click deactivate > OK
2. Activate the process: setup > process builder > open case process > activate > confirm
3. Test the process: In drafting your test plan, consider:
 When you expect actions to occur
 When you expect actions to not occur (for example, when a record meets some but
not all the filter conditions)
 The result of a change meeting multiple criteria nodes
 Permutations based on any formulas used

Service cloud for Lightning experience


Service Cloud = easy-to-use customer service application that can help you provide and track
excellent service. It keeps your customers happy and your support team sane for all channels.
Service objects: Case, Knowledge, Service Contract, Entitlement

A case is a customizable record in Salesforce: description of customer feedback, problem, question

 Case Management: All unifying information about a customer is stored on a case (account,
contact, product, history data)
 Channels: Whether the case arrived by email, web-to-case, social media,
a support agent can quickly respond to it from the console.
 Automatic Workflows: When a case arrives, its information is automatically assessed and
routed to the right people to match any custom workflows set up for your team.
 Knowledge Base: store articles or answers related to cases to speed up service  share it eg.
let customers find answers on their own from self-service community.
 Instant Metrics: Info about cases is available in service-metrics to gauge your business’s
response times, resolution times (resolve a request), and overall service health in dashboard
 Use data to identify strengths and gaps; and make decisions on faster service.
 Mobile & Field Service Ready: All of your business data, customized processes, unique
workflows come together in one place and see it on your mobile phone
 Service for Everyone: SF is committed to providing accessible products for all individuals
 Automatic Updates for the Future: With each Salesforce release, you automatically get the
latest technologies including AI for predictive service and AppExchange to help your team

Create a case
Lightning experience > click on new case (name, subject, description) > save
Update the case: click Cases tab > select case
Add your comments to case’s feed: select post > share

Service setup
Service Setup is where you connect your customers to your service center. Think of it as a dashboard
for all things service: turn emails into cases, integrate with Twitter, create a web community, monitor
service performance

Configuration actions
App settings: Appearance of service console, add company’s brand, remove tools from utility bar:
Service > setup > app manager > service console > edit > app settings
Support settings:
 ensure every case gets assigned to a valid Owner  define the default case owner
 enables case feed actions and feed items  cases will use feed layouts rather than standard
page layouts

General setup process


1. Automate case management—Route customer questions, comments, and feedback to the
right people
2. Add multiple channels—Sync all your channels to a service console so that your team can
respond to customers anywhere.
3. Capture knowledge— store all useful information in an easy-to-search Knowledge base
4. Expand efficiencies with AI to streamline more tasks and predict service before it’s needed.

Case Management features


The capabilities of case management support the case life cycle
Case key fields: Status in case life cycle, Case Feeds, Case Views, Queues, Case Owner reassignment

Case creation
3 ways to create a case: manual creation, automated creation and via Community (Customer Portal,
self-service Portal)

Manual creation
= create a new case by manually on the case record page in the CRM or by cloning an existing case
when cases are created, the user creating is the owner by default
 case ownership change: open activities related to the case are transferred to the new owner
Automated creation
= cases can be created from email, web, chat, phone

Email service
Customers email in issues and cases are created automatically  Multiple ‘Routing Addresses’ can be
configured with unique settings such as default owner, priority, origin

o Email-to-case: set up by downloading and installing the email-to-case agent onto a company
service to keep all email traffic within a network’s firewall.
• Larger sized attachments (> 25MB)
• Daily limit on how many emails can be processed
o On-Demand Email-to-case: uses Apex email services to convert email to cases without
requiring you to download and install an agent within the firewall.
• Smaller sized attachment (< 25MB)
• Number of user licenses determines max number of emails processed

Setup > email-to-case > Routing Addresses:


 task settings: create a task from an email
 case settings: default priority and case origin (email)

Your customers are constantly calling to check the status of their repair case
Set up workflow rules to email the customer of each status change  reduce number of phone calls

Web form service

Web-to-Case generate HTML code that can be included in company website to capture cases: lets
customers submit cases from a website form up to 5,000 new cases/day
 reCAPTCHA verification (required): reject spam/bogus leads: ensure irrelevant and unwanted
cases are not generated eg. select I’m not a robot

(1) decide which case fields display on the form;


(2) generate the HTML (= HyperText Markup Language)
(3) send the HTML code to a web developer to embed the code into the company’s website

(1) Service setup > web-to-case > enable web-to-case > select require reCAPTCHA verification >
choose case origin: Web > select response template > click ‘Hide record information’* from
appearing in email > save
(2) to generate the HTML code: Service setup > web-to-case HTML Generator > add case fields you
want on the form > enter URL to appear after customers submit their case: http://thank you
(3) copy HTML code and send it to your web developer > finished
*’Hide Record info’ setting on ‘Web-to-case’ auto-response email notifications is only requirement in
order to hide data entered by customers when case creation fails

Communities
= a way that you can allow your customers and partners to access your SF org
= branded spaces that can allow employees, customers and partners to connect

When a case logged in the community portal is automatically created in Salesforce. Customers can
monitor the progress of their logged cases on the customer portal and modify personal information
Security of the data sent and returned from the community site: require secure connections for the
community site to redirect traffic from HTTP to HTTPS
 communities can be customized with tabs, branding, email settings:
customize parts of a community from a predefined community template via Experience Builder
 community members can access the community from mobile devices
 community login page will be in default language of the community

Types of Communities
Community profiles assigned to a user determines which tabs that community users have access to

 Employee community (for internal users): access to resources such as training, recruiting, HR
Used as social intranet where collaborate on projects and use Chatter to discuss topics
 Customer community (for external users): provide customer service or give access to their
data and a company and its products  Functionality is similar to a Service Cloud
• Self-Service Portal: setup your org’ web portal for your customers to log cases and
search solutions on their own with access to knowledge base, support agents, peer-
to-peer support. Close their cases using Suggested Solutions in the portal
 community members can participate in discussions (ask questions, answers)
• Account management: can manage their account info and gain access to order data
such as orders, invoices, support tickets
 Partner community (for external users): allow resellers, distributors to collaborate with
company’s employees and help them sell more effectively  Service (CC) and Sales Cloud:
(onboarding, lead qualification, opportunity management, deal registration, quoting)
 data goes into your SF objects through a third-party site

Marketing Development Funds (MDF): granted by a company to partners via its partner community
so that they can help market, create awareness about the company’s brand
Channel Account Managers (CAMs): help manage relationships with the partners and administer the
MDF budgets  Partner Marketing Budget Hierarchies: streamline how MDF budgets are managed
because CAMS are no longer responsible to administer budgets (reduce burden). By setting up
hierarchies, channel partners can manage their own MDF budgets

Community License types

o Customer Communities User License


• Customer Community: high volume of external users who need access to case
objects and knowledge articles (Accounts, Cases, Contacts)
• Customer Community Plus: external users need access to business-to-consumer
experiences: objects, permissions, R&D, advanced sharing
o Partner Communities User License:
• Partner Community (B2B): access to sales data (Lead, Opportunity, Campaigns)
• Channel account: same as Partner but priced per partner account
• External apps: highly customized communities with CRM objects, extra custom
objects, external data, additional storage
o Commerce Portals Communities User License: communities have limited access to CRM
objects but have access to 100 custom objects in org

Sharing data with external users


 Customer Service template: allow sharing record data for accounts, events, cases
 Role based sharing for CC Plus, Partner Community up to 3 roles: executive, manager, user
 Super user access: to external users in a community (eg. partner) more access data and
records regardless of sharing rules and OWD  role-based sharing: data owned by other
partners users who have the same role or a role below them

Community templates
o Customer template:
• Customer Service: submit cases, search knowledge articles, post questions, access to
field service objects, reports, dashboards
 community users cannot customize template
• Customer Account Portal: update account info, search the knowledge base
o Partner template: Partner Central
o SF Tabs & Visualforce to achieve a total custom look

Chatter Questions
User can ask questions in a feed, group, record and get answer by:
 Similar Questions have a related answer
 Knowledge Articles (needs to be enabled!)
 Response can be tagged as the best answer: person who asked or moderator can select
 a copy of best answer appear at the top of the list of answers with a check mark

Ideas (only in Classic)


Internal and community/portal users can make suggestions related to a zone or theme
to solve problems or propose innovations for the company
Comment on ideas: Up-vote: promote an idea (10 points) >< Down-vote: demote an idea (-10 points)
 users cannot promote the same idea twice
 Zones: organized and group ideas eg. customer product feedback, process improvement
 Categories: organize ideas within zone eg. service improvement, Marketing improvement
 Themes: used to ask for feedback regarding a topic

Guest User = people without user accounts in org (authenticated users) because they don’t need to
log in. You can make pages publicly available and they can even create/edit records
Case automation tools
Case management means organizing customer cases into one place and making sure they go to the
right person, for the right answer, by the right time.

Automate case routing: Queues and Assignment rules

Queues: Automatically prioritize your support team’s workload by creating lists from which agents
can jump in to solve certain types of cases  queues can be used to hold cases not owned by any
user. A list view is automatically created to display cases owned by queue
 Members of a queue: users, roles, public groups
 Email notification can be sent when cases are assigned to a queue
Service setup > queues > new > Label, name > queue email: notify persons when each new case
arrives > add case to selected objects > add members (include yourself) > save

Assignment Rules: Automatically assign incoming cases/case routing to users or queues


 Triggers when manually add a case or when case is submitted via email/website/community
 1 active assignment rule but multiple rule entries: are evaluated until a match is found
 If a case doesn’t meet any assignment rule criteria: the case is assigned to default case owner
(which can be a user or queue)
1. Service setup > case assignment rules > new > type: solar panel installation
2. Select the rule you just created > Rule Entries > new
sort order: 1 > entry criteria: Case: ‘Case Reason equals Installation’
or ‘Case: Priority equals high’**
3. Add user or queue (eg. Premium cases) assigned to case > choose an email
template > save
4. mark the rule as Active***  When you activate an assignment rule, it disables any
other assignment rules in your org

** You can determine how cases are assigned based on fields other than cases.

Same technical engineer group associated with each new case that is based on Technical 
assignment rule and setting up queues based on Technical
Customers submit case in different languages: assign agents based on languages to communicate

Escalation Rules: Automatically escalate cases when the case meets the criteria defined in the rule
entry  escalation rules are triggered if the case is not closed after selected number of hours
eg. we can’t have customers waiting more than 5 hours to get their issues solved
 Business hours = org’s support hours  specified on the case or default (24/7)
Company info > business hours
 Escalation times: when case is created (disable after case is modified), last modification
 Escalation actions: Assign user/queue or Notify user; case owner; queue; up to 5 external
email addresses (don’t have to be a user of salesforce.com to get notification)
eg. notify users when cases that meet criteria remain unresolved

1. Service setup > escalation rules > new > Gold Support > Active > Save
2. Select the created rule > new to add rule entry > sort order: 1 > entry criteria: Case:
‘Status equals New’ > set business hours: default > set escalation times: are based
on when cases are created > save
3. New to add an escalation action (up to 5) > Age Over: 5 > auto-assign cases to you:
Notification template > save

ensure older cases aren’t ignored, set up escalation rule to notify the queue that there are cases that
have been in the queue and unassigned for more than 2 days

Auto-Response Rules: Automatically send personalized email responses to customers/submitters


when the case is created
 Only sent to contact on the case or submitter and only one email can be sent per criteria
>< email alert sent to anyone and up to 10 emails per criteria
 Auto-response rules apply only to cases and leads
 Trigger auto-response rule: web-to-case, email-to-case, Customer Portal Case submission
 Different email templates can be used for different criteria
 Optionally a feedback survey can automatically sent via email when rules are met

1. Service setup > case auto-response rules > new > type: Welcome to Support >
active > save
2. Select the created rule: new to add rule entry > sort order: 1 > entry criteria: Case:
‘Case origin equals email’
3. Name – email address – email template – recipient > save
Case Record
Case Contact roles: Multiple contacts involved in case

Case record: important fields


 Case number: auto-number, read-only and automatically assigned when a case is created
 Case type: picklist values that can be customized by admin and define the natures of case
 Case reason: defined to record reason the case was opened
 create a picklist for ‘Case Close Reason’ with VR that enforces the selection of ‘Case Close
Reason’ when a case is closed or rejected
 Case priority: determine the level of urgency in solving an issue
(useful in Escalation and Assignment rules)
 Case origin: where the case originated from (phone, web, email)
 Case status: determine the current stage in case’s life cycle (new – closed)  updated from
the status field or by changing the value from the Path
 Internal comments: found under Related items, are not displayed to the customer/contact

Case record page: actions buttons

 Accept Case: to accept one or more cases at a time (available on case queue list view)
 self-assignment ownership: change the case owner to the logged-in-user LV
 Merge Cases: merge up to 3 duplicate cases to create one master record LV PL
 merged cases can be viewed in related list on the master record
 keep duplicate cases after merge (specify status) or delete them
 Clone case record: create a copy of case record  used when reopening an old case LV PL
 Change case owner: change the record owner to available users or queue PL
 can be done by the current case owner, role above the owner in role hierarchy, admin
 New child case: create a new case from existing case (parent-child relationship between
these records) LV

Case management
= manage cases and improve the productivity of support agents

Support process
= process that defines stages that different cases may go through in their life cycle
 approval process can be set up for support cases to require approval between stages

Case setting:
 Default owner/queue
 Notification settings to both case owner and customers (case contract)
 Email templates for case notifications
 Delete case: all related events, tasks, case comments, attachments are deleted
(not contacts, accounts and solutions)

Service Console app


= UI for support agents that allow to access multiple case record simultaneously and provides data
visibility by combing a list view and related records on a single screen `
 assign Service Console license to a user: enable ‘Service Cloud User’ on user record page

Benefits:
 Tabs/sub-tabs: managing multiple records on a single screen  whether the records opens
as a primary tab or subtabs
 Highlights panel: key record info  compact layout determines the fields displayed in panel
 Utility bar: productivity tools such as Macros*, History, Omni-Channel, Notes
 reduces time spent clicking and scrolling to quickly find and update records
eg. allows agents to take notes in an interaction log while in call
 Split views: list of cases
 Enable Compact feed: much more information about cases can be seen without scrolling in
feed-based page layout
 Add report chart: the source report must be Summary or Matrix report and must contain a
chart, must be added to page layout of object from which to display the chart
 Related object components: Add one of the cases as Parent of related cases (Parent Case
field): create a relationship between two cases  ‘View Case Hierarchy’ on a case
 Mini page layout (of the case page layout): view contacts associated with a case
inherits the record type and profile associations, related lists, fields, field access settings from
its associated page layout

Macros = automation of repetitive tasks  make actions quicker  multiple actions on Case Feed
Bulk Macros (lighting icon): actions on multiple records of Account, Case, Contact and Lead can be
run on records in one object list view at a time, not possible to run macros on list views

 Only standard/custom objects that support quick actions and have customizable page layout
 Support quick text, email template and email attachments, update opportunity

Macros actions

• Insert and replace field values


• Search knowledge articles
• Post to social networks
• Send emails to contacts on selected records

Define basic info: name, description, object


Create a set of instructions: to tell the system how to complete a task

Case Milestones: time-dependent steps in support process helps agents give a consistent support
service to customers (by adding component to record page or related list to page layout)
 milestones can be added to cases and work orders
 workflow actions can be added to milestones

Lightning Knowledge
Creating an article and email articles to a customer during case closure (only Classic)
articles are NOT created from cases

Knowledge Settings
 Knowledge ‘Read’ access: search and view articles without a Knowledge User license
 To setup SF Knowledge, create, edit, delete and publish articles:
Knowledge User license, ‘Manage Articles’ permission, and the article action (publish
article, archive article) on the article type
 The Knowledge One: let users search, send, create articles all without leaving the case
 If ‘multiple languages’ is enabled, reverting to single language base is not possible
users cannot add and remove support languages in knowledge base
 Knowledge Sidebar: (must be enabled)
• Knowledge articles appear automatically based on the case subject
• Only articles updated in the last 30 days appear automatically
 Only up to 30 article versions are shown in LE

Knowledge Features
Knowledge component: suggest articles from knowledge base to solve cases faster, common
solutions from similar cases
 Search for articles (include Knowledge fields in search results) #GlobalSearch
 Attach a relevant article to a case, follow articles, suggested articles
Add the Articles related list to a Case page layout
 Send articles to customers as a link or articles can be embedded into the body of email
Attach article files to emails
Knowledge Record types: controls what is displayed in article from information/content (FAQ’s or
product info) and fields are included (in replacement of classic article types)
 default record type can be set for new articles
Knowledge Page Layouts: assigned to record types to specify the record fields

 Lookup relationship: allows linking the articles associated with Knowledge object with
objects such as leads and custom objects eg. make it easier for support agents to find the
article that is related to a product (custom object)
 Migration tool: moving all the content in Classic Knowledge base to Lightning Knowledge:
maps Classic article types to record types
 Articles rating: thumbs up/down (LE), with 1-5 starts (Classic)
Ratings are not static: every 15 days its average moves up or down  older or outdated
articles don’t maintain high or low ratings compared to new more frequently ones
(articles without recent vote: have average rating of 3 stars)

Article Lifecycle Management


Article Management tab: article managers can create new articles, edit, publish, archive articles
Article tab: find and view published articles

1. Article creation: manually or ‘Import Article’ (max 9999 articles): import existing articles
(from multiple record types) and translations into SF Knowledge
Create a .ZIP folder: .CSV file for each article + .properties file setting the article’s parameters

eg. solution from closed case


Selecting a record type – writing content – assigning categories – choosing channels

2. Reassign articles: article drafts reassigned to other contributors for proofreading


3. Publish articles:

Knowledge accessible:
• Visible in Case Feed: On the Case object, users can use Case Feed Articles tool to search
articles relevant to the case, attach articles to the case, send articles via email
• Visible in Internal App: shared internally as recommend solutions to open cases
• Visible in Public Knowledge Base site: as FAQs displayed on the website.
1) enable SF Knowledge 2) create a Help Center Community (template)
• Visible to Customer Community (enable SF Knowledge): provide customers with access to SF
Knowledge articles: view and rate articles but cannot create or edit articles
• Visible to Partner Community (enable SF Knowledge)

Agent submit an article for publishing: promote an answer for consideration, submit an article upon
closing a case, with ‘Manage Articles’ permission

4. Editing published articles: a draft is generated when editing a published article which can
then later be published as the latest version of the article
 Users can use the Chatter feed of the draft article for feedback, discussion
 Create an approval process for draft emails: Enable ‘Draft Emails’ (in Support
Settings) > create a send action: notify the approver when email draft needs to be
approved and allow the approver to approve an email in the case feed
5. Archive articles: archive multiple articles all at one using list views
 restore archived articles
6. Delete articles: NOT published articles, published article must be edited as a draft OR
archived before it can be deleted
 deleted drafts or single deleted translation can no longer be retrieved

Article availability
 Availability internally for search and can be attached to cases
 Available externally in communities or public website:
• Sending articles to a customer by email
• Share article URL in emails, social posts, chat, messaging

Category groups
= container for multiple data categories: organizing data categories based on type
up to 3 category groups
 within each group max of 5 hierarchy levels and a total of 100 categories

Data Categories
 can assign more than one data category to a Knowledge article
 Classify articles into groups, organize, filter: to make articles easier to find
 Control access to articles: Data Category visibility could be set for certain roles, profiles,
permissions sets
eg. Data category for Finance, and Finance articles can be assigned to this data category.
Data category visibility for Finance could be set for certain profiles (finance users)
Product: Desktop – laptop – server / Regions: US – EU – APAC / Companies: small-medium-large

Case fields (text and picklist) can mapped to data categories (‘Data Category Mapping’ ) mapping
makes suggested articles and Knowledge Component searches more relevant when solving cases

Work Orders
 Knowledge articles can be attached and detached from a Work Order or Work Order Line
Item  they can be viewed, but NOT updated in Mobile App
 The Knowledge One widget suggests articles that can be attached to Work Orders based on
key fields (selected in ‘Field Service Settings’)
 Work Orders can associated with Accounts, Cases, Contact, Contracts, Entitlements, assets,
and other work orders but NOT with Solutions

Case collaboration
Include tools that allow support agents to efficiently communicate internally and externally with
customers for faster resolution

Case Feed
Case feed = Chatter feed on Case record: users can comment and follow a case and where users can
collaborate to resolve a case
• Feed items: private (internal users) and public (internal and external users – all with access)
 user needs permissions enabled in profiles to make visible to customers
• Show quick actions and all case interactions (include chatter posts, emails, questions):
Case updates are organized into tabs (all updates, call logs, text posts)
 Status changes: Closed case: custom action that allows editing the status of the case
directly from feed (predefined value of ‘closed’)

Feedback survey automatically sent for an email if the case is closed


1. Enable survey (in Survey Settings)
2. Survey Builder: response data can be viewed in the Analyze tab
3.  create Case Auto-Response Rules to automatically emails if Case criteria are met

Case Comment
= communication tool (related list item) that stores external conversation between the support
agent and customer or just internal notes by the support agent
Difference with Case Feed: if you want to track comments of customers, not just internal comments

 Internal update (private): comments created for internal use and not displayed to customer
 External update (public to case’s contact): self-service portal, chatter answers
 email alert is sent to the case owner when a Contact adds a new comment
 Case Contact notified when support agent adds a new case comment:
enables ‘Case Comment notification to Contacts’
Customers have quick access to information as number:
Case Comment notifications or Auto-response rules

Case Emails
= sent and receive emails directly on the case record page (from the feed tab)
 Email actions: ‘reply’, ‘reply all’, ‘forward’ actions
 Custom features for efficiency: email templates, quick text, merge fields insert into emails
 Email draft approvals to managers to review it first

Deleted email can be retrieved from the Recycle Bin. However: delete case email – delete the case
you will not be able to retrieve the deleted email from the Recycle Bin.
Case Teams
Users can take on predefined roles and can collaborate on closing cases
(under Case Team related list on Case page layout)
 Roles need to be created first in Case Team Roles setup and level of access for each role:
private – read only – read/write
 Predefined case teams: users can quickly add people they frequently work with on cases
 Incorporate all communication in SF: include project managers and technicians so
they can comment directly on the case feed or reply to the customer themselves
 Create Case Teams for each product line, including product managers and
developers, so they can provide you with the correct answer to give the customer
eg. release of new features  assign the team using Case Assignment Rules

Sales & Marketing


Sales objects: Leads, Campaigns, Opportunities, Orders

Accounts & Contacts for Lightning Experience


Accounts are companies that you're doing business with, competitors, individual consumers eg.
services client, online shopper

Person Account = are similar to business accounts because they’re meant to record information
about an individual person, but don’t have their own contacts  Enabled Person Accounts
Person Accounts can’t have direct relationships with contacts: it is NOT possible to relate a Person
Account to a contact on a Business Account, but you can enable ‘Contacts to Multiple Accounts’ to
create indirect relationships between a Person Account and a contact

Eg. org works with individuals and track them in Community without linking them to an Account
 enable Person Account in Community and leave the Account field blank

Contacts are the people who work for them, people in account that matter to your business (eg.
decision makers, partners, influencers)

Business Accounts
 know their needs, buying history and know who is who at your customer company
Open the account record, you see the info collected on the company as
a list of records related: people who work there (contacts), deals in progress (opp), uploaded docu
Account Hierarchy: all columns aligned (By default: the columns displayed on the hierarchy are those
configured in the Recently Viewed Account list view)

The Account Teams: a team of users that work together on an account, everyone gets a team role
and has a level of access (to account – contacts – opportunities – cases) can be determined (depends
on sharing model)  admin must turn it on and set up the roles
• Can contain up to 5 people.
• You can also set up a default account team (in personal settings): the users that you normally
work with on your accounts.
• Custom list view: see account by the account teams in which you are a member.

Business Contacts
Contact record can have its own related lists of information, such as cases, meetings, logs of calls
Track your customer interactions Contact record > activity history: click on Log a call > details > save

News feature: Provides news articles or the most updated info about customers, partners,
competitors and industries.
News can be displayed on accounts, contacts, leads, and the Home Page in LE and Mobile App
 Enabled News feature and added to Account page layout
Social accounts: link Twitter with SF to give sales reps access to updates for accounts, contacts, and
leads at a glance  Enable ‘Social Customer Service and Social Accounts, Contacts and Leads’

 Know your company’s naming conventions for accounts: to make sense in a hierarchy or
help you differentiate between two stores with the same name in a similar geographic area.
 Always associate contacts with an account: Contacts without accounts—private contacts—
They’re hidden from all users except from owner of contact, admin, ‘View All’ to Contacts
which makes them easy to forget, hard to find, and useless to colleagues.
 Don’t let inactive accounts and contacts get lost in the shuffle: Organize an outreach
campaign to re-engage with them: they can be ripe for a new product, or it may be time to
exclude them from reports, and campaigns so you can focus on active customers.
 Maintain an active ownership: When an employee moves to a different position or leaves
your company, assign that person’s accounts and contacts to new owners.
 Keep your records updated: Use features like Social Accounts, Contacts, and Leads; Stay-in-
Touch requests; and Data.com to gather up-to-date information

Account and Contact Relationship


Each type of relationship offers a different view into your business:

1. Relationships between companies (accounts) and the people who work at them (contacts).
1 contact and multiple accounts: eg. A business owner might own more than one company, or a
consultant might work for multiple organizations or duplicate contact records against different
accounts

 By relating a contact to more than one account (enable ‘Contacts to Multiple Accounts’): you
can track relationships between people and the companies they work with
 Add the Related Accounts related list to Contact page layout – add the Related Contacts
related list on the Account page layout – and delete the existing Contact related list on the
Account page layout (because it will include direct and indirect contacts
 Specify direct and indirect accounts in the accounts related list on contacts page layout
eg. John, a Director at Acme, volunteers at CWC  this created a duplicate contact
Enable ‘CMA’ – ensure that Acme is recorded in account field on John’s contact record – add
John in related contacts list on CWC Account record

 Directly relationship: Primary Account found on contact page layout


Indirect relationship: Contact is found in related contact list on Account page layout
 View hierarchy: (eg. Multiple locations: Get Gloudy West, Get Gloudy Canada)
add a Parent Account to the account’s record  generate a family tree for your account.

2. Relationships between your customers (accounts) and other customers (other accounts).

The account hierarchy shows what companies Get Cloudy is affiliated with eg. Perhaps Get Cloudy
has a parent company that you’ve already done business with.

3. Relationships between customers (accounts) and coworkers who deal with them (other
Salesforce users): Account teams show which sales reps are working on the Get Cloudy deal.

Leads
= people, companies that may be interested in your products/services  that you’ve identified as
potential customers = Prospects
Not all companies use leads: work their entire pipeline as opportunities, segmenting deals into
unqualified and qualified groupings. But there are some big advantages to using leads:
 You can better track, report on, and target marketing campaigns to prospective customers
 Focus on the potential deals most likely to close.
 Qualification before it becomes an opportunity

Lead Process: steps/stages in lead life cycle mapped to a Lead record type
Lead (name, company, lead status: open as default)
Open – not contacted  Working – Contacted  Closed: unqualified or Closed: qualified/converted

Lead Workspace = record page

 Details tab: access to Lead fields: to find and update information about the lead
 Activity tab: to log your calls, emails composed and sent, creating Tasks or Events for future
 News tab: to check the latest news articles for the lead’s industry.
 Customer’s Twitter profile
 Chatter tab: collaborate, posts, polls  shows when you create activities.
 Lead Sales Path: Key fields and Guidance defined
 Notes and attachments:
 In LE ‘Notes’ related list you can share a note with users or groups
 only ‘Viewer’ access
 recipients can be prevented from sharing or unsharing the note
 If the lead is involved in any marketing campaigns, they are listed in the Campaign History

Lead Queues = place to store Leads before they have an owner (setup > users > queues)
 Is accessed via List View (automatically generated when the queue is created)
 Once records are placed in a queue manually or through an automatic case assignment rule,
records remain there until they're assigned to a user or taken by one of the queue members.
 Users with access to queue can click on ‘Accept’ button to take ownership of a Lead
 Cases, Leads, Custom objects that have queue, accounts don’t have a queue
‘Find Duplicates’ button: users can detect when a duplicate exists for Lead record
 Merge Up to 3 leads to master lead record

Lead Actions = quick actions to add new or update existing Lead records directly form list view
• Change owner of multiple Leads eg. from user to another user or queue
• Change lead status eg. from Open to Contacted
• Add multiple leads to campaigns

Delete Lead from Campaign: the Lead record moves to recycle bin. Activities, attachments,
associated notes are deleted along with the lead  restore the lead, then all are restored as well

Converting the Lead


Sales flow

1. add leads manual with status ‘New’ and changes owner to Anneleen.
If the account exists: Go to the account and choose add new lead in the related list
2. Anneleen is now in charge and changes the status to ‘Working’ once you editing the lead:
 He calls the lead to enrich data and to make sure the lead is qualified (points)
 He schedules an appointment
3. There are 4 options going forward:
 The lead doesn’t have enough points to be qualified -> ‘Unqualified’
 The lead has enough points but indicated he isn’t interested yet -> ‘Nurturing’
 The lead has enough points but isn’t an appointment scheduled yet -> ‘Qualified’
 The lead has enough points and an appointment scheduled -> ‘Sales Acceptatie’
Conversion should be done before the appointment and is only possible when the
status is equal to ‘Sales Acceptatie’!

The owner of records created can be selected right before lead conversion

After verifying that the lead is qualified: a lead indicates that you believe that the lead has a use for
and interest in buying your products, and that a sale to the lead is a definite possibility
Once you converted the lead  becomes read only

Qualified Lead record  Convert

Lead record > convert > Opportunity:


create new/existing > converted status

a) Convert the lead record into an opportunity: work your opportunity until you close the deal
either by completing it or canceling it
Transferred values: Close Date (automatically set to last day in current fiscal quarter) and
Stage (automatically set to first stage in list)
 In Lead settings: select ‘Hide opportunity section of Convert Lead Window’
or ‘Don’t create an opportunity upon conversion’ checkbox, but check the box on every
conversion what they probably will forget so not best answer
b) Create a Contact from the Lead
c) Contact is associated with an existing or new Account. If the Duplicates Rules are active, SF
checks if any existing accounts share the same names as the Company name specified on the
lead  fields from the lead will be automatically mapped to contact record
Account and Contact is created if one with the same name is not found or update existing
Account or Contact
d) If your org has person accounts enabled and the lead record didn’t include a company name,
the lead is converted into a person account and an opportunity.

Lead scoring: identify leads as “hot” or “cold” based on their purchase history

Leads map fields


Transfer all info except unmapped Custom Fields

 The data within standard lead fields is automatically transferred to fields on contact,
account, opportunity eg. The opportunity name is generated automatically because the
Company field in lead record is mapped to Opportunity Name field
eg. If a lead, with a single marketing campaign is converted, the campaign info will map to
the newly created contact and opportunity record automatically
 In order for data within custom lead fields to transfer: admin must map the Custom Lead
fields to a single or one source custom field on contact, account, or opportunity object.
Can't delete a field that's included in Lead Custom Field Mapping  remove its mapping first
Change data type of any custom field for lead conversion  the mapping will be deleted

Custom field on Lead record to a standard field on opportunity object:


Cannot map custom lead fields to standard fields on objects, but can map to other custom field and
then use workflow field update: to update the standard field on opportunity records from the
mapped custom field
1. object manager > lead > field & relationships > map lead fields
2. create a workflow using Flow Builder > workflow action: field update
OR create a flow using Flow Builder

Assigning leads
 Owner = can be automatically assigned when a lead is created: who is responsible for follow-
up of the lead  manually change ownership of leads
 Creator of the lead eg. Web-to-lead: admin who set up the process
 Lead Assignment rules: automatically assign leads to different queues or users based on
criteria (location, industry, type of products), and can be evaluated upon creating and editing
a Lead eg. sales reps grouped by different regions, can handle any lead within their region
assignment rules to assign leads to queues based on region
• Only one rule can be active at one time but multiple rule entries:
Eg. Leads coming from website are assigned a lead queue, that Leads for recent trade
show are assigned to Matt and all other leads are assigned to Phill
• Select ‘Assign using active assignment rules’  or it’s assigned to record creator
• Record meets multiple assignment rule criteria: SF processes the rules according to
the rule order and stops when record meets the criteria/match is found
 Lead Auto-Response rules: send an email to a person that submitted a Lead from a Web to a
Lead form  different auto-response emails based on Lead attributes
• Only one rule can be active at one time, there can be multiple rule entries with
different criteria eg. different emails based on product of interest
• SF processes the rules in order and stop processing at the first matching entry, then
emails are sent using the email template. If no response rules apply, the rules uses
the default template you specify on the Web-to-Case/Lead Settings page
• Create workflow rule with email alert to tell Sales Manager about the new lead

Lead Sources: where the lead comes from:


 Lead Import: importing a file up to 50,000 leads via Data Import Wizard
 Cold Calls (phone), Conferences
 Referrals by your other happy customers or partner companies
 Web-to-Lead: save lead detail from company website to a SF organization
• Generate HTML code that can be added to website
• reCAPTCHA verification: data entered in web form is validated before is sent to SF
• Standard and custom fields which need to be captured online can be selected
• Map lead fields: Custom lead fields map to custom fields in Account, Opp, Contacts
• Lead saved from Web-to-Lead will trigger Assignment and Auto-Response rules
If a Lead doesn’t match lead assignment rule criteria or assignment rule is not
activated: assigned to default Lead creator (specified)
• Limited to 500 leads/day
 Automatically add leads to SF from LinkedIn:
o LinkedIn Lead Gen: a LinkedIn account needs to be connected to SF to generate leads
(setup > ‘LinkedIn Account’s)
o LinkedIn Ad Account: LinkedIn account is connected with one or more ad accounts
Prospects fill out form on LinkedIn ad, the data is converted directly to new leads
o Lead Gen field mapping: (enable Web-to-Lead):
instead of using a custom HTML form  map the LinkedIn fields to Lead fields
• Each LinkedIn form can have up to 3 optional questions (mapped to custom fields)
• Up to 500 leads can be added from LinkedIn/day
Campaigns
Tract of performance of all your marketing activities (ads, email, seminars, conference).
By tracking leads and contacts targeted by each marketing initiative, as well as their responses, you
can tailor each campaign to the type of marketing effort it represents

 Campaign execution takes place outside of SF: SF has the list email and mass email limit of
5000/day  Use third-party email app from the AppExchange to send more mass emails and
track responses back in SF
 Opportunity can have only 1 campaign
 Marketers use campaigns to analyze how many leads they’re generating, how much pipeline
(= how much business you expect to close) and how many deals

1. Select the Marketing User in user’s record page: create, edit, delete campaigns
2. Campaigns tab > new > name > type: ads, email, webinar > status > budgeted cost and
expected revenue > save
OR ‘Clone with Related’: existing campaign with its associated records

Campaign Path: manage lifecycle of campaigns by track the progress of campaign


Lighting App Builder: add Path component to Campaign page layout
 Campaign Path can be customized by record type and picklist field

For each type of campaign, create Campaign Member Status to report response rate of campaigns
after campaign has executed, the Member Status is updated for each member with the response
Defaults States Values: Sent and Responded
eg. Email campaigns statutes: Sent, Responded, Purchased, Not Purchased
 Status/Responses can be updated manually by editing Campaign Members related list or
from the Lead or Contact Campaign History related list or using ‘Manage Members’ button
 Status that use online form registrations can be tracked by using Web-to-Lead
 Status can be updated with Campaign Member Import Wizard or Data Loader: update a large
number of campaign members statuses
 Mass updating status from Campaign Members related list: select members > update status
 Add up to 50 entries, one entry should be the default value
 Use the same set of statuses for all campaigns of the same campaign type:
reuse member status values, clone a campaign with the values already setup
 Add new, replace, update status values: add Campaign Member Status related list to
Campaign page layout

Campaign Members

 Add Members (Lead, Contacts, Personal Account) to Campaign:


eg. when lead/contact register for the event to have more visibility on their participation:
associate a lead/contact with a Campaign and workflow alert lead/contact owner
 Campaign Members related list on Campaign record
 ‘Add campaign’ button on Lead or Contact list view
 On Lead/ Contact record page: Campaign History related list
 From Lead Report: ‘add to campaign’  Campaign with Lead will be visible
on Lead History Report and Campaign History Report
 Using Import Wizard or Data Loader
In LE ‘Manage Campaign Members’ and ‘Import Leads and Contacts’ will navigate to
Import Wizard  add or update Campaign Members on campaign detail page
 Actions on Campaign Member object:
• Change a lead to a contact
• Relate a business account to a campaign record
• Create Validation Rule related to campaign member record
 when you delete a Contact, it’s associated Campaign Member record is deleted as well

Campaign List Email: send an email to all the members of a campaign


In LE: sends individual email to each recipient in a list
In Campaign Member related list > send list email: all members / select members > send list email
or Lead/Contact list view filtered by campaign
 Save as a Draft: Users can save their in-progress List Email as a draft
 Customized list email: merge fields eg. (Recipient.Name)
 Email to some of campaign members: Campaign Member related list Detailed View:
selecting specific members as recipients (not select in Campaign Member related list)

Campaign hierarchy: linking related campaigns, grouped by specific marketing initiative+


(up to 5 levels) and unlimited number of sibling campaigns, but 1 parent campaign
 ‘View Campaign Hierarchy’ button
The hierarchy can have as many levels as she wants, but three levels works well:
 The top level: represent an overall strategic focus, such as selling a new product or building
brand awareness.
 The second level: different aspects of that focus, like product launch, customer feedback
 The third level: represent individual marketing efforts (online ads, email, demo)

To make hierarchy = a campaign a child of another campaign:


For a new product launch, campaigns have been set up to track responses from web, ads, direct
marketing activities. Track overall number and value of opportunities generated from product launch
 create campaign hierarchy linking the campaigns: campaign statistics view on parent campaign

Campaign Influence 1.0: multiple campaigns that have influenced opportunities


 An active campaign must first be related to a contact that is assigned a contact role on the
opportunity in order for it to be automatically associated
 Campaign Influence, Contact Roles related lists should be added to Opportunity page layouts
 Add Multiple campaigns to opportunity but only one primary campaign source.
Values from primary are used for Campaign Statistics

Customizable Campaign Influence: attribute/distribute revenue automatically to all campaigns


related to opportunity  enable Campaign Influence
 Campaign Influence records can be added manually or use Process Builder to create a
process that will automatically
 Campaign Influence related list added to opportunity page layout and ‘Influenced
opportunities’ added to campaign page layout
 Primary campaign source model is standard model, but Custom influence models can also be
selected as primary model

Campaign Statistics: analyze a campaign by summarize the totals


Opportunity value from Primary Campaign Source will be added to campaign statistics
Campaign ROI:
((Total revenue of Won Opportunities – Campaign actual cost)/ Campaign actual cost)* 100= %

Analyze with Built-in campaign reports (available in the Sales & Marketing Reports folder)
= easily see who the campaigns are targeting, who has responded to each campaign, and how much
revenue they’re generating.
Reports tab > New Report > Report type: Campaigns but Campaigns report folder has several reports
 Campaigns with Contacts/Leads reports: see who the campaigns have targeted
 Campaigns with Campaign Members: shows how many campaign members—including any
combination of Leads, Contacts that you added—have responded
 Campaign with Opportunities: shows all the opportunities generated by campaigns
Opportunities
= track potential, revenue-generating sales deals
Expected revenue = opportunity amount x probability

Stage = track how deal progresses through the sales cycle


prospecting  proposal/price quote  negotiation/review  closed: won/lost
 Each stage is mapped to a probability of winning the deal (%), forecast category, forecast type

Sales process = define a custom series of sales stages, assigned to a record type
If no Opportunity record type defined, you can select all sales stages picklist values
 SF supports selling different products, product lines with different processes

Opportunities tab > New > Name > select account where it is related to > Type > Select a close date
> Select the current stage: Needs Analysis > save
Clone opportunity along with related opportunity products: ‘Clone with Related’

Opportunity/Selling team: a temporary group composed of people who can help you close a deal
• Opportunity owner, above the owner in role hierarchy, admin can add Opportunity Team
• The role and access to opportunity for each member is defined on each opportunity
>< LE: opportunity owner gives access and a role to member
• Default Opportunity team, including access and roles, can be setup for each user by users
(Personal Settings) or admin can add it with one click from Opportunity team related list in
LE, Classic and in SF Mobile App
• Members with read or read/write access to opportunities cannot share those records
• Partner users can be included in teams using LE or App
(not required to have access to opportunity or account)

Account team: simplify access for sales team to an account


• Members can be expected to form a long-term relationship with a customer and can be given
read/write access to an account and related records
• Default Account team and members can be directly added from Account Team related list
• Partner users can included in account teams
a) enable Account as Partner b) enable Contact as Partner User

Contact roles on Opportunities


Contact roles = how each contact is related to the opportunity. It is contacts from account that is
related with opportunity but also link contacts from other accounts to opportunity eg. decision
maker from Get Cloudy is planning to talk to her Canadian colleague Lars (influencer) about your
product (Canada is another account)  Primary Contact role: main point of contact
Add Contact Role related list add to Opportunity page layout

Opportunity Splits
Opportunity owner or above in role hierarchy add opportunity splits to give opportunity team
members incentive to complete a deal  enable Opportunity Team before using opportunity splits
Setup > Opportunity splits settings > customize > select opportunity page layout > save: start splits
enablement > email notification to confirm the activation

 Revenue split are for crediting team members who are directly responsible for the revenue
on an opportunity. Revenue splits always total 100% of the opportunity amount. As the
opportunity owner, you get 100% of the revenue by default (eg. Revenue split of 100% for
owner and overlay split of 50% for solution engineer)
 Overlay split gives you a way to credit supporting team members based on the amount field.
It can total any percentage of the opportunity amount, higher or lower (eg. 101%: At Cloud
Kicks, designers with the most business impact receive an end-of-year bonus)
 Custom split eg. Profit (up to 6 custom splits) on any currency field (roll-up summary, not
formula) configured to be required to total 100% or not.

Forecasting
= to predict sales revenue and quantities based on opportunities stages
Customizable forecasting: clients do have to enabled ‘Customizable forecasting’ before they can ask
SF to activate Territory Management (follow steps in Deploying TM Guide to prepare your org for it)
Collaborative forecasting (now default)
 forecast managers in a role-based forecasts hierarchy can share their forecasts page with any SF
user using ‘Share’ button: ‘View only’ and ‘View and Edit’ access

5 Forecast Categories: mapped from the opportunity stages


 Pipeline includes amounts from all open opportunities
 Best Case includes amounts you are likely to close, closed/won opportunity amounts, and
amounts in the Commit category.
 Commit includes amounts you are confident about closing and closed/won opportunity
amounts.
 Omitted means the amount does NOT contribute to your forecast.
 On duplicated opportunities eg. pipeline report is not accurate due to multiple
opportunities for the same end customer
 Closed includes amounts for closed/won opportunities.
 Forecasts (also Pipeline reports) may be overridden

Forecast Types:
 Opportunity revenue/quantity: Opportunity revenue allows forecasts to be based on
‘Amount’ and ‘Close Date’
 Opportunity r/q by Territory: based on individual users assigned to the territory
 Opportunity r/q by Date Range
 Product family revenue/quantity: see forecast summaries for each product family
 Opportunity splits: forecast split percentages and split amounts
 Overlay splits

Product date and schedule date are only available for forecast types in LE
 if a date isn’t available for a product, SF uses the opportunity’s Close Date and Amount fields
Forecast measurements and data type need to be used if the forecast amounts should be calculated
based on each opportunity product’s total price and date fields? Revenue and Product date

Scenario: launch a new line for products, the sales process needs to be different from existing sales
process of older product line as there will be additional sales stages added.
 create new sales processes and record type dedicated to product line
 create new opportunity stage values
 create new path to display the stages on the record page
For opportunities value at over 100k, additional stage (picklist value) of financial background and
manager approval are needed, but opportunities under 100K, do not need these steps
 Set up 2 different record types based on opportunity Stage value
 Assign each record type a different Sales process with appropriate stages
Opportunity Tools
Path = to display their lifecycle and visually guide users along stages in a sales process for any
standard (lead, opp, quotes, orders, contracts) or custom object. Path can be based on any existing
picklist field on the object. Even with actions needing to be taken outside of Salesforce
 The path is available for LE and SF Mobile App

Create a new picklist – create a new path (App Builder) – add Path Component to object page layout

 Unique for each stage: Key Fields (up to 5 key fields): the most important record data
Guidance: space for tip, instructions, links, company info that will help users succeed
 Each record type can have its own path
 Use the Path to update the record’s status by clicking Mark Status as Complete or click on
Status and Mark Current Status to move the record to the next step on the path.
 Path is not displayed for sales reps on opportunity record page:
 With Lightning Builder modify the existing opportunity record page and remove the
Path component
 Create a new opportunity record page without Path component, activated and
assigned only to sales rep (not see it)

1. Setup > user interface > path settings > choose the standard object > choose the record
type > choose any picklist for the object
2. The currently selected Stage (Picklist value): fields will be shown for that Stage > guidance
for users in each Stage

Kanban = created in LE to have a visual summary of opportunities for a sales path in a List View, filter
group by (status) and summarize by (the sum of all opportunities for that stage)
 It displays the total of each Stage
 Only can show opportunities for a single record type
 Displays a max of 200 cards and each card will display a max of 4 fields
 Ability to quickly update: opportunities can be dragged and dropped between Stages
 Down arrow on a Kanban card > select Edit
Warning symbol: If an opportunity doesn’t have any upcoming tasks or events, the Kanban
let you know that you might need to set an activity so your deal doesn’t stall out
 You can create an activity without navigating away from this view.
 View chart: Pipeline by Account (quickly see which account you’ve done the most business
with) or Pipeline by Stage (to discover in a glance which stages your deals are in)
 Filters: (eg. Account name contains United Oil: shows a couple records: deals you’ve done
with the United Oil account or find deals created after a certain date)

Opportunities tab > All Opportunities > display as: select Kanban > select Kanban Settings >
summarize by: expected revenue > group by: type (existing or new customers)

Sales Console app = custom app allows working on multiple records simultaneously using multiple
tabs in one dashboard interface
• Tabs/sub-tabs: managing multiple records on a single screen  subtab: selecting the type of
records
• Highlights Panel: up to 7 key fields from record by configuring the object’s compact layout
• Interaction Log: take notes in interaction log while in call
 Utility bar: productivity tools such as Macros, History, Omni-Channel, Notes
 reduces time spent clicking and scrolling to quickly find and update records
 History component shows the list of previously accessed records
 Macros: automation repetitive tasks  Macro Builder to create macros in LE
 Macros are supported on Standard and Custom objects that allow
quick actions and customizable page layout
 Support quick text, email template/attachments, update opportunity
 Bulk Macros: actions on multiple records and run records on 1 object list
view at a time, not possible to run macros on list views

Lightning Dialer: access telephony features without ever leaving Salesforce


Features of some add-on products from AppExchange or developer can create it with App Cloud
• Voice mails messages for different types of prospects (store up to 20)
• Local Presence displays phone numbers with same area code as the prospects
• Call Bridge: make/receive calls with their desk or mobile phone to use another business line
• Auto-log: call details automatically added to Activity Timeline
• Telephone numbers can be added from list views and record detail pages
• Users can call by clicking on phone number fields (numbers on contacts, leads, list views)
• Multi-tasking: perform multiple tasks while on a call
• Call monitoring: by sales managers by silently listening to interactions for later coaching
• Call recording: refer back to calls to improve selling techniques

Opportunity workspace: in LE provides a view of all info related to an opportunity


 Activity Tab: allows emails to be sent while viewing the opportunity
 Details Tab: update opportunity fields: Amount, Expected Revenue, Close Date
 Chatter Tab
 View the Sales Path: Key Fields and Guidance
 Related info: products, notes, contact roles
 If the Activity Timeline view is enabled, Open Activities and Activity History related lists are
not be visible

Insights on Opportunities: users can see all the latest news from their opportunities (updated news
articles and posts)  available in LE and Salesforce1: added to related Opportunity record

Big Deal Alerts: opportunity notifications can be sent periodically or based on triggers: when an
Opportunity reaches a threshold value/higher than a trigger probability and trigger amount
eg. team will be notified for any deals valued at over 1 million or opportunities with a high dollar
value reach 80% probability
 Only 1 Big Deal Alert at a time eg. not: reach 60% probability and also at 80% probability
 Will be send again if the probability drops below the trigger and reaches it again, but will not
send again if trigger probability goes higher eg. opportunity reaches the threshold with 80%
probability will not trigger additional alert if the probability goes higher at 85%
 Email from Big Deal Alert based opportunity page layout, language, currency settings of user

Update Reminders
 Users with direct reports are automatically added in the Update Reminder Setup
(if not enabled: can choose which users can schedule opportunity update reminders)
eg. all users with direct reports will be sent a nightly report about open opportunities
 Email reminder: include a message, subject, and opportunity fields and customized
frequency eg. Periodic email summary of pipeline of direct reports
 Role hierarchy: expected that manager will receive an update reminder indicating open
opportunities owned by agent who needs to directly report to him

Competitors: Offers a variety of products that are comparable to product from other companies
 each deal can have these listed with competitors strengths and weaknesses
Add Competitors on the Opportunity page layout
eg. very import for your business line to track who may win a deal if you don’t

Products, Quotes & Contracts


Products
Products = individual services that you sell to customers, can be added to Opportunity, Quote, Order
or Contract but the standard use of Products is as line items on Opportunity
 Created from Products homepage or cloned from existing product
 User must have read and create object permissions on products

Product Schedules determine the payment and delivery cycles for a product.
o Default schedules on a product – automatically when add product to opportunity
o Quantity Schedule—if your customers pay all at once but receive the product in increments
—for example an annual magazine subscription for a monthly-issued magazine.
o Revenue Schedule—if your customers make regular payments but receive the product all at
once—for example, if you sell customized products that are charged in installments but
delivered at one time.
o Revenue and Quantity Schedule—Suitable if your customers receive their order on a
delivery schedule and also pay for the products using a payment schedule—for example, a
monthly product subscription that’s paid for on a monthly basis.

Price Books
Pricebook = a list of products and their associated prices (entries) to track products
Created from related lists of the Price book record or Product record

 The standard price book is a master list of all products and their one default standard price.
An organization has only one standard price book.
 when a standard price is added, a product can also be added to a custom price book with
a list price
 A custom price book is a specialized list of products that can have custom list prices (higher or
lower price) where prices vary for different type of customers. Custom price books are ideal
for offering products at different prices to different market segments.
Eg. each product is sold at a different price in each country  a custom price book for each
country and custom list prices for each product

Considerations
 Products can only be added from a single Price Book
 Changing a selected Price Book will delete all existing products from the opportunity
 A single product can have multiple list prices in different currencies: before adding them to
custom price books, must define first a standard price for different currencies of a product

Multiple prices for the same product


1. From App Launcher > Price Books > New > select active* > save
2. related > Add Product: select one product > list price: instead standard price, discounted
price > select active*
*price book = active: link a product to opportunity or quote
product = active: the reps want to sell the product right away

Link a Product to Opportunity = Opportunity Line Items


From the Products related list on the opportunity > Add Product > choose price book > add the
product > quantity to 1 and choose sales price > save
 prompt users to add a product to an opportunity (in Opportunity Settings)
 Product and Price book need to be active
 standard price of product and price book in the currency of the opportunity

Quotes
Quotes is a record showing your customers prices of the products and services
 Sync a quote with the opportunity: you create a quote from an opportunity, the products
are automatically added to quote: Its line items appear as the opportunity’s products
To update the products if any changes been made to the quote or visa versa
 Only 1 quote can be the ‘syncing’ quote
 not sync custom opportunity fields with custom quote fields
 Each opportunity can have multiple quotes: that show different combinations of products,
discounts, and quantities eg. customer is asking for pricing options, for lower/higher quality
 approval process for Quote object with entry criteria based on discount percentage that
requires approval

1. Setup > quote > settings > select enable > selects the page layout on which the quotes
related list to appear > save
2. From opportunity: new quote > status: needs the review
 select quote: product from opportunity appears as a line item
3. After he and his customer agree on a specific quote > sync the quote with opportunity
4. Create a quote template: Setup > quote template > new > name: No tax > save
Totals section > removes the Tax field > Activate the template
5. Generate PDF Output for Quotes: select quote > create PDF > select template
PDF will be displayed under Quote related list and will be attached as a PDF files
Orders and contracts
Orders = agreement with a customer to provide products/services at certain quantity, price and date
Status values: draft – activated  enable orders, reduction orders, negative quantities
 Created from Account, Contracts (fields), from Order tab
 Related to an Opportunity and Quote with lookups
 Order object under Account: track the purchases
 Orders can be associated with contract to track the fulfillment of contract agreement
contract must be activated before the order is activated
 Add products in Orders, a Pricebook must be selected

Reduction orders used for cancellations, returns, reductions


 create a reduction order: add one order product with original quantity
 only be applied to 1 order but an order can have multiple reduction orders applied
Contract = document the contracts, terms, agreements associated with order, account, opportunity
 Use workflow alerts to remind them about contract renewals.

Set up Contracts to appear on Opportunity Details


Use field-level security and field accessibility—not page layouts
1. Setup > object manager > opportunity > field & relationships > contract
set field-level security: visible to contract manager, standard user, system admin
View field accessibility > field contract > for one of the profiles that you want contracts
available for: click hidden > under page layout: select visible  profiles are marked Editable

Create Contracts and Relate Them to Opportunities


1. App launcher > contracts > new > save  automatically appears on the Contracts related list
on the Account.
2. Relate contract to an Opportunity: Opportunity > details tab > select contract from a list
that is specific to the account > save

Salesforce CRM Content


= content management system and build upon the simple filed storage available in Documents
Purpose: publishing files to share internally and externally
 Content can be uploaded in various formats (Google Docs, Excel, PDF, PPT, HTML, RTF, XLS)
 Content can be tagged for searching
 Versions management: track of when file is replaced with an updated version
 Subscribe to the content to receive updates when the file is changed
 Custom fields add to Content object to store metadata
 SF CRM Content is Classic Only feature, but libraries and files can be in Lightning

Content Delivery
= In SF Classic: converts CRM content into a web-based version that can be accessed via URL and
shared with external parties max of 2000 times and daily limit of 50,000 views
It can be tracked to see how often the file has been previewed or downloaded
Enable ‘Create Content Deliveries’ permission is required: only creator can modify content delivery

 Add Content Deliveries related list to page layouts for leads, contacts, and custom objects
 Optionally password can be required to access the page
 Only available in SF Classic, but Lightning Email offers a similar feature by creating delivery-
based links for big file attachments (enable SF Files and Content Deliveries Permissions)
• Combined size of all file attachments exceed the limit of 3MB, the actual fields are
not attached, instead a link to each file is attached to the email
• Don’t expire automatically, but can be manually expire

Benefits of Content Delivery over file as attachments:


 Content will always be the most recent version if there are multiple files
 Downloading files can be restricted
 Downloads and view can be tracked
 Availability period of the file can be controlled

File management
SF CRM Content can include all file types
 Collaborating with coworkers by posting files to feeds and directly to records
 Sharing files with customers in the secure Salesforce cloud (not in Lightning)
 Syncing files between your local drive and Salesforce (not in Lightning)

File types accessed from the Files tab


 Files attached to a Chatter group post/ Chatter profile post
 Files in Content Workspaces
 Files uploaded to the Documents tab/ Solutions tab

Files are automatically added to the file list when:


 You upload a file to SF Content (Up to 2GB)
 You upload a file to a Content library.
 You attaches a file to a Chatter feed or comment.
 Shares a file privately with you using the Sharing dialog box (not in Lightning)
 Create a content pack or uploads a Web link in SF CRM Content (only if you have access to)
 You sync a file in your Salesforce Files Sync folder (not in Lightning)

Content Libraries
Rather than keep files in folders that make content difficult to find, Salesforce CRM Content stores
files in fully searchable libraries to organize CRM Content
Create Libraries or ‘Manage SF CRM Content’ permission
o Personal Library: save a file, Web link, content pack, Google doc
o Shared Library: access to individual user or public group  Create: manage SF CRM Content

Libraries in Lightning Experience


• Folders and subfolders automatically structure and easily locate libraries from Files Home
 If the library has more than 5000 files the folders cannot be enabled
 Folders can be deleted in libraries by library managers
• Only empty libraries can be deleted
• Users or public groups can be included as library members

Permissions
Not option to add members to library without assigning permissions to them
 Salesforce CRM Content user: access to Content
 Library member:
• Viewer: view content only
• Author: view and update content
• Library Administrator: view, update content and access controls to library
(A library creator has Library admin permissions)
 In Classic: ‘Content Permissions’
 In LE: ‘Set file access to Set by Record for files attached to records’
access of file can be determined by sharing settings of the record

Set up Salesforce CRM Content in your org:


1. Setup > SF CRM Content > enable SF CRM Content
2. Assign feature licenses to users: select SF CRM Content User
3. Enable SF CRM Content user permission: (manage CRM Content, create Libraries, manage
Content permissions, manage record types and layouts for files)
4. Create a library: New Library > add members > assign library permissions to members
5. Categorize and define your content: create content fields** (default: description, tags, title)
> create a custom page layout or modify default > assign them to page layouts

Activity Management
o Related to records of standard object (accounts, contacts, cases) = records of interactions
Link an activity to a custom object > check “Allow Activities” checkbox for that object
eg. ‘Project’ custom object and would like to track Project Tasks
o Can be standalone/independent (Personal task or event)
 Found as tab on Home Page, calendar view or activity related list on record

Activity object access


• Private: only owner of activity, users above in role hierarchy can edit and delete activity.
Users have read access to the record that is related to activity can view and report
• Controlled by Parent: user can perform an action (view, edit, transfer, delete) on activity
based on whether he can perform that same action on the records associated with activity

Activity tab access options


 Access to activities (Activity Timeline, Tasks tabs, Calendar)
 Look for AppExchange app that adds an Activity tab
 Ask a developer to create a new tab to display Activities

Considerations: task and events


 Assigned to other users
 Whold field: relating to Lead or Contact
 WhatId field: relating to Account, Opp, Campaign, Case, other objects
 Can be set for Recurrence: a frequency and last occurrence can be set
 Customize with custom fields, record types, page layouts
 Copy: click on ‘Create Follup-Up tasks’

SF Classic Lightning Experience


No activities tab Tasks can be created in: Task Tab (List View),
record pages, ‘Global Actions’ menu
Activities are created/viewed only from the Open Activities and Activity History related lists
related record of standard/custom objects are replaced with the Activities Timeline

Enable ‘Roll-up of activities to Contacts’ Primary Account’: tasks or events of a Contact can also be
displayed on primary account of Contact and in the activity feed of the related Account record

Roll-out for Chatter: can be restricted by profile: enable ‘Profile-based Rollout for Chatter’
eg. government agency would like to use Chatter but plan to test it in one department initially
> disable Chatter access for any custom profiles that should not have access to Chatter (standard
profiles cannot be disabled)

Task
= to-do items with optional due data: in the future (to be completed) or in the past (completed)
 Activity History: if task is completed
Tasks are moved from “Open Activities”  “Activity History” when the task status is “Closed”
 Viewed on Task List View (on the Task tab): today’s, recently completed, open, overdue tasks
 Task fields can be edited directly on the list view
 Filters:
• Owner field: select ‘My Team Tasks’ or ‘All tasks’
• ‘Closed’ field equals false (= open tasks) or true (= closed tasks)
 Overdue task = displayed with the date in red on the home page and reminder
displays the next time the user logs into SF
 In LE, there are 3 views available: Table, Kanban (drag and drop status of task), Split (list of
tasks next to the detail on one task)
 Group task: (up to 200 users): assigned to multiple users, group (roles in Classic)
Enabled by default in the LE
• Individual task: each user get a copy of task with their name in ‘assigned to’
• Total task: total number of tasks to be created is displayed
 Task can be assigned to a ‘new’ Queue (Task object can be assigned to this queue):
 reducing the workload on individual sales reps by distributing the tasks among the team
 Prevent a task from being deleted by users: create a trigger on task to prevent deletion

Events
= appointments/scheduled calendar event that has a start and end date/time and usually a location.
You can invite people for events (eg. meetings, conference calls)
 Private event: user who created the event and users with ‘View all’ and ‘Modify all’ can view
 Follow-up Event: to follow up on existing task: key info is copied from original task
(different than follow up task: a location can be specified eg. task to call a contact and follow
up on the task by meeting with the contact at a location)
 Activity History: when the start time of the event has passed
 Viewed from calendar for events
 ‘All-day event’ checkbox to avoid office hours discrepancies of sales reps across multiple
time zone

Repeating event eg weekly projects, team meeting


 Repeat checkbox can be added to event page layout
 Lightning experience: Event series: Calendar tab > new event > select ‘Repeat’ > add the
‘Repeat’ checkbox to event page layout > duration: set end date OR total number of events
 SF Classic: Recurring events: not possible if start-end > 24 hours and not be modified in LE
 Mobile App: Event series: click on the repeat flag

Shared Activity
= (up to 50) contacts are related to a one event or task eg. recording attendees of a meeting
> Enable ‘Allow users to relate multiple contacts’ > new task > put multiple contacts in the Name field

 Primary Contact: first name displayed in the Name field and can be used in search filters

Calendar
= visual form of tracking events  add calendar for standard and custom objects
 customize calendar by applying a list view

• Personal calendars can be shared with users  OWD access:


 Hide details: others can see whether the user is available at given times, but cannot
see any other info about the nature of events in calendar
 Hide details and add events (default): hide details + users can insert events in other
user’s calendars
 Show details: users can see detailed info about events in other user’s calendar
 Show details and add events: show details + users can insert events
 Full access: show details and add events + edit existing events in user’s calendar
• Public calendars: manage group activities and can be shared with public groups, roles, and
users (default: no sharing). Everyone who share the public calendar can view, schedule,
update events without switching to Classic
• Resource calendars: schedule the use of shared resources eg. conference room, equipment
Resources can be added as an attendee while creating an event
 Attendees field (users, contacts, leads, person accounts, resources) can be added to event
page layout  Lightning Sync is required to send invitations and receive their responses
 LE: every calendar has limit of 150 items

Cloud Scheduler:
 Enabled by default for all organizations
 Automatic propose meeting times based on calendars or user propose meeting times
 Admins can add or remove the ‘New Meeting Request’ button on multiple page layouts
You can automatically see the New Meeting Request button on all contact, lead, person
account detail pages
Send email invitations to customers for meetings: add company logo to meeting requests in SF

Activity Timeline
= displays two lists of activities: the Upcoming & Overdue (future events, upcoming tasks)
and past activities related to objects
View task related to contact record: in Activity Timeline of contact record or of account record
related the contact or view in ‘My Task’ list of user assigned to task
 Activity composer: above timeline allows tasks and meetings to be added easily and will
appear in the upcoming/overdue section
 Filter Criteria: data range, ‘all’, ‘my’, activity types (email, task, event, logged calls)
 Enable ‘Einstein Activity Capture’: Activity Timeline is required
 Archived activities: SF automatically archive activities if due date > 1 year (events, closed
tasks) and closed tasks without due date that were created > 1 year
 Once archived, activities are included in data export files and users can view these.
 SF doesn’t delete archived activities, but users can manually delete them

Activity Settings (must be enabled)


 Group task
 Shared activities
 Recurring activities (Classic)
 Activity Reminders as notification cards (personal settings)
 Multi-Day Events (events that are more than 24 hours duration)
Chatter
= Salesforce collaboration app on sales opportunities, service cases, campaigns
 Chatter desktop is NOT available for the Free Edition

1. Enable Chatter
2. Chatter app is added to Force.com app menu
3. Chatter tab is added to all standard apps
4. Accounts, Contacts, Cases, Leads and Opportunities are enabled for Chatter
5. Objects available when creating a custom report type for Chatter reports:
Users, User Feed, Comments, Chatter Group, Members

Chatter feed: a sort list of activities related to a record, group or user


 Chatter Feed tracking: notification of the record updates (up to 20 fields per object)
posted as updates in the ‘What I Follow’

 Posts = updates or comments made on record or within a group


for internal or even external customers to see
 Bookmarked posts = found quickly in the bookmark feed in left sidebar
without access can comment on a post and have conversion in thread
 Post a private message to another Chatter user: ‘Send a message’ on receiver’s
profile or ‘Messages’ on Chatter tab
 Polls to conduct a survey
 Linking a record: (/record name)
 Pinning a post: to the top of the feed to increase visibility of critical info
 Mute a post: removes posts from Chatter feed and Home page feed but not from a
groups, profile or record feed (using dropdown menu or by replying to post emails
with the word ‘mute’)  posts can be automatically unmuted if the user is
mentioned on the muted post
 Share a post: with a user’s profile or group, but not to social media channels
 Chatter Follow: (automatically) follow records or users  notifications if there are changes
 New features on Chatter tab: Like, @Mention, Live updates
 Chatter publisher actions: actions that are available from the chatter feed: quick actions, log
calls, new task, standard actions (post, poll, file, link) and custom actions (Visualforce or
Canvas apps)  include actions in publisher layout
• Question action: ask or answer a question and answer can be marked as best answer
(one answer, can be changed, copy of answer appears on top with a check mark)
available in Chatter feed, in groups, in records
 automatically added in global publisher layout
 Promote engagement: increase visibility of Question action in publisher
layout
 moderators can escalate an unresolved question to a case directly using
Question-to-Case (enable in support settings)
• Feed item action: perform quick action direct from a feed item eg. create a task from
a post (add quick action to ‘Feed Item Layout’)
 Files (up to 2GB): automatically added to Notes & Attachments related list
eg. Share PPT file in Chatter post by tagging sales team to get feedback
 File permissions for people/groups can be set to ‘Viewer’, ‘Collaborator’ or ‘Admin’
File permissions for files shared can set to ‘Viewer’, ‘Collaborator’ or ‘No Access’
 changed by file owners and collaborators
 File can be shared privately with specific people
 Files home can be accessed to share a file
 Files Connect: to access external files from external data sources (Google Drive,
SharePoint) and shared external files through the Chatter feed
 Restrict user from selecting files from SF ‘Select Files from SF’ user profile
permissions
 Freeze sharing files: prevent file from being shared with additional users, but files
can be shared by the owner and admin (with ‘Collaborator’ file permission)

Chatter post access: determined by record or group access


eg. files attached to a post follow the same visibility rules as the post itself
 Admins can edit any post
 Permissions: ‘Edit my own posts’ and ‘Edit posts on records I own’ but the ability for users
to edit their own feed posts is enabled by default
 Record owners cannot always edit posts on record they own: depends on permission setting
 Don’t have access; can comment on post, conversation organized in thread

Chatter editions/licenses
 Salesforce User License – Lightning platform: include access to Chatter
• SF features: R&D, Knowledge, app, roles, sharing
• Allows users in Partner or Customer communities to access Chatter
• Access to standard Chatter people, profiles, groups, files
 Chatter Free: access to Chatter only for ‘internal employees’
• Access to Chatter feeds, files, people, groups, member profiles:
make posts, view comments, upload files, join groups
• Tabs cannot be seen, no access to SF objects or data
• 1 standard SF license = 5000 Chatter Free licenses
• Upgrades to a standard Salesforce or Chatter Only at any time but not visa versa
 Chatter External: access to Chatter for external users: group owner and admin invite
customers outside org’s email domain into private/unlisted Chatter groups
• Access info and interact with users only in groups they are invited to
• No access to SF objects or data
• 1 standard SF license = 500 Chatter External licenses
 Chatter Only/Plus: access to some SF objects in addition to Chatter (cost: not longer be
purchased, but with existing license can add licenses)
• Access Chatter features: people, profiles, groups, files, limited functionality
• Access to some SF data: Accounts and Contacts, R&D, use workflows, use calendar,
modify up to 10 CO, add records to a group, SF CRM Content, Ideas, and Answers

When Chatter is enabled for searching: Global Search: personalized search that returns search
results based on object utilized most, products, apps, records, folders
When Chatter is disabled for searching: Sidebar Search: Custom objects and reports

Post to a Group
The main collaboration space in Chatter where people share information, post updates
 Public groups: are visible and open to all employees. Anyone in the company can join a
public group, make posts and comments, and add files.
 Private groups: only open to group members. Users ask for permission to join to an owner
Non-members can see the group’s picture and description, but not the group feed or files
 Unlisted groups: users must be invitation (by owner or manager) and more secure and offer
more privacy compared to private groups: don’t show up in list views and search results
Only members may be able to delete group feed content
 ‘Manage Unlisted Group’ permission: nonmember have access or modify unlisted
groups, its files, feed content
 Groups with customers: Enable ‘Allow Customers’: Groups with customers are private or
unlisted groups that allow external users (like customers) to be members.
 Broadcast group: are public/private/unlisted. Used to make announcements; only owner and
manager can create as post, but group members can respond to it.

Enable ‘Allow Records in Groups’: discuss as a team a record with a group of other users
 Records cannot be added to groups that allow customers

Topics
use a Chatter post hashtag (#) or Topic Lightning component (enter tab)
Topics are not fully supported in Lightning: topics enabled in objects by switch to Classic
if you click on the #link in the post you see all related posts
• Topics help users organize posts or records by common themes  used as filter criteria to
increase their visibility
• Topics are great for discussing issues and themes
• You can add them at the time of posting or after.
• Also add topics to objects: crowdsource your company's themes and issues and can cross
objects: connections across people, conversations, and records.

Post to
o Profile: share work-related info with everyone, don’t receive email notifications
o Co-workers’ profile: direct a question to coworker and gain insight from followers: receive an
email notification
o Chatter group: to ask questions, request feedback, share topical updates
 broadest and most relevant audience
o Salesforce record (account, opportunity): update info, share a file, @mention colleague for
support on chatter feed (! Person must have permissions to access the object)
 on record’s feed and on Chatter feed of anyone who follows the record
 @mention a group on record feed: a ‘group-record relationship’ record is created
and the record displays in Group Records related list in the group
The group name that is mentioned becomes a link to the group page (only users with
sharing access to the record can view record)

Chatter Notifications
 Standard notification  can be muted by deselecting delivery channels
 Custom notification: to include a personalized message eg post is liked by another user
Delivery to channels (mobile, desktop) and apps (SF Chatter, SF for iOS) need to be enabled
for the notification type: ‘Individual mentions on a post’
Chatter email notifications: setup > feature settings > chatter > email settings > enable
or ‘My Settings’
 ‘Allow Emails’ to turn on Chatter email notifications for all users.
 ‘Allow Email Replies’ to allow users to reply to email notifications about messages
 ‘Allow Posts via Email’ to allow users to post to groups using email.
 ‘Allow Attachments via Email’ to allow users to include attachments in posts in email

Chatter Settings
 Chatter settings: chatter in new org, profile-based chatter, invitation to customer
 Approval settings: receive approval requests as posts
 General settings: allow emoticons, topics, group archiving (if no activity for 90 days), link
previews
 Enable ‘Out of Office (OOO)’: scheduled and message: the status will appear on the
Chatter’s profile right away, will not wait for start date (only available in LE)
 Enable ‘draft a post’: to avoid losing long Chatter posts
 Enable ‘Rich text posts’: includes bolder, italic, bullet, numbered lists and allows the
insertion of a hyperlink or image (on posts, questions, attachments NOT on polls)
 formatting posts with rich text is Chatter setting which can be enabled/disabled

Summary of numbers
How long does the link in activation email to new users remain valid? 7 days (1/7/180 days)
How long is data stored in Recycle Bin before permanently removed? 15 days
SF sends an email link to retrieve zipped CSV files, expires after 48hours
How many fields per object can you track up? 20 fields
How many fields displayed on related list? 10 fields
How many roles can you create for your org? 500 roles
How many profiles can load in single list view (with Enhanced Profile UI enabled): 200 profiles
Mass Transfer records: up to 250 records
Multiple users: up to 10 multiple users ( Data Loader if you have 200 multiple users)
15 digit Record ID in UI (= User Interface)
18 digit Record ID in API (= application programming interface)/Data Loader
up to 25 external ID’s on object
Field History tracking: (up to 20 fields) up to 18 months for org and 24 moths via API
 Field tracking cannot occur on fields with more than 255 characters
Valid range for Time trigger: 0-999 days or hours
up to 10 Time Triggers per workflow rule (with up to 40 workflow actions per time trigger)
What is the maximum size of email attachments to support? Under 25 MB is fine
Size limit for documents uploaded: 5MB
Files in Chatter: up to 2GB
File uploaded to SF CRM Content: up to 2GB
Group task: up to 200 users
Master-detail relationship: up to 10,000 child records
Maximum number of Lookup relationship on a Custom Object is: 25
Maximum number of Master-Detail relationship on a Custom Object is : 2
How many Roll-up summary fields: 10 (Calculating roll-up summary field values up to 30min)
Limit of size of formula: 4000 characters
Daily limit of workflow email alert: 1000 emails per license and 2 million emails org-wide
 limit is reached: emails in workflow queue  discarded day the after
Max components on dashboard? 20 components
Recycle Bin Storage limit: 25 x org storage (MB)
How many permissions sets can admin create in SF org? 1000
Max number of values in one picklist: 1.000, multi-picklist: 500, controlling field: 300
Kanban displays a max of 200 cards and each card will display a max of 4 fields
Joined record format: at most 5 blocks: each block up to 2000 records = 10,000 records
Lightning table: (up to 200 records and 10 columns) from any field available in report type
Custom Summary formula: calculate additional total based on numeric fields: up to 5 per report
How many ranges can be defined in the case of a Conditional Highlighting? Up to 3 ranges
Login History: up to 20,000 login records for the past 6 months
Self-reset: click on forget password link max of 5 times in 1 day
LE: every calendar has limit of 150 items
Mass Edit for Lists permission – updating up to 200 records

Article versions: up to 30 shown in LE


Knowledge Sidebar (enabled): articles updated in last 30 days appear automatically
‘Import Article’: max 9999 articles (existing articles and translations)
Category group: up to 3 category groups
 within each group max of 5 hierarchy levels and a total of 100 categories
The report is emailed (report subscription) within 30 min of preferred start time
You can create 25 workflow rules per entity
Account Team can contain up to 5 people.

Subfolders can go up to 3 levels (only user created folder)


Summary: up to 3 levels of grouping
Matrix: up to 2 levels of summarization
Cross-object filter applied on child object: up to 3 child objects and up to 5 Subfilters to further filter
by field on child object

You might also like