experience-portal-create

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Create Digital Experience Portal

创建Digital Experience门户

Create a new Digital Experience (formerly Communities) portal/site in Salesforce. Supports employee service portals, partner portals (PRM), and general customer communities.
Every operation runs through the headless-360 MCP server (
mcp__headless-360__discover
mcp__headless-360__describe
mcp__headless-360__dispatch
/
mcp__headless-360__dispatch_readonly
). Do not use the Salesforce CLI (its
api request
,
data query
, or
org open
subcommands), the project-codey MCP server, raw
curl
, or any other HTTP client —
dispatch
/
dispatch_readonly
is the only way this skill talks to the org. See
references/mcp-invocation.md
for the exact call shapes.
在Salesforce中创建全新的Digital Experience(原名为Communities)门户/站点。支持员工服务门户、合作伙伴门户(PRM)以及通用客户社区。
所有操作均通过headless-360 MCP服务器执行
mcp__headless-360__discover
mcp__headless-360__describe
mcp__headless-360__dispatch
/
mcp__headless-360__dispatch_readonly
)。 请勿使用Salesforce CLI(其
api request
data query
org open
子命令)、project-codey MCP服务器、原生
curl
或其他任何HTTP客户端——
dispatch
/
dispatch_readonly
是该技能与组织通信的唯一方式。具体调用格式请参见
references/mcp-invocation.md

Scope

适用范围

  • In scope: Creating Digital Experience sites via the headless-360 Connect API dispatcher. Portal type selection. Basic configuration (name, URL, templates). Self-service portals with embedded service configs. Making the site reachable end to end — activating the Network (
    status: Live
    ), adding member profiles, and publishing the Experience Builder pages (see
    references/post-creation-activate-publish.md
    ).
  • Out of scope: Deep post-creation customization (page layout/component authoring in Builder). Content authoring. Branding beyond initial setup. Individual per-user record management (membership is added at the profile/permission-set level, not per user).

  • 包含在内:通过headless-360 Connect API调度器创建Digital Experience站点。门户类型选择。基础配置(名称、URL、模板)。嵌入服务配置的自助服务门户。实现站点端到端可访问——激活Network(状态:Live)、添加成员配置文件、发布Experience Builder页面(参见
    references/post-creation-activate-publish.md
    )。
  • 不包含在内:创建后的深度定制(在Builder中进行页面布局/组件创作)。内容创作。初始设置之外的品牌定制。单个用户记录管理(成员资格基于配置文件/权限集添加,而非针对单个用户)。

Execution model (read first)

执行模型(请先阅读)

Every org call is a dispatch:
mcp__headless-360__dispatch_readonly(url, method: "GET", queryParams)
for reads,
mcp__headless-360__dispatch(url, method, body)
for writes; read
status_code
+
body
from the response. To resolve the endpoint for a portal type, use
mcp__headless-360__discover(query=...)
and
mcp__headless-360__describe(id=...)
as needed. Connect API create/list operations for Experience Cloud are not always indexed by
discover
/
describe
— when a lookup returns nothing, dispatch the well-known versioned Connect API path directly (see
references/mcp-invocation.md
) rather than concluding the capability is missing.
Critical: paths must include the full
/services/data/vXX.0/...
prefix
(e.g.
"/services/data/v67.0/connect/communities"
) — unlike some other dispatchers, headless-360 does not resolve or inject the API version for you. A path without the version prefix returns
400 ROUTE_NOT_FOUND
. Copy the path verbatim from a
discover
/
describe
result when available; otherwise use the version shown in this skill's examples (
v67.0
at time of writing) and adjust if the org runs a different version. Full details, response envelope, job-monitoring, and gotchas live in
references/mcp-invocation.md
.

所有组织调用均为调度操作:读取操作使用
mcp__headless-360__dispatch_readonly(url, method: "GET", queryParams)
,写入操作使用
mcp__headless-360__dispatch(url, method, body)
;从响应中读取
status_code
+
body
。若要解析门户类型的端点,按需使用
mcp__headless-360__discover(query=...)
mcp__headless-360__describe(id=...)
。Experience Cloud的Connect API创建/列表操作并非始终能通过
discover
/
describe
索引——当查找无结果时,直接调度已知的带版本号的Connect API路径(参见
references/mcp-invocation.md
),而非判定该功能不存在。
关键提示:路径必须包含完整的
/services/data/vXX.0/...
前缀
(例如
"/services/data/v67.0/connect/communities"
)——与部分其他调度器不同,headless-360不会为你解析或注入API版本。不带版本前缀的路径会返回
400 ROUTE_NOT_FOUND
。若可用,直接复制
discover
/
describe
结果中的路径;否则使用本技能示例中显示的版本(撰写本文时为
v67.0
),并根据组织运行的不同版本进行调整。完整细节、响应包、作业监控及注意事项请参见
references/mcp-invocation.md

Clarifying Questions

澄清问题

Before proceeding, determine:
  1. Portal type?
    • Employee Service / ITSM / HR / help desk → prefer the
      Agentforce Employee Center
      Aura template
      via the communities API (richest employee experience; Agentforce-ready). Use the self-service API instead when MIAW must be wired in at creation time and a guest ESD exists.
    • Partner Portal (PRM) → requires PRM feature enabled
    • Customer Community → general community creation (Aura or LWR Experience Builder template)
  2. Basic settings (required for all types):
    • Portal name?
    • URL prefix? (must be alphanumeric only, no hyphens or spaces)
    • Description (optional)
  3. For Employee Service / Self-Service portals:
    • siteType
      ? → default
      AURA
      (Aura Experience Builder + Builder). Use
      LWR
      only if the user explicitly wants a Lightning Web Runtime site. Never create a Salesforce Tabs + Visualforce ("VF Template") site — those are legacy and have no Builder.
    • MIAW / Embedded Service Deployment ID(s)? These wire Messaging for In-App and Web into the portal at creation time. A guest ESD config is required by the self-service API; an authenticated-user ESD config is optional. If the user hasn't created an Embedded Service Deployment yet, point them to Setup → Embedded Service Deployments first.
  4. For Partner portals only:
    • PRM template name? (check org-specific templates)

开始操作前,请确认以下信息:
  1. 门户类型?
    • 员工服务/IT服务管理/HR/服务台 → 优先通过社区API使用
      Agentforce Employee Center
      Aura模板
      (员工体验最丰富,支持Agentforce)。当创建时必须配置MIAW且存在访客ESD时,改用自助服务API。
    • 合作伙伴门户(PRM) → 需要启用PRM功能
    • 客户社区 → 创建通用社区(Aura或LWR Experience Builder模板)
  2. 基础设置(所有类型必填):
    • 门户名称?
    • URL前缀?(仅限字母数字,无连字符或空格)
    • 描述(可选)
  3. 针对员工服务/自助服务门户:
    • siteType
      ? → 默认
      AURA
      (Aura Experience Builder + Builder)。仅当用户明确需要Lightning Web Runtime站点时才使用
      LWR
      绝不创建Salesforce Tabs + Visualforce(“VF模板”)站点——这类属于传统站点,无Builder功能。
    • MIAW/嵌入式服务部署ID?这些会在创建时将应用内/网页消息服务接入门户。自助服务API要求提供访客ESD配置;认证用户ESD配置为可选。若用户尚未创建嵌入式服务部署,请引导他们先前往设置→嵌入式服务部署。
  4. 仅针对合作伙伴门户:
    • PRM模板名称?(检查组织专属模板)

Required Inputs

必填输入

Employee Service / Self-Service Portals (
POST /connect/self-service/site
):

员工服务/自助服务门户(
POST /connect/self-service/site
):

  • siteName
    (required) - portal name
  • guestEmbeddedServiceConfigId
    (required) - Embedded Service Deployment (MIAW) config ID for guest users
  • embeddedServiceConfigId
    (optional) - Embedded Service Deployment (MIAW) config ID for authenticated users
  • siteType
    (optional) -
    AURA
    (default) or
    LWR
    . Produces an Experience Builder site. Do not use Visualforce.
  • enableForGuest
    (optional) - whether guest (unauthenticated) users can access the site
  • contentDocumentId
    (optional) - ContentDocument ID of a logo image to wire into the site's branding set
  • brandColors
    (optional) - array of RGBA colors targeting
    action
    ,
    link
    ,
    border
    ,
    text
    ,
    pageBackground
This API sets the URL path prefix automatically from the site name. There is no
templateName
— the framework is chosen with
siteType
(Aura/LWR), never Visualforce.
  • siteName
    (必填)- 门户名称
  • guestEmbeddedServiceConfigId
    (必填)- 访客用户的嵌入式服务部署(MIAW)配置ID
  • embeddedServiceConfigId
    (可选)- 认证用户的嵌入式服务部署(MIAW)配置ID
  • siteType
    (可选)-
    AURA
    (默认)或
    LWR
    。生成Experience Builder站点。请勿使用Visualforce。
  • enableForGuest
    (可选)- 是否允许访客(未认证)用户访问站点
  • contentDocumentId
    (可选)- 接入站点品牌设置的Logo图片ContentDocument ID
  • brandColors
    (可选)- 针对
    action
    link
    border
    text
    pageBackground
    的RGBA颜色数组
该API会根据站点名称自动设置URL路径前缀。无
templateName
参数——通过
siteType
(Aura/LWR)选择框架,绝不使用Visualforce。

Partner Portals (PRM):

合作伙伴门户(PRM):

  • siteName
    (required)
  • siteUrlPrefix
    (required)
  • prmTemplate
    (required)
  • siteDesc
    (optional)
  • siteName
    (必填)
  • siteUrlPrefix
    (必填)
  • prmTemplate
    (必填)
  • siteDesc
    (可选)

General Communities (
POST /connect/communities
):

通用社区(
POST /connect/communities
):

  • name
    (required)
  • urlPathPrefix
    (required) - alphanumeric only, no hyphens
  • templateName
    (required) - an Experience Builder template. Aura:
    Agentforce Employee Center
    (preferred for employee service),
    Employee Portal
    ,
    Customer Service
    ,
    Help Center
    ,
    Customer Account Portal
    ,
    Partner Central
    ,
    Build Your Own
    . LWR:
    Build Your Own (LWR)
    ,
    Microsite (LWR)
    . Validate the exact string via
    GET /connect/communities/templates
    (see below). Do not use
    Salesforce Tabs + Visualforce
    ("VF Template") — it is a legacy Visualforce site with no Builder.
  • description
    (optional)

  • name
    (必填)
  • urlPathPrefix
    (必填)- 仅限字母数字,无连字符
  • templateName
    (必填)- Experience Builder模板。Aura模板:
    Agentforce Employee Center
    (员工服务首选)、
    Employee Portal
    Customer Service
    Help Center
    Customer Account Portal
    Partner Central
    Build Your Own
    。LWR模板:
    Build Your Own (LWR)
    Microsite (LWR)
    。通过
    GET /connect/communities/templates
    验证准确字符串(见下文)。请勿使用
    Salesforce Tabs + Visualforce
    (“VF模板”)——这是无Builder功能的传统Visualforce站点。
  • description
    (可选)

Workflow

工作流程

Step 1: Determine API Based on Portal Type

步骤1:根据门户类型确定API

  1. Employee Service / Self-Service
    POST /connect/self-service/site
    • Creates an Aura (or LWR) Experience Builder site — never Visualforce
    • Wires MIAW (Embedded Service Deployment) into the site at creation time
    • Prerequisites:
      CustomizeApplication
      permission; org has self-service site-creation API access; a guest Embedded Service Deployment exists
  2. Partner (PRM)
    POST /connect/prm/setup/sites
    • Prerequisites:
      CommonPrmEnabled
      feature
  3. General Community
    POST /connect/communities
    • Uses an Experience Builder
      templateName
      (Aura or LWR) — never
      Salesforce Tabs + Visualforce
    • Prerequisites: Manage Communities permission (
      ManageNetworks
      )

  1. 员工服务/自助服务
    POST /connect/self-service/site
    • 创建Aura(或LWR)Experience Builder站点——绝不使用Visualforce
    • 创建时将MIAW(嵌入式服务部署)接入站点
    • 前置条件:拥有
      CustomizeApplication
      权限;组织已开通自助服务站点创建API访问权限;存在访客嵌入式服务部署
  2. 合作伙伴(PRM)
    POST /connect/prm/setup/sites
    • 前置条件:已启用
      CommonPrmEnabled
      功能
  3. 通用社区
    POST /connect/communities
    • 使用Experience Builder
      templateName
      (Aura或LWR)——绝不使用
      Salesforce Tabs + Visualforce
    • 前置条件:拥有管理社区权限(
      ManageNetworks

Step 2: Create Portal (By Type)

步骤2:按类型创建门户

Option A: Employee Service / Self-Service Portal

选项A:员工服务/自助服务门户

Use the self-service site API. It creates an Aura Experience Builder site (with the Builder option) by deploying CustomSite, Network, and ExperienceBundle metadata, then wires MIAW into the site via the given Embedded Service Deployment (ESD) config IDs. This is the correct path for ITSM / IT help desk / employee self-service portals.
API Call (via
mcp__headless-360__dispatch
):
text
method: "POST"
url:    "/services/data/v67.0/connect/self-service/site"
body:
{
  "siteName": "<portal-name>",
  "siteType": "AURA",
  "guestEmbeddedServiceConfigId": "<guest-ESD-config-id>",
  "embeddedServiceConfigId": "<auth-ESD-config-id>",
  "enableForGuest": true
}
Poll with
GET /services/data/v67.0/connect/self-service/site/status/{jobId}
via
mcp__headless-360__dispatch_readonly
.
  • siteType
    defaults to
    AURA
    (Aura Experience Builder + Builder). Pass
    LWR
    only if the user explicitly asks for a Lightning Web Runtime site. Never create a Visualforce site.
  • guestEmbeddedServiceConfigId
    is required — it is the MIAW Embedded Service Deployment config ID for guest users.
    embeddedServiceConfigId
    (authenticated users) is optional. If the user has no Embedded Service Deployment yet, have them create one first (Setup → Embedded Service Deployments), or use the MIAW/embedded-service setup skill.
  • Optional branding:
    contentDocumentId
    (logo) and
    brandColors
    (array of
    { "type": "action|link|border|text|pageBackground", "color": { "r": 0-255, "g": 0-255, "b": 0-255, "a": 0-1 } }
    ).
Response:
json
{
  "success": true,
  "siteName": "IT Support Portal",
  "urlPathPrefix": "itsupport",
  "siteUrl": "https://domain.my.site.com/itsupport",
  "jobId": "708...",
  "status": "Queued"
}
On success, report
Success:
— the portal creation started (Aura + Experience Builder); give the name, framework (Aura),
jobId
, and
status
, and note it is provisioning in the background (Network, CustomSite, ExperienceBundle metadata + the Embedded Service/MIAW deployment). Next: monitor the job (see 'Background Job Monitoring'), then complete Step 3 (Activate → Add Members → Publish).
On failure, report
Failure:
with the
{error}
— see the "Common Errors" section for the causes (missing/invalid
guestEmbeddedServiceConfigId
, duplicate name/URL prefix, org lacks self-service site-creation API access, missing
CustomizeApplication
) and their resolutions.

使用自助服务站点API。它通过部署CustomSite、Network和ExperienceBundle元数据创建Aura Experience Builder站点(带Builder选项),然后通过指定的嵌入式服务部署(ESD)配置ID将MIAW接入站点。这是IT服务管理/IT服务台/员工自助服务门户的正确路径。
API调用(通过
mcp__headless-360__dispatch
):
text
method: "POST"
url:    "/services/data/v67.0/connect/self-service/site"
body:
{
  "siteName": "<portal-name>",
  "siteType": "AURA",
  "guestEmbeddedServiceConfigId": "<guest-ESD-config-id>",
  "embeddedServiceConfigId": "<auth-ESD-config-id>",
  "enableForGuest": true
}
通过
mcp__headless-360__dispatch_readonly
调用
GET /services/data/v67.0/connect/self-service/site/status/{jobId}
进行轮询。
  • siteType
    默认为
    AURA
    (Aura Experience Builder + Builder)。仅当用户明确要求Lightning Web Runtime站点时才传入
    LWR
    。绝不创建Visualforce站点。
  • guestEmbeddedServiceConfigId
    必填项——这是访客用户的MIAW嵌入式服务部署配置ID。
    embeddedServiceConfigId
    (认证用户)为可选。若用户尚无嵌入式服务部署,请引导他们先创建(设置→嵌入式服务部署),或使用MIAW/嵌入式服务设置技能。
  • 可选品牌设置:
    contentDocumentId
    (Logo)和
    brandColors
    { "type": "action|link|border|text|pageBackground", "color": { "r": 0-255, "g": 0-255, "b": 0-255, "a": 0-1 } }
    数组)。
响应:
json
{
  "success": true,
  "siteName": "IT Support Portal",
  "urlPathPrefix": "itsupport",
  "siteUrl": "https://domain.my.site.com/itsupport",
  "jobId": "708...",
  "status": "Queued"
}
成功时,报告
Success:
——门户创建已启动(Aura + Experience Builder);提供名称、框架(Aura)、
jobId
status
,并说明正在后台配置(Network、CustomSite、ExperienceBundle元数据 + 嵌入式服务/MIAW部署)。下一步:监控作业(参见“后台作业监控”),然后完成步骤3(激活→添加成员→发布)。
失败时,报告
Failure:
并附上
{error}
——参见“常见错误”部分了解原因(
guestEmbeddedServiceConfigId
缺失/无效、名称/URL前缀重复、组织无自助服务站点创建API访问权限、缺失
CustomizeApplication
权限)及解决方法。

Option B: Partner Portal (PRM)

选项B:合作伙伴门户(PRM)

API Call (via
mcp__headless-360__dispatch
):
text
method: "POST"
url:    "/services/data/v67.0/connect/prm/setup/sites"
body:
{
  "siteName": "<name>",
  "siteUrlPrefix": "<url-prefix>",
  "siteDesc": "<description>",
  "prmTemplate": "<template-name>"
}
Synchronous — no job polling.
Response:
json
{
  "networkId": "0DB..."
}
On success, report
Success:
— the partner portal was created; give the name,
networkId
,
siteUrlPrefix
, and
prmTemplate
. Next: find it at Setup → Digital Experiences → All Sites (by Network ID), then complete Step 3 (Activate → Add Members → Publish).
On failure, report
Failure:
— see "Common Errors" (org lacks PRM/
CommonPrmEnabled
, invalid PRM template name, duplicate name/URL prefix). PRM templates: Setup → Digital Experiences → Settings → Partner Templates.

API调用(通过
mcp__headless-360__dispatch
):
text
method: "POST"
url:    "/services/data/v67.0/connect/prm/setup/sites"
body:
{
  "siteName": "<name>",
  "siteUrlPrefix": "<url-prefix>",
  "siteDesc": "<description>",
  "prmTemplate": "<template-name>"
}
同步操作——无需作业轮询。
响应:
json
{
  "networkId": "0DB..."
}
成功时,报告
Success:
——合作伙伴门户已创建;提供名称、
networkId
siteUrlPrefix
prmTemplate
。下一步:在设置→Digital Experiences→所有站点(通过Network ID)中找到该门户,然后完成步骤3(激活→添加成员→发布)。
失败时,报告
Failure:
——参见“常见错误”(组织未启用PRM/
CommonPrmEnabled
、PRM模板名称无效、名称/URL前缀重复)。PRM模板位置:设置→Digital Experiences→设置→合作伙伴模板。

Option C: General Community

选项C:通用社区

First, discover valid templates (required — accepted
templateName
strings vary by org edition/version), via
mcp__headless-360__dispatch_readonly
:
text
method: "GET"
url:    "/services/data/v67.0/connect/communities/templates"
Response:
{ "templates": [ { "publisher": "Salesforce", "templateName": "Employee Portal" }, … ], "total": N }
. Use a returned
templateName
verbatim. Prefer an Experience Builder template (Aura or LWR). Never use
Salesforce Tabs + Visualforce
.
API Call (via
mcp__headless-360__dispatch
):
text
method: "POST"
url:    "/services/data/v67.0/connect/communities"
body:
{
  "name": "<name>",
  "urlPathPrefix": "<url-prefix>",
  "description": "<description>",
  "templateName": "Agentforce Employee Center"
}
The body accepts only
{name, description, templateName, templateParams, urlPathPrefix}
— omit
templateParams
unless you need template-specific config.
For an employee service / ITSM / HR portal, prefer the
Agentforce Employee Center
template when the org's live template list includes it — it ships IT/HR ticketing, a self-service catalog, a knowledge base, and an Agentforce-ready experience. Fall back to
Employee Portal
(then
Customer Service
) for a plainer, non-Agentforce site. Other options by use case:
Help Center
(Aura knowledge/deflection),
Customer Account Portal
(Aura authenticated account self-service),
Partner Central
(Aura PRM), or
Build Your Own (LWR)
for a modern blank LWR site.
Agentforce Employee Center is two layers. This
POST /connect/communities
call provisions the site only. The embedded Agentforce conversational assistant is a separate step — create the internal employee agent from its shipped template (
EmployeeCopilot__AgentforceEmployeeAgent
) via
PATCH /services/data/v67.0/headless/invoke/einstein/genai-agentbuilder/create-copilot-from-template
(
copilotContext.company
is required), then activate it and wire it to the site. This skill provisions the site and points the user to that step; full Agentforce setup is out of scope. See
references/templates.md
.
Response:
json
{
  "jobId": "08P...",
  "message": "Your site is almost ready. To track the site creation status, query the BackgroundOperation object and enter the jobId as the Id.",
  "name": "Customer Community"
}
On success, report
Success:
— community creation started; give the name,
jobId
, and
message
. Next: monitor the job (see 'Background Job Monitoring'), then complete Step 3 (Activate → Add Members → Publish).
On failure, report
Failure:
— see "Common Errors" (invalid
templateName
— run
GET /services/data/v67.0/connect/communities/templates
and use a returned value verbatim; duplicate name/URL prefix; missing Manage Communities permission).

首先,发现有效模板(必填——不同组织版本/edition接受的
templateName
字符串不同),通过
mcp__headless-360__dispatch_readonly
调用:
text
method: "GET"
url:    "/services/data/v67.0/connect/communities/templates"
响应:
{ "templates": [ { "publisher": "Salesforce", "templateName": "Employee Portal" }, … ], "total": N }
。直接使用返回的
templateName
。优先选择Experience Builder模板(Aura或LWR)。绝不使用
Salesforce Tabs + Visualforce
API调用(通过
mcp__headless-360__dispatch
):
text
method: "POST"
url:    "/services/data/v67.0/connect/communities"
body:
{
  "name": "<name>",
  "urlPathPrefix": "<url-prefix>",
  "description": "<description>",
  "templateName": "Agentforce Employee Center"
}
请求体仅接受
{name, description, templateName, templateParams, urlPathPrefix}
——除非需要模板特定配置,否则省略
templateParams
对于员工服务/IT服务管理/HR门户,当组织的可用模板列表包含**
Agentforce Employee Center
**时优先选择该模板——它内置IT/HR工单系统、自助服务目录、知识库,且支持Agentforce体验。若没有该模板, fallback到
Employee Portal
(再到
Customer Service
)创建无Agentforce的简洁站点。其他场景选项:
Help Center
(Aura知识库/问题分流)、
Customer Account Portal
(Aura认证账户自助服务)、
Partner Central
(Aura PRM),或
Build Your Own (LWR)
用于创建现代空白LWR站点。
Agentforce Employee Center分为两层。
POST /connect/communities
调用仅配置站点部分。内置的Agentforce对话助手是单独步骤——通过
PATCH /services/data/v67.0/headless/invoke/einstein/genai-agentbuilder/create-copilot-from-template
copilotContext.company
必填项)从其内置模板(
EmployeeCopilot__AgentforceEmployeeAgent
)创建内部员工代理,然后激活并接入站点。本技能仅配置站点并引导用户完成后续步骤;完整Agentforce设置不在本技能范围内。参见
references/templates.md
响应:
json
{
  "jobId": "08P...",
  "message": "Your site is almost ready. To track the site creation status, query the BackgroundOperation object and enter the jobId as the Id.",
  "name": "Customer Community"
}
成功时,报告
Success:
——社区创建已启动;提供名称、
jobId
message
。下一步:监控作业(参见“后台作业监控”),然后完成步骤3(激活→添加成员→发布)。
失败时,报告
Failure:
——参见“常见错误”(
templateName
无效——调用
GET /services/data/v67.0/connect/communities/templates
并直接使用返回值;名称/URL前缀重复;缺失管理社区权限)。

Step 3: Make the Site Reachable — Activate, Add Members, Publish

步骤3:实现站点可访问——激活、添加成员、发布

Creation only provisions the site — it comes back
UnderConstruction
, admin-only, with unpublished pages, so its URL is not reachable yet (the #1 "my portal doesn't work" cause). Complete three steps, in order: (1) Activate — deploy the
Network
metadata with
<status>Live</status>
; (2) Add members — add the target profile(s) to
networkMemberGroups
(membership is profile-based, not per user; e.g.
Unified Employee
— a Profile, not a UserRole) and redeploy (combinable with step 1); (3) Publish
sf community publish --name "<Site Name>"
, then poll the returned
jobId
on
BackgroundOperation
until
Complete
. Then confirm
status: Live
and give the user the login URL (
.../<prefix>/login
), not the bare prefix.
Tooling exception: activate/members use the Metadata API (
Network
deploy) and publish uses
sf community publish
— there is no Connect API for these (
PATCH /connect/communities
returns 405). This is the one place the skill uses tools other than headless-360; Step 3 reads still go through headless-360.
Exact commands, XML, verification queries, and gotchas:
references/post-creation-activate-publish.md
.

创建操作仅完成站点配置——站点初始状态为
UnderConstruction
,仅管理员可访问,页面未发布,因此其URL无法访问(这是“我的门户无法工作”的头号原因)。按顺序完成三个步骤:(1) 激活——部署
<status>Live</status>
Network
元数据;(2) 添加成员——将目标配置文件添加到
networkMemberGroups
(成员资格基于配置文件,而非单个用户;例如**
Unified Employee
——配置文件,而非用户角色)并重新部署(可与步骤1合并);(3) 发布——执行
sf community publish --name "<Site Name>"
,然后轮询返回的
jobId
对应的
BackgroundOperation
直到状态为
Complete
。然后确认
status: Live
并向用户提供
登录URL**(
.../<prefix>/login
,而非裸前缀)。
工具例外: 激活/添加成员使用元数据API
Network
部署),发布使用**
sf community publish
**——这些操作无对应的Connect API(
PATCH /connect/communities/<id>
返回405)。这是本技能唯一不使用headless-360的场景;步骤3的读取/验证仍通过headless-360执行。
具体命令、XML、验证查询及注意事项:
references/post-creation-activate-publish.md

Step 4: Write the Portal Creation Report (always — final step)

步骤4:撰写门户创建报告(必须执行——最终步骤)

Always finish by writing a
report.md
summarizing what was done
— this is the skill's final, non-optional action, whether the create call succeeded, is still provisioning, or failed. Write it to the working/output directory as
report.md
.
The report must:
  • Start with the heading
    # Portal Creation Report
    .
  • State the portal name, the API used (
    self-service/site
    ,
    communities
    , or
    prm
    ) and why (e.g. "no guest ESD present → communities API"), the framework (Aura / LWR), and the template or
    siteType
    chosen.
  • Give the dispatched request (path + key body fields) and the response (
    jobId
    /
    networkId
    /
    siteUrl
    /
    status
    , or the error).
  • List the remaining Step 3 work (Activate → Add Members → Publish) and, for employee-service sites, note that the embedded Agentforce agent is a separate follow-up step.
  • End with the sentinel line, exactly:
    Task completed: portal creation dispatched — see report.md
Copy the template at
assets/report-template.md
and fill in the portal-specific values.

无论创建调用成功、仍在配置还是失败,都必须以撰写
report.md
总结操作作为最终步骤
——这是本技能的强制最终操作。将报告写入工作/输出目录,命名为
report.md
报告必须包含:
  • 以标题
    # Portal Creation Report
    开头。
  • 说明门户名称、使用的API
    self-service/site
    communities
    prm
    )及原因(例如“无访客ESD → 使用communities API”)、使用的框架(Aura / LWR)、选择的模板
    siteType
  • 提供调度请求(路径 + 关键请求体字段)和响应
    jobId
    /
    networkId
    /
    siteUrl
    /
    status
    ,或错误信息)。
  • 列出步骤3剩余工作(激活→添加成员→发布),对于员工服务站点,需注明内置Agentforce代理是单独的后续步骤
  • 以以下固定语句结尾:
    Task completed: portal creation dispatched — see report.md
复制
assets/report-template.md
中的模板
并填入门户专属信息。

Template Recommendations

模板推荐

All recommendations produce Experience Builder sites (Aura or LWR). Never recommend
Salesforce Tabs + Visualforce
("VF Template") — it is legacy and has no Builder.
Use CaseAPIFrameworkTemplate /
siteType
Employee service / ITSM / HR / help desk (richest; Agentforce-ready)
communities
Aura
Agentforce Employee Center
Employee service / help desk (MIAW at creation, guest ESD exists)
self-service/site
Aura
siteType: AURA
(+ MIAW ESD config)
Employee service / help desk (plainer, no Agentforce)
communities
Aura
Employee Portal
(fallback
Customer Service
)
Customer support / self-service community
communities
Aura
Customer Service
Knowledge base / case deflection
communities
Aura
Help Center
Authenticated account self-service
communities
Aura
Customer Account Portal
Partner portal (with PRM)
prm/setup/sites
AuraOrg-specific PRM template
Partner portal / channel (no PRM)
communities
Aura
Partner Central
Modern blank / headless-friendly site
communities
LWR
Build Your Own (LWR)
Modern recommendations:
  • For employee service / ITSM / HR portals, prefer the
    Agentforce Employee Center
    Aura template via the communities API — it ships the fullest employee experience (ticketing, catalog, knowledge, Agentforce-ready). The conversational assistant is a separate agent step (
    EmployeeCopilot__AgentforceEmployeeAgent
    ). Use the self-service site API (
    siteType: AURA
    ) instead when the portal needs MIAW wired in at creation time and a guest Embedded Service Deployment exists; use
    Employee Portal
    for a plainer, non-Agentforce site.
  • For customer communities, use the
    Customer Service
    template (Aura, mobile-responsive) via the communities API.
See
references/templates.md
for complete template documentation.

所有推荐模板均生成Experience Builder站点(Aura或LWR)。绝不推荐
Salesforce Tabs + Visualforce
(“VF模板”)——这是无Builder功能的传统站点。
使用场景API框架模板 /
siteType
员工服务/IT服务管理/HR/服务台(功能最丰富;支持Agentforce)
communities
Aura
Agentforce Employee Center
员工服务/服务台(创建时配置MIAW,存在访客ESD)
self-service/site
Aura
siteType: AURA
(+ MIAW ESD配置)
员工服务/服务台(简洁版,无Agentforce)
communities
Aura
Employee Portal
( fallback为
Customer Service
客户支持/自助服务社区
communities
Aura
Customer Service
知识库/问题分流
communities
Aura
Help Center
认证账户自助服务
communities
Aura
Customer Account Portal
合作伙伴门户(带PRM)
prm/setup/sites
Aura组织专属PRM模板
合作伙伴门户/渠道(无PRM)
communities
Aura
Partner Central
现代空白/无头友好站点
communities
LWR
Build Your Own (LWR)
现代推荐:
  • 对于员工服务/IT服务管理/HR门户,优先通过社区API使用**
    Agentforce Employee Center
    ** Aura模板——它提供最完整的员工体验(工单、目录、知识库、支持Agentforce)。对话助手是单独的代理步骤(
    EmployeeCopilot__AgentforceEmployeeAgent
    )。当门户需要在创建时接入MIAW且存在访客嵌入式服务部署时,改用自助服务站点API
    siteType: AURA
    );若需要简洁的无Agentforce站点,使用
    Employee Portal
  • 对于客户社区,通过社区API使用**
    Customer Service
    **模板(Aura,移动端适配)。
完整模板文档请参见
references/templates.md

Background Job Monitoring

后台作业监控

Portal creation is asynchronous (except PRM which is synchronous). Poll through
mcp__headless-360__dispatch_readonly
.
Self-service site path — use the dedicated typed status route (preferred):
text
method: "GET"
url:    "/services/data/v67.0/connect/self-service/site/status/{jobId}"
Returns
{success, siteName, urlPathPrefix, siteUrl, error, jobId, status}
.
Communities path — query
BackgroundOperation
via the regular REST query endpoint, not
/tooling/query
:
text
method:      "GET"
url:         "/services/data/v67.0/query"
queryParams: { "q": "SELECT Id, Status FROM BackgroundOperation WHERE Id = '<jobId>'" }
Tooling vs. regular query (verified gotcha):
BackgroundOperation
is not a valid Tooling API sObject through this dispatcher —
GET /services/data/vXX.0/tooling/query
with that SOQL returns
400 INVALID_TYPE "sObject type 'BackgroundOperation' is not supported."
. Use the plain
/services/data/vXX.0/query
endpoint instead; it succeeds with the same SOQL string.
Column discipline: on
BackgroundOperation
, select only
Id
and
Status
.
JobType
,
CompletedDate
, and
NumErrors
are not columns on this object and return
INVALID_FIELD
. Use the SOQL string above exactly.
Job statuses:
  • Queued
    /
    Scheduled
    — waiting to start
  • InProgress
    /
    Running
    — executing
  • Complete
    — finished successfully
  • Error
    — failed (check the
    error
    field on the status route)

门户创建为异步操作(PRM除外,为同步操作)。通过
mcp__headless-360__dispatch_readonly
进行轮询。
自助服务站点路径——使用专用的状态路由(首选):
text
method: "GET"
url:    "/services/data/v67.0/connect/self-service/site/status/{jobId}"
返回
{success, siteName, urlPathPrefix, siteUrl, error, jobId, status}
社区路径——通过常规REST查询端点查询
BackgroundOperation
请勿使用
/tooling/query
text
method:      "GET"
url:         "/services/data/v67.0/query"
queryParams: { "q": "SELECT Id, Status FROM BackgroundOperation WHERE Id = '<jobId>'" }
工具查询 vs 常规查询(已验证注意事项): 通过该调度器,
BackgroundOperation
并非有效的Tooling API sObject——使用该SOQL调用
GET /services/data/vXX.0/tooling/query
会返回
400 INVALID_TYPE "sObject type 'BackgroundOperation' is not supported."
。改用普通的
/services/data/vXX.0/query
端点;使用相同的SOQL字符串即可成功。
字段规范:
BackgroundOperation
中,仅选择
Id
Status
JobType
CompletedDate
NumErrors
并非该对象的字段,会返回
INVALID_FIELD
。请严格使用上述SOQL字符串。
作业状态:
  • Queued
    /
    Scheduled
    — 等待启动
  • InProgress
    /
    Running
    — 执行中
  • Complete
    — 执行成功
  • Error
    — 执行失败(查看状态路由的
    error
    字段)

Verification

验证

After creation completes:
  1. API (primary):
    mcp__headless-360__dispatch_readonly(url: "/services/data/v67.0/connect/communities", method: "GET")
    lists all Experience Cloud sites. Find the new one and confirm
    siteAsContainerEnabled: true
    (Experience Builder — Aura/LWR) and a non-null
    builderUrl
    , and that
    templateName
    is not
    Salesforce Tabs + Visualforce
    .
    siteAsContainerEnabled: false
    means a legacy Visualforce site — the bug this skill exists to avoid.
  2. Setup UI (optional): Setup → Digital Experiences → All Sites. The Framework column should show Aura (or LWR) — not Visualforce — with a Builder workspace link.
  3. Test URL: Use
    siteUrl
    from the response (portal will be inactive initially).
Note: Portal must be activated and published before external users can access it.

创建完成后:
  1. API(主要方式):
    mcp__headless-360__dispatch_readonly(url: "/services/data/v67.0/connect/communities", method: "GET")
    列出所有Experience Cloud站点。找到新站点并确认
    siteAsContainerEnabled: true
    (Experience Builder — Aura/LWR)且
    builderUrl
    非空,同时
    templateName
    不是
    Salesforce Tabs + Visualforce
    siteAsContainerEnabled: false
    表示传统Visualforce站点——这正是本技能要避免的问题。
  2. 设置UI(可选): 设置→Digital Experiences→所有站点。框架列应显示Aura(或LWR)——而非Visualforce——且带有Builder工作区链接。
  3. 测试URL: 使用响应中的
    siteUrl
    (门户初始状态为未激活)。
注意: 门户必须激活并发布后,外部用户才能访问。

Rules / Constraints

规则/约束

ConstraintRationale
Portal creation is asynchronousDeploys metadata and provisions resources in background
Site names must be uniqueEach portal needs distinct name within org
URL prefixes must be uniqueURL paths cannot conflict
URL prefixes must be alphanumericNo hyphens, spaces, or special characters allowed
PRM requires PRM featureGated by licensing and org config
Created portals start inactiveMust manually activate/publish after creation
Paths must include the API version prefix
dispatch
/
dispatch_readonly
do not inject
/services/data/vXX.0
— omitting it returns
400 ROUTE_NOT_FOUND

约束原因
门户创建为异步操作在后台部署元数据并配置资源
站点名称必须唯一组织内每个门户需有唯一名称
URL前缀必须唯一URL路径不能冲突
URL前缀必须为字母数字不允许连字符、空格或特殊字符
PRM需要PRM功能受许可和组织配置限制
创建的门户初始状态为未激活创建后需手动激活/发布
路径必须包含API版本前缀
dispatch
/
dispatch_readonly
不会自动注入
/services/data/vXX.0
——省略会返回
400 ROUTE_NOT_FOUND

Prerequisites by Type

按类型划分的前置条件

Employee Service / Self-Service:

员工服务/自助服务:

  • CustomizeApplication
    permission
  • Communities/Digital Experience enabled
  • Org has self-service site-creation API access enabled
  • A guest Embedded Service Deployment (MIAW) config exists (its ID is required); optionally an authenticated-user ESD config
  • 拥有
    CustomizeApplication
    权限
  • 已启用社区/Digital Experience
  • 组织已开通自助服务站点创建API访问权限
  • 存在访客嵌入式服务部署(MIAW)配置(其ID为必填项);可选存在认证用户ESD配置

Partner (PRM):

合作伙伴(PRM):

  • Org has
    CommonPrmEnabled
  • Portal creation permissions
  • Valid PRM template name
  • 组织已启用
    CommonPrmEnabled
  • 拥有门户创建权限
  • 有效的PRM模板名称

General Community:

通用社区:

  • Manage Communities permission (
    ManageNetworks
    )
  • Communities/Digital Experience enabled
  • Valid template name

  • 拥有管理社区权限(
    ManageNetworks
  • 已启用社区/Digital Experience
  • 有效的模板名称

Common Errors

常见错误

Invalid URL prefix:

URL前缀无效:

"The URL can only contain alphanumeric characters. Remove hyphens, spaces, or special characters (e.g., 'employeeservice' not 'employee-service') and try a different prefix."
"URL只能包含字母数字字符。移除连字符、空格或特殊字符(例如使用'employeeservice'而非'employee-service')并尝试其他前缀。"

Invalid template name (general community path):

模板名称无效(通用社区路径):

"The specified template does not exist.
Resolution:
  • Run
    GET /services/data/v67.0/connect/communities/templates
    and use a returned
    templateName
    verbatim
  • Prefer an Experience Builder template:
    Agentforce Employee Center
    (employee service),
    Employee Portal
    ,
    Customer Service
    ,
    Help Center
    ,
    Customer Account Portal
    ,
    Partner Central
    ,
    Build Your Own
    ,
    Build Your Own (LWR)
  • Template names are case-sensitive — match exactly
  • Do NOT use
    Salesforce Tabs + Visualforce
    ("VF Template") — it is a legacy Visualforce site with no Builder"
"指定的模板不存在。
解决方法:
  • 调用
    GET /services/data/v67.0/connect/communities/templates
    并直接使用返回的
    templateName
  • 优先选择Experience Builder模板:
    Agentforce Employee Center
    (员工服务)、
    Employee Portal
    Customer Service
    Help Center
    Customer Account Portal
    Partner Central
    Build Your Own
    Build Your Own (LWR)
  • 模板名称区分大小写——需完全匹配
  • 请勿使用
    Salesforce Tabs + Visualforce
    (“VF模板”)——这是无Builder功能的传统Visualforce站点"

Missing guest Embedded Service config (self-service path):

缺失访客嵌入式服务配置(自助服务路径):

"The self-service site API requires a guest Embedded Service Deployment config ID.
Resolution:
  • Create an Embedded Service Deployment (MIAW) at Setup → Embedded Service Deployments, or use the MIAW/embedded-service setup skill
  • Pass its config ID as
    guestEmbeddedServiceConfigId
    (and optionally
    embeddedServiceConfigId
    for authenticated users)"
"自助服务站点API需要访客嵌入式服务部署配置ID。
解决方法:
  • 在设置→嵌入式服务部署创建嵌入式服务部署(MIAW),或使用MIAW/嵌入式服务设置技能
  • 将其配置ID作为
    guestEmbeddedServiceConfigId
    传入(可选传入
    embeddedServiceConfigId
    用于认证用户)"

PRM not enabled:

PRM未启用:

"This org doesn't have Partner Relationship Management (PRM) enabled.
Options:
  1. Contact Salesforce to enable PRM feature
  2. Create a general community with the
    Partner Central
    template instead (via Communities API)"
"该组织未启用合作伙伴关系管理(PRM)功能。
选项:
  1. 联系Salesforce启用PRM功能
  2. 改用
    Partner Central
    模板创建通用社区(通过社区API)"

Duplicate name/URL:

名称/URL重复:

"A portal with this name or URL prefix already exists (the communities API returns
400 INVALID_INPUT
Enter a different name. That one already exists.
).
Check existing portals:
mcp__headless-360__dispatch_readonly(url: "/services/data/v67.0/connect/communities", method: "GET")
and scan the
name
/
urlPathPrefix
fields.
Choose a different name or URL prefix."
"已存在同名或同URL前缀的门户(社区API返回
400 INVALID_INPUT
——
Enter a different name. That one already exists.
)。
检查现有门户: 调用
mcp__headless-360__dispatch_readonly(url: "/services/data/v67.0/connect/communities", method: "GET")
并查看
name
/
urlPathPrefix
字段。
选择其他名称或URL前缀。"

Missing permissions:

权限缺失:

"You don't have permission to create portals.
Required permissions:
  • Self-service portals:
    CustomizeApplication
  • General communities:
    ManageNetworks
    (Manage Communities)
Contact your Salesforce admin to request these permissions."
"你没有创建门户的权限。
所需权限:
  • 自助服务门户:
    CustomizeApplication
  • 通用社区:
    ManageNetworks
    (管理社区)
联系你的Salesforce管理员申请这些权限。"

Route not found (missing version prefix):

路由未找到(缺失版本前缀):

"
400 ROUTE_NOT_FOUND
on a path that otherwise matches this skill's documentation. Confirm the
url
includes the full
/services/data/vXX.0/...
prefix —
dispatch
/
dispatch_readonly
require it verbatim and won't add it for you. If a specific version 404s, try the version shown in a recent
discover
/
describe
result for that org."

"路径与本技能文档匹配,但返回
400 ROUTE_NOT_FOUND
。确认
url
包含完整的
/services/data/vXX.0/...
前缀——
dispatch
/
dispatch_readonly
要求完整路径,不会自动添加。若特定版本返回404,尝试使用该组织最近
discover
/
describe
结果中显示的版本。"

Related Operations

相关操作

After creation:
  • Activate portal — Setup → Digital Experiences → All Sites → Activate
  • Configure branding — Customize colors, logo, theme
  • Add pages/components — Use Experience Builder
  • Set up user access — Profiles, permission sets, sharing rules
  • Publish portal — Make accessible to external users
Manage existing:
  • List portals —
    mcp__headless-360__dispatch_readonly(url: "/services/data/v67.0/connect/communities", method: "GET")
  • Update settings — Network Tooling API or Metadata API
  • Deactivate — Via Setup UI

创建后:
  • 激活门户——设置→Digital Experiences→所有站点→激活
  • 配置品牌——自定义颜色、Logo、主题
  • 添加页面/组件——使用Experience Builder
  • 设置用户访问权限——配置文件、权限集、共享规则
  • 发布门户——向外部用户开放访问
管理现有门户:
  • 列出门户——
    mcp__headless-360__dispatch_readonly(url: "/services/data/v67.0/connect/communities", method: "GET")
  • 更新设置——Network Tooling API或元数据API
  • 停用——通过设置UI

Important Notes

重要说明

  1. Creation is asynchronous (except PRM) and only provisions — APIs return a job ID and the portal comes back
    UnderConstruction
    , member-less, and unpublished, so its URL is not reachable until you complete Step 3 (Activate → Add Members → Publish; see
    references/post-creation-activate-publish.md
    ).
  2. URL prefix becomes the site path
    https://<domain>.my.site.com/<prefix>
    (serve/login at
    .../<prefix>/login
    , not the bare prefix).
  3. Embedded Service / MIAW configs must pre-exist — This skill does not create Embedded Service Deployments. Create them separately at Setup → Embedded Service Deployments (or via the MIAW/embedded-service setup skill), then pass the config IDs to the self-service site API. For general communities, MIAW is added post-creation via an Embedded Service component in Experience Builder.
  4. Template names are case-sensitive — Verify available templates in your org before attempting creation.
  5. discover/describe may not resolve a specific Connect API operation by id — the headless-360 corpus indexes many operations as multi-step SORs rather than single endpoints, and some standard Connect API writes (e.g.
    POST /connect/communities
    ) are not individually indexed. Do not conclude the capability is missing; dispatch the well-known, versioned Connect API path directly (documented in this skill).

  1. 创建为异步操作(PRM除外)且仅完成配置——API返回作业ID,门户初始状态为
    UnderConstruction
    ,无成员且页面未发布,因此其URL无法访问,直到完成步骤3(激活→添加成员→发布;参见
    references/post-creation-activate-publish.md
    )。
  2. URL前缀成为站点路径——
    https://<domain>.my.site.com/<prefix>
    (登录地址为
    .../<prefix>/login
    ,而非裸前缀)。
  3. 嵌入式服务/MIAW配置必须预先存在——本技能不创建嵌入式服务部署。需单独在设置→嵌入式服务部署创建(或通过MIAW/嵌入式服务设置技能),然后将配置ID传入自助服务站点API。对于通用社区,MIAW需在创建后通过Experience Builder中的嵌入式服务组件添加。
  4. 模板名称区分大小写——创建前请验证组织中的可用模板。
  5. discover/describe可能无法通过id解析特定Connect API操作——headless-360语料库将许多操作索引为多步骤SOR而非单个端点,部分标准Connect API写入操作(例如
    POST /connect/communities
    )未单独索引。请勿判定该功能不存在;直接调度本技能中记录的已知带版本号的Connect API路径。

Reference Documentation

参考文档

  • references/mcp-invocation.md
    Read every session. Exact
    mcp__headless-360__*
    call shapes, the version-prefix requirement, response envelope, job monitoring,
    BackgroundOperation
    column/endpoint discipline, and gotchas.
  • references/templates.md
    — Available templates, template parameters, selection guide.
  • references/post-creation-activate-publish.md
    — Step 3 (activate, add members, publish) to make the site reachable: the Metadata-API +
    sf community publish
    paths, the 405-on-PATCH gotcha,
    NetworkMemberGroup
    column discipline, and the login-URL note.
  • assets/report-template.md
    — Step 4
    report.md
    template to copy (heading, required fields, sentinel).

  • references/mcp-invocation.md
    每次会话必看
    mcp__headless-360__*
    的具体调用格式、版本前缀要求、响应包、作业监控、
    BackgroundOperation
    字段/端点规范及注意事项。
  • references/templates.md
    — 可用模板、模板参数、选择指南。
  • references/post-creation-activate-publish.md
    — 步骤3(激活、添加成员、发布)实现站点可访问的方法:元数据API +
    sf community publish
    路径、PATCH返回405的注意事项、
    NetworkMemberGroup
    字段规范、登录URL说明。
  • assets/report-template.md
    — 步骤4的
    report.md
    模板(标题、必填字段、固定结尾语句)。

API Type Classification

API类型分类

Site creation is dispatched through
mcp__headless-360__dispatch
/
mcp__headless-360__dispatch_readonly
(never project-codey or raw HTTP). All paths include the
/services/data/vXX.0
prefix. Post-creation (Step 3) is the one exception: activating the Network and adding members use the Metadata API (
sf project deploy start --metadata Network:...
), and publishing uses
sf community publish
— there is no Connect API for these (a
PATCH /connect/communities/<id>
returns 405). Reads/verification for Step 3 still go through headless-360. Creation paths:
  • Self-service portal: Connect API
    POST /services/data/vXX.0/connect/self-service/site
    — asynchronous (poll
    GET /services/data/vXX.0/connect/self-service/site/status/{jobId}
    )
  • PRM portal: Connect API
    POST /services/data/vXX.0/connect/prm/setup/sites
    — synchronous
  • General community: Connect API
    POST /services/data/vXX.0/connect/communities
    — asynchronous (poll
    BackgroundOperation
    via
    GET /services/data/vXX.0/query
    , not
    /tooling/query
    )
站点创建通过
mcp__headless-360__dispatch
/
mcp__headless-360__dispatch_readonly
调度(绝不使用project-codey或原生HTTP)。所有路径均包含
/services/data/vXX.0
前缀。创建后(步骤3)是唯一例外: 激活Network和添加成员使用元数据API
sf project deploy start --metadata Network:...
),发布使用**
sf community publish
**——这些操作无对应的Connect API(
PATCH /connect/communities/<id>
返回405)。步骤3的读取/验证仍通过headless-360执行。创建路径:
  • 自助服务门户: Connect API
    POST /services/data/vXX.0/connect/self-service/site
    — 异步(轮询
    GET /services/data/vXX.0/connect/self-service/site/status/{jobId}
  • PRM门户: Connect API
    POST /services/data/vXX.0/connect/prm/setup/sites
    — 同步
  • 通用社区: Connect API
    POST /services/data/vXX.0/connect/communities
    — 异步(通过
    GET /services/data/vXX.0/query
    轮询
    BackgroundOperation
    ,而非
    /tooling/query