Professional Documents
Culture Documents
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)
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
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)
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
• 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
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.
Every profile must have at least 1 visible app, except profiles associated with Customer Portal users
because apps are not available for them
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
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
• 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
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
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
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: 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
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)
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
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 > 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
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
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
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.
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
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)
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.
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
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.
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)
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
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
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
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
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
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
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
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)
Display dashboard on Home tab or Lightning app: Edit page > add the dashboard component
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:
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
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
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)
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
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
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)
• 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
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
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
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)
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:
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
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.
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
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
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)
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
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
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
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
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)
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)
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
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
User sharing: allows you to show/hide an internal or external user from another user in org
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’
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)
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.
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
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
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
Connectors (2) define the path that the flow takes at run time. They
tell the flow which element to execute next.
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: 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)
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
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
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.
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.
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
*The Jump Start Wizard helps you create a simple approval process by making decisions for you.
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
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)
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.
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.
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)
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)
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
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
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
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’)’
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
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
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)
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
Examples
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
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
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.
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
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
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
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
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.
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.
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.
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
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)
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.
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
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
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.
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
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
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
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
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-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) 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 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
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.
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
** 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
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
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)
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
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)
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
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’)
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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 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