service-digital-engagement-channel-configure

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Configuring Enhanced Chat Channel

配置增强型聊天通道

Creates
MessagingChannel
metadata XML for Salesforce Messaging for In-App and Web (MIAW). This skill produces a fully configured enhanced chat channel with routing, user verification, pre-chat, and automated response settings ready for Metadata API deployment.
为Salesforce应用内和网页消息服务(MIAW)创建
MessagingChannel
元数据XML。此工具可生成一个配置完整的增强型聊天通道,包含路由、用户验证、预聊天和自动回复设置,可直接通过Metadata API部署。

Scope

适用范围

  • In scope: Creating
    MessagingChannel
    metadata with Omni-Channel Flow routing, Omni-Channel Queue routing, or Agentforce Service Agent (ASA) routing; enabling User Verification; configuring all channel settings (pre-chat forms, automated responses, consent keywords, file attachments, custom parameters)
  • Out of scope: Creating the referenced Omni-Channel Flow/Queue definitions (use
    automation-flow-generate
    ), creating the Embedded Service Deployment (separate metadata type — use
    service-digital-engagement-deployment-configure
    ), creating permission sets for messaging (use
    platform-permission-set-generate
    ), configuring the Embedded Service Code Snippet

  • 包含内容:创建带有Omni-Channel Flow路由、Omni-Channel Queue路由或Agentforce Service Agent(ASA)路由的
    MessagingChannel
    元数据;启用用户验证;配置所有通道设置(预聊天表单、自动回复、同意关键词、文件附件、自定义参数)
  • 不包含内容:创建关联的Omni-Channel Flow/Queue定义(使用
    automation-flow-generate
    工具)、创建Embedded Service部署(独立元数据类型——使用
    service-digital-engagement-deployment-configure
    工具)、创建消息服务权限集(使用
    platform-permission-set-generate
    工具)、配置Embedded Service代码片段

Clarifying Questions

澄清问题

Before generating, ask the user if not already clear:
  • What is the channel name / label? (used for
    masterLabel
    and file name)
  • What routing type? (Omni-Channel Flow, Omni-Channel Queue, User, or Agentforce Service Agent)
  • What is the routing target? (Flow API name, Queue developer name, User ID, or ASA bot name)
  • For Flow, User, or ASA routing: What is the fallback queue name?
  • Should User Verification be enabled? (defaults to
    true
    per this skill)
  • Are there pre-chat form fields required? If so, which fields and types?

生成前若以下信息不明确,请询问用户:
  • 通道名称/标签是什么?(用于
    masterLabel
    和文件名)
  • 路由类型是什么?(Omni-Channel Flow、Omni-Channel Queue、用户或Agentforce Service Agent)
  • 路由目标是什么?(Flow API名称、Queue开发名称、用户ID或ASA机器人名称)
  • 对于Flow、用户或ASA路由:备用队列名称是什么?
  • 是否应启用用户验证?(此工具默认设为
    true
  • 是否需要预聊天表单字段?如果需要,是哪些字段及类型?

Required Inputs

必填输入项

Gather or infer before proceeding:
  • Channel name: Used for
    masterLabel
    and the file name (
    <Name>.messagingChannel-meta.xml
    )
  • Routing type: One of
    Queue
    ,
    Flow
    ,
    User
    , or
    AgentforceServiceAgent
  • Routing target: The developer name of the queue, flow, user, or ASA bot
  • Fallback queue (Flow, User, and ASA): The developer name of the fallback queue for escalation
  • User verification: Whether to require JWT-based identity verification (default:
    true
    )
Defaults unless specified:
  • messagingChannelType
    :
    EmbeddedMessaging
  • authMode
    :
    Auth
  • chatAbandonmentTimeout
    :
    5
    (minutes)
  • endUserIdleTimeOut
    :
    5
    (minutes)
  • isAttachmentUploadEnabled
    :
    true
  • maxFileSize
    :
    5
    (MB)
  • allowedFileTypes
    :
    bmp,csv,doc,docx,gif,jpg,pdf,png,tiff,txt,xls,xml
  • anonymousUserJwtExpirationTime
    :
    360
    (minutes, required for UnAuth, range 60-4320)
  • verifiedUserJwtExpirationTime
    :
    60
    (minutes, required for Auth, range 60-240)
  • isAbandonedChatsEnabled
    :
    false
  • isSaveTranscriptEnabled
    :
    false
  • isFallbackMessageEnabled
    :
    false
  • isEstimatedWaitTimeEnabled
    :
    false
  • isFileAttachmentExtUnrestricted
    :
    false
  • isQueuePositionEnabled
    :
    false
  • isSynchronousChatEnabled
    :
    false
  • isVoiceModeEnabled
    :
    false

生成前需收集或推断以下信息:
  • 通道名称:用于
    masterLabel
    和文件名(
    <Name>.messagingChannel-meta.xml
  • 路由类型
    Queue
    Flow
    User
    AgentforceServiceAgent
    中的一种
  • 路由目标:队列、流程、用户或ASA机器人的开发名称
  • 备用队列(Flow、用户和ASA路由适用):用于升级的备用队列开发名称
  • 用户验证:是否需要基于JWT的身份验证(默认:
    true
未指定时采用默认值:
  • messagingChannelType
    :
    EmbeddedMessaging
  • authMode
    :
    Auth
  • chatAbandonmentTimeout
    :
    5
    (分钟)
  • endUserIdleTimeOut
    :
    5
    (分钟)
  • isAttachmentUploadEnabled
    :
    true
  • maxFileSize
    :
    5
    (MB)
  • allowedFileTypes
    :
    bmp,csv,doc,docx,gif,jpg,pdf,png,tiff,txt,xls,xml
  • anonymousUserJwtExpirationTime
    :
    360
    (分钟,未验证用户必填,范围60-4320)
  • verifiedUserJwtExpirationTime
    :
    60
    (分钟,已验证用户必填,范围60-240)
  • isAbandonedChatsEnabled
    :
    false
  • isSaveTranscriptEnabled
    :
    false
  • isFallbackMessageEnabled
    :
    false
  • isEstimatedWaitTimeEnabled
    :
    false
  • isFileAttachmentExtUnrestricted
    :
    false
  • isQueuePositionEnabled
    :
    false
  • isSynchronousChatEnabled
    :
    false
  • isVoiceModeEnabled
    :
    false

Workflow

工作流程

All steps are sequential. Do not skip or reorder.
所有步骤按顺序执行,不得跳过或重新排序。

Phase 1 — Gather Context

阶段1 — 收集上下文

  1. Verify org API version — run
    scripts/check-api-version.sh 67.0 <org-alias>
    and report any errors it returns. If the script fails, generate a
    sfdx-project.json
    in the metadata output folder with
    "sourceApiVersion": "67.0"
    .
  2. Collect inputs — confirm the channel label, routing type, routing target, and verification settings from the user per Clarifying Questions above.
  3. Determine file name — run
    scripts/normalize-channel-name.sh "<LABEL>"
    and surface any errors it returns.
  4. Verify routing target exists — query the org to confirm the referenced routing target exists:
    • For Queue:
      sf data query --query "SELECT Id, DeveloperName FROM Group WHERE Type='Queue' AND DeveloperName='<QUEUE_NAME>'" --target-org <org-alias>
    • For Flow:
      sf data query --query "SELECT Id, ApiName FROM FlowDefinitionView WHERE ApiName='<FLOW_NAME>' AND IsActive=true" --target-org <org-alias>
    • For User:
      sf data query --query "SELECT Id, Username FROM User WHERE Id='<USER_ID>' AND IsActive=true" --target-org <org-alias>
    • For ASA:
      sf data query --query "SELECT Id, DeveloperName FROM BotDefinition WHERE DeveloperName='<BOT_NAME>'" --target-org <org-alias>
    • Also verify the fallback queue exists (required for Flow, User, and ASA routing)
    If any target is not found, inform the user and ask whether to create it. If the user confirms:
    • For Queue: generate a
      .queue-meta.xml
      with
      MessagingSession
      as the
      queueSobject
      type and deploy it before the channel
    • For Flow/User/ASA: inform the user that the flow, user, or bot must be created separately (out of scope for this skill)
  5. Read the channel settings reference — load
    references/channel_settings.md
    to understand all available configuration options and their valid values.
  1. 验证组织API版本 — 运行
    scripts/check-api-version.sh 67.0 <org-alias>
    并报告返回的任何错误。如果脚本执行失败,在元数据输出文件夹中生成
    sfdx-project.json
    ,设置
    "sourceApiVersion": "67.0"
  2. 收集输入信息 — 根据上述澄清问题,向用户确认通道标签、路由类型、路由目标和验证设置。
  3. 确定文件名 — 运行
    scripts/normalize-channel-name.sh "<LABEL>"
    并报告返回的任何错误。
  4. 验证路由目标存在 — 查询组织以确认关联的路由目标存在:
    • 对于Queue:
      sf data query --query "SELECT Id, DeveloperName FROM Group WHERE Type='Queue' AND DeveloperName='<QUEUE_NAME>'" --target-org <org-alias>
    • 对于Flow:
      sf data query --query "SELECT Id, ApiName FROM FlowDefinitionView WHERE ApiName='<FLOW_NAME>' AND IsActive=true" --target-org <org-alias>
    • 对于User:
      sf data query --query "SELECT Id, Username FROM User WHERE Id='<USER_ID>' AND IsActive=true" --target-org <org-alias>
    • 对于ASA:
      sf data query --query "SELECT Id, DeveloperName FROM BotDefinition WHERE DeveloperName='<BOT_NAME>'" --target-org <org-alias>
    • 同时验证备用队列是否存在(Flow、用户和ASA路由必填)
    如果任何目标未找到,告知用户并询问是否创建。若用户确认:
    • 对于Queue:生成
      .queue-meta.xml
      ,将
      MessagingSession
      设为
      queueSobject
      类型,并在部署通道前部署该文件
    • 对于Flow/User/ASA:告知用户流程、用户或机器人需单独创建(不属于此工具的适用范围)
  5. 阅读通道设置参考文档 — 加载
    references/channel_settings.md
    以了解所有可用配置选项及其有效值。

Phase 2 — Generate Metadata

阶段2 — 生成元数据

  1. Read the metadata template — load
    assets/messaging_channel_template.xml
    as the starting structure.
  2. Apply routing configuration — set
    sessionHandlerType
    and the corresponding handler field:
    Routing Type
    sessionHandlerType
    Required Fields
    Omni-Channel Queue
    Queue
    sessionHandlerQueue
    Omni-Channel Flow
    Flow
    sessionHandlerFlow
    +
    sessionHandlerQueue
    (fallback)
    User
    User
    sessionHandlerUser
    +
    sessionHandlerQueue
    (fallback)
    Agentforce Service Agent
    AgentforceServiceAgent
    sessionHandlerAsa
    +
    sessionHandlerQueue
    (fallback)
  3. Apply user verification — if enabled, set
    embeddedConfig.authMode
    to
    Auth
    and include
    <messagingAuthorizations>
    . If not enabled, set
    embeddedConfig.authMode
    to
    UnAuth
    and omit
    <messagingAuthorizations>
    .
  4. Configure embedded settings — populate
    <embeddedConfig>
    with:
    • allowedFileTypes
      — comma-separated file extensions (no spaces)
    • anonymousUserJwtExpirationTime
      — JWT expiration in minutes (required for UnAuth)
    • verifiedUserJwtExpirationTime
      — JWT expiration in minutes (required for Auth)
    • chatAbandonmentTimeout
      — minutes before abandoned conversation cleanup
    • isAbandonedChatsEnabled
      — enable abandoned chat detection
    • isAttachmentUploadEnabled
      — file upload support
    • isEstimatedWaitTimeEnabled
      — show estimated wait time
    • isFallbackMessageEnabled
      — fallback when agents unavailable
    • isFileAttachmentExtUnrestricted
      — allow any file extension
    • isSaveTranscriptEnabled
      — save conversation transcripts
    • maxFileSize
      — maximum attachment size in MB
  5. Configure messaging keywords — generate
    <messagingKeywords>
    elements:
    • OptOut
      type with individual
      <keyword>
      elements: cancel, end, quit, stop, stopall, unsubscribe
    • Help
      type with
      <keyword>
      : help
  6. Apply standard parameters — if the user needs standard pre-chat fields, generate
    <standardParameters>
    elements with
    parameterType
    . If the channel uses Flow-based routing and the user specifies flow variable mappings, include
    <actionParameterMappings>
    with
    actionParameterName
    to map each parameter to a flow input variable.
  7. Apply custom parameters — if the user needs pre-chat data collection, generate
    <customParameters>
    elements with
    name
    ,
    masterLabel
    ,
    parameterDataType
    ,
    externalParameterName
    , and
    maxLength
    . If the channel uses Flow-based routing and the user specifies flow variable mappings, include
    <actionParameterMappings>
    with
    actionParameterName
    to map each parameter to a flow input variable.
  8. Generate the file — produce the
    .messagingChannel-meta.xml
    file following the template structure. Place at the path the user specifies, or default to the project's metadata source path under
    messagingChannels/
    .
  1. 读取元数据模板 — 加载
    assets/messaging_channel_template.xml
    作为初始结构。
  2. 应用路由配置 — 设置
    sessionHandlerType
    和对应的处理程序字段:
    路由类型
    sessionHandlerType
    必填字段
    Omni-Channel Queue
    Queue
    sessionHandlerQueue
    Omni-Channel Flow
    Flow
    sessionHandlerFlow
    +
    sessionHandlerQueue
    (备用)
    用户
    User
    sessionHandlerUser
    +
    sessionHandlerQueue
    (备用)
    Agentforce Service Agent
    AgentforceServiceAgent
    sessionHandlerAsa
    +
    sessionHandlerQueue
    (备用)
  3. 应用用户验证设置 — 若启用验证,将
    embeddedConfig.authMode
    设为
    Auth
    并包含
    <messagingAuthorizations>
    。若未启用,将
    embeddedConfig.authMode
    设为
    UnAuth
    并省略
    <messagingAuthorizations>
  4. 配置嵌入式设置 — 填充
    <embeddedConfig>
    • allowedFileTypes
      — 逗号分隔的文件扩展名(无空格)
    • anonymousUserJwtExpirationTime
      — JWT过期时间(分钟,未验证用户必填)
    • verifiedUserJwtExpirationTime
      — JWT过期时间(分钟,已验证用户必填)
    • chatAbandonmentTimeout
      — 对话被标记为已放弃前的等待分钟数
    • isAbandonedChatsEnabled
      — 启用已放弃聊天检测
    • isAttachmentUploadEnabled
      — 文件上传支持
    • isEstimatedWaitTimeEnabled
      — 显示预计等待时间
    • isFallbackMessageEnabled
      — 坐席不可用时启用 fallback 消息
    • isFileAttachmentExtUnrestricted
      — 允许任何文件扩展名
    • isSaveTranscriptEnabled
      — 保存对话记录
    • maxFileSize
      — 最大附件大小(MB)
  5. 配置消息关键词 — 生成
    <messagingKeywords>
    元素:
    • OptOut
      类型,包含单个
      <keyword>
      元素:cancel、end、quit、stop、stopall、unsubscribe
    • Help
      类型,包含
      <keyword>
      :help
  6. 应用标准参数 — 如果用户需要标准预聊天字段,生成带有
    parameterType
    <standardParameters>
    元素。如果通道使用基于Flow的路由且用户指定了流程变量映射,包含带有
    actionParameterName
    <actionParameterMappings>
    ,将每个参数映射到流程输入变量。
  7. 应用自定义参数 — 如果用户需要收集预聊天数据,生成带有
    name
    masterLabel
    parameterDataType
    externalParameterName
    maxLength
    <customParameters>
    元素。如果通道使用基于Flow的路由且用户指定了流程变量映射,包含带有
    actionParameterName
    <actionParameterMappings>
    ,将每个参数映射到流程输入变量。
  8. 生成文件 — 按照模板结构生成
    .messagingChannel-meta.xml
    文件。放置在用户指定的路径,或默认放在项目元数据源路径下的
    messagingChannels/
    目录中。

Phase 3 — Deploy and Activate

阶段3 — 部署并激活

  1. Deploy the channel — deploy the generated
    .messagingChannel-meta.xml
    file to the target org:
    bash
    sf project deploy start --source-dir <path-to-messagingChannels-folder> --target-org <org-alias>
  2. Activate the channel — after successful deployment, activate the messaging channel:
    bash
    sf data update record --sobject MessagingChannel --where "DeveloperName='<CHANNEL_NAME>'" --values "IsActive=true" --target-org <org-alias>
  1. 部署通道 — 将生成的
    .messagingChannel-meta.xml
    文件部署到目标组织:
    bash
    sf project deploy start --source-dir <path-to-messagingChannels-folder> --target-org <org-alias>
  2. 激活通道 — 部署成功后,激活消息通道:
    bash
    sf data update record --sobject MessagingChannel --where "DeveloperName='<CHANNEL_NAME>'" --values "IsActive=true" --target-org <org-alias>

Phase 4 — Validate

阶段4 — 验证

  1. Verify against checklist — confirm all items in the Verification Checklist below pass before presenting output.
  2. Present output — show the generated file to the user with a summary of configured settings and confirm activation status. Offer next steps:
    • Automated responses — ask if the user wants to configure
      <automatedResponses>
      (OptOutConfirmation, HelpResponse). If yes, generate elements with
      autoResponseContentType: TextResponse
      ,
      language
      , and XML-escaped
      response
      text, then redeploy.

  1. 对照检查清单验证 — 在向用户展示输出前,确认以下验证检查清单中的所有项目均通过。
  2. 展示输出 — 向用户展示生成的文件,附带已配置设置的摘要并确认激活状态。提供后续步骤选项:
    • 自动回复 — 询问用户是否要配置
      <automatedResponses>
      (OptOutConfirmation、HelpResponse)。如果是,生成带有
      autoResponseContentType: TextResponse
      language
      和XML转义
      response
      文本的元素,然后重新部署。

Rules / Constraints

规则/约束

ConstraintRationale
File name serves as the channel API nameNo
channelPlatformKey
field in the XML body
sessionHandlerType
must match the handler fields present
Setting
Queue
but populating
sessionHandlerFlow
causes deployment error
Flow routing requires both
sessionHandlerFlow
and
sessionHandlerQueue
Queue is the mandatory fallback for human escalation
User routing requires both
sessionHandlerUser
and
sessionHandlerQueue
Queue is the mandatory fallback when user is unavailable
ASA routing requires both
sessionHandlerAsa
and
sessionHandlerQueue
Queue is the mandatory fallback for human escalation
masterLabel
max 40 characters
Platform limit on channel labels
File name must match
^[a-zA-Z][a-zA-Z0-9_]*$
API name format enforced by Metadata API
allowedFileTypes
is a comma-separated string with no spaces
Not a nested list or array
keyword
elements are individual — one per trigger word
Not a comma-separated list
customParameters
need
name
,
masterLabel
,
parameterDataType
, and
externalParameterName
Incomplete parameters fail silently
File extension is
.messagingChannel-meta.xml
Metadata API uses this specific extension
Do not hardcode file paths — respect
sfdx-project.json
package directories
Customer orgs customize source paths
Channel must be activated after deploymentChannels are inactive by default — messages won't route until activated
isSynchronousChatEnabled
defaults to
false
; can only be
true
for UnAuth channels upon user request
Platform rejects "You can't enable Session-Based Chat for verified users" for Auth channels

约束理由
文件名作为通道API名称XML主体中无
channelPlatformKey
字段
sessionHandlerType
必须与存在的处理程序字段匹配
设置为
Queue
但填充
sessionHandlerFlow
会导致部署错误
Flow路由同时需要
sessionHandlerFlow
sessionHandlerQueue
队列是人工升级的强制备用选项
用户路由同时需要
sessionHandlerUser
sessionHandlerQueue
用户不可用时队列是强制备用选项
ASA路由同时需要
sessionHandlerAsa
sessionHandlerQueue
队列是人工升级的强制备用选项
masterLabel
最多40个字符
平台对通道标签的限制
文件名必须匹配
^[a-zA-Z][a-zA-Z0-9_]*$
Metadata API强制的API名称格式
allowedFileTypes
是无空格的逗号分隔字符串
不是嵌套列表或数组
keyword
元素为单个元素——每个触发词对应一个
不是逗号分隔列表
customParameters
需要
name
masterLabel
parameterDataType
externalParameterName
参数不完整会静默失败
文件扩展名为
.messagingChannel-meta.xml
Metadata API使用此特定扩展名
不要硬编码文件路径——遵循
sfdx-project.json
中的包目录
客户组织会自定义源路径
通道必须在部署后激活通道默认处于非激活状态——激活前消息无法路由
isSynchronousChatEnabled
默认为
false
;仅可在用户请求时为未验证用户通道设为
true
平台会拒绝已验证用户通道的设置:“无法为已验证用户启用基于会话的聊天”

Gotchas

常见问题

IssueResolution
Channel name conflicts with existing channelCheck org for existing channels; file name must be unique
Queue not found on deployEnsure the referenced queue exists and has
MessagingSession
as a
queueSobject
type
Omni-Channel Flow not found on deployEnsure the referenced flow exists and is active before deploying the channel
ASA bot reference invalidBot must be published and active; use exact developer name from BotDefinition metadata
Flow or ASA routing fails without fallback queue
sessionHandlerQueue
is mandatory when
sessionHandlerType
is
Flow
or
AgentforceServiceAgent
JWT verification not workingConnected app and certificate must be configured for the org
Custom parameters not collected
name
must be unique per channel;
parameterDataType
defaults to
Text
Automated responses not showingUse exact
type
values (
OptOutConfirmation
,
HelpResponse
); XML-escape special characters
Channel deployed but messages not routingChannel must be activated after deployment — it defaults to inactive
"You can't enable Session-Based Chat for verified users"Set
isSynchronousChatEnabled
to
false
for Auth channels — session-based chat is only valid for UnAuth

问题解决方法
通道名称与现有通道冲突检查组织中的现有通道;文件名必须唯一
部署时未找到队列确保关联队列存在且将
MessagingSession
设为
queueSobject
类型
部署时未找到Omni-Channel Flow确保关联流程存在且在部署通道前已激活
ASA机器人引用无效机器人必须已发布且处于激活状态;使用BotDefinition元数据中的准确开发名称
Flow或ASA路由因无备用队列失败
sessionHandlerType
Flow
AgentforceServiceAgent
时,
sessionHandlerQueue
为必填项
JWT验证不生效组织必须配置Connected App和证书
未收集到自定义参数
name
在每个通道中必须唯一;
parameterDataType
默认为
Text
自动回复未显示使用准确的
type
值(
OptOutConfirmation
HelpResponse
);对
response
文本中的特殊字符进行XML转义
通道已部署但消息无法路由通道必须在部署后激活——默认处于非激活状态
“无法为已验证用户启用基于会话的聊天”为已验证用户通道将
isSynchronousChatEnabled
设为
false
——基于会话的聊天仅适用于未验证用户

Verification Checklist

验证检查清单

Universal Checks

通用检查

  • Does the file name match
    ^[a-zA-Z][a-zA-Z0-9_]*$
    ?
  • Is
    masterLabel
    40 characters or fewer?
  • Is
    messagingChannelType
    set to
    EmbeddedMessaging
    ?
  • 文件名是否匹配
    ^[a-zA-Z][a-zA-Z0-9_]*$
  • masterLabel
    是否为40个字符或更少?
  • messagingChannelType
    是否设为
    EmbeddedMessaging

Routing Checks

路由检查

  • Is exactly one
    sessionHandlerType
    value set (
    Queue
    ,
    Flow
    ,
    User
    , or
    AgentforceServiceAgent
    )?
  • Is the corresponding handler field populated (
    sessionHandlerQueue
    ,
    sessionHandlerFlow
    ,
    sessionHandlerUser
    , or
    sessionHandlerAsa
    )?
  • For Flow, User, or ASA routing, is
    sessionHandlerQueue
    also populated (fallback)?
  • Does the routing target reference an existing entity in the org?
  • 是否仅设置了一个
    sessionHandlerType
    值(
    Queue
    Flow
    User
    AgentforceServiceAgent
    )?
  • 对应的处理程序字段是否已填充(
    sessionHandlerQueue
    sessionHandlerFlow
    sessionHandlerUser
    sessionHandlerAsa
    )?
  • 对于Flow、用户或ASA路由,是否同时填充了
    sessionHandlerQueue
    (备用)?
  • 路由目标是否引用了组织中存在的实体?

User Verification Checks

用户验证检查

  • If verification is enabled, is
    embeddedConfig.authMode
    set to
    Auth
    ?
  • If verification is disabled, is
    embeddedConfig.authMode
    set to
    UnAuth
    ?
  • 如果启用验证,
    embeddedConfig.authMode
    是否设为
    Auth
  • 如果未启用验证,
    embeddedConfig.authMode
    是否设为
    UnAuth

Embedded Config Checks

嵌入式配置检查

  • Is
    chatAbandonmentTimeout
    a positive integer (minutes)?
  • Is
    allowedFileTypes
    a comma-separated string with no spaces?
  • Is
    maxFileSize
    a value between 1-5 MB?
  • If UnAuth, is
    anonymousUserJwtExpirationTime
    set (default 360, range 60-4320)?
  • If Auth, is
    verifiedUserJwtExpirationTime
    set (default 60, range 60-240)?
  • chatAbandonmentTimeout
    是否为正整数(分钟)?
  • allowedFileTypes
    是否为无空格的逗号分隔字符串?
  • maxFileSize
    是否为1-5 MB之间的值?
  • 如果是未验证用户,是否设置了
    anonymousUserJwtExpirationTime
    (默认360,范围60-4320)?
  • 如果是已验证用户,是否设置了
    verifiedUserJwtExpirationTime
    (默认60,范围60-240)?

Automated Response Checks (only if user requested)

自动回复检查(仅当用户请求时)

  • Do all
    type
    values use valid IDs (
    OptOutConfirmation
    ,
    HelpResponse
    )?
  • Are special characters XML-escaped in
    response
    text?
  • 所有
    type
    值是否使用有效ID(
    OptOutConfirmation
    HelpResponse
    )?
  • response
    文本中的特殊字符是否已XML转义?

Keyword Checks

关键词检查

  • Is there at least an
    OptOut
    keyword type defined?
  • Are keywords individual
    <keyword>
    elements (not comma-separated)?
  • Is
    language
    set on each keyword block?
  • 是否至少定义了一个
    OptOut
    关键词类型?
  • 关键词是否为单个
    <keyword>
    元素(不是逗号分隔列表)?
  • 每个关键词块是否设置了
    language

Activation Checks

激活检查

  • Was the channel deployed successfully?
  • Was the channel activated after deployment (
    IsActive=true
    )?

  • 通道是否部署成功?
  • 通道是否在部署后激活(
    IsActive=true
    )?

Output Expectations

输出预期

Deliverables:
  • Messaging Channel metadata:
    <source-path>/messagingChannels/<ChannelName>.messagingChannel-meta.xml
File structure follows the template in
assets/messaging_channel_template.xml
.

交付物:
  • 消息通道元数据
    <source-path>/messagingChannels/<ChannelName>.messagingChannel-meta.xml
文件结构遵循
assets/messaging_channel_template.xml
中的模板。

Cross-Skill Integration

跨工具集成

NeedDelegate to
Creating the Omni-Channel Flow for routing
automation-flow-generate
skill
Creating permission sets for messaging agents
platform-permission-set-generate
skill
Creating the Embedded Service Deployment
service-digital-engagement-deployment-configure
skill

需求委托给
创建用于路由的Omni-Channel Flow
automation-flow-generate
工具
为消息服务坐席创建权限集
platform-permission-set-generate
工具
创建Embedded Service部署
service-digital-engagement-deployment-configure
工具

Reference File Index

参考文件索引

FileWhen to read
assets/messaging_channel_template.xml
Before generating — use as the starting structure
references/channel_settings.md
When configuring channel options beyond defaults
scripts/check-api-version.sh
Phase 1 — verify org API version meets the passed minimum (67.0)
scripts/normalize-channel-name.sh
Phase 1 — derive file API name from channel label
examples/omni_flow_channel.xml
To verify output for Omni-Channel Flow routing
examples/omni_queue_channel.xml
To verify output for Omni-Channel Queue routing
examples/asa_agent_channel.xml
To verify output for Agentforce Service Agent routing
文件读取时机
assets/messaging_channel_template.xml
生成前——作为初始结构使用
references/channel_settings.md
配置默认值以外的通道选项时
scripts/check-api-version.sh
阶段1——验证组织API版本是否满足最低要求(67.0)
scripts/normalize-channel-name.sh
阶段1——从通道标签推导文件API名称
examples/omni_flow_channel.xml
验证Omni-Channel Flow路由的输出时
examples/omni_queue_channel.xml
验证Omni-Channel Queue路由的输出时
examples/asa_agent_channel.xml
验证Agentforce Service Agent路由的输出时