Are you using custom settings or custom objects to store configuration data in your Salesforce app? This is so last century! If you want to party with all the cool kids on the block, you need to start using custom metadata types! In this session we’ll provide an overview of custom metadata types and why they are the configurational engine for your apps and packaged and will take an existing Salesforce app which uses custom settings and refactor it in real time to use custom metadata types instead, changing Apex classes, post-install scripts, tests, validation rules, and formula fields.
You will also have a chance to get a first look at a new SFDX CLI plugin that makes working with custom metadata types easier!
2. #CD19
Born and raised in Omsk, Russia
(hello, Jaromir Jagr!)
Based in San Francisco, CA
Follow me on twitter: @vladimge
Director, Product Management
Salesforce
3. #CD19
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.
Forward Looking Statement
4. #CD19
Data vs Metadata Objects
Data Objects
For the business
Used by users
Metadata Types
For the app
Used by admins
5. #CD19
Standard vs Custom Metadata Types
Standard
Built by Salesforce
Custom
Built by Admins
Data Objects
For the business
Used by users
Account Invoice
Contact Warranty
Opportunity Project
Metadata Types
For the app
Used by Admins
Validation Rules Stock Point Rule
Account Settings Warranty Settings
CO Translations VAT Rules
6. #CD19
Key Differentiators For CMTs
Functionality
List Custom
Settings
Hierarchical
Custom
Settings
Custom
Objects
Custom
Metadata
Types
Unlimited calls / queries Y Y N Y
Retrieve / deploy & package install records N N N Y
Protect (hide) the object Y Y N Y
Protect (hide) individual records N N N Y
Control over editability of fields N N N Y
Setup audit trail history of records N N N Y
Picklists, long text area and relationship fields N N Y Y
Reference records in declarative tools N Y Y Y
7. #CD19
● New limit on how many CMTs you can create: 200
● Reference records of CMTs in process builder
● Reference records of CMTs in formula fields
● Reference records of CMTs in field default values
● Reference records of CMTs in validation rules
Some New Features You Might Have Missed
8. #CD19
● When you insert a Lead, the app uses Country and Industry fields to
set the right Record Type.
● The mapping is stored as custom settings records.
Let’s see how we can convert it to custom metadata types!
Record Type Mapping Example
12. #CD19
● Better secret management for CMTs:
○ In your local orgs
○ In the next generation packaging
● New CLI plugin for CMTs
● Sync updates for CMTs
● VLOOKUP for CMTs in formulas
What’s Next?
13. #CD19
● Check out our new “Custom Metadata Types” modules
● Join Custom Metadata Types Trailblazer group
● The "before" version (custom setting): https://sfdc.co/repo-CS
● The "after" version (custom metadata types): https://sfdc.co/repo-CMT
Helpful Resources
Custom Metadata Types Basics
Programmatic Development with Custom Metadata Types