Skip to main content
skill CX Codex

service-concierge-portal-generate — Claude Code skill: Concierge

Deploys an Agentforce Concierge portal on an LWR Experience Cloud site: provisions the site, configures components and branding, wires the agent, enables guest access and publishes.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add forcedotcom/sf-skills --skill service-concierge-portal-generate -a claude-code
Open on GitHub

What service-concierge-portal-generate does

The skill walks through deploying a Concierge portal on an LWR Experience Cloud site: a landing page with a greeting, prompt bar, suggestion chiclets and a chat surface. It does not author the agent. It wires an existing one to a new or existing site, so it works as the channel step of a Help Agent setup or runs on its own when the agent already exists.

Before asking anything, it checks that service-digital-engagement-channel-configure, service-digital-engagement-deployment-configure and service-agentforce-channel-configure are installed. If one is missing, it stops and names the missing directories. Then it asks for the org alias and queries active agents with sf data query. An active Agentforce Service Agent is required: with zero active agents the skill hard-stops and points you at agentforce-generate. The toolchain it uses is sf, python3, jq, curl and openssl.

The portal itself — DEB bundle, branding, components, guest access, CORS/CSP records — is always provisioned by this skill. The EmbeddedMessaging channel and EmbeddedServiceConfig can be passed in ready-made or delegated to other skills. On success it returns NETWORK_ID, PUBLISHED_PORTAL_URL, MESSAGING_CHANNEL_DEV_NAME and ESC_ID. Embedding a chat widget on an existing site is a different job — use service-digital-engagement-deployment-configure for that.

What it helps with

  • stand up a Concierge portal on an LWR Experience Cloud site
  • wire an active agent to a new help portal
  • set up branding and Concierge components on the portal
  • enable guest access and publish the site
  • verify required skills are installed before deploying

Example prompts for the agent

  • Deploy an Agentforce Concierge portal on an LWR Experience Cloud site for my org
  • Wire my active agent to a new help portal and publish it
  • Build the Concierge portal with branding and guest access

How to install service-concierge-portal-generate

1Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill service-concierge-portal-generate -a claude-code

2Manually: put the files in place

~/.claude/skills/service-concierge-portal-generate/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/service-concierge-portal-generate/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about service-concierge-portal-generate

How do I install service-concierge-portal-generate in Claude?

Run npx skills add forcedotcom/sf-skills --skill service-concierge-portal-generate -a claude-code. The skill lands in ~/.claude/skills/service-concierge-portal-generate/SKILL.md.

What does service-concierge-portal-generate do?

It deploys an Agentforce Concierge portal on an LWR Experience Cloud site: provisions the site, configures components and branding, wires the agent, enables guest access and publishes. It does not create the agent.

What do I need before running it?

An active Agentforce Service Agent in the org, plus the service-digital-engagement-channel-configure, service-digital-engagement-deployment-configure and service-agentforce-channel-configure skills installed. With no active agent the skill stops.

Source text

SKILL.md · Apache-2.0
---
name: service-concierge-portal-generate
description: "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)."
allowed-tools: Bash Read Write Edit Glob Grep WebFetch AskUserQuestion TodoWrite
metadata:
  version: "1.0"
  domains: ["Service"]
  minApiVersion: "67.0"
  relatedSkills:
    - "agentforce-generate"
    - "service-agentforce-channel-configure"
    - "service-digital-engagement-channel-configure"
    - "service-digital-engagement-deployment-configure"
    - "service-helpagent-coordinate"
  cliTools:
    - tool: ["curl"]
      semver: ">=7.0.0"
    - tool: ["sf"]
      semver: ">=2.139.6"
    - tool: ["python3"]
      semver: ">=3.8"
    - tool: ["jq"]
      semver: ">=1.6"
    - tool: ["openssl"]
      semver: ">=1.1.1"
  accessCheck: "OrgPermissions.EinsteinAgentPlatform"
---

# 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:

```bash
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

1. Ask for the org alias:
   ```yaml
   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)"
   ```

2. Query for **active** agents (activation lives on `BotVersion.Status = 'Active'`, not on `BotDefinition` — an unfiltered `SELECT ... FROM BotDefinition` returns retired/inactive bots the runbook cannot wire, so filter on active `BotVersion` explicitly):
   ```bash
   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-configure` or `service-digital-engagement-deployment-configure`, do not fabricate a `BOT_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 at `agentforce-generate` **or** `service-helpagent-coordinate` to 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-generate` skill (or `service-helpagent-coordinate` for 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_ID` and `BOT_DEV_NAME` and 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.

3. Load `references/portal-deploy-runbook.md` and 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 |

© forcedotcom · Apache-2.0 · forcedotcom/sf-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set167

service-itsm-agentic-setup-employee-agent-configure This skill provisions and activates IT Service Employee agents in Salesforce via the sf CLI. It deploys the standard employee assistant or specialized ITSM templates. CX Codex +1 1,200installs service-itsm-agentic-setup-incident-management An orchestrator skill for Incident Management setup in Salesforce Service Cloud ITSM: it presents the features, tracks progress and configures each one. CX Codex +1 1,200installs service-itsm-agentic-setup-agentforce-coordinate An orchestrator that walks you through Agentforce setup in Salesforce Service Cloud ITSM, handing each selected feature to a child skill. CX Codex +1 1,200installs service-itsm-agentic-setup-incident-sla-configure Sets up end-to-end Incident SLA pipelines in Salesforce Service Cloud ITSM via the headless-360 MCP server. Configures policies, milestones, and entitlements. CX Codex +1 1,200installs service-agentforce-channel-configure This skill wires an existing Agentforce agent to a channel: it resolves a fallback queue, sets up inbound routing, and can add outbound escalation. CX Codex +1 1,200installs dx-org-shape-manage Manages Salesforce org shape lifecycles using the sf CLI to capture, inspect, and delete baseline org configurations without copying data. CX Codex +1 1,000installs experience-lwc-accessibility-jest-run Runs Sa11y accessibility unit tests on LWC components using Bazel or standalone Jest. CX Codex +1 898installs experience-accessibility-validate Reviews a Lightning Web Component's HTML, JS and CSS against WCAG 2.2 and writes a report citing the specific success criteria. CX Codex +1 857installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor