Create a Content Selector for External Content Providers

Connect external content providers and digital asset management (DAM) systems to Salesforce CMS to streamline content creation and management.

If you’re a DAM provider or ISV, you can create a managed package that helps CMS users connect to your external system. After the package is installed in an org, CMS users can access and use media from the external provider directly in enhanced CMS workspaces.

Supported media types include images, videos, documents, and audio files.

To connect to an external content system, you define the external content provider connection and create an instance of the provider in the org. You must also create a custom Lighting web component that implements your preferred user interface for selecting content in the CMS content editor.

With this approach, when users create a content item in an enhanced CMS workspace, the CMS content editor shows a list of available provider instances. When users select a provider, the editor uses your component to display the external content. And when they select an asset, the component fires an event that creates a CMS record with a reference to the asset.

External content selector in CMS content editor

Similarly, in Marketing Cloud Next, the external content selector appears when users create content, such as images or landing pages, in marketing workspaces.

External content selector in Marketing Cloud workspace

Users can also access external content in enhanced LWR, non-enhanced LWR, and Aura sites in Experience Cloud.

Each external asset uses an externalId to ensure uniqueness within a workspace, meaning a workspace can’t contain assets that share the same externalId. However, multiple workspaces can each contain an asset with that externalId.

When referencing an external media asset, Salesforce CMS checks for existing content using the asset’s unique identifier.

  • If content matching the externalId exists in the current workspace or any shared workspace, that existing content is used as the referenced content, and no new content is created. However, the user can override this and create the content in the current workspace if preferred.
  • If no matching content is found in the current or shared workspaces, a new content item for the selected asset is created in the workspace.

Users can also share external content across workspaces in the same way as other CMS content. See Share Content Across Enhanced CMS Workspaces in Salesforce Help.

Content created via asset selection can’t be edited or cloned from a CMS workspace.

Several metadata API types combine to create a content selector for an external content source, including:

  • DgtAssetMgmtProvider: Represents external content providers that integrate with Salesforce CMS. When combined with the DgtAssetMgmtPrvdLghtCpnt type, this metadata type enables organizations to configure external content systems as content providers within Salesforce.
    See DgtAssetMgmtProvider in the Salesforce Metadata API Guide.
  • DgtAssetMgmtPrvdLghtCpnt: Represents the Lightning web component configurations for external content providers. This metadata type enables the integration of external content systems with Salesforce CMS using custom Lightning web components.
    See DgtAssetMgmtPrvdLghtCpnt in the Salesforce Metadata API Guide.
  • LightningComponentBundle: Represents a custom Lightning web component bundle. In this case, the component implements a user interface for the external content provider in the content editor in Salesforce CMS.
    See LightningComponentBundle in the Salesforce Metadata API Guide.
  • CspTrustedSite: Represents a trusted URL. All external URLs must be allowlisted according to the Content Security Policy (CSP) guidelines. If this component isn’t included, then users must manually add trusted URLs in Setup after installation.
    See CspTrustedSite in the Salesforce Metadata API Guide.

Additionally, see:

To configure a content selector for an external content system, you can use the files from a Salesforce-provided sample package as a starting point or configure your own content selector from scratch.