experience-cloud-cms-content
Use when setting up CMS workspaces, creating or publishing content types for Experience Cloud sites, managing content scheduling, or configuring audience targeting on content variants. Triggers: 'set up CMS workspace', 'publish content to Experience Cloud site', 'content scheduling community', 'audience targeting content', 'managed content vs unmanaged', 'custom content type metadata', 'CMS channel configuration'. NOT for Salesforce Knowledge articles, CMS Connect to external CMS platforms, or Experience Builder layout/theming work.
Best use case
experience-cloud-cms-content is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when setting up CMS workspaces, creating or publishing content types for Experience Cloud sites, managing content scheduling, or configuring audience targeting on content variants. Triggers: 'set up CMS workspace', 'publish content to Experience Cloud site', 'content scheduling community', 'audience targeting content', 'managed content vs unmanaged', 'custom content type metadata', 'CMS channel configuration'. NOT for Salesforce Knowledge articles, CMS Connect to external CMS platforms, or Experience Builder layout/theming work.
Teams using experience-cloud-cms-content should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/experience-cloud-cms-content/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How experience-cloud-cms-content Compares
| Feature / Agent | experience-cloud-cms-content | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when setting up CMS workspaces, creating or publishing content types for Experience Cloud sites, managing content scheduling, or configuring audience targeting on content variants. Triggers: 'set up CMS workspace', 'publish content to Experience Cloud site', 'content scheduling community', 'audience targeting content', 'managed content vs unmanaged', 'custom content type metadata', 'CMS channel configuration'. NOT for Salesforce Knowledge articles, CMS Connect to external CMS platforms, or Experience Builder layout/theming work.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Experience Cloud CMS Content Use this skill when setting up Salesforce CMS workspaces, defining content types, publishing managed content to Experience Cloud sites, or configuring content scheduling and audience targeting. This skill covers the native Salesforce CMS authoring surface accessed through the Digital Experiences app. It does not cover Salesforce Knowledge articles, CMS Connect to external headless CMS platforms, or Experience Builder page layout and theming. --- ## Before Starting Gather this context before working on anything in this domain: - Is the target site LWR (Lightning Web Runtime) or Aura-based? LWR sites require the CMS content component; Aura sites use the CMS Single Item or Collection components. Channel type must match the site type. - Is the content managed (shared across multiple sites via a CMS channel) or unmanaged (authored directly within a single site)? Managed content is portable; unmanaged content is tied to one site and cannot be reused. - Does the org have the Digital Experiences app enabled? CMS workspaces live in the Digital Experiences app, not in the classic Setup tree. Admins need the Manage Experiences or Create and Set Up Experiences permission. --- ## Core Concepts ### CMS Workspaces A CMS workspace is the organizational container for all CMS content in an org. Workspaces are created through the Digital Experiences app (App Launcher > Digital Experiences). Each workspace holds content items, manages contributor access, and is linked to one or more channels. A single org can have multiple workspaces to separate content by brand, language, or business unit. Workspace membership controls who can create, edit, approve, and publish content; workspace roles include Content Admin, Content Manager, and Content Author. ### Content Types Salesforce CMS ships with three standard content types: News (text-rich articles with a title, body, summary, and banner image), Banners (promotional image content with a title, body text, and image), and Images (standalone image assets with alt text). Custom content types extend these with org-specific fields and are defined through the Metadata API using the `ManagedContentType` metadata type or through the Tooling API. Custom types are not configurable through point-and-click Setup; they require a metadata deployment. Each content item is versioned: draft, published, and archived are the available lifecycle states. ### CMS Channels A CMS channel connects a workspace to a delivery endpoint — either an Experience Cloud site or a public API endpoint for headless delivery. Channels have a type: `ExperienceChannel` for Experience Cloud sites or `PublicChannel` for headless API delivery. The channel type must match the site's runtime. Content is not visible to site visitors until it is published and assigned to the correct channel. A single workspace can serve multiple channels; content can be shared across channels without duplication. ### Content Scheduling and Audience Targeting Content items support publish scheduling: a scheduled publish date queues a draft for automatic publication, and a scheduled unpublish date automatically archives a live item. Scheduling is set per content item, not at the workspace level. Audience targeting applies to content variants — a single content item can have multiple variants, each targeted to a named audience defined in Experience Cloud. Variant-level targeting means different users see different versions of the same content item based on audience membership. Audiences are defined in the Experience Cloud site's audience configuration and then referenced on the content variant. ### Managed vs. Unmanaged Content Managed content lives in a CMS workspace and is published to sites through channels. It is versioned, reusable across multiple sites, and portable across sandboxes via metadata deployment. Unmanaged content is authored directly within an Experience Builder site and is not accessible from the CMS workspace. Unmanaged content cannot be shared across sites, is not promoted through a channel, and does not participate in CMS versioning or scheduling. New implementations should default to managed content for any content intended to be reused or governed. --- ## Common Patterns ### Pattern 1: Standard Content Types for a Portal Homepage **When to use:** A portal needs a rotating banner, a news feed, and featured images managed by a content team without developer involvement. **How it works:** Create a CMS workspace in Digital Experiences. Add the portal site as a channel of type `ExperienceChannel`. Create Banner content items for the rotating hero area and News items for the feed. In Experience Builder, drop the CMS Single Item component onto the page and bind it to the Banner content. Drop the CMS Collection component for the news feed and configure the collection filter. Content authors update CMS items without touching the page layout. **Why not the alternative:** Hardcoding content in Experience Builder page properties or static resources ties content updates to a developer deploy. CMS-backed components let content authors publish independently of the page structure. ### Pattern 2: Scheduled Seasonal Content with Audience Targeting **When to use:** A seasonal promotion should appear for loyalty-tier customers starting on a specific date and expire automatically, while non-members see a default banner. **How it works:** Define two audiences in Experience Cloud: `LoyaltyTierMembers` and `AllVisitors`. Create a Banner content item with two variants: the seasonal variant targeted to `LoyaltyTierMembers` with a scheduled publish and unpublish date, and the default variant targeted to `AllVisitors` with no schedule. Publish the content item. The platform automatically switches variant visibility on the scheduled dates without any further admin action. **Why not the alternative:** Manually swapping page components on a schedule requires deployment windows and developer access. CMS scheduling + variants handles this entirely within the content layer. --- ## Decision Guidance | Situation | Recommended Approach | Reason | |---|---|---| | Content will be reused across multiple sites | Managed content via CMS workspace + channels | Single source of truth; changes propagate to all channels | | Content is site-specific and not shared | Unmanaged content in Experience Builder | Lower overhead; no workspace or channel setup required | | Custom fields are needed beyond News/Banner/Image | Custom content type via Metadata API deployment | Standard types have fixed schemas; custom types add org-specific fields | | Content should publish automatically on a future date | Per-item schedule on the content variant | Scheduling is built into the content item; no Flow or automation needed | | Different user segments should see different content | Audience-targeted content variants | Define audiences in Experience Cloud and reference on each variant | | Content needs to be promoted from sandbox to production | Managed content via metadata deployment | Managed content and custom type definitions are promotable via SFDX/CLI | --- ## Recommended Workflow Step-by-step instructions for an AI agent or practitioner working on this task: 1. **Verify Digital Experiences and CMS prerequisites** -- Confirm the Digital Experiences app is enabled. Check that the admin has Manage Experiences permission. Identify the target site's runtime (LWR or Aura) because this determines the correct channel type and Experience Builder CMS components to use. 2. **Create or verify the CMS workspace** -- In Digital Experiences, open Workspaces and create a new workspace (or confirm one exists for this content domain). Add the target Experience Cloud site as a channel. Confirm the channel type matches the site runtime. 3. **Define content types** -- Identify whether standard types (News, Banner, Image) are sufficient. If custom fields are needed, author the `ManagedContentType` metadata and deploy via SFDX or Metadata API before attempting to create content items of that type. 4. **Author and stage content items** -- Create content items in the workspace. Set variant targeting if audience-specific content is required. Set publish and unpublish schedules on variants if timed delivery is needed. Save as draft until ready. 5. **Publish content to the channel** -- Publish each content item (or use bulk publish from the workspace view). Confirm the item status changes to Published and the channel is listed under the item's channel assignments. 6. **Wire content to Experience Builder components** -- In Experience Builder, add CMS Single Item or CMS Collection components to the target page. Bind them to the published content items or collections. Preview in the correct audience context to verify variant targeting renders correctly. --- ## Review Checklist Run through these before marking work in this area complete: - [ ] CMS workspace exists and the target Experience Cloud site is added as a channel with the correct channel type - [ ] Custom content types have been deployed via Metadata API before content items of that type are created - [ ] All content items are in Published status and assigned to the correct channel (not just saved as draft) - [ ] Audience-targeted variants reference defined audiences from the site's audience configuration - [ ] Scheduled publish/unpublish dates are set in the org's local timezone and confirmed in the content item's schedule panel - [ ] Experience Builder components are bound to managed content items (not hardcoded text or static resources) - [ ] Content rendering is verified in Experience Builder preview under the target audience context --- ## Salesforce-Specific Gotchas Non-obvious platform behaviors that cause real production problems: 1. **Custom content types require a Metadata/Tooling API deployment — there is no declarative UI** -- The `ManagedContentType` metadata type must be authored as XML and deployed via SFDX, Metadata API, or the Tooling API. Admins expecting a Setup wizard or a New Content Type button in Digital Experiences will not find one. Attempting to create content items of an undefined type fails silently in some org versions. 2. **Channel type mismatch causes content to be invisible** -- A channel configured as `PublicChannel` will not deliver content to an LWR or Aura Experience Cloud site. The channel type must be `ExperienceChannel` for site delivery. Mis-configured channels produce no error — content simply does not appear. Verify channel type in Digital Experiences > Workspace > Channels. 3. **Publishing to a sandbox does not replicate to production** -- Managed content items are not promoted automatically between environments. CMS content must be exported from the source org and imported into the target, or re-authored. Custom content type metadata is promotable via deployment, but content item data is not metadata — it requires CMS export/import tooling or manual re-entry. 4. **Unmanaged content is lost in sandbox refreshes** -- Unmanaged content authored directly in an Experience Builder site is stored as site-local data. A full sandbox refresh overwrites it. Organizations that use unmanaged content for non-trivial content must document a re-entry process after each refresh. 5. **Audience targeting requires audiences to exist before content is created** -- Audiences are defined in the Experience Cloud site settings, not in the CMS workspace. If a content author tries to target a variant to an audience that has not been created yet, the audience selection dropdown is empty and there is no inline creation path. Audiences must be set up in the site configuration first. --- ## Output Artifacts | Artifact | Description | |---|---| | CMS workspace configuration | Workspace name, contributor roles, and channel assignments documented for handoff | | Content type inventory | List of standard and custom content types in use with field definitions for custom types | | Content publishing checklist | Per-item checklist confirming channel assignment, variant targeting, scheduling, and published status | | Audience targeting matrix | Table mapping content variants to audience definitions and scheduled dates | --- ## Related Skills - knowledge-vs-external-cms — Use when the broader question is whether to use Salesforce CMS, Salesforce Knowledge, or an external CMS platform for a given content strategy - experience-cloud-site-setup — Use when the Experience Cloud site itself needs to be created, configured, or connected to a CMS workspace for the first time
Related Skills
experience-cloud-security
Use when configuring access controls, sharing, or site security for authenticated or guest Experience Cloud (community) users: external OWD, Sharing Sets, Share Groups, CSP, clickjack protection, guest user record access. NOT for internal sharing model configuration (use sharing-and-visibility).
headless-experience-cloud
Use when building custom frontends (React, Vue, mobile, static sites) that consume Salesforce CMS content via the Connect REST API headless delivery endpoint. Triggers: 'headless Salesforce CMS', 'deliver CMS content to external frontend', 'React app Salesforce content API', 'custom frontend Experience Cloud data', 'CMS delivery channel API'. NOT for standard Experience Builder site development. NOT for CMS Connect (3rd-party CMS federation into Experience Builder). NOT for Experience Cloud LWC components rendered inside a site.
experience-cloud-search-customization
Use this skill when configuring or extending search on an Experience Cloud site — covering Search Manager scope configuration, LWR vs Aura search component selection, federated search setup, guest user search access, and custom search result components. NOT for SOSL/SOQL query development. NOT for internal Salesforce global search or Einstein Search for agents.
experience-cloud-multi-idp-sso
Use this skill when configuring multiple identity providers (OIDC and/or SAML) on a single Experience Cloud site or across tenant-specific portals in the same org — covering auth provider registration, Start SSO URL routing, Federation ID mapping, RegistrationHandler implementation, and simultaneous SP+IdP topology. Trigger keywords: multiple identity providers Experience Cloud, multi-tenant SSO community portal, vendor and citizen portal same site, OIDC SAML both on login page, tenant-specific login routing community. NOT for internal Salesforce employee SSO configuration. NOT for single auth provider setups — see experience-cloud-authentication for basic SSO.
experience-cloud-lwc-components
Use when building custom LWC components for Experience Cloud (Experience Builder sites, LWR portals, Aura-based communities). Covers community context imports, guest user Apex access patterns, navigation API differences between LWR and Aura, and JS-meta.xml target configuration for Experience Builder exposure. NOT for internal LWC components deployed to Lightning App Builder or standard record pages (see lwc/lwc-development). NOT for Aura community components. Trigger keywords: build LWC for Experience Cloud, custom component community portal LWC, guest user LWC component, community context import salesforce, lightningCommunity target, @salesforce/community, guest Apex.
experience-cloud-authentication
Use when building custom login pages, social SSO flows, self-registration flows, or passwordless OTP login for Experience Cloud (community) sites. Trigger keywords: custom login page Experience Cloud, social SSO community portal, passwordless login Experience Cloud, self-registration custom flow, headless authentication community, auth provider OIDC SAML site. NOT for internal SSO configuration (use identity/sso skills). NOT for standard username/password authentication with no customization.
experience-cloud-api-access
Use this skill when configuring or troubleshooting API access for Experience Cloud external users and guest users: guest user Apex data access, Customer Community Plus or Partner Community REST/SOAP API access, external user OAuth scopes, and sharing enforcement on API responses. Trigger keywords: Experience Cloud API access external user, community user REST API, guest user API limits, Customer Community API permissions, external user OAuth. NOT for internal Salesforce API authentication, non-community OAuth flows, or internal user API security.
net-zero-cloud-setup
Use this skill when configuring Salesforce Net Zero Cloud — including Scope 1/2/3 emission source modeling via the StnryAssetCrbnFtprnt / VehicleAssetCrbnFtprnt / Scope3CrbnFtprnt object families, emission factor library setup (EmssnFctr / EmssnFctrSet), DPE-driven carbon calculation jobs, supplier engagement scoring, and CSRD / ESRS / TCFD disclosure pack mapping. Triggers on: Net Zero Cloud setup, Sustainability Cloud carbon accounting, Scope 1 2 3 emissions Salesforce, emission factor library, supplier engagement Net Zero, ESG disclosure pack mapping. NOT for ESG content scoring (use Marketing Cloud), NOT for general financial reporting (use Accounting Subledger), NOT for energy-only utility billing (use Energy & Utilities Cloud).
manufacturing-cloud-setup
Use this skill when configuring Salesforce Manufacturing Cloud — including Sales Agreement setup, Account-Based Forecasting (ABF) recalc jobs, run-rate management, Rebate Management programs, channel inventory tracking via Channel Revenue Management, and Group Membership / OrderItem-to-SalesAgreement reconciliation. Triggers on: Manufacturing Cloud setup, Sales Agreement Salesforce, account-based forecast recalculation, run rate manufacturing, rebate program setup, channel revenue management. NOT for general Sales Cloud opportunity-to-order flow (use standard Opportunity / Order), NOT for Field Service install-base management (use FSL skills), NOT for Automotive Cloud dealer modeling (use automotive-cloud-setup).
data-cloud-zero-copy-federation
Use this skill when configuring or troubleshooting Data Cloud Zero Copy / Lakehouse Federation against Snowflake, Databricks, BigQuery, or Redshift — including external Data Lake Object setup, query semantics through federation, refresh and cache behavior, and choosing federation versus physical ingestion. Triggers on: Data Cloud federated DLO setup, query latency against external warehouse, Snowflake/Databricks/BigQuery integration with Data Cloud, federation vs ingestion decision. NOT for physical Ingestion API streaming/bulk patterns (use data-cloud-integration-strategy), not for CRM Analytics external connectors (use analytics-external-data), not for outbound Data Cloud activation to external systems (use data-cloud-activation-development).
data-cloud-query-api
Use this skill when querying unified profile data, calculated insights, or Data Lake Objects from Data Cloud using ANSI SQL via the Query V2 or Query Connect APIs. Triggers on: SQL queries against Data Cloud, querying unified individuals, querying DMOs via API, paginating large Data Cloud result sets. NOT for SOQL queries against standard Salesforce objects, not for Data Cloud segment filtering in the UI, not for vector/semantic search (use data-cloud-vector-search-dev).
data-cloud-integration-strategy
Use this skill when designing or troubleshooting the data pipeline strategy for connecting source systems to Data Cloud — including ingestion API pattern selection (streaming vs. batch), connector type decisions, DSO-to-DLO-to-DMO pipeline lag, and lakehouse federation patterns. Triggers on: Data Cloud ingestion API setup, streaming vs batch connector decision, Data Cloud connector types, MuleSoft Direct for Data Cloud, data pipeline lag for segmentation. NOT for standard Salesforce integration patterns (use integration-patterns skill), not for querying Data Cloud once data is ingested (use data-cloud-query-api), not for configuring standard admin connectors through the UI only.