Sales Cloud Salesforce Summary Certificate
Sales Cloud Salesforce Summary Certificate
Sales Cloud Salesforce Summary Certificate
Sales process
Steps
1. Create the 0pportunity stages needed in the sales process
Opportunity stages > In Opportunity Stages Picklist Values section: click New > enter
name for stage – probability successfully sale eg. 1/5 deals = 20%
2. Name Sales Process:
Setup > Sales processes > new > first new process: Master process > Name > select
stages
3. Optionally, create an (Opportunity page layout) specific to the process.
eg. include a field “Custom Embroidery” on the page layout for the sales process for
small, custom shoe orders but not on the page layout for standard retail orders.
4. Create Record type: how you link a particular page layout and sales process to a type
of product, determine which types of opportunities pass through which sales process
Setup > Record types > New >
• select a sales process
• select profiles can access sales process
• apply page layout to Opportunity layout: apply one layout to all profiles or
different layout for each profile
• picklist fields can be set in Record Type page (except StageName need to be set In
Sales Process page)
Opportunity
Opportunities tab > new > select a record type > name
select Account that the opportunity related to
select Close Date for the opportunity
select Stage that the opportunity is currently in (SF add probability based on stage,
but admin can change it)
Contact Roles: how each contact is related to the opportunity. You can also link contacts
from other accounts to the opportunity using contact roles
= identify key stakeholders from buy side
Eg. You recently completed a deal with Get Cloudy, and you hear from Leung Chan, a
decision maker she is planning to talk to her Canadian colleague Lars about your product
give Lars a role in the opportunity, even though he’s a contact on a different account
Opportunity > In Contact Roles related list > add > select a Contact or Person Account >
choose a role > Optionally: select primary contact
Contacts from Account are automatically prepopulated on Opportunity
Products/Line Items: Opportunity RL: Products > Add > choose product > quantity – price
Opportunity Amount field updated automatically based on price/quantity of products
Campaign Influence: Opp can be influenced by one or more Campaigns (RL on Opp)
Easier to track campaigns that effectively produce opportunities for business
Every opp can have a primary campaign sources as well as other influential
campaigns that can be associated automatically or manually
Additional campaign can be associated to opp by adding a contact with contact role
on the opp to Campaign Members RL
Process Builder > Workflow: create a record, submit for approval, launch a flow
Work across objects that are related (workflow focus on 1 object)
eg. billing address on account is changed, the mailing address of all related contacts should
be updated to reflect the new address process on Accounts
If opp (object) is created or updated (trigger) and it’s high-value and closed won (criteria),
then create a draft contract (immediate action).
Six days after opp closes (schedule), create a follow–up task for owner (scheduled action)
Process definition:
1. Select process type:
• Record change: a record is created or edited (most common)
• Invokable by another process infinite loops
• 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
Flow
Which lets you build flows (= application that automates a business process by collecting
data and doing something in Salesforce org or an external system)
Setup > flows > New > screen flow > freeform
When a user clicks something, like a button, link, custom tab
Process start
Apex class called
Get Template: built flows eg. create orders from
Opportunity/Quote
Connectors (2) define the path that the flow takes at run time.
They tell the flow which element to execute next.
Resources (3) are containers that represent a given value, such as field values or formulas.
You can reference resources throughout your flow. Eg. look up an account’s ID, store that ID
in a variable, and later reference that ID to update the account.
Flow elements
o Screen: interact with users: Display data to your users or collect info from them.
You can add simple fields to screens, like input fields, radio buttons, file upload
o Logic: Control the flow. Create branches, update data, loop over sets of data, or wait
for a particular time
o Actions: Flows can delete records and create/edit unrelated records
They can also create Chatter posts, submit records for approval, send emails
o Integrations: Connect flow to an external database by using core actions or Apex
actions. Core actions let you make requests without going through Salesforce server.
Flow Builder also has a couple of tie-ins to platform events
Building blocks
Elements tab: add elements to flow = behavior of flow, defining actions need to be
taken at each step eg screen, create records, get records, Apex action
Manager tab: create new resources = containers for holding data values –
like user input, field values, formula, they can referenced throughout the flow
eg. look up account’s ID, store ID in a variable, reference ID to update the account
Start element: marks the beginning of a flow – added automatically
Error handling: eg. update record element can fail can be linked with core action that
sends an email using fault connector
Elements:
Interaction
Screen: to collect info from users who run the flow or display data to users
Add to screens: input fields (Text, picklist), Radio buttons, File upload, Email
Deployed internally to users through custom link, custom button, or web tab
Embedded in Visualforce page
Quick action can invoke a flow
need more out of your screen flow, like custom navigation or info displayed in
table format, install custom Lightning components
Prebuilt/reusable screen flows for repetitive processes:
‘Create a Case’ flow: walks agents through the case creation process
‘Reset Password’ flow: walks agents through customer password reset
‘Verify Identify’ flow: helps agents resolve cases of missing credentials
Action: perform actions outside of flow (quick actions, local actions, Apex actions)
Post to Chatter, Send Emails, invoke Apex codes, lookup
Sub-flow: allows another auto-launched or screen flow to be launched
Access a screen flow that is already built in another flow instead of recreating it
Logic: Control the flow
Assignment: store user input in variables (collection, global, record)
before Decision assign field value based on customer’s answers
Decision: perform an if-then statement by evaluating conditions and routing users
based on outcomes of conditions
eg. automatically sends email alert when a contact record is created
Pause: pause flow based on conditions and resume it when time occurs or platform
event message is received
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
Loop: iterating over items in collection variable and temporarily storing each item in
loop variable Looping through child records to calculate the total number of records
Data
Create Records: record using record variable or multiple record collection variable
creating multiple account records based on user input
Update Records
Get Records: find records that meet filter conditions and store values from records in
variables find a particular product based a field value, check if customer exists in SF
Delete Records
Flow Limitations
Only one version of flow can be active at a time
A flow does not offer to send an outbound message
Functions such as VLOOKUP are not supported in a flow formula
Flow Builder cannot open flows installed from managed packages, unless templates
Data and time values can differ for a user who runs a flow since they reflect time
settings of the admin who configured the flow
Use Cases for Flow
• Send email to all contacts whose age is over 60
• Send reminder emails for expiring contract one after a week
• Transfer all accounts of one user to another
• Capture and categorize leads based on incoming inquiry calls
• When a record changes, update a field: when a case is updated, automatically update an
unrelated ‘Log’ record
• Display a survey to gather customer feedback
• Automatically submit an opportunity for approval based on opportunity amount
• Create complex quotes for a sales org
• Create a Guided UI/Wizard or troubleshooting wizard (for issues) to collect info
• Support process streamlined to a standard call script and standardize for all call center agent
Options to run a flow
• Screen flow: guides users through a business process that’s launched from quick
actions, Lightning pages, communities
• Schedule-triggered flow to run (one time only, daily, weekly)
Scheduled flow, a set of records based on criteria (failed audit status) to send email
• Autolaunched flow (NO TRIGGER): launches when invoked by Apex, processes, REST
API runs in background
• Platform event-triggered flow: launches when a platform event messages is received
• Record-triggered flow: launches when a record is created or updated
Faster than process in Process Builder: avoids an extra save procedure on record,
skipping execution of assignment rules, workflow rules
Trigger the flow when:
- A record is created
- A record is updated
- A record is created or updated
- A record is deleted
Run the flow:
• Before the record is saved: if all you need is to update the record that
launches the flow and quickly build a high-performance flow
(offers 4 flow element: Assignment, Decision, Loop and Get Records)
• After the record is saved: build a richer flow that can access any (other
object’s) record and perform actions (access most flow elements)
eg. when agent updates a case record, a record of unrelated object
should be created
Eg. two record-triggered flows: one flow run after contact is created; one flow
run before contact is deleted
When to execute outcome:
o if condition requirements are met
o only if the record that triggered the flow to run is updated to meet the
condition requirements
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
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 flow to a permission set > assign to users
Approvals
Not included in Lightning Flow but Lightning Flow does support automation of approval
= 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
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.
Approval process
1. Click on ‘Submit for Approval’ button on the record
2. Entry criteria: if the record meets the criteria (error messages if it doesn’t)
eg. discount rates of up to 40% (require Manager’s approval) and discount rates
more than 40% (require CEO’s approval)
3. Initial Submission action eg. lock the record, sent outbound message to another
application, update a field on the record
4. Assign approver: submitter choose manually, automatically using a user field (such as
Manager field)
Approver’s delegate (= appointed user with approver permissions: approve and
reject, NOT reassign) select option on user detail page or in ‘My Settings’
Parallel approval routing: send requests to multiple approvers in single step
approver setting can be set to Unanimous (all approvers needs to approved)
or First Response (only one approver)
The approver = queue: approval request emails are sent to queue email
if queue members need to be notified: queue send email to members
5. Approval actions: Actions can be set for approval/rejection:
• Task
• Email alert: send emails to sales reps once opportunity is approved
• Field update: ‘Approved by Manager’ and ‘Approved Date’ fields
• Outbound message
6. Final Actions: record is unlocked (rejected or recalled) or stay locked (approved)
Considerations
When a record is submitted for approval, it is locked for changes (except from the
admin and approver) until the record has completed the approval process
Approval Audit History related list: track where record is in an approval process
include name of approver and approval date
When the approval process is edited: Last Modified By, Audit trial, History Record
on Approval page layout
Delete approval process: make sure it is inactive
(but always can delete pending approval request)
Create an approval process
1. Setup > Approval Processes > Manage Approval Processes for Object: Opportunity
2. Create New Approval Process | Use Jump Start Wizard:
helps you create a simple approval process by making decisions for you.
3. Configure the approval process: name (Approve Opportunity Discount)
4. Approval Assignment Email Template (Approve Opportunity Discount),
5. Specify Entry Criteria (Opportunity: Discount Percent greater than 0.4)
6. Select Approver: submitter choose the approver manually
7. Approval Process Detail Page:
Under Approval Actions: Add New | Field Update > Configure with these values:
Name – Field to Update (Discount Percent Status) – A Specific value (Approved)
Under Rejection Actions: Add New | Field Update > configure it with these values:
Name – Field to Update (Discount Percent Status) – A Specific value (Not Approved)
8. Activate approval process
Two-step approval process:
discounts greater than 5% sent to RSM for approval
discounts greater than 15% sent to RVP for approval
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. 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, 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
Approval opportunities in timely manner:
Enable Approvals by Email for approval process for high-value opp
Approve/Reject request via Approval Requests tab
o Displays a max of 200 records and each card will display a max of 4 fields
o Only can show opportunities for a single record type
o Displays amounts in user’s currency
o Can summarize records (by currency fields)
Workspace
1. Path
2. Key fields: for working leads through this stage
3. Guidance for success: include best practices
4. Activity tab, Collaborate tab, Details tab (of Leads)
5. The composer helps to stay focus on the lead of the moment
(log calls, create tasks and events, send emails) without navigating away
6. Next steps >< Past Activity
7. Quickly access related info: Contacts, Products, Notes
Opportunity Teams
Account Team can be expected to form a long-term relationship with the customer
Opportunity Team is a temporary group of people who can help you close the deal
gives the team members special visibility into the opportunity, such as updates on Chatter
o Team members can be internal users or partner users
Setup > Opportunity Team Settings > Enable Team Selling > select which page layouts to
include opportunity teams > ‘Add to users’ customized related lists’
Add Members to Opportunity Team: OT related list >
User – Team Role – Opportunity access (cannot be less than org’s default opportunity
sharing access)
eg. OWD = Private for Account, what is the access of Opportunity Teams:
Opportunity’s Account will be implicitly Read for the team
Forecast
• Pipeline: view of a rep’s open opportunities, no matter what stage they’re in.
It includes the newest prospect to that opportunity with a pen in hand, ready to sign.
• Forecast is a subset of the pipeline and includes just those deals expected to close
Representation of Opportunity amounts, dates, stages determine how much revenue
Lead generation > Lead qualification > Revenue management (forecast)
Forecast Categories
cannot add new Forecast Category value, but you can rename them.
Pipeline: = open opportunities: Only a small number of the opportunities in this
category will close successfully within the current period
expect only a quarter of these deals to close
Best Case: deals are fully qualified, and opportunity has an embedded Close Plan
expect to win between a third and half of the deals
Commit: Close Plan is going well on these opportunities. Commit means you are
confident of a successful outcome, and only in exceptional circumstances do these
opportunities slip from the current period
expect to win 90% of the opportunities
Closed: Closed opportunities are won. No further sales effort is required to clinch the
deal or be sure of the sales revenue
Opportunity will automatically be added to the forecast
Omitted: when they are Lost or qualified out. However, for reporting purposes,
sometimes other opportunities, renewal deals
Opp amount is not included in forecast
Example: The first step is preliminary qualification in which opportunities should not
contribute to forecast:
First stage with omitted forecast category
Assign 0% probability to first sales stage
Enable forecast adjustments
Forecast users can adjust forecasts without affecting the amounts, close dates or forecast
categories of related opportunity records.
Enable adjustments, the setting applies to all forecast types,
for Product Family forecasts, adjustments must be made to product family totals
Enable Manager Adjustments: adjust forecast amounts of immediate subordinates
Enable Owner Adjustments: adjust forecast amounts on own forecasts
(Forecast managers cannot adjust the subtotals of the opportunities they own)
Enable adjustments for users: Setup > Profiles > select Override Forecasts checkbox
Customizable Forecasts
= rolls up multiple forecasting categories into a single category
Territory Management / Custom Fiscal Years
Product Schedule Forecasts
Submit Forecasts
Product Family Forecasts
Pipeline = all open opportunities (Pipeline + Best Case + Commit)
Best Case = Best Case + Commit + Closed Won
Commit = Commit + Closed Won
Closed Won = Closed Won
Closed Lost = Omitted (Not calculated / Not included in Forecast Figures)
Eg.
3500 opportunity in best case forecast category
2000 opportunity in Commit forecast category
1000 opportunity has been closed Won
1000 opportunity has been Closed Lost
Collaborative Forecasts
= Predict and plan the sales cycle from pipeline to closed sales
When org wants to forecast revenue and quantity based on Opportunity data
Opportunity Splits
Default Forecast Currency Setting
Product Family Forecasts
<>Consider Commit category to be all Opportunities that are almost closed plus those that
are closed (Customizable) or is it only those that are almost closed (Collaborative)
Forecast Quota: monthly or quarterly sales goal that's assigned to a user or territory
o If multiple Forecast Types are enabled, each Forecast Type maintains separate quota
o If using Collaborative Forecasting: quota can only be added via API.
If not, edit quota in Quotas related list in User page or personal settings page
o Use Data Loader for mass updates on Quotas: when updating quotas, set quota field
value on RevenueForecast or QuantityForecast objects
Forecast Quota > Forecast Period > Forecast Type > Assign to users >
o Role-based Forecasts
o Territory-based Forecasts eg. LA, US
Product Schedule
Opportunity Product > Enable Product Schedule >
Enable Quantity Schedule
o Enable for all products
Enable Revenue Schedule
o Enable for all products
Track orders using opportunities and forecast how much revenue generate each month
Track monthly revenue projections from the sales of its annual Subscription service
Default Schedules:
used when customer make payments or receive products based on same timetable
If default is added or changed, Opportunities with that Product are not updated
Lead status:
Benefits:
• better track, report on, and target marketing campaigns to prospective customers
• concentrate on the potential deals most likely to close.
• Qualification before it becomes an opportunity
Assignment rules
more efficient to assign leads to the right owners based on criteria, such as where the lead is
located, which industry they’re involved in, or the type of products they’re interested in
Lead Assignment rules > new > name > active > save
Rule entries: new > sort order > criteria are met (field – operator – value) > select user
Converting leads
Lead record > convert > Account Name: create new/existing > Record Owner >
Converted Status (Closed – Converted)
a) Convert the lead record into an Opportunity: work your opportunity until you close the
deal either by completing it or canceling it
i) Transferred values: Close Date (automatically set to last day in current fiscal
quarter) and Stage (automatically set to first stage in list)
ii) 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
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 Converted: links to Account, Contact and Opportunity creating 3 new records from
the lead record
Convert Lead:
Converted Status: closed-converted
Record owner
Account Name
(Opportunity Name)
Lead conversion considerations:
o If Person Account is enabled and the company field on Lead is empty, then a Person
Account and Opportunity are created when converting Lead.
o Data in standard Lead fields automatically mapped to Account, Contact, Opportunity
o Custom Lead fields mapped to custom fields on Account, Contact, Opportunity
o If fiscal year in Salesforce is Standard, Close Date for Opportunity is assigned to the
last day of current fiscal quarter
After Lead is converted:
o Campaign Members are moved to the new contact
o The most recent campaign it was a member of is saved in Primary Campaign Source
on Opportunity
o All open and closed Activities will be attached to converted Account, Contact and
Opportunity, but only open activities are assigned to the new owner
o Account, Contact, Opportunity will automatically be followed by Chatter post (only if
new record is created, the existing won't see the post)
Lead Conversion Settings:
o Require Validation for Converted Leads - Validation Rules, Workflow Actions, and
Apex Triggers can be enforced
o Preserve Lead Status - prevent lead status from being changed
o Enable Conversions for Salesforce Mobile
o Hide Opportunity Section of Convert Lead Window
o Select "Don't create an opportunity" by Default in Convert Lead Window
o Create a Task During Lead Conversion when Subject is Blank
Lead conversion ratio stayed the same for healthcare even though lead creation increased:
Create a report on lead lifetime by industry
Lead Process
Choose Lead Status: selected values > Default: displayed automatically when making a lead
Both marketing and sales departments can identify at which stage a lead can be
considered qualified: pass marketing leads to inside sales only if a lead reaches a
lead-score threshold.
Before passing on a lead, it is a best practice to make sure that the lead has a
defined need, necessary budget, purchasing authority, and appropriate
purchasing timeline
Mapping fields: Lead > F&R > click on Map Lead Fields button
Account/Contact/Opportunity tab > Lead fields mapping with Account fields
Eg. Capture info on a lead and display info on Account and Contact once the lead has been
converted: create a custom field on Lead and on Account and configure mapping of two
fields for conversion + custom formula on Contact to pull the value from Account
Campaigns
Track performance of all your marketing activities (ads, email, seminars, conference)
Campaign execution takes place outside of SF: SF has the list email and mass email
limit of 5000/day Use third-party email app fromAppExchange 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, how much pipeline (= how
much business you expect to close) and how many deals
Create a campaign
1. Select Marketing User in user’s page: create, edit, delete campaigns
2. Campaigns tab > New > name > Type: ads, email, webinar > Status > Budgeted Cost >
Expected Revenue > Active!
OR ‘Clone with Related’: existing campaign with its associated records
Campaign Related Lists:
• Campaign Hierarchy
• Attachments
• Opportunities
• Campaign Members
Campaign Path: manage lifecycle of campaigns by track the progress of campaign
Lighting App Builder: add Path component to Campaign record
Track different details for different kinds of marketing efforts: Use campaigns for an event as
well as for a marketing email Record Types:
eg. email campaign record type can include a field for the email template used, while her
demo event record type can have custom fields for things like location, timing, equipment
For each type of campaign, create Campaign Member Status to report response rate of
campaigns after campaign has executed, Member Status is updated for each member
eg. Email campaigns statutes: Sent, Responded, Purchased, Not Purchased
(Defaults Status Values: Sent and Responded)
Campaign Influence
Campaigns with Influenced Opportunities report: Campaigns that have Opportunities
Enabled in Campaign Influence Settings
• Enter a Campaign in Primary Campaign Source field on Opportunity record
100% revenue credit assigned to it, 0% to any other campaigns associated to opp
• Additional campaigns can be associated with Opportunity by adding a Contact with
Contact Role on Opportunity
o Contact must be prior to Opportunity Close Date
Auto-Association Setting
• automatically adds Campaigns to Opportunities when Contact Role on Opportunity is
also a member of the Campaign
• the contact is added to the opportunities within a certain number of days from when
the contact was added to the campaign
• Campaign Influence Time Frame: maximum number of days between a contact's
association with the campaign and opportunity's creation date
Once you set the days, campaign influence will be recalculated
• Auto-Association Rules: criteria for automatic association of campaigns to opp
Campaign Influence Model settings:
• Locked (default) model: only add/edit Campaign Influence records via workflows/API
• if you change default model to custom model: lose all standard default features, such
as auto-association, primary campaign source
• Record Preference: only be set on default model (custom model: All Records)
Records with > 0% Attribution: to create Campaign Influence records when
Opportunity revenue attribution is greater than 0%
Lead Scoring
Lead Scoring calculates a score on Lead based on certain criteria to determine lead quality
(based on lead activity, data quality, qualification level)
use formula to generate Lead score and display rating with IMAGE function
Rollout Strategy
Data Quantity
Einstein uses machine learning to identify patterns in massive historical amounts of data.
Einstein Readiness Assessor is a tool that tells you whether you meet the requirements for
specific Sales Cloud Einstein features based on analyzing SF implementation and send a
report detailing which Einstein features you’re ready to use now, and which ones require
more preparation.
• Kickoff meeting: give key stakeholders an overview of goals and plans for Einstein
• Training: Explain what each feature is for and how it works
• Chatter group: where early users can ask questions and provide feedback
• Regular meetings: Schedule regular meetings with the small group of initial users.
Open discussion about users’ experiences and expectations often yields more
detailed and useful information than written feedback.
• Dashboards and reports: before enabling features, R&D help measure success
Add fields
• Einstein Opportunity Scoring:
o Opportunity Score field (page layout and public list views)
• Einstein Lead Scoring:
o Einstein Lead Scoring component (page layouts)
o Lead Score field (public list views)
Want to limit inside sales reps to Lead Scoring and field sales reps to Opportunity Scoring.
Clone Sales Cloud Einstein permission set and modifies it to grant only Scoring permission
Admin
User management
New user
Setup > Login Access Policies > Enable ‘Admins can log in as Any User’
Areas to consider when creating a new user:
• Licensing: user license, feature license only active users use license
Each Users has 1 User license, but features licenses can be added: entitles a user to
access an additional feature not included with user license
• IF you deactivate user license, it’s available to reassigned to another
employee in the company, but NOT AUTOMATICALLY
• In DL: license will be assigned automatically based on Profile selected
• 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)
Username:
unique across all SF org globally (including Production org, Sandboxes, Trial org)
Production and Sandbox are on different server sets so same username can be used
must be in the format of 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.
Resetting passwords:
Self-reset: click on forget password link on 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 permissions sets (not modify permission sets)
• Assign users to public groups
• Reset passwords
• Manage 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
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
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
User authentication
Single sign-on: standardize authentication where you using single user credentials with an
external identity provider memorize one password (cannot reset) and consistent
password policies (managed by identity provider – not SF password policies that apply)
SAML: Security Assertion Markup Language
Delegated authentication: configured to use a stronger form of user authentication
such as integration with a secure identity provider and make the login page private
and accessible only behind a corporate firewall
Multi-factor authentication: increases an org’s security by a second level of authentication
for every user login next to usual username/password
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.
Salesforce Connect
= tool for integrating with any external data system. Enables you to view, search, and modify
data that’s stored outside SF org, inside in Salesforce
Heroku Connect
= tool that allows you to get data out of Salesforce. Offers trusted and scalable infrastructure
for powering custom apps in the languages developers love. It lets you establish a
bidirectional sync for selective data inside Salesforce, ultimately enabling your development
teams to quickly use Salesforce data in their custom apps.
Public Events
With Process Integration: employees don’t need to wander between systems.
Events are published automatically to a centralized event stream, then through a series of
intersystem communications and workflows, activity is automatically coordinated
Respond to events: Presentation integration:
view data from several different systems in one screen
Lightning Out = tool that allows you to embed Salesforce inside external systems. This
feature gives IT teams a small bit code that they can copy and paste into an external system
MyDomain
= Salesforce Identity feature lets you create a subdomain for Salesforce org
having your own URL to the SF org
Highlight/customize the brand of the company
Helps in better management of login and authentication
Required for single sign-on (SSO) with external identity providers
Developing custom Lightning components
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
Assign each user one user license, based on role: determines functionality user can access
Assign multiple permission set licenses to augment functionality provided by user license
Data.com Clean
Helps to clean and enrich current data in SF
Requires every SF user in org have a license Data.com User
change limit of records (default: 300)
Each org has at least one edition, which provides all functionality needed to activate the org
and includes at least one platform license, contain one or more user licenses (or no user
licenses). Org may have more than one edition, but all editions must be for the same level:
• Essentials: designed for small businesses to get started with a CRM system quickly.
Includes intuitive walkthroughs, setup assistant, easy-to-use UI, administration tools
• Professional: designed for businesses requiring full-featured CRM functionality.
Includes straightforward and easy-to-use customization, integration, and
administration tools to facilitate any small to midsize deployment
• Enterprise: meets needs of large and complex businesses. It gives you advanced
customization and administration tools, in addition to all functionality in Professional
Includes access to APIs, so you can easily integrate with back-office systems
• Unlimited: extends it across entire enterprise through Lightning Platform.
It gives you new levels of platform flexibility for managing and sharing all info on
demand. Includes all Enterprise functionality, Premier Support, full mobile access,
unlimited custom apps, increased storage limits
• Developer: Provides access to Lightning Platform and APIs. Let developers extend SF,
integrate with other applications, and develop new tools and applications.
Data Security
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
If users are logged in when their login hours end (3.45 pm with login hours until 4.00 pm),
user can continue viewing the page, but user is logged out upon navigation to a new page or
data update operation (create, edit, save, delete)
Users will be logged out after a certain period of inactivity according to the session timeout
(rang from 15min to 24hours – session settings in profile (login hours) or at the
organizational level)
Identity Confirmation
= security layer in addition to username and password, based on browser cookies
Invoked if a user logs in from an unrecognized browser or logging in from outside a trusted
IP range
don’t need identity confirmation: browser cookie exist and IP address is known
Verification methods (highest priority)
1. SF Authenticator Mobile App: SF sends push notification to mobile device, app can be
opened to verify the activity details.
eg. user left phone at home for multi-factor authentication admin generate a temporary
verification code that can be used in place of code that they will get from mobile app
2. U2F Security Key: SF prompt the user to insert the security key into their USB port
3. One-time password generator
4. SMS: only to verified mobile number (SF account owner can verify their own mobile number
or admin can use number in format on user’s detail page)
5. Email: verification code in email to address associated with account
Users can add their own identity confirmation methods for which they receive email
notifications. If the user did not add it, they need to contact the admin
Email confirmation is sent to user if a new identity verification method is added
Login Forensics
NO USER INTERFACE Setup > Event Manager > Login event > enable Storage
A way to identify suspicious login activity
Who logged in more than the average number of times
Who logged in during non-business hours
Average number of logins per user per specified time period
Logged in using suspicious IP ranges
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
Standard profiles
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
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
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 want 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 where in the ‘create
and customize reports’ permission should be removed
• 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 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
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 ‘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
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 (object setting and field permissions) conflict with
record-level permissions (sharing rules, manuel sharing) 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.
Set org-wide sharing defaults
Defines the default level of access users have to records they do not own in each object.
OWD are used to restrict access to records
OWD setting doesn’t override user permissions
Setup > 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
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
Controls data visibility (view records his subordinate does not own but can view,
view/edit/delete/transfer his records and subordinates records, extend sharing on
both his and subordinates records, not view all folders that subordinate have access
to: reports, documents, email templates
Controls record roll up – forecasting and reporting
Role hierarchies don't have to match company hierarchy Every user has one role
The role hierarchy allow additional record access when object OWD is set to more
restrictive than Public Read/Write (Private/Public Read-Only)
Role hierarchy access does not override object access determined by profiles because
record and object permissions the most restrictive wins
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 > roles > set up roles > click Expand All > click Add Role with
highest up in hierarchy like CEO > Label, Name
2. Assign users to role: Next to role click Assign
Account Teams: might be utilized for sharing and reporting
Set up account teams to give sales reps, engineers, customer support reps access to the
opportunities and cases related to accounts that they are working on
1. Enable Accounts Teams > select Account Layout checkbox >
select Add to users’ customized related lists checkbox
2. Add Team Roles: Teams Roles > New > sales reps, engineers, … on separate lines
3. Personal Settings > Advanced User Details > Default Account Team related list
Team Member – Account Access – Opp Access – Case Access – Team Role
Account > Account Team RL: Add Default Team
Sharing rules
= automate exceptions to OWD to grant additional record access to users on an object-by-
object basis at the same level based on their role, territory, public groups, membership or
manager groups
Irrelevant for public data access models
Not change the specified groups or roles for sharing rules
Parameters admin must specify when creating a sharing rule:
Share which records? Owned by certain users and meeting certain criteria
not to folders and list views
With which users? Public groups, roles, roles & subordinates
What kind of access? Either Read-Only or Read/Write access
Setup > Sharing Settings > Manage sharing settings for: object > Object Sharing Rules: New
• Rule Type: Based on Criteria
Criteria: (Won equals true)
• Share with: Roles
• Access level: Read/Write
Example: records of custom object shared with 4/9 sales managers. Only records have the
‘Pending’ value on the ‘Status’ field should be shared (OWD = private):
create a sharing rule for the custom object to share records with ‘Pending’ status with public
group, contains sales managers
Manuel sharing
= enable/prevent users from sharing their own user records with others ACROSS the org
NOT AUTOMATED
• To record owners, roles above owner in hierarchy, admins, any user with 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: Account 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)
Profile (object permissions: read/edit): edit records + OWD (private):
the most restrictive permissions is OWD: as long as you are not the account owner, you
cannot read or edit an account
Eg. OWD = private for all objects. Bill is owner of accounts and needs to collaborate with
Samir and manually shares read-write access to Flair account with him. Chockie is child
account of Flair account and who is below Bill in role hierarchy
Samir had no access to Chockie account
Transfer Account: new user will own the associated Contact, open Opportunities,
Contracts in Draft and in Approval Process status, Orders in Draft status, Notes,
Attachments, and open Activities created by original record owner
When changing owner in Salesforce Lightning, you can do the following:
o transfer Open Opportunities owned by others
o transfer Account Owner's Closed Opportunities
o keep Account Team
o keep Opportunity Team with transferred Opportunities
o send notification email
Person Accounts
Prerequisites met before enable Person Accounts:
User profiles with read access to Accounts also have read access to Contacts
OWD for Contacts = Controlled by Parent (cannot be changed)
At least one record type has been created for Accounts
Knows
Once person accounts are enabled in org, they cannot be disabled
Person Account Record Type will be created automatically
Uses more storage space than business account
Person Account cannot:
Person Account does not support account hierarchies (do not support Reports
To and Parent Account field)
Person Account cannot have direct relationships with other accounts or contacts
Contacts without Accounts: private and only the owner and admin can view them
can't associate a private contact with an account
Territory Management
Gives reps access to accounts based on criteria such as postal code, industry, revenue
Setup > Enable Territory Management
Territory Settings
Default Access Levels:
• Account Access level: view/edit, view/edit/transfer/delete accounts assigned to the
territory
• Opportunity Access level: cannot access, view, view/edit all opportunities associated
with accounts in territory, regardless of who owns the opportunities
• Case Access Level: cannot access, view, view/edit all cases associated with accounts
in territory, regardless of who owns the cases
Opportunity Territory Assignment:
eg. sales teams base their opp on assignments to specific ZIP codes
• Opportunity Access for Parent Territories: Users in a parent territory can:
View or View/Edit all opportunities associated with territory's child territory,
regardless of who owns the opportunities
• Assignment Filter:
1. Territory Settings > Enable filter-based opportunity territory assignment –
fill in Apex Class
a. Run filter-based opportunity territory assignment job when
opportunities are created
2. Territory Hiearchy > click on Run Opportunity filter >
a. Include all opportunities
b. Include only opportunities (Last Modified Date/Close Date)
c. field 'Exclude from the territory assignment filter logic'
Account Territory Assignment:
To avoid performance issues during account inserts, turn assignment rules off
select ‘Run territory assignment rules during account inserts’
Territory basics
Territory: organize groups of accounts and sales reps who work with accounts
o Territories exist only on Account, Opportunity and children of A/O
o Assigned Territories related list on Account
Territory Type: only used for logically classifying territories; group territories
according to a common denominator/characteristics such as core reps versus
overlay, or named accounts versus geographic territories
Territory Type > New: Label – Priority: 100 (room to add priorities above and below)
Territory type priority: choose the appropriate territory type for territories you
create or edit. You create your own priority scheme
eg. Your highest territory type priority might be 500, next might be 400, then 300
Territory Model: represents a complete territory management system for company
connects your territories, user assignments, account assignments
model need to be Activated to finalize its user and account assignments
Territory Model > New: Label > (Status: Planning) SF creates Territory Hierarchy
Territory Hierarchy: Shows a model’s territory structure and serves as its main
interaction point. You start from the hierarchy to create, edit, and delete territories;
run assignment rules for territories, navigate to territory detail pages
(no more than 10 levels of branches in the hierarchy)
Next T Model: View Hierarchy > Create Territory > Label
- Territory Type
- Parent Territory: Territory Model
- Territory Model: filled in (created from there)
- Territory Access Levels: View/Edit/Delete accounts assigned to territory
Recalculation of Access Levels: start at the lowest level of hierarchy first
Territory Model State: Indicates whether a territory is in (cloning), planning stage,
active use, archived only have one active Territory Model at a time, but you can
create and maintain multiple models (up to 4) in planning or archived state to use for
additional modeling
o Archived state: not provide account access to users, but it lets admin view
hierarchy and rule assignment
o Cloning: copies territories, assignment rules, assigned users, and manually
assigned accounts from original model
o Planning state: Assignment rules can be run to preview and assess the effect
of the model
Territory forecasts are available for your territory model only:
• Forecast rollups based on the territories assigned to each opportunity
• Forecasts for the territories that the user is assigned to
• Territory forecasts shared to the user
• The opportunities included in territory forecasts, regardless of whether the
opportunity owner is assigned to the territory
Setup Terrority
1. Create Territory Type: Name – Priority
2. Create Territory Model: Name – State = Planning
3. Automatically created Territory Hierarchy > View Hierarchy > Create Territory >
Name > Territory Type > Parent Territory: (East) > Territory Model: East
Account Access Level
Setup Assignment - Territory
1. Create Assignment rule: assign accounts with some criteria to a territory
you know which accounts belong in which territories
eg. accounts in x zip code, with y revenue, and in z industry belong in Territory A
Territory Model > View Hierarchy > click on Territory > In ‘Assignment Rules Assigned
to this Territory’: New > enter criteria
When you add a parent territory to territory hierarchy, it’s best to apply
inherited account assignment rules to its child territories
Select ‘Applies rule to territory and its decendants’
Run account assignment rules when an account is updated:
‘Evaluate this account against territory rules on save’
Assign an Account to a Territory Manually: unique characteristics and therefore
can’t be assigned by rules: Territory > Manually Assigned Accounts: Add Accounts >
In Available list: select Account name > Assign
2. Apply an Assignment Rule to a Territory: click on Assign rules > select a rule
eg. all accounts in central region, all accounts in healthcare industry
3. Assign a User to a Territory: In Assigned Users: Manage Users > select users
4. Activate a Territory Model: you can activate a model only if it’s in Planning state
After activating a model, you can’t reset it to Planning state, but to Archived
After you archive a territory model, you can’t reactivate it
PLANNING > ACTIVATE > ARCHIVE
5. Add Account page layout: Users in Assigned Territories and Assigned Territories
6. Reports:
o Accounts Assigned to Territories
o Territories Without Assigned Accounts
o Users Not Assigned to Territories
o Territories with Assigned Users
7. Manage Territories Settings > Disable Enterprise Territory Management
Benefits
Support to complex and frequently changing sales organization
Support for multiple forecast per user based on territory membership
Ability to expand private sharing model using account criteria
Limits
• defining criteria on numeric fields, not string fields
• avoid overuse (restrictive criteria) and not use OR conditions
• > 10,000 records can create performance inefficiencies
• > 1,500 users to a territory, don’t use Setup; manage user-to-territory assignment
through the API
Territory Forecasts
Territory forecast will be able to use if Enterprise Territory Management is enabled
Setup > Forecast Settings > Forecast Types > Opportunities by Territory
• Territory forecasts are always based on Amount and Close Date fields on Opportunity
• Territory forecast allows users to view forecasted revenue compared with other
territories
• Territory forecasts can be used by sales rep to see an opportunity revenue forecast
rollup based on the territories assigned to each opportunity.
• The opportunities that are included in territory forecasts can be viewed regardless of
whether the opportunity owner is assigned to the territory.
• Territory forecasts are based on territory hierarchy instead of role hierarchy
Forecast Manager: user who is forecast-enabled and assigned to a territory
o Share Forecasts with any Salesforce user (access level: View Only or View and Edit)
o View the territory forecasts as a single-page summary
Best practices
Manually assign a Territory to Opportunity on Opportunity record
When you do so, the opportunity is shared with all users assigned to territory’s parent in the
territory model’s hierarchy
1. Opportunity (Marketing) Layout: drag Territory field to Opportunity Detail
2. App Launcher > Opportunity > select Opp: Edit > Choose Territory
Account Teams
Setup > Account Team Settings > Enable Account Teams
enable the appropriate access to different account roles: each person on an account team
can be assigned different roles and different levels of access to Accounts, Opp, Cases
1. Setup > Team Roles > Edit the picklist values for team roles to follow business process
o Update a changed picklist value globally: Replace Team Role
Add, remove, or replace multiple account team members at a time:
Mass Reassign Account Teams > Select appropriate account, contact, case access for
new or changed team members
o Disable Account Teams: Account Teams > Disable Account Teams
Before disabling account teams, do the following:
o Delete all custom fields, buttons and links, page layouts, validation rules, Apex
triggers, workflow rules that you’ve added to account teams
o Delete all custom reports that include account team information
o Uninstall Apex packages that use account teams
o Remove account team members referenced in your Apex code
2. Account RL: Account Team >
a. Add Default Team: Record owner can define in personal settings
If having same members into same form
b. Add Team Member: A user’s page layout determines which fields are visible,
and a user’s access to account determines which fields are editable
o User: listed as part of the team
o Team Role: role that a team member plays for account
Access
o Account Access: A team member’s level of access to account. The access level can be
Read/Write or Read Only, but it can’t be less than default account sharing access.
o Case Access: A team member’s level of access to cases associated with account
o Contact Access: access team member has to contact on the account. Access level can
be Read/Write or Read Only, but can’t be less than default contact sharing access.
Contact Access field is unavailable when the OWD = Controlled by Parent
o Opportunity Access: access team member has to opportunities
Team considerations:
o only one team per record (Account, Opportunity or Case)
If multiple teams are needed, you can consider Territory Management
o Only owners, people higher in the hierarchy, and administrators can add team
members and provide more access to the member.
o A team member with Read/Write access can add another member who already has
access to the record with which the team is associated. The team member can't
provide them additional access.
Enable Social Account, Contacts and Leads: link records to social profiles
> social networks: Enable Twitter, Youtube > add Twitter to record page
What you can see of Social info is based on user’s Social network account
Unable to see Twitter info about the contact:
Contact has a private Twitter account
Contact has deactivated their Twitter account: all contact info on Twitter will
disappear because SF will not cash any contact or social info
Data.com
Clean (manually or schedule): Field mapping: Data.com fields with fields from
Account, Contact, Lead
Get more contacts on Account (contacts available in Data.com):
In Classic Data.com app > Find Accounts > data in SF and Data.com will be all in sync
Capability of Data.com Clean:
• Accounts, contact, lead records can be selected from a list and cleaned all at once.
• Individual records can be manually compared side-by-side with matched Data.com
records and updated field-by-field.
• Data.com can be configured to run automated clean jobs to flag field differences and
automatically fill blank fields
Industry Knowledge
Adoption of software/technology leads to strong ROI
What it is + what it can do for your reps + how to use it = adoption
adoption starts NOW
secure executive alignment
document sales processes for improvement: what is working, automate manual
processes, what happens at each stage, coaching reps to do at points in the sale
Sales Metrics
Number of Leads converted: Number of prospects converted into sales opportunities
Lead qualification score: Calculate score by formula based on several factors, such as
accuracy of contact info, product interest and etc.
Lead source: determine which channels are used to generate lead
Number of Opportunities closed: Analyze number of deals are closed over time
Sales pipeline: Identify which stage the opportunities are at
Number of Sales activities: denote the activeness of the opportunities by sales-
related activities count
Sales performance: monitor sales performance based on closed opportunities
Quote achieved percentage: number of closed deals against quota by individual sales
Average revenue generated: measure average amount of revenue generated
Campaign ROI: determine the impact of campaigns on closing opportunities
Key Performance Indicators (KPIs)
Lead response time: Identify how fast a lead is contacted, speed of response is one of
the key factors of closing deals
Lead conversion rate: Indicate the lead quality given the source
Contact frequency and follow-up: Identify how frequent a lead is contacted and
follow-up (use sales automation tool)
Opportunity winning percentage: determine the effectiveness of a sales rep when
closing opportunities
Number of closed deals per sales rep: determine the effectiveness of a sales rep
Number of closed deals per customer: Recognize high-value customers who require
special measures to maintain and nurture relationships
Customer value: Identify high-value customer based on products/services purchased
Sales growth: Analyze the pace of sales revenue growth over period of time, it is
important to help company in strategic and decision-making
Sales target: Indicate whether the sales rep has met sales target
Business Challenge
Low number of leads: Set up marketing campaign, use social networking tools,
implement lead generation strategies
Low lead data quality: validate contact info, detect spam, cleanup data regularly
Sales and marketing alignment: define a clear goal for sales and marketing, refine
criteria for lead transfer and measure success, improve communication
Achieving sales target: Up-sell/cross-sell, conduct sales training
Closing opportunities: sales training, learn to use available tools to maximize effort
Disjointed process flow: Standardize sales process, use sales automation tool,
conduct more training
Forecasting and planning accuracy: use algorithm for forecasting, analyze past sales
performance, analyze prospect's activity
Sales productivity: Use tools to improve communication and automate tasks, access
to resources at ease
Adopt new tech: user training, access to knowledge base, use automation tools
Sales Process
Standard Sales Process
1. Lead Generation: generate lead through marketing campaigns, such as mass-email,
tradeshows, events, social networking, online ads, website and etc.
2. Lead Qualification: establish contact and work on getting more information, such as
product interest, business type and etc.
3. Lead Conversion: qualify the lead and convert to contact, account and opportunity
4. Opportunity Management: nurture the opportunity
5. Opportunity Closure: closed won/lost the opportunity
Lead Process: controls the different Status values available on lead records
use lead status field to identify a lead within the lead lifecycle
Sales Methodologies
On AppExchange, you can find pre-configured Sales Methodologies
Solution Selling
Offering appropriate solutions for customer’s issues
Sell solution may or may not constitute a product or service
Target Account Selling (TAS):
break down large deals into manageable components
aim to increase efficiency of resource allocation and shorten selling cycles
focuses on the best way to win a deal
Value Selling
Leverage capabilities of the company and the buying process of the customer to
create a plan for closing deals
Focus on understanding and reinforcing why certain offer is valuable to the customer
SPIN Selling (Situation, Problem, Implication, Need-payoff)
Ask questions based on SPIN to identify buyer's situation and needs,
getting the buyer to identify the benefits of the solution
SNAP (Simplicity, Invaluable Information, Alignment with beliefs, Prioritization)
focus on increasing the speed of the sales process as modern buyers are too busy to
grasp complex information
focus on providing simple and unique information
Conceptual Selling
Focus on effective management of the decision makers involved in a customer's
buying process, and gathering of relevant information about the customer's concept
of the product to close deals
Based on the idea that a customer buys the concept of a solution to an issue rather
than a product or service
Customer Centric Selling
Focus on presenting a solution rather than a product or service to the customer
Focus on collaboration with customers and becoming their trusted advisors
Challenger Selling
Focus on following a teach-tailor-take control process for selling effectively
Sales teach and tailor their prospects about business problems and solutions rather
than a particular product or service
End goal is to close the deals, not just being liked by prospect
MEDDIC Selling (Metrics, Economic Buyer, Decision Criteria, Decision Process, Identify Pain,
Champion)
Used when the business is interested in tight control of the pipeline by utilizing
automation to direct the best sales representatives
Sandler Selling
Focus on identifying needs of the customer and create sales pitch based on needs
Buyer and seller need to be equally invested in the process of selling
Sales raise and assess obstacles to completing early sales, then provide solutions for
overcoming those obstacles
Marketing Process
= set of activities that are utilized by a company to identify, anticipate and satisfy the needs
and wants of customers profitably
Campaign Management:
o Design and implement marketing channels
ex: email, website, online ads, trade show, and etc.
o Design campaign development process
ex: concept, design & development, testing, deployment
o Execute online and offline campaigns
o Outline the roles and responsibilities of people involved
Lead Management:
o Capture lead from various sources, primary through marketing channel
o Design process of lead creation, routing, tracking, and generating related
notifications
o Design required import process and integration(s) for generating more leads
o Define various lead statuses and criteria for lead scoring, lead qualification
and related metrics
Content Development:
o Define all content-related operations
ex: strategy development, ideation, storage, delivery
o Consists of components such as content delivery calendar, definition of
content architecture, identification of subject matter experts, content
engagement tracking and etc.
Analytics:
o Define data sources, reporting standards, reporting frequency and etc.
o Identify media to be used for reporting and who to create and utilize reports
o Outline strategy for distributing reports and dashboards
o Outline the process for archiving reports and dashboards
Create Currencies
Company info > select Activate Multiple Currencies
Considerations:
• Multiple Currencies cannot be disabled once they are enabled
• Changing the exchange rate automatically updates converted amounts on all records,
including on closed opportunities
• After a currency is added to an organization’s list of supported currencies, it can’t be
deleted from the administrator’s list of currencies, even when it’s deactivated
• Standard and custom objects, such as Account, Lead, Case, Opportunities,
Opportunity Products, Opportunity Product Schedules, and Campaign Opportunities,
have currency fields that support multiple currencies
• Change Corporate button: change the default corporate currency
New Currency: Setup > Manage Currencies > Under Active Currencies: New > Currency Type:
GBP - British Pound > Conversion Rate: enter .78. > Decimal places > check Corporate
Each currency requires its own custom price book
Once currency is added, it cannot be deleted, but can be deactivated
Define conversion rates manually, no auto rate conversion available yet
Change currency button: GBP USD
Parenthetical Currency Conversion is enabled by default (can be disabled)
In multi-currency organizations, SF displays converted currency amounts to users whose
personal currency is different from the currency of the record they’re viewing (org’currency)
Primary Currency: displayed in amount field
Secondary Currency: displayed in parentheses ()
if currency is different than personal currency or currency is not corporate currency
Products
Create Product
• Active
• Product Code
• Product Family
Product > F&R: Product Family > add value
• Product Currency
• Product Description
Create Pricebook
Pricebook = a list of products and their associated prices (entries) to track products
• Standard price book is a master list of all products and one default standard price.
An organization has only one standard price book
Product Related list: Price Books > Add Standard Price > Add List Price > Add Currency
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
1. Create picklist:
Price Book > F&R > new > picklist Region > add field to Price Book Layout
2. Create Pricebook: Products Related List:
Price Books > Add Standard Price > Product Name – List Price – Currency
3. Add Price Book Entry to Price Book:
click on Add to Price Book > Price Book – Currency
Price book = active: link a product to opportunity or quote
Product = active: the reps want to sell the product right away
Standard price of product and price book in the currency of the opportunity
Opportunity > Products related list > choose Price book (Standard/Custom)
Select a Price Book to associate with this opportunity.
• You can add products only from the Price Book you associate with this opportunity
• Changing the Price Book deletes all products from the opportunity.
Add Product > select product > Change Quantity – Sales Price
Once the Opportunity has added Opportunity Line Items, Amount field on Opportunity
cannot be edited. Amount can only be edited if all Opportunity Products are deleted
An opportunity can have multiple quotes, but it can sync with only one quote at a time
show different combinations of products, discounts, and quantities eg. customer is asking
for pricing options, for lower/higher quality
Identify opportunities latest quote: reference the synced quote field on opportunity record
If Opportunity has Opportunity Products, when new Quote is created from
Opportunity, it will also create related Quote Line Items
Quote Status can use to control whether sending email is allowed
1. Quote Settings > Enable Quotes > Choose Opportunity Layout >
select ‘Append to users’ personal related list customization’
2. Opportunities Related List: Quotes > New > Name – Expiration Date > Automatically
Account has been filled in > Products are automatically added to quote:
Quote line items appear as Opportunity’s products
3. Sync Quotes to Opportunities: Quote syncing lets you link a quote to the opportunity
that it was created from and synchronize all updates between the two records
Click Quote > open actions menu: select Start Sync
(Sync button on page layout and Syncing checkbox on Quote RL)
4. Make Quote as PDF:
Quote Related List: Quote Line Items > Edit Products > Change Quantity – Discount
Generate PDF > Save to Quote > View PDF: Notes & Attachments RL on Opportunity
Orders
Orders = agreement with a customer to provide products at certain quantity, price and date
Status values: draft – activated
• Related to an Opportunity and Quote with lookups
• Place an Order once an Opportunity Status = Closed Won
• Order from Account: track the purchases
• Order from Contract: track the fulfillment of contract agreement
Contract must be activated before the Order is activated
(Order Start Date can't be later than its Contract's End Date)
• Add products in Orders
o a Pricebook must be selected
o product added to an Order prior order activation (once activated, you cannot
add new Product but you can still edit the existing one)
Order Settings:
o Enable Reduction Orders - allow users to process product returns, service reductions,
and service cancellation only activated orders can be reduced
o Enable Negative Quantity - allow users to add order products with negative
quantities
o Enable Zero Quantity - allow users to add order products with zero quantities
Contract
Contract = document contracts, terms, agreements associated with order, account, opp
1. Contracts > New > Account Name – Contract Start Date – Contract Term (months)
Automatically created: Contract Number
2. Enable Orders > Orders > New > Account Name – Order Start Date – Contract
Number
3. Add Product to Order: Order Product Related List: Add Products > select Price Book >
click checkbox Product Name > change Quantity
After an order is created, change Contract field:
AppExchange solutions
= embed additional functionality with third-party apps. Use the flexibility of SF platform to
build amazing solutions to extend SF
Plan Phase
• identify reasons for change and high-level requirements, and start mapping out
possible solutions
• consulting team kickoff
• ex: a company would like implement Sales Cloud for the first time
• Discovery: helps to prepare for Analyze Phase, including conversations with key
stakeholders to understand their current system and processes
Key activities are:
o questionnaire to gather information from the customer
(focus group, survey, establish benchmarks)
o discovery interviews with key stakeholders to understand pain points
o understand as-is processes
o observe interactions with current systems
• Scope Creep: happens when new requirements are added to project after the original
requirements have been documented cause project to be delayed
Ways to prevent Scope Creep:
o implement a change control process to review and approve all additional
requirements before they are added to project
o prioritize the requirements and avoid low priority requirements
o verify the scope with each stakeholder of the project
o define written contract clearly to set expectations at the beginning of project
Analyze Phase
• Gather requirements:
o Requirement Prioritization - prioritized according to level of urgency (high,
medium and low)
o Requirement Categorization - classified based on system capability (data,
security, business process, reporting and etc.)
o Requirement Scope - work that is needed to be performed (in-scope or out-
of-scope)
• Identify gaps:
o As-Is business process defines the current state of the system
o To-Be business process defines the desired state of the system
• requirements document sign-off
• ex: certain stakeholders require a new app with custom functionality and objects
Design Phase
• transform requirements into solutions, and prepare solution design documents
• implement solution design: use cases and a prototype application to give the client a
clear vision of how system will look like and how it will be used based on use cases
• implement technical design: any customizations that require code development
• Solution design sign-off
• ex: a detailed prototype of Sales app need to be presented to the stakeholders
Build Phase
• develop and configure application in sandbox
• conduct alpha and beta reviews to confirm on configuration and demonstrate how it
works
• build and review data migration
• develop training material
• ex: client has provided sign-off on the solution design document, and app is ready to
be developed/configured in Salesforce
Validate Phase
• validate application functionality through types of testing:
o User Acceptance Testing (UAT) - allow system users to validate the process
and usability of the system through test scripts consisting of use cases
o System Integration Testing (SIT) - validate data flowing into or out of
Salesforce from or to external systems
o Performance Testing - test and validate speed and response time
o End-to-End Testing - validate the functionality of a system from start to end
• validate configuration and code, fix bugs and more testing
• develop training material
• project ready to sign-off and go live
• ex: client needs to very that app functions according to requirements, make sure the
app is error-free
Deploy Phase
• conduct training sessions
• migrate data, configuration and code into production
• transfer knowledge to support
• project sign-off
• gather project feedback via customer satisfaction survey
• ex: app can be rolled out with training for a group of users on a specific date
Implementation Strategy
Crawl, Walk, Fall, Run Strategy:
• Crawl: focus on implementation of minimum viable product (MVP) with "must-have"
features only eg. customization of accounts, contacts and opportunities
• Walk: focus on adding "nice-to-have" and any additional "must-have" features
eg. sales process can be defined, products can be customized
• Fall: certain common failure points resulting in failure
eg. no proactive plan, process map unclear, no clear vision or end goals, no success
metrics defined, no clear expectations or communication plan, no proper roles and
responsibilities
• Run: can implement "great-to-have" features if still have time
ex: integration with other system and automation of business process
Project Rollout Challenges
• Project Rollout Challenges
• undefined or unclear process map
• unclear or incomplete requirements
• lack of communication
• canceled or delayed meetings
• lack of availability
• complicated requirements
Rollout Strategy
Team
- Executive sponsor: prioritizes and approves how team’s time is spent on Sales Cloud
- Operations manager: knows the most about the day-to-day sales process
- End user(s): A team member who has time to test out Sales Cloud and give feedback.
- Admin: makes changes in Sales Cloud and manages the implementation
1. Establish Goals
2. Define Key Metrics: Work with your sales team and executive sponsor(s) to
determine the key success metrics you’ll track.
Success metrics: Specific – Measurable – Achievable – Relevant – Time-bound
3. Plan for users: include team in planning state and ask for feedback
Implemented Sales Cloud to better track the company’s revenue:
- Establish a single place where sales teams get insights into their deals in real time
The number of deals closed to date versus the goal
Sales team member(s) can check in on how they’re tracking toward their goals
- Understand ROI based on where their leads originate
Total pipeline amount by lead source, by location (state/country)
If they’re performing above or below their goals, so they can prioritize rep focus
- Understand what types of activities contribute to closing deals
Number of Activities logged per Opportunity by type (onsite meetings, phone call)
Can see which day-to-day activities have the most impact
Deployment
Deployment (last phase) refers to migration of all configuration, code and data from test
environment to production.
• Success is measured at end of deployment through reports and user feedback.
• Deployment Plan specifies deployment activities and release date of the deployment.
• Deployment should be performed when users will not be making changes in
production
• A full-copy sandbox can be used as a staging environment for test deployment
Sales Deployment Plan
Pre-Deployment Activities
• set up announcement for maintenance window
• stop changes in production
• create staging environment and migrate changes to staging environment
• replicate changes based on production
• log users out of system
• set up testing deployment
Deployment Activities
• Communication:
o communicate with users of release date and maintenance windows for
update
o detailed release notes should be sent out to the users as well
o communicate with stakeholders and end-users to ensure adoption and
successful deployment
• Training
o develop training materials for instructors (trainers) as well as end-users
o develop different training material sets for each group of end-users if
necessary (eg. cross-country org, different roles)
o conduct on-the-job training for knowledge transfer
• Migration
o Migrate configuration and code via Change Sets, Ant Migration Tool or Visual
Studio Code
o Import data using Data Import Wizard, Data Loader or 3rd party tools
o Data import order: user – account – contact – opportunity – Lead – Campaign
– Campaign Member
• Measurement
o measure adoption success with reports and dashboards
• Feedback
o conduct satisfaction survey to measure level of satisfaction
o end emails to end user to gather information regarding their issues,
suggestions and requests
Measure success
Implementation Success
o communicate with users to build awareness regarding the implementation
o gather user feedback to improve solutions related to the implementation
o deliver training before launch date
o provide on-going support and training after implementation
o monitor usage metrics
User Adoption
o Usage (login frequency, date created, updated)
eg. number of records created by users, how much sales activity is being recorded
o Data Quality (completing key fields)
o Business Performance (analytics tracking key business metrics such as opportunity
pipeline, activity types)
eg. how much users are collaborating using the system eg. volume of Chatter post
Data Modelling
Lookup Relationship: links two objects together so that you can “look up” one object from
the related items on another object (stand-alone objects)
• One-to-many: single account can have many related contacts
• One-to-one: relationship between Property object and a Home Seller object
Master-Detail Relationship: The master object controls certain behaviors of the detail
object, like who can view the detail’s data (detail object doesn’t work as a stand-alone)
• If a record on the master object is deleted, all its related detail records are deleted
• Create the relationship field on the detail object
UC has a customer base that includes both individual consumers and businesses. The
company has implemented Person Accounts and has a custom object for `Policies` that
needs to relate to both Person Accounts and business accounts:
Create a master-detail account relationship
Hierarchical relationships are a special type of lookup relationship:
only available on User object eg. creating management chains between users
Development Model
Application lifecycle management (ALM) process:
Apps and tools can vary, but steps in ALM cycle apply to any development project
1. Plan Release: Gather requirements and analyze them. Have PM create design
specifications and share them with development team for implementation.
2. Develop: Perform in environment with a copy of production org’s metadata
Develop on Lightning Platform using
• Declarative tools (Process Builder, Custom Object wizard, others in UI)
• Programmatic tools (Developer Console, Source Code Editor, Visual Studio
Code)
3. Test: testing in the same type of environment as you used in the develop step, but
keep your development and integrated testing environments separate
4. Build Release: Aggregate all the assets you created or modified during the develop
stage into a single release artifact: a logical bundle of customizations that you deploy
to production
5. Test Release: Use a realistic amount of representative production data.
Connect test environments with all the external systems they need to mimic your
production system’s integration points. Run full regression and final performance
tests in this step
6. Release: Deploy the customization to production. Train employees and partners so
they understand the changes
Create an environment
Setup > Sandboxes > New > Create From: Production org or other Sandbox
Log in to the org that you want to receive the inbound changes:
Deployment Settings > Edit next to org for outbound change sets > select ‘Allow Inbound
Changes’
Quick deploys: not rerunning Apex tests during deployment. When the following
requirements are met:
• Components have been validated successfully for target environment in last 10 days
• As part of the validation, Apex tests in target org have passed
• Code coverage requirements are met:
o If all tests in the org or all local tests are run, overall code coverage is at least
75%, and Apex triggers have some coverage
o If specific tests are run with the Run specified tests test level, each class and
trigger that was deployed is covered by at least 75% individually
Org development
Org development: To cope with increasing complexity: greater flexibility and scalability
o Use Salesforce Extensions for Visual Studio Code to retrieve metadata from
their development environments
o Store the changes in the Source Control System, which contains DX project
o Salesforce CLI is a powerful command-line interface that you can use for
every phase of the org development lifecycle. It improves productivity by
providing a single interface for all your development, test, and automation
use cases.
o Identifying dependencies from all contributors, the team uses change tracking
mechanisms that capture the changes made to components versus changes
made directly in the org through Setup UI
Salesforce DX project contains the source and files that comprise your changes.
A DX project has a specific project structure and source format.
In addition to source files, the project contains a configuration file, sfdx-project.json:
contains project information
= Outbound change set
After testing the changes, creates the Deployment artifact, a .zip file that contains changes
to deploy. Deploys the release artifact to the Full (staging) sandbox first, then to production
= Inbound change set
Package development
Package development: more flexible releases
o Manage different customizations as separate packages, not as one big release
of changes to the org: build a release artifact you can test and release
independently from artifacts for other projects
o A package version is a fixed snapshot of the package contents and related
metadata and lets you manage what’s different when you release or deploy
o Using Scratch orgs = empty orgs (no metadata or data) where you can work in
same org configuration while each having own development environment
o Package dependency = package containing one or more metadata
components shared by multiple packages
Use to deploy flows to production: Change Set, Visual Studio Code, Ant Migration Tool
Adoption Metrics
Success metrics you use depends on what user behaviors you expect to see:
• How many opportunities have users created in the last 30 days?
• How many activities did users complete in the last 30 days?
• What data have users created or updated in the last 30 days?
• What is the login rate over the last 7 days?
• Who is logging in, and more importantly, who is not logging in and why?
Track and the value of keeping an eye on data quality:
• During training, you emphasized the need to capture nonrequired key fields.
However, the dashboard is showing that users complete a low percentage of those
fields. Are users confused about what to do? Did they miss the importance of
capturing these data fields?
• If you have data that is not progressing as expected—such as opportunities stuck in
the same sales stage for too long, or open deals with a close date in past—users are
not maintaining their data. Is data hard to find? Are they unclear on the sales
process? Are there other shadow systems like forecasting spreadsheets that users
have to maintain?
Measure user adoption:
• Track completeness of records created in SF
(More likely it is that user spend more time and effort to learn SF and is helping
thrive adoption forward)
• Number of neglected opportunities over time by role
Increase user adoption:
Incentivize end users with rewards for adopting SF
Ensure that all data in SF is up-to-date and accurate
Governance Basics
= all about people and processes necessary to manage org and achieve good outcomes
• Business backlog
complete list of all the business requirements that are prioritized to maximize usage
of platform’s declarative features and minimize the need for custom code
• Communication strategy
Ensuring everyone affected by a new project is informed and has a voice in process
o Involve leadership: for major initiatives and changes in particular, executives
should lead the messaging.
o Mix it up. It’s important to take advantage of the various communication tools
and forums, don’t exclusively rely on emails or Chatter
o Be mindful of noise: ensure messages contain real value to intended audience
o What’s in it for me? ensure communications are valuable by thinking about it
from the perspective of the recipient
Operating Model
• Centralized: A single governance framework with a one set of processes and
normally focused on a single solution, single business unit, or global processes
Best option for smaller, single-org companies
• Decentralized: Federated governance framework with independent governance
frameworks and different sets of processes for different business units.
Used for organizations with multiple SF environments with highly autonomous
business units or geographies
• Hybrid: governance framework with each business unit having its own autonomy.
Effective for larger companies that want to standardize their best practices and
processes under a common framework, yet allow some amount of autonomy for
their different divisions or geographies
Core committees that will execute lean governance framework:
• Executive Steering Committee: owns the overall vision and strategy, sets the
priorities and oversees the overall project budget. It also acts as the final escalation
point for disagreements that the project teams are unable to resolve
o Update on actions from the last meeting.
o Review of the project(s) overall health and KPIs.
o Review and update the vision and strategy if required.
o Review of the overall project(s) budgets.
o Review of project risk register
• Project Management Committee: manages day-to-day details of all major projects
o Update on actions from the last meeting.
o Review of the project(s) overall health and KPIs.
o Project resources and team skill requirements.
o Review of project risk register.
Process Mapping
= creates visual representations of business processes, includes any activity that defines
what a business does, who is responsible for what, how standard business processes are
completed, and how success is measured. The main purpose of business process mapping is
to show the relationship between the steps and the inputs of a business to establish a clear,
consistent, and concise result to foster a formal approach to quality management
Process mapping is a beneficial tool:
• Make understanding and communicating the process much easier among teams
• Help identify flaws in the process and where improvements should be made
UPN (universal process notation) is a simple way to document processes and it is easily
understood by everyone in the meeting, and the drill down approach keeps the diagrams
compact so they can be viewed online (remotely work)
top level lead-to-cash process showing the activities, the handoffs and the people and
systems involved. Each of the activities can drill down to the next level of detail
5 Principles of UPN
• No more than 8-10 activity boxes on a screen
• Drill down from an activity box to a lower level to describe the detail
• Attach supporting information to an activity box
• View and edit controlled by access rights
• Version control and history of changes at a diagram level
Capability models: list out the high level process areas. These are useful for scoping out the
specific area that you are mapping and to show the context within the overall business.
Detailed process map: flowchart that shows a drill-down version of a process that contains
all the details of each step of the process and any subsequent steps. This map is perfect for
giving all details to a process step and documenting all the decision points within a process
SIPOC map: shows the key elements of a process or define the scope of a complex process
Value stream map: visualize the flow of material and information that is needed to bring a
product to the customer. Ideally, you want to use this type of map to record measurements
of inputs and outputs of process steps or to identify waste within and between processes.
Builder a SOW
• Background: always include the project background information here, even if it was
stated in earlier documents
o SOW is a legal document, and all information should be in it.
o SOW keeps all the customer’s stakeholders informed
• Scope: Write down all of the features and functions that will be built to accomplish
the goals stated in background section
o Training: Who is training users on the new features?
o Change management: Who's building internal support for the project?
o Post go-live support: Who supports software after launch and for how long?
o Data migration: Who moves the data from the old systems to Salesforce?
o Integration: What external systems need to connect to SF and who does it?
o UAT: Who tests new software to confirm it’s fit for purpose?
• Approach: Explain the methodology for how you plan to build the scope items and
identify the project phases, inputs and outputs of each phase, key milestones, sign-
offs, project management, and quality management processes
• Customer Responsibilities: establish the roles, responsibilities, and who on the
customer’s team is filling those roles.
o Customer deliverables: items that customer need to provide you
o Dependencies: identify things need to happen for team to be able to do work
• Project Schedule and Fees: present the customer with both the costs and the speed
that they should expect the work to be completed
o Roles: who is doing what on your team.
o Timelines: when the customer should expect the deliverables.
o Travel expenses: who’s covering which expenses.
o Rate table: what the hourly rate is for each project role.
o Pricing model: how and when your team charges for their work
• Terms & Conditions: provides you with legal protection if things go off track:
Change order, termination, warranty
• Assumptions: there are a lot of unknowns at the start of every project.
Scope, timelines, costs are presented with the assumption that certain conditions are
true, certain dependencies are met, certain undiscovered issues don’t arise
During project planning phase of new SF implementation, what consultant do to ensure
project stakeholders will be satisfied?
Help SH determine KPIs based on business benefits and desired process performance
Communication is key (weekly, monthly, quarterly)
eg. Schedule a SH project update take place at intervals throughout implementation
• Discover phase: assess org’s readiness for LE, align with SH on transition goals
Discover > go to steps > Evaluate LE benefits and Readiness
Readiness Check: to see how well the org works out of the box and figure out
which features and existing customizations need work before things are ready
for customers in a report, includes a list of used features and customizations
check readiness > Choose Sales Cloud > check readiness > receive a file
Preview tool: allows to see your apps in LE before enabling the new interface
• Roll Out phase: Turn on key LE features, adjust existing customizations, prepare your
users for the coming change, then turn on the new interface
click Launch Lightning Experience > Turn on LE
• Optimize phase: measure success, motivate users, iterate with new features
turn off Classic
Annual planning
Reporting
Good sales reporting is frequent to keep sales teams up-to-date and combines data points to
tell a story
• Sales Activities: data captured in SF automation or CRM. Includes account,
opportunity, leads, and activity/task info like calls and emails made
• Territory Mapping: data visualization focused on geography and used to identify
where customers are, who on sales team is responsible for selling to customers
• Compensation: calculate how much team members make based on their
performance, the performance of company, and any other policies that are set up
during annual planning process
• Recognition: allow colleagues to publicly thank one another and help businesses
identify their high-impact contributors.
• General Reporting and Data Visualization: some tools are available to integrate with
systems mentioned above. They visualize and interact with data in aggregated way
Plan components
No more than 3-4 components to make the plan easy to understand and for finance and
sales operations to enforce
• Terms: general definitions of the technical words used in the comp plan, what
happens in the event of termination
• Variable: amount of commission paid out when a sales rep meets their on target
earning (OTE), or the target amount they earn if they meet 100% in their metrics
• Payout Rates: percentage of a deal paid to a rep as commission
• Tiers: different payout rates for products, services, different term lengths (eg. selling
a 24-month contract can earn more commission than selling a 12-month contract)
• Accelerators: increase in payout rates once 100% of a results metric is achieved
• Spiffs: lump sum commission payments tied to specific activities or products
Compensation plans (comp plans) = documents that clearly explain compensation and
incentive structure for a sales rep. Some org can have a single product to sell and a simple
comp plan that pays sales reps a clear percentage of total deal size, others have a plethora of
products and a plan that involves breaking the payout by product and service
Compensation plans are typically redone and signed annually, in line with changes that come
with annual planning:
• Watch for loopholes: don’t find them, sales team will, and they’re tough to contest
• Avoid changes midyear: if needed midyear plans should include text clearly stating
that they replace any and all previously signed compensation plans
• Know where you are flexible: activity metrics are easier to change than the quotas in
a comp plan and spiffs
Log a call: Opportunity > Log a call: New > Subject – Comments – Contact
Chatter tab > Streams > Most recent activity
Lightning Dialer:
• Call - make calls and received calls with auto-logging functionality, calls are added to
the activity timeline
• Phone Fields - allow reps to click phone number and dial
• Call Recording - allow call recording
• Multi-Tasking - allow reps to multi-task while on the call
• Call Monitoring - allow manager to monitor the calls to improve sales performance
through coaching
• Voicemails - allow reps to record multiple voicemail messages for different types of
prospects (receive and store up to 20 voicemail messages)
• Local Presence - display phone numbers with the same area code as the prospects
• Call Bridge - make or receive calls with the desk or mobile phone
• Call Lists - allow reps to create a list of contacts to be called
In-app guidance
1. In-app guidance > Add > Home > Add > select Single Prompt > Prompt type: Floating
Prompt > Position selector: Bottom right > Title – Body – Dismiss button
2. Action button label/URL > Schedule: Start date – end date > Times to show: 1 >
No profile restrictions > No permissions restrictions > Details (not seen by end user)
Highlight Panel
Object Manager > Opportunity > Compact Layouts > Close System Default > add fields >
Compact Layout Assignment > Edit Assignment > In Primary Compact layout: select new
Calendar
Sales Console: Calendar > My Calendars: New > Object > Name – Field to Start (close date) –
Field Name to display eg. Case Number
• Add other calendars on User, Public Calendars and Resources, and User Lists
Sales roles
Inside sales rep (ISR)— selling to prospects from a digital screen, not in the field
spends only 32% of their day selling, the rest of the time they’re looking up
information, trying to plan out which lead to call next, or logging notes.
Sales development rep (SDR)— handling inbound leads and qualifying opportunities.
For each lead, they have a specific set of actions to handle.
Business development rep (BDR) —They generate net-new opportunities and focus
on new business and cross-sell business. Have specific actions with leads, but the
volume is lower, and they have more autonomy to make decisions
Field sales rep —typically working out in the world whether physically in offices or
onsite locations to close deals. They are constantly navigating new demands for their
time and juggling priorities and to-do lists
Salesforce High Velocity Sales is a streamlined solution tailored to inside sales teams to
speed up the sales process:
Insights on how to prospect smarter and faster
Integrated tools to eliminate busywork and multiple logins
New levels of best-practice automation for scalable, repeatable success
The features included in this new product are:
Lightning Sales Console = everything needed to sell faster all in one screen
from following up on leads and assessing companies to identifying key contacts
Sales Cadences = a sequence of activities and wait steps that guide inside sales rep
trough best next steps eg. First Email > First Call > Wait 4 hours > Follow-up Call
Enable sales managers to build customized best practices right into CRM
Work Queues = prioritized task list inside the Lightning Sales Console: who you need
to contact next and what the best next action is
Sales Cadences flow right into a rep’s queue: the first step in a Sales Cadence journey
is to make a call, the lead’s name and action to take shows up in Queue
Einstein Lead Score = analyzes data, predicts which leads are most likely to convert
Email Integration: intelligently focusing on the right ones
Lightning Dialer (optional, additional SKU): Gain back hours of productivity by
communicating more efficiently with prospects and customers. It begins by logging
details right from within SF
Sales Cadences
= guide reps alike through prospecting and opportunity nurturing processes— when to email
a prospect, to call, to wait. Specify call scripts and email templates for each step, and create
branched sales cadences with different outreach depending on results of sales calls/emails
Bring together all pending activities in one view and automatically log activities after
completing them
• State
o Draft: can edit the sales cadence
o Activated: can assign leads, contacts, person accounts to sales cadence,
but the steps can’t be changed
o Deactivated
• Sales Cadence Targets: leads, contacts, person accounts
• View Steps: outreach steps
Sales Cadence Steps related list shows the prospect engagement for each sales outreach
Eg. build a sales cadence guiding reps to make two back-to-back calls, wait a half-day, and
then call again or send an email use Sales Cadence Builder to create each scheduled
outreach plan:
Branches allow different outreach steps depending on the results of a call or an email (2)
Files
• Posting files to Chatter feeds to collaborate with coworkers.
• Adding files directly to records, such as Accounts, Cases,…
• Sharing files with customers in the secure Salesforce cloud.
• Connecting to external file systems with Files Connect
From Files home, you can:
• See all the files that you own or have access to
• Search for files using filters and by entering terms in Files search box
• See favorite files and most recently accessed files under the Files dropdown
• Upload private files or upload and share files with people, groups, or via a link.
• Follow a file and receive updates about it in the Chatter feed
• Download, share, get a public link, view file details, upload a new version, edit file
details
• If Files Connect is enabled: browse, search, share files that are stored in external data
source
Upload files to:
• Files home: they’re private until you share them. Only file owners and users with the
View All Data permission can see private files.
Add files to library: inherit the sharing settings of that library
• Any Chatter feed post or comment field: Attach up to 10 files
Share with public or private groups: File Sharing Settings | With group
• The files card or list on groups, user profiles, opportunities, and other records
• Create public links (encrypted URL): share folders with files
Access file:
• Private: file owner and users with Modify All Data permission find and view this file
• Privately shared: file has been shared only with specific people, groups, or via link
External users see files posted to records have access to, unless marked Internal Only
• Your company: All users in your company can find and view this file
By default:
• Private group access is set to Collaborator
• Public group access is set to Viewer
FilesConnect
Configured a data source like SharePoint to use per-user authentication:
provide your credentials for that system in SF
• If you are connecting to Box, Google Drive, SharePoint Online, or OneDrive for
Business: Select OAuth 2.0 as the authentication protocol
• When you see a message requesting permission for Salesforce to access information
from your external system, click Allow.
• After the authentication process has finished, you are redirected to Salesforce.
1. My Settings > Authentication Settings for External Systems >
External System Definition menu: select External Data Source
External Data Source menu: select a data source that admin created
2. Choose Authentication Protocol: OAuth 2.0 > choose Authentication Provider
Share a file from Files Home (or from the Feed):
• Share a copy of external file stored in SF: if files are shared with a Chatter group, all
group members can access files, even if members lack access to the external system
• Share a reference to external file stored outside SF: only users with access to the
external system can download files (Users must enter credentials for the system in
Authentication Settings for External Systems)
Document Libraries
Store files without attaching them to records and use these items in Salesforce org, such as
when creating an email template
• Each document that is stored in the document library resides in a folder
Folder’s attributes determine accessibility of folder and documents within it
From Document tab:
• Under Find a Document, enter keywords to search for a document.
• In Document Folders: select a folder to view all documents contained in that folder.
• Recent Documents: Toggle Show 25 items/Show 10 items
Setup New Document
• Indicate Document is Internal: When checked, a flag is added to the document
indicating that document viewers should not share the file outside of org
OR
• Externally Available Image if document is image that's not confidential
Display the document > Click Replace Document > Select a document or path option
Delete document:
• Delete any document in personal folder and folders with “Public Folder Access” set to
“Read/Write.”
• To delete a document in a public folder with “Public Folder Access” set to “Read
Only,” you need “Manage Public Documents” permissions
• If you delete a document that's included in a letterhead or HTML email template,
emails using the letterhead or template display a broken link
• Can't delete a document that's being used as a custom logo in meeting requests
Move Files from the Documents Tab into Lightning Experience:
• Export documents in the weekly export > upload the documents into SF Files
• Use a third-party data export tool from the AppExchange
• Use an API-based tool
SF CRM Connect
Content includes all file types, from traditional business documents such as Microsoft®
PowerPoint presentations to audio files, video files, Web pages, Google® docs
• Organizing: stores files in fully searchable file repositories known as libraries.
Admins can create multiple libraries based on any classification, then configure user
permissions within the library to balance content access with security.
• Searching: search engine scans the entire body of the document as well as content
properties such as the title, description, tags, categorization data, and author name.
Filter searches by featured content, file format, author, tags, libraries, custom fields
• Subscribing: Once a file is located, subscribing to it ensures that you receive an email
notification when new versions are published or changes are made to the file's
properties. You can also subscribe to authors, tags, and libraries
• Previewing: if the document is a Microsoft PowerPoint, Word, Excel, Adobe® PDF file,
you can preview the entire file in browser without downloading it
• Contributing: Uploading new or revised files in Content is fast and easy. During the
upload process you choose a library and record type for file or Web link, assign one
or more tags, and fill out customized fields that help categorize content
• Reviewing Usage and Providing Feedback: several methods for determining whether
content is valuable to readers (Voting thumbs up/down on a file and add comments)
• Sharing Content in Salesforce: Content is also integrated with leads, accounts,
contacts, opportunities, cases, products, custom objects. Content uses fields on detail
page to search for files that may be relevant to that opportunity
Contribute Web Links:
1. Click the Libraries tab
2. To add a new link: click Contribute | Do you want to link to a website instead? >
enter the URL > click Contribute. To publish a link that is already in private library:
click My Private Files tab > locate the link > click Publish
3. Choose a library: Web link can be shared with another library but its content details
page can only be edited by a user with relevant permissions in the managing library.
4. Optionally, choose a language:
If multi-language support is enabled, Language dropdown list is displayed.
5. Publish the content on behalf of another author: choose that author
6. Tag your content: tagging permission depends on tagging rule assigned to the library
Publishing a New Version: Option not appear for Web links or Google docs
Use Content Delivery to convert documents into optimized web-based version (Classic only)
send its encrypted URL to any recipient and track how often people view/download content
eg. share documents with customers, not Community users
1. From Content Deliveries related list > click Deliver Content > Upload a file
2. Select delivery method: how content can be viewed (depend on file format)
• Allow Recipient to View in the Browser
• Allow Recipient to Download as file: view the content in its original format
• Allow Recipient to Download as PDF: download a .pdf version of the file.
Only available for Microsoft® PowerPoint, Word, and Excel files
3. Select Notify Me of First View or Download: receive email the first time recipient
clicks the content-delivery URL
4. Select Remove Access to Content checkbox and enter an expiration date
5. Optionally, select Require a Password to Access Content
6. Optionally, use lookup to associate content delivery with a record. The record you
were viewing when you clicked Deliver Content is selected by default
Partners have access to product documentation: enable Content for Partner Community
and be notified partners about updates: enable Content email alerts for partner users
SF Maps basics
SF Maps = multi-cloud app brings location intelligence technology to SF Cloud and centers
around four main categories:
Visualizing data
can interact with and change data as needed
eg. business requirement to visit all of opportunities projected to close this month.
Visualize locations of opportunities by stage to prioritize which accounts to visit first, log
calls, enter notes after each visit, and change required fields
Territory planning
helps you determine how many reps are needed in a specific territory and exactly where
they need to be to maximize sales resource capacity
Increase productivity through lead generation by searching for prospects using two options:
• Search bar, which returns a Google search of retail stores in the area
• Business data layer, which plots all sneaker distribution companies in the area
SF Maps Advanced:
• Automate route planning for up to 4 months.
• Use business rules, such as visit cadences, time windows, and priority levels.
• Maintain scheduled appointments and reschedule missed visits
UC is working to expand its residential business in the U.S. Sales reps are being asked to
canvas neighborhoods in their areas, leveraging new door-to-door campaign material to
secure new customers. Internal studies have shown the most valuable residential customers
typically have a household income range between $50,000 and $70,000. Which solution
should consultant recommend to help sales reps determine best neighborhoods to canvas?
• A Salesforce Maps component plotting non-customers in residential neighborhoods
• API integration with Salesforce Maps to plot existing customers on territory maps
• Salesforce Maps using Demographic Context data source to display income ranges for
regions within their territories
• Salesforce Maps with ESR1 integration to display high density neighborhoods
Mapping solution for Teams
• Increase sales:
o Geographically visualize data to identify clustered customers and plan sales
route based on travel time and distance of each customer.
o Use on mobile device to help find nearby accounts and fill gaps due to last-
minute cancellations
o Visualize travel paths for scheduled meetings and add meetings based on
proximity to existing meetings.
• Improve territory mapping:
o Get a real-time view of customers, team activities, and performance metrics.
o Create, assign, and balance territories based on key business metrics like
accounts and opportunities per sales rep.
o Use territory visualization to make smart decisions about marketing
campaigns that will help generate revenue
• Boost lead generation: Use Google search engine, business data, or property data to
search for nearby businesses and add them to SF
• Automate the sales process
o Spend less time on administrative tasks by quickly updating records, creating
events, checking in/out of appointments
o Increase overall efficiency by adding SF Maps to schedule and optimize
multiday sales routes in advance
Using SF Maps for Field Service
• Increase customer satisfaction
o Use Live Tracking to pinpoint location of a field rep in proximity to a customer
location
o Automatically inform customer via email or SMS sent from SF
• Manage field service teams:
o Field service teams can quickly check in or out of appointments, schedule
multiday routes, update documentation directly from mobile devices
o Boost productivity by viewing where field team is at any time and reassigning
service calls based on GPS location
• Dispatch calls efficiently:
o Get real-time view of where your field service team is in order to efficiently
dispatch calls based on nearest team member location.
o Get real-time updates of field service team member locations and customer
records in order to best service your customers.
• Ensure service coverage: Build and assign territories in SF to get a real-time view of
customers, technicians, work orders and distribute service requests efficiently
• Softphone: on-screen phone from which you can make and receive calls.
Create softphone layout and assign to user profiles
• Call Center: SF feature integrates SF with call systems built by developers or partners
• Open CTI: a JavaScript API that lets developers or partners build cloud-based call
systems for use with SF Call Center. Since Open CTI is browser and platform agnostic,
support agents can make calls on any browser and platform
Setup Open CTI implementation
1. Install a CTI package created by a developer or partner from AppExchange
2. When installing the package, it creates a call center for org—an Open CTI system that
integrates with SF
3. Adds users to call center: make and receive calls with a softphone in SF
Call center definition file: lists a Call Center’s properties, such as fields, field order, which API
to use, and softphone height and width – usually downloaded as AppExchange package
• XML file a developer creates with code that defines what Call Center can do
• Visualforce page that tells Call Center what softphone looks like
Call Center setup
Service setup > Call Centers > Import > Choose Call Center definition file > Import
1. Add Users to Call Center: Call Center Users related list: Manage CC users > find user:
‘first name contains Michelle’
2. Add Softphone to Call Center: App Manager > Service Console: edit > Add Utility
items: Open CTI softphone > User profiles: add system admin
Embed a chart on account page: visual representation of sales by month for each account in
mobile app
Recommend downloading the mobile app Salesforce1 instead of using browser version:
Downloadable version can import contacts from the device
Downloadable version offers additional security options
Downloadable version can work without a data connection
Approval process in Salesforce1:
Users can receive approvals from both Full Site and submitted via mobile app
Notifications can display as both In-App and as Push Notifications.
Viewing an approval will give you the option to Approve or Reject the request.
You can also add comments to your approval or rejection of the request.
Convert leads while away from the home office: Install AppExchange package to convert
Leads via SF mobile app
Customization
Sync direction:
• Don't Sync
• Sync both ways
• Salesforce to Google/Exchange
• Google/Exchange to Salesforce
Sync events:
• All events
• Events users select
Migration from Salesforce for Outlook to Lightning Sync and some conflicting settings in both
configurations SF gives preference to Lightning Sync settings
Gmail Integration
Setup > Enable Gmail Integration
= let users access SF records from Gmail
• Sales reps can view, edit and add accounts, contacts, leads and other Salesforce
records directly in Outlook and associate emails and events to Salesforce records.
• Action Publisher can be used to pull content from email into Salesforce fields
• Supports sync private event, delete synced events, and automatically relate Google
events to Salesforce records
Outlook Integration
Benefits:
• Eliminate the time they spend on redundant data entry into two applications.
• Access important Outlook email messages and relevant SF records in one place, make
it easier to craft targeted email communications to prospects and customers.
With Outlook integration, reps can do more from Outlook ad with Einstein Activity Capture,
reps avoid busy work and stay focused on selling:
• See and relate relevant SF content in Outlook:
o Add email relevant to sales cycle, so colleagues in SF know what’s going on
o You help boost Salesforce adoption among your sales team
• Access Salesforce features in Outlook:
o Create and Search for Salesforce records
o Relate email messages and nonrecurring calendar events to multiple SF
contacts and to any other SF record that accepts tasks or email messages
• support Sync Event Series
Setup Outlook Integration
Setup > Outlook Integration and Sync > Turn on Outlook Integration
• Enable Enhanced Email with Outlook: log emails as standard message objects
• Activate Email-to-Salesforce: automatically relate emails sent from email applications
to SF Lead, Contact and Opportunity records
• Einstein Activity Capture: email and event add automatically from Outlook to
activity timeline of related SF records
Access Salesforce features and content in Outlook or Gmail:
• Use a side panel to view and work with SF records that match open email or event
• Manually relate emails, events, and contacts to Salesforce records.
• Create new Salesforce records.
• Manage Salesforce tasks.
• Create emails using Salesforce templates.
• Report on activities
Licenses: Standard Salesforce license, Sales Cloud, Service Cloud, Lightning Platform
Einstein Activity Capture
• Keep events and contacts in sync between Salesforce and email application:
events and emails are added to the activity timeline of related records.
• Surface relevant email insights, and get recommended connections on contacts and
leads (Einstein Email Insights, Recommended Connections)
• Aggregate data to get a summary of sales activities
(Activities dashboard, Activity Metrics)
Setup Einstein Activity Capture
1. Give users access to Einstein Activity Capture through a permission set
2. Setup > Einstein Activity Capture > Settings > setup flow guides you through the steps
a. Connecting to the Microsoft server
b. Creating a configuration that controls what to capture and sync
c. Assigning users to a configuration
3. Use only Einstein Activity Standard: turn on email insights
Use Einstein Activity Capture through an add-on license: turned on by default
Licenses: Standard Salesforce license (up to 100 users though Einstein Activity Capture
Standard), Sales Cloud Einstein, Inbox, High Velocity Sales
Inbox
Add to Outlook or Gmail integration, surfaces customer insights and reduces the time on
administrative tasks
• Insert Availability: easily schedule meetings with prospects. Reps can insert available
time slots into email messages straight from their calendars. And if their availability
changes, suggested times in their emails dynamically update, even after they’re sent.
• Email Tracking: see when customers open email and clicked any links inserted email
• Schedule emails to send later: Draft an email message and send it when the customer
is most likely online
• Email templates created in SF and accessed in Inbox
• Einstein Email Insights can flag important emails in Inbox and provide
recommendations on how to respond in Inbox
• Users can create Leads, Contacts, Cases or Opportunities directly from Inbox.
Setup Inbox
1. Outlook integration settings > Enable ‘Let users access SF records from Outlook’
2. Inbox: Edit Settings > Enable ‘Make Inbox Available to Users’
3. Who Can Use Inbox section: Assign Permission Sets > Select Inbox standard /
Inbox With Einstein Activity Capture/ Inbox Without Einstein Activity Capture >
Manage Assignments > add users
Licenses: Sales Cloud Einstein, Inbox, High Velocity Sales
Email Templates
4 types of Template Types:
• Text
• HTML with Letterhead
• Custom HTML
• Visualforce
Considerations:
• Folder and Enhanced Sharing can be enabled
• Insert Email Template is only available on Contacts, Leads, and Opportunities.
Einstein
available for an extra cost in Enterprise and Unlimited editions
Einstein Basics
Smart Assistants: a form of AI that can perform and automate eg. Siri, Alexa
• Voice input: listen to you when you speak
• Natural language understanding (subset of natural language processing):
assistant has the ability to truly understand what you’re saying when you speak and
to respond accordingly
• Voice output (natural language generation): assistant to speak back to you
• Intelligent interpretation: figure out what it is you want next, based on context, past
behaviors, data Eg. ordering sushi every Tuesday night online, Google surfaces ads
around that time next week for sushi
• Agency: assistant can take action on things you didn't necessarily request
eg. schedule follow-up meetings based on unfinished action items on meeting notes
Einstein Out-of-the-Box Applications
Einstein infuses AI into all of SF apps (Sales Cloud, Service Cloud,…) a built-in smart assistant
—so that every business user in every role, function, industry can be assisted right inside of
Salesforce product that they use every day
Out-of-the-box applications
IT: Einstein helps build intelligent apps, business processes, workflows
Sales: Sales Cloud Einstein helps guide reps to the best leads and opportunities so they
increase conversion rates, and close more deals.
• Boost win rates by prioritizing leads and opportunities most likely to convert.
• Discover pipeline trends and take action by analyzing sales cycles with prepackaged
best practices.
• Maximize time spent selling by automating data capture.
Service: Service Cloud Einstein helps customers find answers instantly on their channels of
choice and helps agents resolve cases faster by triaging cases and recommending articles
• Accelerate case resolution by automatically predicting and populating fields on
incoming cases to save time and reduce repetitive tasks.
• Increase call deflection by resolving routine customer requests on real-time digital
channels like web and mobile chat or mobile messaging.
• Reduce handle time by collecting and qualifying customer info
• Solve issues faster by giving your agents intelligent, in-context conversation
suggestions and knowledge recommendations.
Marketing: Marketing Cloud Einstein helps marketers send the right content, to the right
customer, at the right time, on the right channel, thus increasing customer engagement.
• Know audience deeply by uncovering consumer insights and making predictions.
• Engage effectively by suggesting when and on which channels to reach out
• Personalized 1:1 messages and content based on consumer preferences and intent
• Be more productive by streamlining marketing operations.
Commerce: Commerce Cloud Einstein helps retailers recommend the best product to each
customer, at the right time, boosting revenue
• Increase revenue by showing shoppers the best products for them, and eliminate the
time-consuming activity of manually merchandising each individual page.
• Create highly visual dashboards to get a snapshot of your customer’s buying patterns
and use these dashboards to power up your merchandising.
• Personalize the explicit search (search via the search box), implicit search (browsing
in the storefront catalog), and category pages for every shopper, saving your
customers time and bringing your business more revenue.
Einstein Platform
Einstein Platform includes powerful tools that allow admins and developers to build a
customized smart assistant for their business. You can also build capabilities that allow
customers to interact with smart assistants, giving quick answers to questions they have, and
solving routine cases for them
• Data in Salesforce
Data you’ve been putting into Salesforce since the first time you logged in. But, Einstein also
brings in email, calendar, social, IoT, and external data. This data becomes the fuel needed
to train AI models
• Tailored Predictions
Salesforce customers each have their unique data conventions, meaning there is a trove of
custom objects housed on the platform. To scale to all of our customers, across all of use
cases Automated machine learning (AutoML): data cleansing, feature engineering, and
automated model selection are automated
Example:
Team needs a list of customers who bought that item, customers who didn’t, and attributes
to understand which factors were the most significant in leading to purchasing that item.
• AutoML’s data cleansing sifts through data and detects errors (duplicates, incomplete
fields, changes) and either automatically fixes them or flags them to be fixed
• AutoML also includes feature engineering, which automatically combs through your
data and begins identifying the most significant features for buying the item
• AutoML uses automated model selection to build a unique predictive model that
weighs the significance of each feature
Einstein tools
Einstein Insights
Einstein Opportunity Insights: updates, key moments, reminders to help win deals
on opp record (based on detail) or on home page (opp owned by current user)
• deal predictions are based on recent activity and existing opportunity data
• follow-up reminders are shown when a contact hasn't responded or there hasn't
been any communication in a while
Send a notification to sales reps when their opportunities remain open past the close date.
Enable Einstein Opportunity Insights (or use Flow with a scheduled action and an email alert)
Einstein Platform
Einstein Bots
Einstein Bots allow you to build a smart assistant into channels like chat, messaging or voice.
Use Natural Language Processing (NLP) to provide instant help for customers by answering
common questions or gathering the right information to handoff the conversation
seamlessly to the right agent for more complex questions or cases
Einstein Voice
Enables all users to talk to SF from any device. Einstein Voice is divided into two buckets:
• Enabling organization: Einstein Voice Assistant
enable anyone in organization to talk to SF eg. priorities, sending notes, creating and
navigating through dashboards
• Enabling customers: Einstein Voice Bots
customers can interact with your brand with their voice: Bots will search through
Salesforce and find the answer, and it will speak the answer back to the customer
Einstein Prediction Builder
Make custom predictions on non-encrypted Salesforce data
Ask yourself which objects and fields you want to predict:
• Do I want to predict the answer to a yes or no question? (Binary Classification)
eg. is this zip code a good opportunity for my business?
• Do I want to predict an amount? (Regression—in Beta)
eg. what for price can we sell the product for?
Working of Prediction Builder:
• Choose the object you want to predict on eg. retail store
• Choose the field you want to make a prediction for eg. attrite
• Bring in the dataset that includes all of the line items for retail store and whether or
not they’ve attrited, along with other characteristics surrounding the customers
• Prediction Builder will provide you with a percent likelihood of whether a customer
will attrit and the top positive and negative features surrounding the prediction
Einstein Next Best Action
Use rules-based and predictive models to provide anyone in business with intelligent,
contextual recommendations and offers.
Example: Create a proposition on recommending a 10% discount on two-year contract to
customers who have an 80% or higher likelihood of attrition. As your service reps come
across predictions of customers who fall in that category, they’ll be recommended right in
the Lightning Console to follow up with them and send the 10% discount
Einstein Discovery
Like Einstein Prediction Builder, Einstein Discovery also predicts outcomes by getting full
understanding of relevant patterns on all data to make predictions. You can have full control
of the data they’re putting into the predictive model and be able to dig deeper into the
predictions and insights (tell you which insight is more important)
Einstein Vision:
• Einstein Image Classification: by uploading an image, can understand
eg. whether equipment is damaged, where damages are, estimate cost of repair
• Einstein Object Detection: extracts and contextualizes objects in images
eg. identify how many of certain items there are, so your team can accurately plan
when to order more, saving on unnecessary spending
Einstein Language:
• Einstein Sentiment: can surface through social media to see whether people post
about the product and what they say. By using positive and negative sentiment
filters, understand who likes or dislikes the sweatshirts
• Einstein Intent: categorize different text eg. what customers saying about the
product: whether they’re talking about the color, texture, durability
Quip basics
Quip decomplicates your life and gives team a platform for fluid communication across
departments, all the conversation about work happens in the same place
Boost productivity and increase collaboration
• See highlighted comments and conversation happening right in document, so you
know exactly how to prioritize feedback
• Notified about any changes, so you can focus on what matters most
Quip Features
• @Mention: add images, Live Apps, people’s names, dates, and documents
• Comments and Conversation Pane: share documents and data with team members
and customers, add a comment, tag external vendor, ask for feedback
By having everyone on same page, avoid duplicating work
• Live Apps: help you manage important dates and the specific tasks that need to
happen to accomplish each step eg. @project tracker, @calendar, @kanban
Manage notifications: click picture or email in the bottom left (desktop, mobile, email)
Access
Sharing: click blue Share button in upper-right > add people or folders
• Folders: share document with people that have access to the folder
Add document to multiple folders
• Search: give in title and content of document or use filters like ‘date’, ‘modified by’
• Add a document to your favorites: just Star it
Permissions: at individual user and folder level
• Full Access: Can share and edit.
• Can Edit: Can edit, but not share.
• Can Comment: Can only view and comment
• Can View: Cannot share, edit, or comment.
Utility bar is a fixed footer (different for each standard and console app) where you can
quickly access handy utilities and common productivity tools, such as Notes, Quip, a flow
launcher, telephony features
Home page
• Performance chart displays data based on opportunities
• Assistant shows you things that you need to address, including:
o Leads assigned to you today
o Opportunities with overdue tasks
o Opportunities with no activity in 30 days
o Opportunities with no open activity
o Overdue opportunities
• News: you can get timely news articles about customers, partners, competitors.
• Upcoming Events: see the next 5 meetings in calendar today
• Today’s Task: eg. up to 5 tasks due today
• Recent Records card: gives you fast access to recently viewed records
• Top Deals: convenient list of top open opportunities
Notes & Files
Create notes from:
• Global Actions menu
• Utility bar
• Navigation bar
• New Note action in record’s action menu: automatically related to a record
• New button on Notes related list
Enhanced Notes that you create for a record are in Notes related list
Notes created for the record using classic notes tool are in Notes & Attachments related list
Note Editor:
• Highlight important details and enhance meaning by adding bold/italic to text
• Organize info with bulleted and numbered steps
• Add clarity and memorability by embedding pictures or images
• Add to Records: expand the visibility and impact of important information by relating
a note to multiple records, such as relevant opportunities, accounts, and contacts
• Share a note with groups or teammates
Files unifies your files, documents, and libraries
also integrates files access directly into the flow of your business, so you can grab the
content you need from wherever you are in the app
Activity Timeline
When you look at a record, see activities in Open Activity and Activity History related lists
• Upcoming & Overdue: see what’s planned
• Past months: see what’s already happened
• Expand All: to see details for all the activities
• Filter: on date range, activities to show, activity type (email, events, tasks),
sort order (newest/oldest activities)
Actions to perform in timeline:
• Update an activity: click the dropdown arrow and editing options appear.
• Complete a task: click checkbox to mark it complete
Tasks
Click Tasks tab, or click View All from Today's Tasks on Home page
• Quick Actions: change status, change priority, edit, and delete
• Mark Complete: from any list view
Calendar
Calendar tab: making it easy to get to your schedule
• New Event: click on button or click the day and time the event starts
• Add multiple calendars at the same time with user lists:
Coworker views your calendar, details they see are determined by the default access
To show a specific coworker more or fewer details about your schedule:
click Calendar options button next to My Events calendar > Share Calendar
• See SF data as events on a calendar eg. opportunity close dates
Choose the object > select date fields
Email
Classic: Create and send emails from HTML Email Status related list
LE: Activity Composer on a record and the Global Actions menu
• Fills in the To address for you
• Relate the email to another record in Related To field
see the email in the activity timeline, when you look at the record
• Buttons on email: add attachments, insert merge fields, insert or create a template,
preview your email before you send it, erase what’s in the email and start over
List Email: send email to a group
Start from a saved list view, where list has been filtered to focus on a group of recipients
Check Review tab to confirm that recipients and any merge fields appear as wanted
Email Templates: created with Email Template Builder, with rich text support and easy file
preview and sharing. Send the email attachment as a link to keep them up-to-date
Need Letterhead, Custom HTML, or Visualforce templates: use Classic templates until these
features are available in Lightning templates
Search
When you click in the search box, you see a list of 5 recent items
• Full Search: Searches for term across searchable objects Top Results page
• Full Object-Specific Search: within current object Object’s search results page
• Suggested Records—Lists up to five records that have a name that matches search
term. Records include recent items, items from most frequently used objects, and
from current object
Dropdown (next to global search box):
• Focus search to a specific object: objects you use most frequently are at the top,
followed by all searchable objects, in alphabetical order
• Groups: select the Groups item to narrow your search to just group records
Search results pages:
• See Top Results from most frequently used objects on one page
• See all the results for an object by selecting the object
• Sort search results by clicking the headers
• Refine by: fields to filter are set up in search results layout and can be only on the
columns that appear on the search results page
eg. Search for a File: fill in the owner, file extension (PDF), last modified date
Chatter
Chatter is enabled for all users by default
• Add an inline image and linking from the post, insert code snippets, select an emoji,
mention a person or a group.
• The link-to-record: / record name
• Paperclip button for attaching up to 10 files to the post.
• Tabs: Poll or Question
• Image Inline: click image icon in Chatter publisher
• On posts, comments highlight text want to link from > click Link icon > enter URL
• perform tasks such as posting, creating a poll or question, sharing a file and etc.
• A single post or comment can have up to 25 mentions
o cannot mention archived, unlisted, customer and private groups they are not
a member of
o When you are mentioned by others, post appear on To Me' feed
Chatter Settings:
• Groups: allow group archiving, allow records in groups, enable unlisted groups
• Allow draft posts
• Allow emoticons
• Users can set OOO messages
• Allow approvals
• Allow post pinning
Publisher Action: perform tasks such as posting, creating a poll or question, sharing a file
Standard actions such as Post, File, Link, Poll and Question added to publisher by default
when Chatter is enabled
• SF will automatically enable following certain feeds
eg. a user will automatically follow their manager and the team.
• When you post to Chatter, maximum file you can upload is 10
In the Chatter comment, you can only upload 1 file
Chatter Licenses
Chatter External: for users who are outside of company’s email domain/customers,
can be invited to Chatter groups that allow customers
o Access info and interact with users only in the groups they’re invited to
o No access to Chatter objects or data
o View user profiles, but they can’t edit them
Chatter Free: for users who don’t have SF licenses but must have access to Chatter
o Access standard Chatter items such as people, profiles, groups, files
o No access to SF objects or data
Chatter Only (Chatter Plus customers): for users who don’t have SF licenses but must
have access to Chatter and some additional SF objects
o Access to accounts/contacts, R&D, workflows, View and modify up to 10
custom objects
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 group’s picture and description, but not the group
feed or files
Unlisted groups: users must be invitated (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 Need to be enabled, not by default
Only members may be able to delete group feed content
‘Manage Unlisted Group’ permission: non-member have access or modify
unlisted groups, its files, feed content
Cannot make existing group Unlisted, but can change Unlisted group to Public
or Private
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
Delete a chatter post not created by you, need either following permissions:
• 'Moderate Chatter' permission
• 'Modify All Data' permission
• 'Can Approve Feed Post and Comment' permission
Chatter Group Notifications:
• Every Post
• Daily Digest
• Weekly Digest
• Limited
Private Messaging (Salesforce Classic): 'Send a message' on user profile can be used to send
private message to the person
Streams = combine multiple feeds from different objects, people, groups into a single view
feeds from groups working on project, topics discussing it, people assigned to it
(up to 5 streams/user)— have up to 100 streams and up to 25 feeds per stream
App Launcher > Sales Console > Chatter > New Streams > Name > Records to follow: specific
accounts > Notify Me: Every post/Never
• Add feeds to it right from a feed’s Follow action: What I Follow
• Deleting a stream doesn’t delete the feeds it contained
In Classic shared post is basically a copy of original
In LE shared post is more like a window on original: if original post is edited, shared version
also shows the update
From a post’s Share menu > select Copy Link > click Copy Link
only the people with access to the post’s home feed can navigate to the shared post
Scoop on Groups
• Seen-by capability in private and unlisted groups: need to be enabled to place a seen-
by count by each post and click the count to see who’s seen that post
• Pin up to 3 posts to the top of group and topics feeds (assign pin post permission to
selected users)
• Image to promote group identity and banner to make page more visually compelling.
A statement about the group type, “Private with Customers”
• Actions to take in group and tabs for polls, questions, announcements
• Field for searching in just this feed
Sales managers want greater visibility into opp in progress with their teams and would like to
receive email notifications when key opp fields are changed (e.g., amount or stage):
Configure Chatter and notification settings
Work.com
= drives sales team performance through better coaching, motivation and team alignment
by using award badges and provide recognition to users (not yet available in LE)
Improve consistency and close more deals
Enable Settings
Thanks Settings: thank coworkers
Thanks action (Lightning action for mobile) add to page layout – Related to work.com
Recognition Settings: add rewards to badges
Coaching Settings
Goal Settings
Perform Settings: admins and managers can get a big picture view of performance
across teams to make easier decisions around compensation
Skills Settings: use skills to discover, collaborate with others based on knowledge
Feature of work.com add-on to help increase sales productivity:
Managers are able to provide users with feedback
Managers are able to offer real-time coaching to users
Feature of work.com to help sales rep meet their quotas:
Coaching feedback that automatically adjusts the goals
Coaching plans to help sales rep drive results
Business Analyst
Project-based, business-improvement role: help guide businesses to improve business
processes and efficiency in SF. They elicit, document, and analyze requirements around
business challenges, and then produce data-driven solutions
GATHER INFO (REQUIREMENTS) > ANALYZE INFO > SOLUTION > IMPLEMENT > TEST
Skills
Information Discovery: gather information from all levels. This is one of the most important
steps in the business analyst process
• Project History: gather a significant amount of background info on the project, either from
stakeholders or other sources.
o Ensures that you don’t repeat work that’s been done or rehash previous decisions
o helps understand existing systems, design, requirements, business processes
• Analysis: understand as much as possible about a project
o Enterprise Analysis: learn and understand org’s structure, including who reports to
whom, functions and interactions of departments
o Strategy Analysis:
Identify business need
Identifying what is different between current and desired state: achieving
the desired state, including work or scope required
Develop a plan of action to address the potential risks.
o Stakeholder Analysis: identify stakeholders early on who make decisions and who
have an important role in determining the priorities and requirements for project.
(SH = anyone who has an interest in, may be affected by, issue under consideration)
• Elicitation: main path to discovering requirements and design info, and might involve talking
with stakeholders directly, researching topics, experimenting or being handed info
o Prepare for elicitation: gather accurate understanding of project’s business need
o Conduct elicitation: meet with stakeholders to elicit info regarding their needs and
business needs
o Confirm elicitation results: validate that stated requirements match the problem and
ensure that understanding conforms to desires or intentions of stakeholders
Analysis and Synthesis: look at both the details and the high-level info to chart needs and to
develop plans and schedules. They also look at the skills and experience of people involved
to determine how the team can best work together to achieve a successful outcome
Communication, Collaboration, and Documentation:
need to document and share information so that stakeholders and other involved parties
have a clear understanding of the project, the goals, and the proposed solution
Communication Methods
• Verbal Communication: convey ideas, facts, and opinions
helps you to elicit and clarify info in a timely manner.
• Non-verbal Communication: Most communication is nonverbal
help you know what someone is truly saying, and ensure that you communicate
message you intend eg. eye contact, personal space, body language
• Written Communication: for reference to keep people in sync
Share info through documents, emails, chats, blogs, memos, requirements
Document types
The types of documentation you create depend on varied factors:
Type of project, business need, Stakeholder needs, Assumptions, Constraints
• Glossary of terms: list of key terms and definitions that boosts understanding across teams
• RACI chart (responsible, accountable, consulted, informed): It’s a matrix that delineates who
is responsible for what in the context of the business analysis effort
• Interview and elicitation records: capture important info from stakeholders
• Stakeholder analysis: identify who you should talk with to understand the business problem
or who can help flesh out the requirements
• User stories: describes the functionality that a business system should provide so that it can
be developed (format: “As a…. I want to… So that I can…”)
• Use cases: identifies and organizes system requirements from the perspective of a user
• Business analysis plan: lists all business analysis activities take place throughout project
• Current state analysis: BA analyzes and documents current state before scoping a project
• Scope statement specification: (most fundamental!) clear definition of what needs to be
achieved and the work that must be done to deliver the project or product
• Functional requirements specification (FRS): business requirements that are defined from an
end user or business perspective. It will specify the expected outcomes.
• System requirements specification (SRS): details how the complete system should function
and enumerates hardware, software, functional and behavioral requirements of the system
• Wireframes and other visual documentation: contains renderings of the user interface
• Test plans, test cases, or user acceptance test plans: These documents describe the test plans
and detailed test cases that the team will use to validate the functional requirements.
• Change management: describes the method for pushing out changes to the business.
Best Practices
A little strategic timing in producing your deliverables, waiting for right time to solution, and
running meetings like a pro will go a long way to increase chances on successful project
o Meaning meeting agenda: have an idea of how time is budgeted, so there’s a
better chance the meeting will stay on track. If it starts getting off track, you can
return to the agenda as a way of bringing things to order
o Sequencing your deliverable strategically help project:
early quick win can develop trust and buy-in from customer
As an advocate for the customer:
o Lookout for opportunities to bring other teams into discussion when they’re going to
be affected by the project, might find that they have some common business needs
o Don’t develop solutions in a vacuum: bring customer a choice of solutions so you can
discuss which one will best suit their needs
Improvements:
• Run benchmarks on the existing process: make sure your tests produce something
reliably quantifiable. Every bit of benchmark data is useful: customers want to know
just how much things have improved because it’s a big part of calculating ROI
• Seek for feedback:
o Finish writing some requirements? Give them to someone who hasn’t been
part of the elicitation process, see if the requirements make sense.
o Have a possible solution for a business requirements? Post it to a community
board and ask for comments.
o Is it time for UAT of a solution? Ask testers to narrate their thoughts
Customer-centric conversation strategies
Discovery helps build valuable relationships with customers and confirms trust
Internal
Internal Executive Sponsor, Executive Vice President, Senior Vice President
• Understanding the customer and their business
• Knowing the key stakeholders and their sentiment towards our product
• Understanding our product’s place in the long-term company vision
Internal Sales Executives and Sales Teams
• Understanding the customer and their business
• Locating opportunities to grow
• Understanding what the customer needs for sales to be successful
• Finding out what will lose the deal or customer
Internal Product Executives
• Understanding the customer and their business
• Determining if our product is sustainable at the company
• Implementing solutions to current product issues
External
Chief Executive Officer (CEO)
• Shareholder value
• Corporate growth
• Revenue growth
• Corporate philosophy & culture
• Driving company vision
Chief Information Officer (CIO)
• Sentiment
• Simplification
• Digital transformation
• Relationship between business and IT
Chief Operating Officer (COO)
• Day-to-day operations
• Implementation issues
Chief Marketing Officer (CMO), Innovation Officer, Digital Transformation Executive
• The overall experience for the consumer and users
• Customer interface
• Product management
• Market share/gross
• Margins and product growth
User Story creation
User story helps translate technical requirements into easy-to-understand ideas
= simple descriptions of a feature told from user’s point of view
Explain the roles of users, their desired activities, and what they intend to accomplish
but don’t outline the entire requirement, just a synopsis of it
Eg. The direction from sales leadership is to define access to dashboards based on region.
Users within the region have access to regional dashboards, while leadership team has
access to global dashboards Create region-based sales groups, one leadership group, and
one Dashboard folder with View access
Reports
= list of records that meet the criteria you define, displayed in rows and columns.
Every report is stored in a folder
• ‘Find Reports and Dashboards’ search box: search for the selected folders
• What records you will have access to when running reports: Records you own, owned
by users below in hierarchy, read/write access, shared records
Report Type
Report type is like a template: determine which field and set of records, objects are available
in a report based on the relationships between a primary object and its related objects.
Reports display only records that meet criteria defined in the report type
• Never change report type if the report is created
• Report type determines: available filters, default columns, object and fields
• Field layout determines which fields are available for reports based on report type
Report Types
= defines the set of records and fields available to a report based on the relationships
between a primary object and its related objects.
o Standard Report Types: created for standard objects automatically and custom
objects if selected Allow Reports in Object Settings
Primary object and related objects are fixed: 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
eg. Add a new field to Opportunity, it will be automatically insert into all
existing standards (Opportunity report type, Opportunities with Products)
• Field cannot be hidden from a report type and will always be available
• Standard reports are NOT visible through Reports search
o Custom Report Types: Select which of related records and fields will show on report
Can define Primary object (not change after save) and up to 3 related objects (edit)
Records not meet report criteria and use “with” or “without” related records
• New Custom Report type needs to be deployed: for users to find it
• Fields available in Report Builder can be limited, reorganized and renamed
• When a field is created, needs to be added to field layout to make it available
• Fields can be hidden from the report type to prevent from being used
• Can include additional fields such as fields that are related to a lookup object
Add fields related via lookup
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/without related object eg Opportunities with/without Products,
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. Used to display contacts
(primary object) which have at least one inquiry, with inquiry related to at least one activity
• In Development: report type and its reports are hidden from all users except
user with “Manage Custom Report Types” permission
• Deployed: to let all users access the report type
2. Select a child object: only related objects are shown
The number of children depends on the objects you choose
• Each "A" record must have at least one related "B" record:
Only parent records with child records are shown in the report.
• "A" records may or may not have related "B" records:
Parent records are shown, whether they have child records or not.
3. Create Field Layout: Fields Available for Reports > Edit Layout > Preview Layout:
which fields display on Select Columns page of a report customized or run from this
report type > drag fields to left > Optionally: click Add fields related via lookup
Limits
• Can contain up to 60 object references
• If a user runs a report from a custom report type and the report has columns from
more than 20 different objects, an error occurs
• Add up to 1,000 fields: If you have too many fields, you can’t save the layout
• Cannot add History fields, Product schedule fields, Age field on cases/opportunities
Report Formats
Report formats are not explicitly selected in Lightning Report Builder, but they automatically
adapt based on the grouping that is configured in the report
1. Add or remove fields
2. Choose correct filters and range
3. Choose report type
Bucketing = categorize records (buckets) by grouping report values without creating a
formula or a custom field
o Tabular (default): a list of records, displays an ordered set of fields in columns where
each row represents an actual record simplest and fastest way to look at data
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 there is a limit on number of rows, can be as a source report in dashboard
Reports > New Report > Report type: ‘Opportunities’ > Filters:
Show Me: All opportunities – Status: open – Date: Created Date – Range: Current FY
o Matrix: group records both by row and column (2 levels of grouping for both)
Compare totals eg. Total Revenue, Quantity sold products,
more detailed view of data, analyzing large amount of data
• over 2,000 records in a report, detail rows cannot be clicked to show
• Stacked Summaries option metrics (enabled by default): grouped by row
instead if it is disabled the metrics are placed in different columns
• Most time-consuming to set up, but most detailed
• Mathematical operations: sum, avg, min/max
Exercise: wants to know revenue trends, month over month
Reports > Report type: ‘Opportunities’ > Filters: All – Status: Closed Won – Date: Close Date
• Summarize by Sum of Amount: dropdown on Amount column > Summarize: Sum
• Under GROUP ROWS: Close Month
Under GROUP COLUMNS: Type: Outline
o Joined: multiple reports (same or different report type) can be displayed side-by-side
using blocks, only 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, filtering (up to 5 blocks: each block up to 2000 records = 10,000)
Performance scorecard, Cases by status with blocks for new and closed cases,
Number of open opp in current quarter and closed opp in last quarter
• 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
Reports > Report type: Opportunities > click arrow next report: Joined report
• Add another report type to joined report: Add block > Add Report type
• Customize joined report: add columns, groups, filters, formulas
Sharing model
Reports only show records user has access to: different users with different permissions run
a report, the report will show different data depending on what records they have access to
Run report access:
• Users need to enable Run Reports permission on their profile
• User should have access to the object (records) which contains information
• User should have access to the folder where the report is stored
Sharing settings
• Folder sharing: 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: 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 see data to which they have access and those below
in role hierarchy if enabled Different users see different results for same report
• Page layouts have no impact on record visibility in reports: a field can be viewed even
if it is not visible on a page layout
Report subscriptions: Schedule and Emailing reports
Schedule a report: Drop-down Run Report: Subscribe
Scheduled reports run in the time zone of the user who schedules the report
• Frequency: Daily, weekly or monthly
• Date range: Start and End date
• Specify the report to email and it is emailed within 30 min of preferred start time
• Specify the running user
Report Builder
Tools for customizing
ParentGroupVal:
• Parent group is a grouping that is one level above the current grouping
• A parent group can be a particular grouping or grand summary.
• This function can only be used in custom summary formulas and at grouping levels
for reports, but not at summary levels
PrevGroupVal:
• Previous group can be a row or column group before the current group
• This function can only be used in custom summary formulas and at grouping levels
for reports, but not at summary levels.
Use filters
Field layout determines which fields the report type includes
Custom report type: allow you to expand filtering options on standard reports
Field filter For each filter: set the field, operator, and value (field types: numeric, date, datetime)
With tabular, summary, and matrix reports: drag a field to add a report filter
Filter Logic Add Boolean conditions: AND/OR/NOT
Add at least 1 field filter before applying filter logic and only be added on custom filters
Cross-object filter Allow you to exclude/include data:
To limit the records displayed to those ‘with’ or ‘without’ child object records (up to 3)
Add subfilters to further filter by fields on the child object (up to 5 subfilters)
Row Limit For tabular reports (classic only) select the maximum number of rows to display, then
choose a field to sort by and the sort order
eg. row limit 10, sorted by Account Owner, Ascending
Cross-Object filters
= extend reports to objects related to the original objects defined in the report type
Exclude data: Opportunities without activities in the past 90 days
Include data: Contacts with accounts (want to add these contacts to accounts)
eg. wants to know which Accounts with open Opportunities are missing Contacts
Reports > Report type: Accounts > Filters: Date: Created Date – Range: All Time >
Add Cross Filter:
• Select Parent object: determines which related objects you see in child object list
Select Child object from secondary Object dropdown: Opportunities
• Add subfilters: Click Add Your Related Child Object Filter > field - equals – value
Report charts
Don’t want to create a dashboard, but want to add a chart to report but the record must
have at least 1 group: any summarized field, custom summarized formula or record count
• Any chart in report can be added to page layout: each point/bar/wedge/segment in
chart represents data from a summary row of a grouping
Edit page > drag Report chart (related records) into canvas
Charts
Horizontal bars: comparing distance or time, limited to a single grouping
Stacked bar: show summary values from two levels of grouping in report
eg. compare status of leads by campaign and also to compare the totals for each status
Vertical columns: grouping by a date field or showing relative counts such as comparing
different employee counts at companies, used on summary report with a single grouping
Line chart: show changes in value over time
show summary values from two levels of grouping in report (as stacked bar)
Donut chart (%): data is displayed as multiple groupings contributing to a total value (in the
middle), each wedge presents data from a summary row of grouping
Funnel chart (%): multiple groupings to show proportions among the set,
larger segment suggests area of interest eg. viewing opportunities stages in a sales pipeline
Scatter chart: data grouped by summarized values for one or two groups of data
eg. how stage duration correlated with the number of activities for opportunities
Combine 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
Dashboards
Dashboard = visual display of data from reports which are very useful in analyzing data,
keeping track of changes.
• Relationship between a dashboard component and report is 1:1
Each dashboard component shows data from one underlying report
Can use the same report in multiple dashboard components on single dashboard
• Every dashboard is stored in a folder: to view dashboard components, you need
access to the underlying reports as well
• Follow a dashboard in Chatter: get updates about dashboard posted to your feed
Classic <> LE:
• When create a dashboard in LE, you can’t edit it in Classic
• When create a dashboard in Classic, then edit and save it in LE, not edit it in Classic
Dashboard components
Depend on source report and up to 20 components
Perfect Sales Dashboard should have these 12 metrics
Joined reports: can be displayed in dashboard components but report’ chart must be used
Data filters and other settings will be disabled in the component
Dashboard Configurations
• From properties menu: change name, move into a different folder, and
set “view as” options (Me, Another Person, Dashboard Viewer)
• Dashboard Grid Size: by default use a 12-column layout with unlimited rows
• View Dashboard as dashboard viewer and allowed viewers: click on Change
• Click collaborate button: opens up Chatter eg. mention people and groups
• Share: expand > click collaborate button > create a post > Share
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
• Dashboard subscriptions can be by user, group, role-based
Create and customize dashboards in personal folders
Create, edit, delete dashboards and manage their sharing in all public folders
Permission is required to let dashboard viewers choose whom they view dashboard as
results:
• View My Team's Dashboards: users view dashboard as any user below them in role
hierarchy
• View All Data: users can edit dashboard and view it as any user in org
• Enable Other User's Dashboard: users can edit any dashboard they have access to
(not need to be running user or View All Data permissions)
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 they normally 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 logged-in user who is currently viewing: according to their own access
Eliminate to create the same dashboard for multiple users
Enable Grant Access Using Hierarchies for the objects containing the report data
• Cannot follow components, therefore users cannot customize the dashboard
• Cannot save dynamic dashboards in private folders
• Dashboard subscription is disabled: cannot schedule refreshes automatically,
only manually
Dashboard Builder
Dashboard Filters:
• Filters can’t be added to dashboards that contain Visualforce components
• It’s not possible to filter on bucket fields. However, it is possible to use a
report filtered on a bucket field on the dashboard page.
• Filters aren’t applied in refresh schedules or subscription email a dashboard.
• You can’t filter data on a joined report in dashboard view
Reporting Snapshots
Reporting snapshot lets you report on historical data
Authorized users can save tabular or summary report results to fields on a custom object,
then map those fields to corresponding fields on a target object
Eg. analyze how sales funnel is changing throughout the month. Wants to store detail of
open opportunities weekly, and forecasts and closes business monthly
After a reporting snapshot has run, you can send an email notification that includes
• details about reporting snapshot run, such as the date and time it ran, whether it ran
successfully, and how many records were loaded into the target object
• a link to the reporting snapshot detail page in SF
Edit on Schedule Reporting Snapshot: Reporting snapshots run as scheduled only if the user
in the Running User field has access to the folder in which the source report is stored
• Email reporting snapshot:
o Me
o Other user: email addresses included on SF user records, not extern
• Select Frequency (Daily, Weekly, or Monthly)
If you schedule a reporting snapshot to run on a specific day of every month, the
reporting snapshot will only run on months that have that specific day
• Start and End fields: specify dates during to schedule the reporting snapshot to run
• Preferred Start Time > Find available options (run in time zone of selected user)
Runs within an hour of the time you select
Run History
Displays if a reporting snapshot ran successfully or when its fails
Show change:
• Format Change: highlighted in red (value decreases) or green (value increases)
• Show Change as 'None' or 'Value’ Change column for each snapshot dates
Examples
Eg. Report points out opportunity amounts and close dates that have changed since 3
months ago
1. Setup > Enable Historical Trend Reporting for Opportunities
2. Report > New > Opportunities with Historical Trending
3. Filter: Date range = Close Date
4. Click down arrow on Amount (Historical) and Amount columns > Summarize > Sum
5. Click down arrow on Amount column > Show Change > Value
Eg. Focus only on deals in pipeline > $5,000, not concerned about today’s fluctuations
Create historical trending report filters out any deal whose value < $5,000 yesterday
• Add filter: select Amount (Historical) greater than Value: 5000
• Add filter: Historical Close Date = Yesterday
Eg. Historical trending report gives you deals whose value yesterday > value today
Filter out any deal that wasn’t worth more yesterday than today:
Close Date (Historical): Yesterday greater than > Field
*Any Snapshot Date is selected for the historical date: the filter returns results when the
filter criteria are true for all of the snapshot dates
Create a historical report in matrix format of the amounts team members have assigned to
each forecast category. Changes in amounts reveal how accurately team is forecasting:
1. Setup > Enable Forecasting Items with Historical Trending
2. Report > New > Forecasting Items with Historical Trending
3. End Date > Current FQ
Historical Date > choose 3 Months Ago, 2 Months Ago, 1 Month Ago
4. To create a row grouping: drag the Owner: Full Name, Forecast Category
Drag the Forecast Amount (Historical) > Summarize dialog > Sum
Create chart: Sum of Forecast Amount (historical) for Y-Axis and Snapshot Date for X-Axis.
Group By: Forecast Category > select Cumulative
Formula editor
• Simple formula: allow selection of fields from the same object and use operators
• Advanced formula: allow selection of fields from the parent object and use functions
• Text area:
- Whitespace doesn’t matter
- Formulas = case sensitive: pay attention to capitalization of field
- When working with numbers, the standard order of operations applies
- Add comments to formula (/*) comment (*/)
- If your formula references any number, currency, percent fields;
‘Treat blank fields as zeros’ or ‘Treat blank fields as blanks’
Logical Operators
= and == (Equal)
<> and != (Not Equal)
&& (AND): Evaluates if two values or expressions are both true (logical function: AND)
|| (OR): Evaluates if at least one of values or expressions is true (logical function: OR)
Text Operators
& (Concatenate): connects two or more strings eg. a new field ‘Name’ that shows both of
these values ‘First Name’; ‘Last Name’ in one field (FN & ‘ ‘ & LN)
FORMULA FUNCTIONS
Functions can be used as-is eg. TODAY() function returns the current date
Functions require extra info = parameters eg. LEN(text) finds length of text you input
Picklist fields:
ISPICKVAL: determines if the value of a picklist field is equal to a text literal
ISPICKVAL( Status__c , "Closed - Filled") = TEXT(Status__c) = “Closed - Filled”
IF(ISPICKVAL(picklist_field)) = CASE (picklist_field)
IF (OR (ISPICKVAL (Priority, “High”), ISPICKVAL (Status, “New”)),
ROUND (NOW ()- CreatedDate, 0), null):
returns the number of days a case has been open if the status is new or the priority is high. If
the case was opened today, this field displays zero
CASE: Checks a given expression against series of values
If the expression is equal to a value, returns the corresponding result. If it isn't equal to any
values, it returns the else_result
eg. display an account's rating on all contacts related to that account:
CASE(Account.Rating, "Hot", "Warm", "Cold", "Not Rated") or Text(Account.Rating)
TEXT: Returns a picklist value’s API Name so that you can work with a reference to the value
in functions that support text values, such as CONTAINS or
converts a percent, number, date/time or currency type field into text
Multi-select picklist fields:
INCLUDES: any value selected in a multi-select picklist field equals a text literal
ISBLANK: takes a single field – returns true if it not contain a value and false if it does
ISNUMBER: the value in Custom Field called Salary is 50.000, formula return ‘True’
IF: perform a test and return different values depending on whether result of test is T/F
Multiple IF’s to evaluate a condition with multiple outcomes
NOT: Returns FALSE for TRUE and TRUE for FALSE
AND: returns a TRUE response if all values are true, and returns a FALSE response if one or
more values are false joins together multiple conditions
HYPERLINK open in a new browser window by default and can be added to list views, reports,
related lists. Use a complete URL, including the server name and https://
eg. HYPERLINK("https://www.krefel.be/nl/p/" & Product_Reference__c, Name)
exp1 && exp2 && exp3: returns true when exp1, exp2, and exp3 are all true
exp1 || exp2 || exp3: returns true when any one of exp1, exp2, or exp3 are true
Eg. VR that Close Date has a value whenever Status field is Closed – Filled/Not Approved
ISBLANK(Close_Date__c) &&
(ISPICKVAL(Status__c , "Closed - Filled") ||
ISPICKVAL(Status__c , "Closed - Not Approved"))
Scenario’s
Example 1: Displaying an Account Field on the Contact Detail Page
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
Data type: formula > type: text > advanced formula editor > insert field: Contact | Account |
Account Number
Put new formula field in a report: New Report > Opportunities > enable ‘Update Preview
Automatically’ > add column: formula field
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: give a function a number parameter and expects text
Formula result is incompatible with formula return type: select one data type when creating
the formula field but write a formula that returns a different data type. Eg. My Account
Formula (number) expects to return a number, but the TODAY() function returns a date.
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.
Field does not exist: This error indicates that you’ve included a field in your formula that
your object doesn’t support.
Unknown function: In this case, check that SF supports the functions you’re using
This formula creates a hyperlink to an external website using the HYPERLINK() function. Add
hyperlinks to page layouts helps users access important info quickly from the detail pages.
Account website (text)
HYPERLINK(“http:/www.veryimportantwebsite.com”, “Very Important Website”)
Applying 12% discount and rounding result to two decimal places using ROUND() function.
Discounted amount (number)
ROUND( Amount – (Amount * 0.12), 2)
Evaluate if the student has passed the exam if percent obtained > 50%:
Setup > fields or relationships > new > formula: Text > advanced formula > insert functions
“if” > ‘if total_percent__c > 0.50, value if true (‘Passed’), value if false (‘Failed’)’
• Once created, cannot change detail object or delete any field referenced in roll-up
• Not use long text area, multi-select picklist, Description fields, system fields like Last
Activity, cross-object formula, lookup fields
• Because roll-up summary fields are not displayed on edit pages, you can use them in
validation rules but not as the error location for your validation
• If the master and detail records are in different currencies, the detail record value is
converted into the currency of the master record = advanced currency management
• Assignment rules can be triggered if roll-up summary field value is updated
• Calculating roll-up summary field values may take up to 30min:
Automatic calculation (recommend)
Force a Mass Recalculation on edit page: manually recalculate the value
(SF NOT recalculate the value of campaign roll-up summary fields when leads
or contacts are deleted)
Summary types
COUNT: Totals the number of related records
SUM: Totals values in field selected in Field to Aggregate (number, currency, percent)
– amount, expected revenue, quantity, probability (%)
eg. Total expected revenue of all the Opportunities related to Account
MIN: Displays the lowest value of the field in Field to Aggregate for all directly related
records (number, currency, percent, date, date/time)
– amount, quantity, probability, close date, created date, last modified date
eg. Minimum List Price of an opportunity
Exercise:
1. Total Rating field on each Job Application record that shows the sum of ratings:
Setup > Account > F&R > New > Roll-up summary > Object to summarize: on detail side >
Summary type: SUM > Field to aggregate > Filter criteria:
Accept all remaining field-level security and page layout defaults
2. Counting the number of related detail records
Setup > Account > F&R > New > Roll-up summary > Object to summarize: on detail side >
Summary type: COUNT > select ‘All records should be included in the calculation’
All records should be included in the calculation
Only records meeting certain criteria
3. Average rating: divides value of the first roll-up summary field by value of the second
Setup > Formula: Number: Total_Rating__c / Number_of_Reviews__c AVG: SUM/COUNT
Validation Rules
= verify data entered by users meet the standards to prevent users from saving invalid data.
If it doesn't, the validation rule will not save the record and the user sees an error message
to display to the user when the rule returns a value of “True” due to an invalid value
• Validation rules are always in effect, even if a field is invisible to a user with field-level
security 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
• users with custom profiles must have Read permission on an object to view
validation rules for that object
Data Validation:
• Ensures data integrity before record is saved in SF (not when data is exported in SF)
• Can prevent duplication of records
• Make fields required based on business logic
System validation rules: basic standard rules setup on field itself
BEFORE CUSTOM VALIDATION RULES
• Ensure data type is correct for the field
• Limiting field length on text, number, currency fields
• Make fields required eg. a field cannot have an empty value before saving object
• Make fields unique: ensure that there is no other record with that entry
>< Duplicate rule: used for the record as a whole when only one record should exist
• Error messages: describe cause and provide info to resolve them
Custom validation rules: complex, involve one or more fields and formulas or criteria
that determine if data can be processed/rejected: evaluates data with True/False
• Incorporate with functions and logic to meet more business-specific validation
requirements eg. ensure consistently fill out field: VR on field using ISBLANK function
• Message is displayed if 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
Examples
Validation formula to make sure Phone & Email fields are filled in when converting a Lead:
IsConverted = TRUE && OR(ISBLANK(Phone), ISBLANK(Email))
Makes a custom Project Start Date field required = filled whenever Stage is “Closed Won”
AND (ISPICKVAL(StageName, "Closed Won"),
ISBLANK(Project_Start_Date__c))
Description: validates that custom date field contains a date within the current year
YEAR ( My_Date__c) <> YEAR ( TODAY())
Description: validate that the range between two custom fields, salary min and salary max, is
no greater than 20,000
(Salary_Max__c – Salary_Min__c) > 20000
Validation rule considerations
VR exist for activities and you create an activity during lead conversion:
lead converts but the task isn’t created
Campaign hierarchies ignore validation rules
Validation rules run on individual records if owner is changed.
Mass Transfer: change ownership of multiple records, VR don’t run
Web-to-Lead and Web-to-Case pass VR so VR is enforced but not show visual
confirmation: no response is provided to web user if any of the VR fails
SF runs validation rules before it creates records submitted via Web-to-Lead and
Web-to-Case and then creates records that have valid values
Workflow rules and Processes can invalidate previously valid fields because update
records based on workflow rules and process scheduled actions don’t trigger VR
Cannot create validation rules for relationship group members
Can use roll-up summary fields in validation rules because the fields don’t display on
edit pages not use roll-up summary fields as the error location
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)
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 import file with field names in SF
Data Loader—this is a client application that can be downloaded to desktop (runs on both
Windows and Mac operating systems)
Can import up to 5 million records, of any data type, either from files or a database
connection
Command Line Interface (Windows only): configuration, mappings, actions in files
Enables you to set up Data Loader for automated processing
eg. 6PM daily imports OR use an AppExchange tool (Jitterbit Data Loader)
Select Command:
o Insert: create a new record
o Update: update an existing record. ID needs to be in csv file
o Upsert: update an existing record if a match is found; if not then insert a new record
o Hard Delete: delete records without moving to the recycle bin (Use Bulk API)
o Export all: export soft-deleted records (= in Recycle Bin)
o Automate operation: (Command Line) automate the loading process by setting up
configuration, actions and mapping from command line
o Batch operation: nightly imports
3. Map data fields to SF fields: Click Map to the left of each unmapped SF field
4. Import data: Review page > Click start import > If import is completed, email
notification will be sent containing summary of import job
5. Check Import status: Setup > Bulk Data Load Jobs: list of recent and in progress
import jobs and only admin has access to it
Mass Transfer > Transfer for objects: Accounts > Transform From – Transform To > criteria >
select records in the search results
Accounts: open activities, open opportunities, contracts, notes & attachments
Leads: open activities
Custom objects
User permissions: record owner or user above in role/territory hierarchy
System permissions: users with ‘modify all data’ or ‘modify all’ can transfer
Sharing rule, manual sharing access would be removed
Mass 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’ (permanent deletion of all items)
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 Loader—To bulk export data and only available in Enterprise Edition
Back up automatically: use the command line interface and schedule the export
Automatically store data on network server eg. local company server
o Export options: include (Export all) or exclude (Export) soft-deleted records
o Not support extraction of attachments
o Use SOQL queries to selectively export records that fit a certain set of criteria
o Support importing/exporting from Sandbox environment
1. Setup > Dataloader.io > launch > login with SF > Environment: Production/Sandbox
2. EXPORT > object
3. SOQL Query: Field – operation – value
Integration Patterns
Integration Patterns (strategies) are used to integrate SF functionality with 3rd party app
Data Quality
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 by field mapping
D&B Optimizer: validate and update Accounts, Contacts, Leads info
Mass Update Addresses ensure standard for address fields when there are
variations in spelling for country
Performance optimization
• Store large data volumes externally
• Segment/partition data with divisions
• Use custom indexes to improve query performance:
o Enabled by contacting Salesforce Support on certain field types
• Use Skinny Tables: combining fields from the table that contains standard fields and
the table that contains custom fields into a new table to avoid joins
o Enabled by contacting Salesforce Support
o Created on Account, Contact, Lead, Opportunity, Case and custom objects
• Archive or remove obsolete/not used data
• Use of Bulk API: data records are loaded in parallel mode which allows running
multiple batches at the same time
• Optimize sharing rules: Recalculation takes a significantly long time to process if
there is large data volume to process or recalculation can even be suspended
• Optimize workflow and process builder: Prevent or remove unnecessary or
repeating/duplicated actions or operations.
• Report considerations: If there are millions of records, suggested to extract data and
report in a data warehouse
• Use filters on list view or R&D; avoid loading tons of data
• Prevent data skew
• Enable separate loading of related list
Deferred Sharing Calculations: large set of records and need update Sharing Rules
(Contacting SF Support), instead of very long sharing rule evaluation or time outs
Data skew happens when more than 10,000 child records are associated with the same
parent record within an org
Account Data Skew
Account have data relationships that maintain parent and child record access under private
sharing models eg. unassigned contacts and park them under one account:
Record Locking: update a large number of contacts under same account in
multiple threads. For each update, the system locks both the contact being
changed and its parent account to maintain integrity in the database. Because all
the updates are trying to lock the same account, there’s a high risk an update will
fail because a previous one is still holding the lock
Sharing Issues: like changing the owner of an account, you may need to examine
every one of the account’s child records and adjust their sharing
Ownership Skew
A large number of records with the same object type are owned by a single user can cause
performance issues due to sharing calculations required to manage visibility of records
Ownership changes tend to be one of the most costly transactional changes:
o When skewed owner exists in the role hierarchy, operations like deletes or
owner updates must remove sharing from the old owner and all parent users
within the role hierarchy, and from all users given access by sharing rules
In some cases an ownership skew simply can’t be avoided: best to ensure the skewed
owner doesn’t have a role
Lookup Skew
A very large number of records are associated with a single record in the lookup object
Every time a record is inserted or updated, SF must lock the target records that are selected
for each lookup field
Relationship Allowed child objects Allowed parent objects Parent field for matching
records
Lookup Standard, custom, external Standard, custom 18ch SF record ID
External Lookup Standard, custom, external External External ID standard field
Indirect Lookup External Standard, custom Custom field with External ID
and unique attributes
Query building: the key for designing an org that can handle LDV. It’s important to design
selective list views, reports, and SOQL queries
• SOQL is Force.com's database query language, by using SELECT, similar to SQL to
query child-to-parent relationships (often many-to-one), and query parent-to-child
relationships (almost always one-to-many) (limit queries: 50,000)
• SOSL is Force.com's full-text search language, it can tokenize multiple terms within a
field by using FIND keyword. If you’re searching for a specific distinct term that you
know exists within a field, you might find SOSL faster than SOQL (limit queries: 2000)
• The Force.com query optimizer maintains a table of statistics about the distribution
of data in each index to perform pre-queries to determine whether using the index
can speed up the query. It works on the queries that are automatically generated to
handle reports, list views, and both SOQL queries and the other queries that
piggyback on them.
• Batch Apex: the best way to query and process large data sets in Force.com platform
(query up to 50 million records). Doesn't work in all use cases eg. Visualforce page
• Bulk Queries: can retrieve up to 15 GB of data, divided into fifteen 1 GB files.
Bulk API query supports both query and queryAll operations: returns records that
have been deleted because of a merge or delete and returns info about archived
Task/Event records.
o Content-Type: text/csv, application/xml, or application/json
o QUERY_TIMEOUT error: If query doesn’t execute within standard 2 min
timeout limit or retried more than 15 times
If the attempts succeed, the results are returned and stored for 7 days
Load data
Loading Lean: include only data, configurations need to meet business-critical operations
• Identifying business-critical operations before moving users to SF
• Identifying minimal data set and configuration required to implement those
operations
• Defining data and configuration strategy based on the requirements
• Loading the data as quickly as possible to reduce the scope of synchronization
When it comes to data loading, you can definitely be too lean: remove barriers to faster data
loading, but essential configurations during any data load:
• Parent records with master-detail children: you won’t be able to load child records if
the parents don’t already exist.
• Record owners: owners need to exist in the system before you can load the data.
• Role hierarchy: it would be considerably faster if you were loading portal accounts
Bulk API vs. SOAP API Data Loading
When you’re loading LDV, the API you choose makes a difference:
The standard Force.com SOAP API is optimized for real-time client apps that update a few
records at a time and requires developers, admins to implement complex processes to
upload data in bite-sized chunks, monitor results, retry failed records
acceptable for small data loads, but becomes time-consuming with large data sets
Bulk API designed to make it simple to process data from a few thousand to millions of
records. Bulk API is based on REST principles and speed up the process as it runs
asynchronously and utilizes parallel processing of loading or deleting large data sets
advantage: moves the functionality and work from client app to server
Soft Deletion: data is flagged as deleted and visible through the Recycle Bin, it still
affects database performance because it’s still living in the org, and deleted
records have to be excluded from any queries
Bulk API supports a Hard delete (enabled), which allows records to bypass the
Recycle Bin and immediately become available for deletion
recommended strategy for deleting LDV to free up space sooner and keep
extraneous material from affecting performance
PK Chunking to handle extra-large data set extracts. Primary Key—the object’s record ID—
which is always indexed. PK chunking splits bulk queries on very large tables into chunks
based on the record IDs of the queried records
Truncation: a fast way to permanently remove all the records (sitting in Recycle Bin), object’s
history, related events/tasks/attachments from a custom object, while keeping the object
and its metadata intact for future use.
Setup > UI > custom object: object management settings > object’s detail page: Truncate
Limitations of truncation:
Standard objects
CO that are referenced by another object through a lookup field
CO on the master side of a master-detail relationship
CO referenced in a reporting snapshot
CO have a custom index or an external ID
CO have activated skinny tables
When org has reached its limit on allowed CO
Ideal for complex data analysis and operations: follow a rigid structure, and data must fit
Access and manipulate data in a relational database using structured query language (SQL).
Transactions have four characteristics (which you can remember with the acronym ACID).
Relational databases value consistency over availability:
Atomic: All tasks must succeed, or the transaction is rolled back.
Consistent: state of database must remain consistent throughout the transaction.
Isolated: Each transaction is separate, not dependent on others.
Durable: Data from a failed transaction can be recovered
Non-relational Databases:
Share three qualities (BASE). They value availability over consistency:
Basically available: The system is available, even in the event of failure.
Soft state: The state of the data may change
Eventual consistency: Consistency is not guaranteed at a transaction level because no
guarantee all clients see same data at same time but data is synced across all nodes
Types of Non-relational databases:
Key-value pairs use the associative array model, meaning data is represented in a
collection of (key+value) pairs.
Column-oriented stores use a table structure. Columns in a table can change from
row to row.
Document-oriented systems save info for each document as a single instance in the
database. Documents can be nested.
Graphs organize elements, the relationships between elements, and attributes
assigned to both elements and relationships.
Salesforce Connect
Build external objects with clicks (not code), as long as your system has an OData 2.0 or
OData 4.0 adapter to make it possible to search, view, and modify data that lives someplace
else—all through Salesforce UI
Setup > External Data Sources > Sync: map to external tables > External Objects created in SF
Considerations:
• External objects has API name with suffix __x rather than __c
• Not allow user to share data with other org manually
Use Salesforce Connect when you want to:
Avoid copying lots of data into Salesforce org
Access small amounts of data at a time
Get the latest data in real time
Other use cases of Salesforce Connect:
• external data source setup for another salesforce org that contains products, so Sales
users can gain on-demand access to products related to opportunities
• view and update leads from the primary Salesforce organization
• contacts may be stored in different organization, but they can be made visible on the
account page using indirect lookup.
Heroku Connect
Provides a bridge between SF and Heroku Postgres database, a managed SQL database-as-a-
service for developers
Data replication with Heroku Connect can be one-way, from SF to Heroku Postgres,
or two-way.
Data replication from Heroku Postgres to Salesforce can be configured to execute
with very low latency, but not in real time
Big Objects
Store and manage a massive amount of data on SF platform
We recommend it for anything over 20 million rows, into the billions
Utilize a non-relational database to store data.
Support real-time SOQL queries using primary key access: known as the index, which
is defined by custom fields in the big object. It’s important to consider which fields
are indexed, how they are indexed (ascending or descending), and in which order
Asynchronous SOQL is optimized to move, transform, and aggregate huge amounts of data
from Big Objects when regular SOQL doesn’t work. How it works: The query filters the data
into a smaller subset of data and aggregations, and stores it in a custom object
Tableau CRM for analyzing entire dataset limited to about 70 million rows from Big Objects.
Big Objects can be the source object in a dataflow. If the number of rows is too high for
Tableau CRM, use Asynchronous SOQL to filter and store a smaller subset of data in a
secondary Big Object or Custom Object for full Salesforce functionality
Location
If it does not need to live in Salesforce and it already exists on a database with an
OData adapter, Salesforce Connect is the best choice.
If data is part of a customer-facing mobile app, Heroku provides a platform to host it.
You can also use Salesforce Connect to connect data on a Heroku Postgres database
with Salesforce following a data proxy strategy.
Volume
Anything over 20 million records calls for a Big Object.
Otherwise, a standard or custom object is the easiest route.
Frysco, a food distribution company, needs a data storage solution to track inventory,
orders, and deliveries. Its customers are large grocery stores, and there are thousands of
them. Frysco needs a mobile app for its delivery partners
Heroku with data replication: Designing a mobile app because users won’t have SF licenses
but sync data back to SF and may be without connectivity for long periods of time
Rockify needs a data storage solution for its customer data. They have 200 million individuals
across the globe listening to songs and “liking” or “disliking” each song. The company needs
to analyze data in meaningful ways, across different demographics and geographies
Big Objects with Tableau CRM: Analytics will need to be run on 50 million or more records at
a time. The data should be stored in Big Objects and analyzed with Tableau CRM.
Mango needs a data storage solution to track its inventory and assets. This needs to be
made available to thousands of Mango’s partners around the globe
Big Objects with Asynchronous SOQL and custom objects: Once stored in Big Objects, smaller
subsets of the data can be exposed in a partner community
ETailored use digital personal shopper accessible to customers in app. Its customer support
reps use Salesforce to deal with customer issues and solicit customer feedback via surveys.
Recently, the app has skyrocketed in popularity, and the data volume has increased with it
Standard objects, custom objects, and Big Objects: Stick with standard and custom objects,
but add Big Objects to archive the data that is 6 months or older
Salesforce-to-Salesforce
Need to be enabled
• Share and update records with partners that use Salesforce
• Share Account/Opportunity records with Salesforce orgs in different regions
• Share records with users who have access to different Salesforce org manually
Mean features:
• Objects and fields can be selected to publish with connected org.
• A connected org has a record that is connected to the record in the source org.
• If record is updated on one org, it will reflect on another org.
• Records can be forwarded to the connected org or assigned to a queue (can be
accepted by connected org).
Big Objects
Standard Big Objects are defined by Salesforce and are included in Salesforce products.
FieldHistoryArchive: store up to 10 years’ worth of archived field history data, helping you
comply with industry regulations related to auditing and data retention.
SOQL
Using a subset of standard SOQL commands:
Query will return a small amount of data
Display the results in the UI without having the user wait for results
Need the results returned immediately for use in Apex
Use SOQL
Have to build your query starting from the first field defined in the index, without skipping
any fields between the first and last field in the query
You can use these comparison operators =, <, >, <=, >=, or IN on the last field in your query.
Any prior fields in your query can only use the = operator.
!=, LIKE, NOT IN, EXCLUDES, INCLUDES aren’t valid in any query involving big objects
Async SOQL
Help manage the millions of potential records in custom big objects
Query can take a while to complete
Don’t need to do aggregate queries or filtering outside of the index
Schedules and runs queries asynchronously in the background (run over SF entity
data, standard objects, custom objects, big objects) so it can run queries that
normally time out with regular SOQL. Run multiple queries in the background while
monitoring their completion status
Use Async SOQL
Two main ways to use Async SOQL to get a manageable dataset out of a big object:
Filtering: extract a small subset of big object data into a custom object
Through coarse aggregations: finer control over what data extracted from big object.
Aggregate functions: AVG(field), COUNT(field), COUNT_DISTINCT(field), SUM(field),
MIN(field), MAX(field)
Query custom big object and direct the results to Target Object (a standard object, custom
object, external object, big object)
TargetFieldMap: Map the fields in the query to the fields in the target object:
If the source and target fields don’t match, these considerations apply:
Any source field can be mapped onto a target text field.
If the source and target fields are both numerical, the target field must have the
same or greater number of decimal places than the source field
If a field in the query result is mapped more than once, even if mapped to different
fields in the target object, only the last mapping is used
To track the status of a query, specify its jobID with an HTTP GET request. T
the query’s status is returned in the status field. If you don’t specify a jobID, we return the
status of all your queries. The status can be:
Canceled—The job was canceled before it could be run.
Success—The job was successfully completed.
Failed—The job failed after the system submitted it or because the request exceeded
the Async SOQL limits
Running—The job is running successfully, and the org hasn’t exceeded any limits.
Scheduled—The new job has been created and scheduled, but is not yet running.
Cancel a query using an HTTP DELETE request by specifying its jobId
Two different types of errors can occur during the execution of an Async SOQL query.
An error in the query execution: eg. Submit invalid query, exceed Async SOQL limit
Response: status of Failed
One or more errors writing the results into the target big object:
Because of the volume of data involved, capturing every error is inefficient.
Instead, subsets of the errors generated are captured in BackgroundOperationResult
object and retained for 7 days. Query this with Async SOQL query jobId to filter the
errors for specific Async SOQL query (Async SOQL job info is retained for a year)