Developer Introduction to Salesforce CMS


CMS stands for Content Management System. The most well-known CMS today is WordPress. Common components of a CMS are content administration features (authoring tools for content like blogs, news, events, white papers, etc) in addition to content delivery capabilities that renders the content for consumption, such as a web page or over an API.

How Does Salesforce CMS Work?

Below is a Salesforce produced marketing material video (about 2 mins in length), that does a good job highlighting the general capabilities of the CMS. One thing you’ll note, is that Salesforce CMS can operate in a headless manner, meaning that content is able to be served across many channels, but is all consolidated in one location. You can think of this like a bicycle wheel’s hub-and-spoke, where Salesforce is the hub for all of your content, and the various channels are the spokes (Commerce, Blogs, Print material, Emails, and so on). It does this by serving the content through an API, or via pre-built connectors on Commerce Cloud, Marketing Cloud, or Communities. You can also serve content through social media channels. The value proposition Salesforce is offering it’s customers, is that you can author and maintain all of your content inside Salesforce, then serve that content anywhere, inside or outside Salesforce.

Core Salesforce CMS Capabilities

There are several features, common to other CMS systems (such as WordPress, Sitecore, Kentico, Sitefinity) that are also present in Salesforce CMS. The advantage, for you the developer, is that you are able to leverage familiar Salesforce developer tooling (Salesforce DX, Lightning Web Components, Salesforce API) to deliver and present that content to your customer’s as another customer touchpoint, enhancing the 360 degree view of your customers and providing them with modern experiences.

A high-level breakdown of features/functionality follows:

  • Content Workspaces: Content is able to be organized into ‘workspaces’ that may be unique per marketing campaign, per calendar year, or any other logical grouping that makes sense.
  • Content Workflows: Your team is able to assign content managers, and content authors, each with their own permission, the ability to create draft and published versions of content.
  • Multilingual Content: In addition to content being able to be delivered in your organizations native language, you are also able to denote additional languages that content should be translated into and the system supports the translation user interface to support that.
  • Omnichannel Delivery: You are able to denote which channels: Marketing, Commerce, Communities you wish the workspace content to appear in.
  • Custom Content Types: Currently this isn’t available via the UI, but I will highlight below how to create your own content types using the Tooling API.
  • Experience Builder Components: More information below, but there are two new Experience Builder components called CMS Single Item and CMS Collection that can be used to render content on the screen.

I expect this list of features to grow with each future release, and I plan to have several future posts regarding Salesforce CMS capabilities as well.

Experience Builder

For those of us with prior experience building Salesforce Communities, you may have used the Community Builder feature. This feature is now referred to as ‘Experience Builder’ and I believe will continue to be the basis for developing content rich customer facing experiences in the future. It uses the same Salesforce tooling we already know and appreciate (DX, LWC, API). Combined with new Spring 20′ features such as Flexible Layouts that allow mobile-friendly page layout design, Experience Bundle that allows human-readable deployment options for community experiences, and other recent features it is really paving the way for Salesforce CMS to be a great option in the future for companies evaluating a way to have a full dot-com content rich solution. It’s still early days for Salesforce CMS, but I do anticipate it will continue to grow and evolve over time to add even more capability.

Creating Custom Content Types

One challenge I ran across when first engaging with the Salesforce CMS was how to create custom content types. Custom content types (News, Blogs) are defined in Salesforce as being of the object type ManagedContentType which derives from the Metadata type. Using the Salesforce Tooling API, it is possible to create new content types. The default just shows News, and you aren’t (currently) prompted to specify a content type when selecting new record for content types. A full-write up on how to create those new content types is on the Salesforce Developer Blog. I would re-create that here, but it would be redundant.

One additional note I should add here is the steps to setup Salesforce CMS which primarily involves enabling communities, assigning some profile permissions, and a few other minor steps.

Looking Ahead

The CMS landscape is full of very innovative and mature technology companies, such as WordPress, Sitecore, Adobe Experience Manager, Contentful, Contentstack, and a host of other solutions. The advantange, in my opinion, or using Salesforce CMS for you the developer, is that you are able to use existing platform knowledge to service this feature for your business. Additionally, with the other platforms noted above, you are able to surface content outside of Salesforce, but with Salesforce CMS, you are additionally able to surface your content across your various Salesforce channels, such as Marketing Cloud, Commerce Cloud, and so on, so there is truly a unified experience across all of your channels. I admire the number of features and capabilities Salesforce continues to deliver 3x a year, and fully expect Salesforce CMS to continue to grow and mature with each release.

More information about Salesforce CMS is available here.


Kyle Ballard