Designing for Multi-User Complexity: Visibility, Ownership, and Process
As orgs grow, so does complexity. And nowhere is that more evident than in multi-user ownership and access design.
You can’t just “let everyone see everything” and hope for the best. Over the last year, I’ve developed frameworks that balance:
Record-level visibility (role hierarchy, sharing rules, manual sharing)
Process clarity (who acts when, and how automation responds)
Ownership transitions (consultant leaves, team changes, reassignment flows)
When to Say No: The Skill That Took Me the Longest to Learn
External Objects Aren’t Just for Integration—They’re a UX Superpower
When people think of External Objects, they think data sync. But I’ve started using them to improve the user experience in Salesforce.
Examples:
Viewing external inventory or availability directly from a record page
Displaying past transaction history from a billing system
Creating read-only snapshots of data that doesn’t need to live inside the org
The Hidden Power of Permission Set Groups
Permission Set Groups are one of the cleanest admin upgrades Salesforce has introduced—and I now use them to enforce structure and clarity across our org.
Instead of assigning a dozen permission sets individually, I:
Create logical groups like “Core Consultant Access” or “Service Manager Tools”
Add or remove permission sets centrally
Apply muting permissions when necessary (yes, you can subtract access too)
When to Use Platform Events vs Change Data Capture
Loose Coupling in Flow and Apex: Why I Never Hardcode Anything Anymore
If there’s one rule I apply religiously in my org: hardcoding is technical debt.
Whether it’s Flow logic, Apex classes, or email templates, I aim for loose coupling:
Use Custom Metadata Types or Custom Settings for key values
Reference Labels, not static strings
Pull IDs dynamically using Custom Labels or SOQL selectors, not copy/paste
CI/CD in Salesforce: How I Use Source Control and Automated Testing
The best Salesforce orgs are built like modern software projects. That means embracing CI/CD, even if you’re a solo admin.
My current setup:
All declarative and code changes tracked in GitHub
Pull requests trigger validation deployments to a sandbox
Static code analysis runs using PMD and Prettier
Deployments happen via SFDX CLI scripts or GitHub Actions