npx skills add ...
npx skills add forcedotcom/sf-skills --skill experience-cms-brand-apply
Extracts, retrieves, and applies CMS brand guidelines (voice, tone, style, colors, typography) to generated content. Use this skill ANY TIME a user request involves branding, brand voice, brand tone, brand guidelines, brand identity, brand styling, or applying a brand to content. Triggers for requests like \"apply my brand\", \"use our brand voice\", \"match our brand guidelines\", \"find my brand\", \"search for brand\", \"get brand instructions\", \"apply brand tone\". Handles the full workflow: searching for brands in Salesforce CMS, extracting brand instructions, and applying brand voice/tone/guidelines to generated content. Does not apply to media/image search (use experience-search-coordinate skill), logo search, or creating new brand definitions.
npx skills add forcedotcom/sf-skills --skill experience-cms-brand-apply
Universal skill for searching, extracting, and applying CMS brand guidelines to generated content.
This skill is for APPLYING existing brand guidelines from Salesforce CMS to content you generate.
Use this skill when the user wants to:
DO NOT use this skill when the user wants to:
CRITICAL: You must retrieve brand instructions BEFORE applying any brand.
When a user requests branded content:
Never generate content first and retrofit branding later. Brand instructions must inform content generation from the start.
Copy this checklist and track your progress:
Check if the user has already specified which brand to use:
Brand is known (user named it, or only one brand exists):
Brand is unknown (user says "apply my brand" without specifying which):
Tool: search_media_cms_channels
Brands are stored as CMS content of type sfdc_cms__brand. Search for them by
querying the CMS channels with the brand content type.
Note: Brand content search (
contentTypeFqn=sfdc_cms__brand) is explicitly excluded from theexperience-search-coordinateskill's scope. Callingsearch_media_cms_channelsdirectly here is correct and intentional — do not route brand search throughexperience-search-coordinate.
Process:
Field rules:
searchKeyword — the user's keyword inputsearchLanguage — auto-detect from the user's input; if unsure, use en_USchannelType — always PublicUnauthenticated (brand content is delivered
via the public CMS channel; authenticated-channel brand search is not
supported by this tool)contentTypeFqn — always sfdc_cms__brandpageOffset — 0searchLimit — 25search_media_cms_channels with the request9Ps. Extract:
managedContentId — Unique ID (use this for extraction in Step 3)managedContentKey — Content key identifiertitle — Brand display namecontentUrl — URL to the brand content, found under
managedContentChannelDeliveryDetails[0].contentUrlpageNumber, pageSize, totalResults — pagination summaryIf brands found, first show a summary line, then use ask_followup_question
to present options:
When the user replies with their selection, do NOT perform another search — proceed immediately to Step 3.
If one brand found, confirm with the user:
If no brands found:
Never auto-select a brand without confirmation. Always wait for user choice.
Tool: get_brand_instructions
Process:
Call get_brand_instructions — This retrieves the branding extraction prompt template
Parse the response:
promptBody — Contains the full brand instruction prompt with extraction and application rulesFollow the instructions in promptBody — The prompt template contains specific guidance on:
The extracted brand instructions typically include:
| Property | Description |
|---|---|
| Brand Voice | How the brand speaks (e.g., professional, friendly, authoritative) |
| Brand Tone | Emotional quality of communication (e.g., confident, warm, empathetic) |
| Key Messages | Core messaging pillars and value propositions |
| Content Rules | Dos and don'ts for content generation |
| Style Guidelines | Typography, color, spacing preferences |
| Guardrails | Hard restrictions on language, topics, or claims |
| Error | Response |
|---|---|
search_media_cms_channels unavailable | "Brand search is unavailable. Please provide your brand name or guidelines directly." |
get_brand_instructions unavailable | "Cannot retrieve brand instructions. Please share your brand guidelines in this conversation and I'll apply them manually." |
| Org lacks Vibes branding | "CMS branding is not enabled for this org. Contact your admin to enable the Agentforce Vibes branding feature." |
| Permission denied | "You don't have permission to access CMS brands. Ensure you have Managed Content Authoring permission." |
| Brand extraction returns empty | "The brand exists but has no configured guidelines. Please add brand properties in CMS or provide guidelines here." |
Never silently fail. Always inform the user and offer alternatives.