SlideShare a Scribd company logo
Agenda:
Housekeeping - Sakthivel Madesh:
● Introductions & Group overview
Today’s content - Josh Dennis:
● Thinking about your CRM as a product
● Identifying functional patterns in requirements
● An approach for designing generic/reusable LWCs
● Community resources
● Reusability for declarative tools
● Closing thoughts
Finishing up - Sakthivel Madesh:
● Salesforce Certification Voucher/Swags to random participants, please be stay til end.. -:)
Josh Dennis
● Passionate about reducing complexity
and using platform strengths
● Have played many roles in the past:
○ Functional lead/BA
○ Proxy product owner
○ Solution design & architecture
Salesforce Functional Lead @ Deloitte Digital, Sydney
14x certified
https://www.linkedin.com/in/josh-dennis
Your CRM is a product!
I’m not an ISV, why are you talking about building a product?
● Why has Salesforce been purchased in the first place?
○ Deliver fantastic experiences to customers
○ Manage e2e sales, support etc. processes
○ Quickly develop and deploy functionality on a low-code platform
● CRM product owners ultimately aim to deliver value to the business via the
identification, prioritisation, and delivery of valuable CRM functionality.
● For each product backlog item, a PO should ask themselves & their teams ‘how
can I use the strengths of this product to deliver the best possible
functionality to our users?’
How can we - as developers - shift from developing purely to enable business
productivity, to developing to also enable admin productivity?
Identifying functional patterns in requirements
● Use card sorting to group requirements into common functional Salesforce
categories/subcategories
● Prepare a capability map for the functionality in scope
(taken from https://www.radnip.com/the-salesforce-capability-map/)
Identifying functional patterns in requirements
● Apply MECE principles to determine the functionalities that underpin your
requirements
● For each category/subcategory, consider:
○ Have WE already delivered it?
○ Is there a SF product that we could use to deliver this?
○ Is there an AppExchange product we could use to deliver this?
○ Is this a problem that may have been solved in another enterprise system?
Identifying functional patterns in requirements
The scope of ABC Bank’s CRM definition project is to support the following business
processes:
● ...
● Onboarding new customers
● Handle ad hoc customer support calls & external complaints
● ...
Identifying functional patterns in requirements
Functionality Onboard customers Customer support & complaints ...
Lead qualification & KYC checks ✔️
Record assignment & work
management
✔️ ✔️
Customer deduplication ✔️
SLAs ✔️
Call scripting ✔️ ✔️
Product suggestion ✔️
Inbound communication (web, email,
phone)
✔️ ✔️
Outbound communication (emails, SMS) ✔️ ✔️
Document generation ✔️ ✔️
Identifying functional patterns in requirements
Functionality Onboard customers Customer support & complaints ...
Lead qualification & KYC checks ✔️
Record assignment & work
management
✔️ ✔️
Customer deduplication ✔️
SLAs ✔️
Call scripting ✔️ ✔️
Product suggestion ✔️
Inbound communication (web, email,
phone)
✔️ ✔️
Outbound communication (emails, SMS) ✔️ ✔️
Document generation ✔️ ✔️
Where to from here?
● Solution the requirement - given we know how important it is & where it is likely
to be used, how should we bring it to life?
○ OOTB/AppExchange?
○ Configuration?
○ Custom development?
● Documentation strategy: you have identified common/repeatable solutions,
how do we document the solution (especially for our maintainers)?
Designing salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh Dennis
UI Design - low fidelity
● Create a low fidelity
wireframe
● Get input from your
stakeholders: product
owner/users and admins!
● Begin to determine what
can be configurable (& what
is needed to easily support
that)
UI Design - high fidelity
● Convert the low fidelity
wireframe into basic LWC
with hardcoded values
● Break it into clear
components & identify what
data should be
queried/returned by your
Apex/LDS logic
Common configurable attributes
● Targets - where should the component be placed?
● Titles & Icons
● How to query for records to display (if showing a record’s child records)
○ Admin provides an entire SOQL?
○ Admin provides parts of a SOQL:
■ SELECT [insert fields here]
■ FROM [insert object here]
■ WHERE [insert relationship here] = :recordId [AND …]
■ ORDER BY [insert order field here] [ASC/DESC]
● UI-specific - e.g. colours to use, labels,
● Record Id (for Screen Flows)
Enabling admin configuration
Lightning App Builder Config
Config variables defined in LWC
meta.xml file
CMDT
CMDT primarily, minimal
config variables in LWC
meta.xml
Lightning App Builder JSON
JSON string in Lightning App
Builder
Lightning App Builder w/ CPE
Develop a Custom Property
Editor to simply configuration
Apex considerations for generic LWCs
● What parameters are you passing in from the LWC?
○ recordId
○ Configurable attributes from Lightning App Builder?
● Define the data you’re returning from the controller: a wrapper class or
standard output of SOQL (etc.) statement?
● ‘Get metadata’: if using CMDT, querying for configuration
● ‘Get records’: pass in component pieces of SOQL, run/return a SOQL
● Be wary, Service Cloud objects don’t have a ‘Name’ field!
Apex or LDS for field-level data?
● Apex has worked more consistently for me.
○ Manually control cache with refreshApex() and getRecordNotifyChange()
○ Imperatively calling methods seems to give most flexibility
● LDS appears to be more performant & has a lot of base functionality,
but also does not appear to support dynamically defined queries as
well.
Resources in the community: UnofficialSF
See https://unofficialsf.com/flow-screen-components/
Resources in the community: Nebula Logger
See https://github.com/jongpie/NebulaLogger
Resources in the community: SF Labs
● CMDT Enhanced Related List
● Time Warp
● Lightning Web Chart.js Component
● ..and more!
Worked example: object-agnostic flows
● Flows don’t need to be specific to one
type of object or process
● Find opportunities to create ‘helper’ or
‘utility’ flows that you can use in many
places:
○ Use the same screen flow across multiple
objects ‘seamlessly’
○ Create a Log record every time an exception
occurs
○ Centrally manage notification orchestration
across all mediums (e.g. email, SMS)
● Consider external services - especially if
you already use Mulesoft!
Worked example: object-agnostic flows
● Flows don’t need to be specific to one
type of object or process
● Find opportunities to create ‘helper’ or
‘utility’ flows that you can use in many
places:
○ Use the same screen flow across multiple
objects ‘seamlessly’
○ Create a Log record every time an exception
occurs
○ Centrally manage notification orchestration
across all mediums (e.g. email, SMS)
● Consider external services - especially if
you already use Mulesoft!
Closing thoughts & questions
● How well do you know your admins and product owners?
● How process/object-agnostic can you make your next development item?
● What opportunities to refactor/simplify your org can you identify?
Designing salesforce solutions for reuse - Josh Dennis
Designing salesforce solutions for reuse - Josh Dennis

More Related Content

PDF
Marketing cloud for salesforce admins Pakistan Dreamin' 2021
PDF
Top Salesforce Winter '22 Release Features
PPTX
Top benefits of using salesforce for customer service | Ksolves
PPTX
Best salesforce apps and solutions for businesses
PDF
Everything You Need To Know About Lightning Flow Features
PPTX
#ImpactSalesforceSaturday:360 degree view of salesforce integrations
PPTX
Introduction To Salesforce Content Management System (CMS)
PPTX
Augment Commerce Cloud with Experience Cloud
Marketing cloud for salesforce admins Pakistan Dreamin' 2021
Top Salesforce Winter '22 Release Features
Top benefits of using salesforce for customer service | Ksolves
Best salesforce apps and solutions for businesses
Everything You Need To Know About Lightning Flow Features
#ImpactSalesforceSaturday:360 degree view of salesforce integrations
Introduction To Salesforce Content Management System (CMS)
Augment Commerce Cloud with Experience Cloud

What's hot (20)

PDF
A Comprehensive Guide to Salesforce Field Service
PPTX
Hidden Gems That Give You Greater Power on Your Salesforce B2B eCommerce Plat...
PPTX
Best practices for salesforce cpq implementation
PPTX
BOOSTING SALES AND OPERATIONS WITH SALESFORCE SALES CLOUD
PPTX
Salesforce Online Training
PDF
How To Integrate Salesforce With Outlook
PDF
Salesforce Pardot vs Marketing Cloud
PDF
Key Benefits Of Salesforce Mobile Applications
PDF
Why You Should Hire A Salesforce Consultant For Your Business
PPTX
Build Better Software Faster Using Different Conceptual Models
PDF
Salesforce.com overview (1)
PDF
Salesforce To HubSpot Migration
PPTX
Salesforce Release Analytics Tableau CRM- Custom Fiscal Calendar
PPTX
Salesforce.com Overview
PPTX
Salesforce Tableau CRM - Quick Overview
PPTX
Gaing New Business Intelligence with Salesforce IQ (Salesforce World Tour NYC)
PPTX
Heroku Solutions Kit for Commerce Cloud
PPTX
Discover deep insights with Salesforce Einstein Analytics and Discovery
PPTX
Salesforce Overview For Beginners/Students
PPTX
Automate with Salesforce and across other platforms
A Comprehensive Guide to Salesforce Field Service
Hidden Gems That Give You Greater Power on Your Salesforce B2B eCommerce Plat...
Best practices for salesforce cpq implementation
BOOSTING SALES AND OPERATIONS WITH SALESFORCE SALES CLOUD
Salesforce Online Training
How To Integrate Salesforce With Outlook
Salesforce Pardot vs Marketing Cloud
Key Benefits Of Salesforce Mobile Applications
Why You Should Hire A Salesforce Consultant For Your Business
Build Better Software Faster Using Different Conceptual Models
Salesforce.com overview (1)
Salesforce To HubSpot Migration
Salesforce Release Analytics Tableau CRM- Custom Fiscal Calendar
Salesforce.com Overview
Salesforce Tableau CRM - Quick Overview
Gaing New Business Intelligence with Salesforce IQ (Salesforce World Tour NYC)
Heroku Solutions Kit for Commerce Cloud
Discover deep insights with Salesforce Einstein Analytics and Discovery
Salesforce Overview For Beginners/Students
Automate with Salesforce and across other platforms
Ad

Similar to Designing salesforce solutions for reuse - Josh Dennis (20)

PDF
SFDC Architect Primer [V10232024] (1).pdf
PPTX
SF Architect Interview questions v1.3.pptx
PPT
A Software Factory Integrating Rational Team Concert and WebSphere tools
PPT
Salesforce NPO User Group 5-25-12
PPT
A Software Factory Integrating Rational & WebSphere Tools
PDF
Instant ebooks textbook Salesforce B2C Solution Architect's Handbook - Second...
PDF
Salesforce Development and Integration Services for Your Business
PPT
Df09 Complex Integration In Your Contact Centre Dreamforce Session
PDF
Salesforce B2C Solution Architect's Handbook - Second Edition Mike King
PDF
Salesforce Enterprise Patterns Overview.pdf
PPTX
Setting Up CircleCI Workflows for Your Salesforce Apps
PDF
Design Patterns Every ISV Needs to Know (October 15, 2014)
PPTX
Architect's Guide to Designing Composable Solutions
PDF
Salesforce service sheet
DOCX
Salesforce CRM Consultant & Development
DOCX
Intelli-Cloudware
PDF
Twin Cities Salesforce.com Developer User Group Presentation April 2012
DOC
Ashish Garg
PPTX
Salesforce integration best practices columbus meetup
PDF
Salesforce project
SFDC Architect Primer [V10232024] (1).pdf
SF Architect Interview questions v1.3.pptx
A Software Factory Integrating Rational Team Concert and WebSphere tools
Salesforce NPO User Group 5-25-12
A Software Factory Integrating Rational & WebSphere Tools
Instant ebooks textbook Salesforce B2C Solution Architect's Handbook - Second...
Salesforce Development and Integration Services for Your Business
Df09 Complex Integration In Your Contact Centre Dreamforce Session
Salesforce B2C Solution Architect's Handbook - Second Edition Mike King
Salesforce Enterprise Patterns Overview.pdf
Setting Up CircleCI Workflows for Your Salesforce Apps
Design Patterns Every ISV Needs to Know (October 15, 2014)
Architect's Guide to Designing Composable Solutions
Salesforce service sheet
Salesforce CRM Consultant & Development
Intelli-Cloudware
Twin Cities Salesforce.com Developer User Group Presentation April 2012
Ashish Garg
Salesforce integration best practices columbus meetup
Salesforce project
Ad

More from Sakthivel Madesh (6)

PPTX
Salesforce DevOps using GitHub Action
PDF
Salesforce Order Management Product Overview Deck.pdf
PPTX
When to Code / Config / Config + Code in Salesforce - Nikunj Doshi
PPTX
Salesforce flow february series - week 4
PPTX
Salesforce flow february series - week 2
PPTX
Salesforce flow february series - week 2
Salesforce DevOps using GitHub Action
Salesforce Order Management Product Overview Deck.pdf
When to Code / Config / Config + Code in Salesforce - Nikunj Doshi
Salesforce flow february series - week 4
Salesforce flow february series - week 2
Salesforce flow february series - week 2

Recently uploaded (20)

PPTX
Institutional Correction lecture only . . .
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Basic Mud Logging Guide for educational purpose
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Cell Structure & Organelles in detailed.
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Classroom Observation Tools for Teachers
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Insiders guide to clinical Medicine.pdf
PDF
Pre independence Education in Inndia.pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Complications of Minimal Access Surgery at WLH
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Sports Quiz easy sports quiz sports quiz
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Institutional Correction lecture only . . .
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Microbial diseases, their pathogenesis and prophylaxis
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Basic Mud Logging Guide for educational purpose
Pharmacology of Heart Failure /Pharmacotherapy of CHF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Cell Structure & Organelles in detailed.
102 student loan defaulters named and shamed – Is someone you know on the list?
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Classroom Observation Tools for Teachers
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Insiders guide to clinical Medicine.pdf
Pre independence Education in Inndia.pdf
Final Presentation General Medicine 03-08-2024.pptx
Complications of Minimal Access Surgery at WLH
GDM (1) (1).pptx small presentation for students
Sports Quiz easy sports quiz sports quiz
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx

Designing salesforce solutions for reuse - Josh Dennis

  • 1. Agenda: Housekeeping - Sakthivel Madesh: ● Introductions & Group overview Today’s content - Josh Dennis: ● Thinking about your CRM as a product ● Identifying functional patterns in requirements ● An approach for designing generic/reusable LWCs ● Community resources ● Reusability for declarative tools ● Closing thoughts Finishing up - Sakthivel Madesh: ● Salesforce Certification Voucher/Swags to random participants, please be stay til end.. -:)
  • 2. Josh Dennis ● Passionate about reducing complexity and using platform strengths ● Have played many roles in the past: ○ Functional lead/BA ○ Proxy product owner ○ Solution design & architecture Salesforce Functional Lead @ Deloitte Digital, Sydney 14x certified https://www.linkedin.com/in/josh-dennis
  • 3. Your CRM is a product! I’m not an ISV, why are you talking about building a product? ● Why has Salesforce been purchased in the first place? ○ Deliver fantastic experiences to customers ○ Manage e2e sales, support etc. processes ○ Quickly develop and deploy functionality on a low-code platform ● CRM product owners ultimately aim to deliver value to the business via the identification, prioritisation, and delivery of valuable CRM functionality. ● For each product backlog item, a PO should ask themselves & their teams ‘how can I use the strengths of this product to deliver the best possible functionality to our users?’
  • 4. How can we - as developers - shift from developing purely to enable business productivity, to developing to also enable admin productivity?
  • 5. Identifying functional patterns in requirements ● Use card sorting to group requirements into common functional Salesforce categories/subcategories ● Prepare a capability map for the functionality in scope (taken from https://www.radnip.com/the-salesforce-capability-map/)
  • 6. Identifying functional patterns in requirements ● Apply MECE principles to determine the functionalities that underpin your requirements ● For each category/subcategory, consider: ○ Have WE already delivered it? ○ Is there a SF product that we could use to deliver this? ○ Is there an AppExchange product we could use to deliver this? ○ Is this a problem that may have been solved in another enterprise system?
  • 7. Identifying functional patterns in requirements The scope of ABC Bank’s CRM definition project is to support the following business processes: ● ... ● Onboarding new customers ● Handle ad hoc customer support calls & external complaints ● ...
  • 8. Identifying functional patterns in requirements Functionality Onboard customers Customer support & complaints ... Lead qualification & KYC checks ✔️ Record assignment & work management ✔️ ✔️ Customer deduplication ✔️ SLAs ✔️ Call scripting ✔️ ✔️ Product suggestion ✔️ Inbound communication (web, email, phone) ✔️ ✔️ Outbound communication (emails, SMS) ✔️ ✔️ Document generation ✔️ ✔️
  • 9. Identifying functional patterns in requirements Functionality Onboard customers Customer support & complaints ... Lead qualification & KYC checks ✔️ Record assignment & work management ✔️ ✔️ Customer deduplication ✔️ SLAs ✔️ Call scripting ✔️ ✔️ Product suggestion ✔️ Inbound communication (web, email, phone) ✔️ ✔️ Outbound communication (emails, SMS) ✔️ ✔️ Document generation ✔️ ✔️
  • 10. Where to from here? ● Solution the requirement - given we know how important it is & where it is likely to be used, how should we bring it to life? ○ OOTB/AppExchange? ○ Configuration? ○ Custom development? ● Documentation strategy: you have identified common/repeatable solutions, how do we document the solution (especially for our maintainers)?
  • 13. UI Design - low fidelity ● Create a low fidelity wireframe ● Get input from your stakeholders: product owner/users and admins! ● Begin to determine what can be configurable (& what is needed to easily support that)
  • 14. UI Design - high fidelity ● Convert the low fidelity wireframe into basic LWC with hardcoded values ● Break it into clear components & identify what data should be queried/returned by your Apex/LDS logic
  • 15. Common configurable attributes ● Targets - where should the component be placed? ● Titles & Icons ● How to query for records to display (if showing a record’s child records) ○ Admin provides an entire SOQL? ○ Admin provides parts of a SOQL: ■ SELECT [insert fields here] ■ FROM [insert object here] ■ WHERE [insert relationship here] = :recordId [AND …] ■ ORDER BY [insert order field here] [ASC/DESC] ● UI-specific - e.g. colours to use, labels, ● Record Id (for Screen Flows)
  • 16. Enabling admin configuration Lightning App Builder Config Config variables defined in LWC meta.xml file CMDT CMDT primarily, minimal config variables in LWC meta.xml Lightning App Builder JSON JSON string in Lightning App Builder Lightning App Builder w/ CPE Develop a Custom Property Editor to simply configuration
  • 17. Apex considerations for generic LWCs ● What parameters are you passing in from the LWC? ○ recordId ○ Configurable attributes from Lightning App Builder? ● Define the data you’re returning from the controller: a wrapper class or standard output of SOQL (etc.) statement? ● ‘Get metadata’: if using CMDT, querying for configuration ● ‘Get records’: pass in component pieces of SOQL, run/return a SOQL ● Be wary, Service Cloud objects don’t have a ‘Name’ field!
  • 18. Apex or LDS for field-level data? ● Apex has worked more consistently for me. ○ Manually control cache with refreshApex() and getRecordNotifyChange() ○ Imperatively calling methods seems to give most flexibility ● LDS appears to be more performant & has a lot of base functionality, but also does not appear to support dynamically defined queries as well.
  • 19. Resources in the community: UnofficialSF See https://unofficialsf.com/flow-screen-components/
  • 20. Resources in the community: Nebula Logger See https://github.com/jongpie/NebulaLogger
  • 21. Resources in the community: SF Labs ● CMDT Enhanced Related List ● Time Warp ● Lightning Web Chart.js Component ● ..and more!
  • 22. Worked example: object-agnostic flows ● Flows don’t need to be specific to one type of object or process ● Find opportunities to create ‘helper’ or ‘utility’ flows that you can use in many places: ○ Use the same screen flow across multiple objects ‘seamlessly’ ○ Create a Log record every time an exception occurs ○ Centrally manage notification orchestration across all mediums (e.g. email, SMS) ● Consider external services - especially if you already use Mulesoft!
  • 23. Worked example: object-agnostic flows ● Flows don’t need to be specific to one type of object or process ● Find opportunities to create ‘helper’ or ‘utility’ flows that you can use in many places: ○ Use the same screen flow across multiple objects ‘seamlessly’ ○ Create a Log record every time an exception occurs ○ Centrally manage notification orchestration across all mediums (e.g. email, SMS) ● Consider external services - especially if you already use Mulesoft!
  • 24. Closing thoughts & questions ● How well do you know your admins and product owners? ● How process/object-agnostic can you make your next development item? ● What opportunities to refactor/simplify your org can you identify?