Help & Support
Elevate Your Agents with AgentExchange Solutions
Have Questions?
Service Concierge Portal Generate
Overview
Deploys an Agentforce Concierge portal on an LWR Experience Cloud site: provisions the site, configures Concierge components, sets up branding, wires the agent, enables guest access, and publishes. Use when the user wants to stand up a Help Portal / Agentforce Concierge portal — standalone or as the channel step in a Help Agent setup. Requires an existing, active Agentforce Service Agent on the org. DO NOT TRIGGER when the user only wants to embed a chat widget on an existing site (use service-digital-engagement-deployment-configure instead).
service-concierge-portal-generate: Agentforce Concierge portal deploy
Deploys an Agentforce Concierge experience on an LWR Experience Cloud site — an agent-first landing page with a welcome greeting, prompt bar, suggestion chiclets, and full chat surface. This is a channel-setup skill: it wires an existing agent to a new or existing portal site; it does not author the agent.
Why this skill exists
The Concierge portal setup is a 20-step workflow with precise sequencing requirements (bundle shape, routing wiring, guest access flags, CORS/CSP records). Keeping it as a standalone skill lets it be invoked from service-helpagent-coordinate (Checkpoint 3 → Help Portal branch) or called directly when the user already has an agent and only needs the portal.
Skills inventory pre-flight (MANDATORY before anything else)
Before asking the user any questions, verify that every skill this skill delegates to is installed:
for skill in service-digital-engagement-channel-configure service-digital-engagement-deployment-configure service-agentforce-channel-configure; do
[ -d ".claude/skills/$skill" ] && echo "OK: $skill" || echo "MISSING: $skill"
done
If any skill is missing, stop immediately and tell the user which skills are absent with their exact directory names. Do not proceed until the missing skills are installed.
Required inputs
| Input | How resolved |
|---|---|
Target org alias ($ORG) |
Ask via AskUserQuestion if not provided in the current conversation turn |
Agent ($BOT_ID, $BOT_DEV_NAME) |
Always query the org — never infer from prior context |
MessagingChannel ($MESSAGING_CHANNEL_DEV_NAME, $MESSAGING_CHANNEL_ID) |
Optional — pass from calling skill if already created; otherwise delegate to service-digital-engagement-channel-configure in Step E of the runbook |
EmbeddedServiceConfig ($ESC_ID, $ESC_DEV_NAME) |
Optional — pass from calling skill if already created; otherwise delegate to service-digital-engagement-deployment-configure in Step F.3 of the runbook |
If MESSAGING_CHANNEL_DEV_NAME and ESC_ID are not provided, this skill will delegate their creation to the appropriate skills (see runbook §E and §F.3). The portal site itself — the DEB bundle, branding, components, guest access, CORS/CSP — is always provisioned by this skill.
Workflow
Read references/portal-deploy-runbook.md and follow it end-to-end. The runbook is the authoritative step-by-step guide; this SKILL.md is the router and context layer only.
Entry point
Ask for the org alias:
AskUserQuestion: question: "Which org should I deploy the Concierge portal to?" header: "Org alias" options: - label: "Enter alias" description: "Type the org alias (e.g. help-portal-dev, trailsignup)"Query for active agents (activation lives on
BotVersion.Status = 'Active', not onBotDefinition— an unfilteredSELECT ... FROM BotDefinitionreturns retired/inactive bots the runbook cannot wire, so filter on activeBotVersionexplicitly):sf data query --target-org $ORG --json \ --query "SELECT Id, DeveloperName, MasterLabel FROM BotDefinition WHERE Id IN (SELECT BotDefinitionId FROM BotVersion WHERE Status='Active') ORDER BY MasterLabel"- Zero rows (no bots, or only inactive/retired bots — both count as zero for wiring) → hard-stop in the same turn. Do not load the runbook, do not delegate to
service-digital-engagement-channel-configureorservice-digital-engagement-deployment-configure, do not fabricate aBOT_ID, and do not present a "Create a new agent first"AskUserQuestion. Tell the user the portal needs an active agent to wire and point them atagentforce-generateorservice-helpagent-coordinateto create one first, then re-invoke this skill. - One or more active agents → present ALL returned agents as options via
AskUserQuestion, plus a "Create a new agent first" option. Do NOT assume the user wants the only/first agent — always ask explicitly.
If the user selects "Create a new agent first": stop immediately with this message:
Creating a new agent is outside the scope of this skill. Please run the
agentforce-generateskill (orservice-helpagent-coordinatefor a full Help Agent setup) to create your agent, then re-invoke the Concierge portal skill.If the user selects an existing agent: capture
BOT_IDandBOT_DEV_NAMEand continue.Long-list rule: if there are more than 6 agents, paginate — show 6 at a time with a "Show more" option rather than presenting all at once.
- Zero rows (no bots, or only inactive/retired bots — both count as zero for wiring) → hard-stop in the same turn. Do not load the runbook, do not delegate to
Load
references/portal-deploy-runbook.mdand execute §0 top-to-bottom.
Return values (for calling skills)
On success, surface:
| Variable | Value |
|---|---|
NETWORK_ID |
18-char Network Id of the provisioned portal |
PUBLISHED_PORTAL_URL |
Live customer-facing URL (for Incognito verification) |
MESSAGING_CHANNEL_DEV_NAME |
The EmbeddedMessaging channel wired to the agent |
ESC_ID |
EmbeddedServiceConfig Id (auth path) |
Final report format
On completion, summarize what was deployed and surface the four return values above in a clearly labeled block so the user (or a calling skill) can act on them. If the active-agent query returned zero rows, skip straight to the hard-stop message from step 2 — no return values to report.
Rules / constraints
| Rule | Rationale |
|---|---|
| Run the skills inventory pre-flight before any user interaction | Delegation to missing skills fails mid-deploy, leaving the portal in a partial state |
| Agent must exist and be Active before starting | Wiring an inactive agent produces a portal that loads but never responds |
Read references/portal-deploy-runbook.md fully before starting §A questions |
The runbook's §0 stage table must be in context when executing each step |
| Never create MessagingChannel or EmbeddedServiceConfig inline — always delegate | service-digital-engagement-channel-configure and service-digital-engagement-deployment-configure own those objects; inlining them bypasses queue resolution, escalation wiring, and ESD validation |
| Never skip the guest-access flags in §L.0 | OptionsGuestChatterEnabled + OptionsGuestMemberVisibility default to False — portal appears blank in Incognito without them |
| Republish after every DEB flag change | isRelaxedCSPLevel, authenticationType, headMarkup only take effect after a publish |
| One operator pause only: §F.4 Agentforce Orchestrator toggle | Every other step is headless — never pause for UI unless the headless path returns an unrecoverable error |
Reference file index
| File | When to read |
|---|---|
references/portal-deploy-runbook.md |
Always — the authoritative 20-step deploy runbook |
Categories
- Domains
- Service Cloud
Related Skills
Salesforce
Build, modify, audit, repair, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates, reviews, or changes .agent files or aiAuthoringBundle metadata; asks to fix AgentScript, audit an existing agent, run an AgentScript
Categories
Agentforce Content
Salesforce
Wires an existing, active Agentforce agent to a channel by resolving a fallback queue, setting up inbound routing (either PATCH SessionHandlerId on the MessagingChannel, or an inbound RoutingFlow for Voice/Email), and optionally configuring outbound escal
Categories
Agentforce Content
Salesforce
Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW). Use when the user needs to create, deploy, and activate a messaging channel configured with Omni-Channel Flow, Omni-Channel Queue, User, or Agentforce Service
Categories
Agentforce Content
Salesforce
Configures Embedded Messaging Deployments for Messaging for In-App and Web (MIAW). Use when the user needs to create a new embedded messaging deployment from scratch using Connect API with defaults, or update an existing deployment's settings using Metada
Categories
Agentforce Content
Salesforce
Use to set up, configure, ground, or go live with a Salesforce Help Agent (an Agentforce Service Agent in Service Cloud) via a guided four-checkpoint flow. Use whenever a user says any of: set up / create / build / add a help agent, service agent, or supp