Data Cloud Packaging and Extensibility
Learning Objectives
After completing this unit, you’ll be able to:
- Describe extensibility and packaging terminology.
- Explain the development lifecycle.
Extend Data Cloud for Your Use Case
Salesforce Data Cloud is designed for extensibility. In other words, it was built so that you can develop and share its key capabilities and functionality. In this badge, we cover how you can develop, contain, and deploy Data Cloud functionality using data kits and managed packages. We’re ready to help you build and share Data Cloud apps and configurations. After all, sharing is caring.
In this module, we assume you have some knowledge of Data Cloud and its capabilities. New to Data Cloud or need a refresher? Check out the Unlock Your Data with Data Cloud Trail for other relevant modules.
Follow Along with Get Cloudy Consulting
Get Cloudy Consulting is a Salesforce Partner and Independent Software Vendor (ISV) with an idea—to create a custom implementation of Data Cloud specifically for shoe vendors. Once Get Cloudy is done, the team hopes to sell its Data Cloud app on Salesforce’s app marketplace, AppExchange.
In the following units, follow Get Cloudy Consulting on its journey to create and package a Data Cloud app. For the sake of simplicity, we gloss over some steps and focus mostly on creating data kits and packages. A more detailed step-by-step process is located in the Data Cloud Developer Guide.
Terms and Concepts
Before we get started, here are a few important terms and concepts related to extending Data Cloud.
Metadata
Metadata is data that describes other data. In Data Cloud, metadata includes the fields, configurations, process definitions, and code that make up your Data Cloud environment. Learn more about what metadata can be added to a data kit in the Data Cloud Developer Guide.
Salesforce Package
A package is a container of custom objects and metadata that can be installed on one or many orgs, and can be shared with other Salesforce users. If you want to develop a business app and sell it to Salesforce customers, managed packages are the tools that Salesforce partners use to create business apps and distribute their apps to customers via AppExchange. Managed packages support versioning and push upgrades for automation, while unmanaged packages can’t be upgraded. The suite of capabilities offered by managed packages helps you distribute, license, pilot features of, troubleshoot, and monetize your offerings.
When creating a managed package with Data Cloud metadata, you must isolate the Data Cloud metadata from the other Salesforce metadata by creating separate packages that contain only Data Cloud metadata. Then create package dependencies between your dedicated Data Cloud package and any related packages.
Second-Generation Managed Packaging
Salesforce has first-generation managed packaging (1GP) and second-generation managed packaging (2GP). Going forward, we recommend that all new packages be created using managed 2GP. Second-generation managed packaging (managed 2GP) ushers in a better way for AppExchange partners to develop, distribute, and manage their apps and metadata. Learn more about second-generation managed packaging for all Salesforce applications through the Second-Generation Managed Packages Trailhead module.
Data Kit
A data kit is a portable and customized bundle of packageable metadata, created within Data Cloud. Data kits organize Data Cloud metadata in the form of templates. This can be done directly from the UI without writing any line of code. Data Cloud features and metadata must first be added to a data kit. Once a data kit is created, the data kit should be added to a package.‌
When users want to use the data kit in their org, they must install the package and deploy the data kit components in their org. Deploying a data kit involves activating and utilizing the components within the data kit in your Salesforce org. This process ensures that the data streams, data models, and other elements included in the data kit are operational and integrated into your org.
Development Lifecycle
The Get Cloudy Consulting team begins to discuss what they have to do to make their Data Cloud app. As they develop their app, they’ll use packages and data kits before their package becomes a full-fledged app.
The Get Cloudy Consulting team makes a list of everything they’ll do to make this app using the app development lifecycle. The app development lifecycle includes:
-
Plan and gather requirements. The team will talk to relevant stakeholders to define what they want the app to do, what the timeline should be, and what success looks like.
-
Create the package. Through the Salesforce user interface or the command line interface (CLI), developers can build the necessary Data Cloud components in a scratch org, add the features to a data kit, then package it.
-
Test the package. The Get Cloudy team will install the package and deploy the components in another org to test all the features and ensure they’re meeting the requirements they defined.
-
Make iterative changes to fix issues. The developer team will fix the issues they’ve found and test the app again. After fully tested and confirmed, the same (or updated) packaged data kits can then be installed in a production org. This is key to Data Cloud, since mapping and modeling your data correctly is required for Data Cloud features like identity resolution and segmentation.
-
Perform user acceptance testing. As a final test, the developer team will do some user testing and see what initial feedback they get. They might change some features in response to the‌ial feedback and polish the application.
-
Distribute the app through AppExchange. As a Salesforce Partner, Get Cloudy can list the app on AppExchange, where customers can try a demo, see reviews, and purchase the app.
If you’re unfamiliar with AppExchange, we recommend taking a look at the Data Cloud Solutions in AppExchange: Quick Look Trailhead module.
In the next unit, you see how Get Cloudy Consulting begins to build their Data Cloud app with managed packaging.
Resources
- Salesforce Developers: Package Data Cloud Metadata Components
- Salesforce Help: Packaging and Data Kits in Data Cloud
- Salesforce Developers: Metadata API Developer Guide