SlideShare a Scribd company logo
Untangle Your Org with Salesforce Developer Tools
Shane McLaughlin
Director, Technical Product Marketing
shane.mclaughlin@salesforce.com
@MShaneMc
Doug Ayers
Lead Developer, Trailhead Content
doug.ayers@salesforce.com
@DouglasCAyers
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the
assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we
make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber
growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief,
any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new
products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays
in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the
immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth,
new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger
enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form
10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important
disclosures are available on the SEC Filings section of the Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be
delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Statement under the Private Securities Litigation Reform Act of 1995
Forward-Looking Statement
Agenda
Why untangle your org?
Common Tangles
1. Profiles
2. Processes and Triggers
3. Page Layouts, Lightning Pages, Reports & Dashboards
Tips, Tricks, Tools
Q&A
An org where it is not apparent which code
and config pertain to which logical apps and
functionality.
To iterate development on a single feature
often requires the entire org’s metadata
deployed to it and may impede the use of
CI/CD, scratch orgs, and other critical tools.
First, what is a tangled org?
Why untangle your org?
Empower multiple teams to own, build, and release independently of each other
Promote reusable functionality and packaging with modular app development
Simplify scratch org setup and adopt CI/CD for each logical app
Team 1 Team 2 Team 3
Tangle 1: Profiles
What does your System Admin profile refer to?
Profiles Are Not Your Friend
System Admin
Profile
Record Type
Assignments
Page Layout
Assignments
Object & Field
Permissions
App
Assignments
Alternative Design with Permission Sets
base schema
base permissions (ALL)
base permissions (regular) base permissions
(read-only)
app schema
app permissions (ALL)
app permissions (regular)
app permissions (read-only)
app schema
app permissions (ALL)
app permissions (regular)
app permissions (read-only)
capstone or soup: includes minimal profiles (ex: layout assignments)
Shane wrote a blog post at bit.ly/migrate-to-permsets
1. Do it manually in the UI
2. Cut and paste in your code editor
3. Open Source plugins for Salesforce CLI
a. Convert with options
b. Align from local source schema
c. Remove objects from profiles/permsets
4. Profile and Permission Set Helper
by Salesforce Labs on AppExchange
Migration Paths from Profiles to Permission Sets
Profile & Permset Demos
Tangle 2: Processes and Triggers
Processes and Triggers Demo
● Platform Events
● Invocable Processes and Autolaunched Flows
● Interfaces, Type.forName, and Callable
○ bit.ly/callable-sean-cuevo
● Dependency Injection
○ bit.ly/df18-force-di
Design Patterns for Untangling Processes and Triggers
Tangle 3: UI
Page Layouts, Lightning Pages,
Reports & Dashboards
Page Layouts, Lightning Pages, Reports & Dashboards
Some things depend on many things; leave them unpackaged or in a top-level package
Tips, Tricks, and Tools
Sometimes you have to build something else to view/test/try your actual project
- project structure
- project.json
“I need this to exist, but not in my package”
Minimum dependencies from the soup
- (unpackaged) mdapi deployments
- (packaged) runtime packages (pilot)
Trick #1: Unpackaged / Implementation Folder
Community Boilerplate: Salesforce’s code included in communities
● Keeps this code out of source tracking
● All communities have this dependency
Standalone, non-dependency, non-dev
● ex: LightningThemes
Feature packages
● fat base: common schema, ui, perms, etc.
● extensions: minimal schema, community
Trick #2: Package Patterns
AppExchange in setup script
Refer to a package on GitHub (not manually updating versions everywhere
downstream)
● source code for package version list
● install script/plugin
Deploying actual source via GitHub
Trick #3: Ways to Include “packages” in Deployments
Scenario
- You got rid of the 4 standard account layouts
- Every DE scratch org has them
- Adding a required field to an object populates them
- sfdx force:pull:source
Solution
- DestructiveChanges.xml (package.xml format)
- Script that uses this
Trick #4: Destructive Changes for Unwanted Stuff
Next Steps
● Second-Generation Packaging: a Practical Guide
● Package-Based App Development Patterns
● Accelerate Source-Driven Development with
Unlocked Packages and Scratch Orgs
● Truly Asynchronous Apex Triggers using Change Data
Capture
Explore Related Sessions
Check out the session recordings after the conference
What’s Next?
Experience Salesforce DX across TDX 2019
See demos, join a workshop,
ask questions & more!
Visit us at Platform Point!
Floor 1
Related Sessions
W, 12:30pm The Salesforce DX Cheatsheet Surfside Theater
W, 2:30pm Transitioning to Custom Metadata Types Redwood Theater
W, 3:45pm Salesforce DX for ISVs: How to Get Started Reefscape Theater
W, 5:00pm Unleash Citizen Developers Effectively Redwood Theater
Th, 8:30am Accelerate DevOps with GitLab and Salesforce Room 2005
Th, 10:00am Best Practices: Building with VS Code Room 2004
Th, 1:00pm Accelerate Source-Driven Development with
Unlocked Packages and Scratch Orgs
Room 2004
Th, 2:00pm How We Built Salesforce DX Room 2004
3rd Floor
Keynote Room
Super Sessions:
Salesforce <3 DX
Weds at 3:00 PM
Build Together
with Low Code
Thurs at 11:00 AM
TDX19 - Untangle Your Org with Salesforce Developer Tools

More Related Content

PPTX
Dependency Injection with the Force DI Framework
PDF
TDX19 - Accelerate DevOps with GitLab and Salesforce
PDF
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
PPTX
Design patterns for salesforce app decomposition
PPTX
Salesforce – Proven Platform Development with DevOps & Agile
PPTX
Automating Deployment Between Orgs Using Git & Continuous Integration
PPTX
Salesforce apex hours azure dev ops
PPTX
DevOps in Salesforce AppCloud
Dependency Injection with the Force DI Framework
TDX19 - Accelerate DevOps with GitLab and Salesforce
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
Design patterns for salesforce app decomposition
Salesforce – Proven Platform Development with DevOps & Agile
Automating Deployment Between Orgs Using Git & Continuous Integration
Salesforce apex hours azure dev ops
DevOps in Salesforce AppCloud

What's hot (20)

PDF
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
PDF
Build Together And Deliver Continuously With Salesforce DX
PPTX
COPADO - Plateforme de DEVOPS pour Salesforce
PDF
How to Setup Continuous Integration With Git, Jenkins, and Force.com
PDF
Dreamforce 2017: Salesforce DX - an Admin's Perspective
PDF
From Sandbox To Production: An Introduction to Salesforce Release Management
PPTX
Release Management: Managing Your Internal Releases
PPTX
Scaling Continuous Integration for Puppet
PPTX
Crossbrowser Testing at Salesforce Analytics
PDF
A Recipe for Scale: Succeeding with Agile Software Development in the Enterprise
PPT
The Ideal Salesforce Development Lifecycle
PDF
Development Best Practices
PDF
Salesforce API Series: Release Management with the Metadata API webinar
PDF
Salesforce.com Sandbox management
PDF
Meet The Welkin Suite IDE: Product Overview
PDF
Best Practices for Successful Deployment
PPTX
How to build a Salesforce DevOps process with Gearset
PPTX
Dev ops.enterprise.2014 (1)
PPTX
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
PPTX
Salesforce1 ELEVATE Workshop - Dublin
Salesforce & GitLab Integration for Next-gen DevOps with CEPTES
Build Together And Deliver Continuously With Salesforce DX
COPADO - Plateforme de DEVOPS pour Salesforce
How to Setup Continuous Integration With Git, Jenkins, and Force.com
Dreamforce 2017: Salesforce DX - an Admin's Perspective
From Sandbox To Production: An Introduction to Salesforce Release Management
Release Management: Managing Your Internal Releases
Scaling Continuous Integration for Puppet
Crossbrowser Testing at Salesforce Analytics
A Recipe for Scale: Succeeding with Agile Software Development in the Enterprise
The Ideal Salesforce Development Lifecycle
Development Best Practices
Salesforce API Series: Release Management with the Metadata API webinar
Salesforce.com Sandbox management
Meet The Welkin Suite IDE: Product Overview
Best Practices for Successful Deployment
How to build a Salesforce DevOps process with Gearset
Dev ops.enterprise.2014 (1)
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Salesforce1 ELEVATE Workshop - Dublin
Ad

Similar to TDX19 - Untangle Your Org with Salesforce Developer Tools (20)

PPTX
Adopting Salesforce DX
PDF
Modern Development with Salesforce DX
PDF
Modern App Dev: Modular Development Strategies
PPTX
TrailheaDX India : Developer Highlights
PDF
Release and Enviromental Management
PDF
Continuous Integration and Testing with Branch Orgs
PPTX
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
PPTX
Salesforce Campus Tour - Declarative
PPTX
PhillyForce 2018 - Salesforce Platform Keynote
PPTX
Salesforce DX for Accidential Admins
PPTX
Salesforce App Cloud First Call Deck
PDF
building an app exchange app
PDF
Publish Your First App on the AppExchange
PDF
アプリケーションライフサイクル管理とロック解除済みパッケージ
PPTX
Dreamforce Developer Recap
PPTX
Get Started with Salesforce DX!
PPTX
Salesforce Campus Tour - Developer Intro
PPTX
[MBF2] Plate-forme Salesforce par Peter Chittum
PPTX
TrailheaDX and Summer '19: Developer Highlights
PDF
APP Academy: Build Your First App (October 13, 2014)
Adopting Salesforce DX
Modern Development with Salesforce DX
Modern App Dev: Modular Development Strategies
TrailheaDX India : Developer Highlights
Release and Enviromental Management
Continuous Integration and Testing with Branch Orgs
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Salesforce Campus Tour - Declarative
PhillyForce 2018 - Salesforce Platform Keynote
Salesforce DX for Accidential Admins
Salesforce App Cloud First Call Deck
building an app exchange app
Publish Your First App on the AppExchange
アプリケーションライフサイクル管理とロック解除済みパッケージ
Dreamforce Developer Recap
Get Started with Salesforce DX!
Salesforce Campus Tour - Developer Intro
[MBF2] Plate-forme Salesforce par Peter Chittum
TrailheaDX and Summer '19: Developer Highlights
APP Academy: Build Your First App (October 13, 2014)
Ad

More from Doug Ayers (9)

PDF
Adopting Files and Enhanced Notes in Lightning Experience
PDF
Chatter Bot - Enabling New Capabilities for Process Builder
PPTX
Dreamforce '16 Recap & Winter '17 Release
PPTX
Salesforce - How to Load Leads and Add to Campaigns with Import Wizard
PPTX
Salesforce: Advanced Lead Conversion Using Process Builder
PPTX
Salesforce - The Power of Upsert and External IDs - How To - Workbench
PPTX
Salesforce - Filtered Related Lists Without Code
PPTX
Dreamforce 15 Recap & Winter 16 Release Notes
PPTX
Salesforce1 Mobile Experience - Remedyforce On Call
Adopting Files and Enhanced Notes in Lightning Experience
Chatter Bot - Enabling New Capabilities for Process Builder
Dreamforce '16 Recap & Winter '17 Release
Salesforce - How to Load Leads and Add to Campaigns with Import Wizard
Salesforce: Advanced Lead Conversion Using Process Builder
Salesforce - The Power of Upsert and External IDs - How To - Workbench
Salesforce - Filtered Related Lists Without Code
Dreamforce 15 Recap & Winter 16 Release Notes
Salesforce1 Mobile Experience - Remedyforce On Call

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Empathic Computing: Creating Shared Understanding
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Weekly Chronicles - August'25 Week I
Reach Out and Touch Someone: Haptics and Empathic Computing
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Advanced methodologies resolving dimensionality complications for autism neur...
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Monthly Chronicles - July 2025
Review of recent advances in non-invasive hemoglobin estimation
Empathic Computing: Creating Shared Understanding
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

TDX19 - Untangle Your Org with Salesforce Developer Tools

  • 1. Untangle Your Org with Salesforce Developer Tools Shane McLaughlin Director, Technical Product Marketing shane.mclaughlin@salesforce.com @MShaneMc Doug Ayers Lead Developer, Trailhead Content doug.ayers@salesforce.com @DouglasCAyers
  • 2. This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. Statement under the Private Securities Litigation Reform Act of 1995 Forward-Looking Statement
  • 3. Agenda Why untangle your org? Common Tangles 1. Profiles 2. Processes and Triggers 3. Page Layouts, Lightning Pages, Reports & Dashboards Tips, Tricks, Tools Q&A
  • 4. An org where it is not apparent which code and config pertain to which logical apps and functionality. To iterate development on a single feature often requires the entire org’s metadata deployed to it and may impede the use of CI/CD, scratch orgs, and other critical tools. First, what is a tangled org?
  • 5. Why untangle your org? Empower multiple teams to own, build, and release independently of each other Promote reusable functionality and packaging with modular app development Simplify scratch org setup and adopt CI/CD for each logical app Team 1 Team 2 Team 3
  • 7. What does your System Admin profile refer to? Profiles Are Not Your Friend System Admin Profile Record Type Assignments Page Layout Assignments Object & Field Permissions App Assignments
  • 8. Alternative Design with Permission Sets base schema base permissions (ALL) base permissions (regular) base permissions (read-only) app schema app permissions (ALL) app permissions (regular) app permissions (read-only) app schema app permissions (ALL) app permissions (regular) app permissions (read-only) capstone or soup: includes minimal profiles (ex: layout assignments)
  • 9. Shane wrote a blog post at bit.ly/migrate-to-permsets 1. Do it manually in the UI 2. Cut and paste in your code editor 3. Open Source plugins for Salesforce CLI a. Convert with options b. Align from local source schema c. Remove objects from profiles/permsets 4. Profile and Permission Set Helper by Salesforce Labs on AppExchange Migration Paths from Profiles to Permission Sets
  • 11. Tangle 2: Processes and Triggers
  • 13. ● Platform Events ● Invocable Processes and Autolaunched Flows ● Interfaces, Type.forName, and Callable ○ bit.ly/callable-sean-cuevo ● Dependency Injection ○ bit.ly/df18-force-di Design Patterns for Untangling Processes and Triggers
  • 14. Tangle 3: UI Page Layouts, Lightning Pages, Reports & Dashboards
  • 15. Page Layouts, Lightning Pages, Reports & Dashboards Some things depend on many things; leave them unpackaged or in a top-level package
  • 17. Sometimes you have to build something else to view/test/try your actual project - project structure - project.json “I need this to exist, but not in my package” Minimum dependencies from the soup - (unpackaged) mdapi deployments - (packaged) runtime packages (pilot) Trick #1: Unpackaged / Implementation Folder
  • 18. Community Boilerplate: Salesforce’s code included in communities ● Keeps this code out of source tracking ● All communities have this dependency Standalone, non-dependency, non-dev ● ex: LightningThemes Feature packages ● fat base: common schema, ui, perms, etc. ● extensions: minimal schema, community Trick #2: Package Patterns
  • 19. AppExchange in setup script Refer to a package on GitHub (not manually updating versions everywhere downstream) ● source code for package version list ● install script/plugin Deploying actual source via GitHub Trick #3: Ways to Include “packages” in Deployments
  • 20. Scenario - You got rid of the 4 standard account layouts - Every DE scratch org has them - Adding a required field to an object populates them - sfdx force:pull:source Solution - DestructiveChanges.xml (package.xml format) - Script that uses this Trick #4: Destructive Changes for Unwanted Stuff
  • 22. ● Second-Generation Packaging: a Practical Guide ● Package-Based App Development Patterns ● Accelerate Source-Driven Development with Unlocked Packages and Scratch Orgs ● Truly Asynchronous Apex Triggers using Change Data Capture Explore Related Sessions Check out the session recordings after the conference
  • 23. What’s Next? Experience Salesforce DX across TDX 2019 See demos, join a workshop, ask questions & more! Visit us at Platform Point! Floor 1 Related Sessions W, 12:30pm The Salesforce DX Cheatsheet Surfside Theater W, 2:30pm Transitioning to Custom Metadata Types Redwood Theater W, 3:45pm Salesforce DX for ISVs: How to Get Started Reefscape Theater W, 5:00pm Unleash Citizen Developers Effectively Redwood Theater Th, 8:30am Accelerate DevOps with GitLab and Salesforce Room 2005 Th, 10:00am Best Practices: Building with VS Code Room 2004 Th, 1:00pm Accelerate Source-Driven Development with Unlocked Packages and Scratch Orgs Room 2004 Th, 2:00pm How We Built Salesforce DX Room 2004 3rd Floor Keynote Room Super Sessions: Salesforce <3 DX Weds at 3:00 PM Build Together with Low Code Thurs at 11:00 AM