Service Digital Engagement Deployment Configure

by forcedotcome5164d94d751No license1K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated yesterday

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 Metadata API. Produces Connect API request payloads for new deployments and EmbeddedServiceConfig metadata XML for updates. TRIGGER when the user mentions embedded messaging deployment, embedded service deployment, MIAW deployment, messaging widget setup, chat widget configuration, embedded chat deployment, or references a .EmbeddedServiceConfig-meta.xml file. DO NOT TRIGGER when the user is creating a messaging channel (use service-digital-engagement-channel-configure), configuring legacy Live Agent embedded service, or generating the JavaScript code snippet for website embedding.

Includes scriptsDevOps & Cloud
AI-generated overview

Configures Salesforce Embedded Messaging deployments for MIAW, producing Connect API payloads or EmbeddedServiceConfig metadata XML.

What it does
This skill guides the creation and update of Salesforce Messaging for In-App and Web (MIAW) embedded service deployments. For new API or Mobile deployments it generates EmbeddedServiceConfig metadata XML; for Web deployments it produces Connect API payloads and instructions. For updates it retrieves the existing deployment and applies messaging channel settings, pre-chat forms, branding, invitations and terms and conditions, then emits the updated metadata file. It also ships a script to check the org API version.
When to use it
Use it when a user needs to create a new embedded messaging deployment from scratch or update an existing deployment's settings. It fits requests mentioning embedded messaging deployment, embedded service deployment, MIAW deployment, messaging widget setup, chat widget configuration, or a .EmbeddedServiceConfig-meta.xml file. It is not for creating the messaging channel itself, legacy Live Agent embedded service, or generating the JavaScript embed snippet.
Requirements
Requires python3 3.8 or later and the Salesforce CLI (sf) 2.0.0 or later, plus an authenticated Salesforce org with API version 67.0 or higher. It ships an executable script (scripts/check-api-version.sh) and reads bundled XML templates, examples and reference documents.

Configuring Embedded Messaging Deployment

Configures EmbeddedServiceConfig metadata for Salesforce Messaging for In-App and Web (MIAW). Supports two distinct workflows: creating new deployments via Connect API and updating existing deployments via Metadata API.

Scope

  • In scope: Creating new Embedded Service Deployments (API, Mobile, Web types) via Connect API; updating existing deployments with forms, branding, channel settings, and features via Metadata API; generating EmbeddedServiceConfig XML for updates
  • Out of scope: Creating the messaging channel itself (use service-digital-engagement-channel-configure), publishing deployments (Connect API post-step), creating Experience Sites (Connect API prerequisite for Web type)

Clarifying Questions

Before generating, ask the user if not already clear:

  • Create or update? Are you creating a new deployment or updating an existing one?
  • Deployment type? API (headless), Mobile (native apps), or Web (browser widget)?
  • Channel name? What is the channelPlatformKey of the messaging channel to associate?
  • For create: What should the deployment be named?
  • For update: What features to configure? (pre-chat forms, business hours, T&C, UI toggles)
  • For update (Web): What is the Experience Site name? Branding overrides needed?

Required Inputs

Gather or infer before proceeding:

  • Operation: create or update
  • Deployment type: API, Mobile, or Web
  • Deployment name: Used for masterLabel and the API name
  • Channel name: The channelPlatformKey of the associated messaging channel

For update operations additionally:

  • Site name (Web only): The Experience Site name (format ESW_<name>_<timestamp>)
  • Branding name (optional): Reference to existing BrandingSet
  • Pre-chat form fields (optional): Field names and required status
  • Business hours (optional): Name of existing BusinessHours record

Defaults unless specified:

  • isEnabled: true
  • deploymentFeature: EmbeddedMessaging

Workflow

All steps are sequential. Do not skip or reorder. Branch based on the operation type.

Phase 1 — Gather Context

  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. Determine operation — ask whether the user wants to create a new deployment or update an existing one.

  3. Collect inputs — gather deployment name, type, and channel name per Clarifying Questions above.

  4. Read deployment settings reference — load references/deployment_settings.md to understand all available configuration options.

Phase 2A — Create New Deployment

Use this path when the operation is create.

  1. Determine API method by type:

    Deployment TypeCreation MethodPrerequisites
    APIMetadata API deployChannel must exist
    MobileMetadata API deployChannel must exist
    WebConnect APIChannel must exist + Experience Site required
  2. For API/Mobile types — read the template assets/esd_api_mobile_template.xml and generate the EmbeddedServiceConfig XML with:

    • deploymentType set to API or Mobile
    • deploymentFeature set to EmbeddedMessaging
    • All defaults applied
  3. For Web type — inform the user that Web deployments require Connect API for initial creation because of a circular dependency between Network and CustomSite. Read references/connect_api_creation.md for the Connect API payload and instructions.

  4. Generate output — produce the .EmbeddedServiceConfig-meta.xml file (for API/Mobile) or Connect API instructions (for Web).

  5. Present output and next steps — show the generated file and summarize what was configured. Recommend as next steps:

    • Publish the deployment via Connect API to make it live:
      bash
      sf api request rest "/services/data/v67.0/connect/embeddedservice/embeddedserviceconfig/publish/<EMBEDDED_SERVICE_CONFIG_ID>" -X POST -o <org-alias>
      To obtain the EMBEDDED_SERVICE_CONFIG_ID:
      bash
      sf data query --query "SELECT Id FROM EmbeddedServiceConfig WHERE DeveloperName = '<DEPLOYMENT_NAME>'" --target-org <org-alias>
    • Generate code snippet for integration — see references/code_snippet.md

Phase 2B — Update Existing Deployment (Metadata API)

Use this path when the operation is update.

  1. Retrieve the existing deployment — retrieve the current EmbeddedServiceConfig metadata from the org before making changes:

    bash
    sf project retrieve start --metadata EmbeddedServiceConfig:<DEPLOYMENT_NAME> --target-org <org-alias>

    Use the retrieved file as the starting structure. If retrieval is not possible, load assets/esd_web_update_template.xml as a fallback reference.

  2. Apply messaging channel settings — configure <embeddedServiceMessagingChannel> with:

    • messagingChannel — the channel's channelPlatformKey
    • shouldShowAgentforceTagline — Agentforce branding
    • shouldShowDeliveryReceipts — delivery receipts
    • shouldShowEmojiSelection — emoji picker
    • shouldShowReadReceipts — read receipts
    • shouldShowTypingIndicators — typing indicators
    • shouldStartNewLineOnEnter — Enter key behavior
    • isChatInvitationCustomizable / isInvitationEnabled — chat invitation settings
  3. Apply pre-chat forms — if the user needs pre-chat data collection, generate <embeddedServiceForms> with <embeddedServiceFormFields> elements containing embeddedServiceFormFieldName and isRequired.

  4. Apply branding customization (Web only) — a BrandingSet is automatically created with defaults when the deployment is created via Connect API. If the user wants to override specific branding properties (colors, fonts, dimensions), read references/branding_and_tooling.md for the Tooling API steps to update individual properties.

  5. Apply invitation (Web only) — if the user wants the widget to proactively invite visitors based on conditions:

    • Set isInvitationEnabled to true in <embeddedServiceMessagingChannel>
    • Generate repeatable <embdMsgChannelInvitationConditions> elements with sequence, conditionType, operand, value, and optionally customVariableName
    • Update the formula field in <embeddedServiceMessagingChannel> to reference the condition sequences (e.g., 1 AND 2, 1 OR 2). The formula must be updated whenever conditions are added or removed to stay in sync with the sequence numbers
    • See references/deployment_settings.md for available condition types and operators
  6. Apply additional settings:

    • isTermsAndConditionsEnabled / isTermsAndConditionsRequired — T&C in pre-chat
    • Do NOT update site — the site name is auto-generated during creation and must never be modified
  7. Generate the file — produce the .EmbeddedServiceConfig-meta.xml file at the path the user specifies, or default to EmbeddedServiceConfig/ in the project's metadata source path.

  8. Present output and next steps — show the generated file and summarize what was configured. Recommend as next steps:

    • Publish the deployment via Connect API to make changes live:
      bash
      sf api request rest "/services/data/v67.0/connect/embeddedservice/embeddedserviceconfig/publish/<EMBEDDED_SERVICE_CONFIG_ID>" -X POST -o <org-alias>
      To obtain the EMBEDDED_SERVICE_CONFIG_ID:
      bash
      sf data query --query "SELECT Id FROM EmbeddedServiceConfig WHERE DeveloperName = '<DEPLOYMENT_NAME>'" --target-org <org-alias>
    • Generate code snippet for integration — see references/code_snippet.md

Phase 3 — Validate

  1. Verify against checklist — confirm all items in the Verification Checklist below pass.

Rules / Constraints

ConstraintRationale
Always retrieve existing deployment before updatingEnsures current settings are preserved and only intended changes are applied
deploymentType must be API, Mobile, or WebPlatform rejects other values
Never update the site field on a Web deploymentSite name is auto-generated at creation and must not be changed
Web deployments cannot be created via Metadata APICircular dependency between Network and CustomSite — use Connect API
embeddedServiceMessagingChannelName must reference an existing channelDeployment fails if channel doesn't exist
site field required for Web type updatesWeb widget must be associated with an Experience Site
BrandingSet is auto-created with defaults by Connect APITo override branding properties, use Tooling API — see references/branding_and_tooling.md
Pre-chat form fields must reference valid channel custom parametersChoiceList fields need the parameter deployed on the channel first
File extension is .EmbeddedServiceConfig-meta.xmlMetadata API uses this specific extension
Do not hardcode file paths — respect sfdx-project.json package directoriesCustomer orgs customize source paths
Never include deploy/push commands in generated outputThis skill produces artifacts only
Publish step (Connect API) required after Web ESD updatesChanges are not live until published

Gotchas

IssueResolution
Web ESD creation fails via Metadata APIWeb type requires Connect API for initial creation; use Metadata API only for updates
Site name not foundSite must exist before Web ESD update; format is ESW_<name>_<timestamp>
Branding overrides not appliedUse Tooling API to update individual BrandingSet properties after the deployment is created
Pre-chat ChoiceList not showingChoiceList requires two-step deploy: create ChoiceList first, then assign to form field
Changes not appearing in widgetWeb ESDs must be published via Connect API after any update
embeddedServiceFlowConfig.enabled errorSet to false unless you specifically need embedded flows (not routing flows)
reCAPTCHA configuration rejectedreCAPTCHA is @HideInWsdl — must use Tooling API
Business hours not taking effectOnly updating existing business hours works; creation is managed separately
Deploy fails with "required field missing" or "upsert failed null"All attributes are mandatory: boolean fields in embeddedServiceMessagingChannel (include all even with default false), and all form field attributes (formField, formFieldType, isHidden, isRequired, displayOrder, messagingChannelParameterType)
Standard pre-chat field not foundUse _ prefix for standard fields in formField: _FirstName, _LastName, _Email, _Subject

Verification Checklist

Universal Checks

  • Is deploymentType one of API, Mobile, or Web?
  • Is masterLabel populated and unique?
  • Does messagingChannel reference an existing channel?
  • Is deploymentFeature set to EmbeddedMessaging?
  • Is isEnabled set to true?

Web Type Checks

  • Is site populated with the Experience Site name?
  • If branding is configured, does embeddedServiceBrandingName reference an existing BrandingSet?
  • Are pre-chat form field names valid (match channel custom parameters)?
  • If isInvitationEnabled is true, is formula populated and consistent with all sequence numbers in <embdMsgChannelInvitationConditions>?

API/Mobile Type Checks

  • Is siteUrl empty (no site needed)?
  • Is deploymentType correctly set to API or Mobile?

Post-Deploy Checks

  • Is user reminded to publish (Connect API) for Web deployments?
  • Is user reminded to activate components (Tooling API) if messaging components were deployed?

Output Expectations

Deliverables:

  • For API/Mobile create: <source-path>/EmbeddedServiceConfig/<DeploymentName>.EmbeddedServiceConfig-meta.xml
  • For Web create: Connect API payload and instructions (no XML file)
  • For update: <source-path>/EmbeddedServiceConfig/<DeploymentName>.EmbeddedServiceConfig-meta.xml

File structure follows the templates in assets/.


Cross-Skill Integration

NeedDelegate to
Creating the messaging channelservice-digital-engagement-channel-configure skill
Creating Omni-Channel routing flowsautomation-flow-generate skill
Creating permission sets for agentsplatform-permission-set-generate skill

Reference File Index

FileWhen to read
assets/esd_api_mobile_template.xmlBefore generating API or Mobile type deployments
assets/esd_web_update_template.xmlBefore generating Web type updates
references/deployment_settings.mdWhen configuring deployment options beyond defaults
references/connect_api_creation.mdWhen creating Web type deployments (Connect API required)
references/branding_and_tooling.mdWhen user asks about branding configuration
references/code_snippet.mdWhen user wants the JavaScript embed code snippet for their website
scripts/check-api-version.shPhase 1 — verify org API version meets the passed minimum (67.0)
examples/esd_api.xmlTo verify output for API type deployment
examples/esd_mobile.xmlTo verify output for Mobile type deployment
examples/esd_web_full.xmlTo verify output for fully configured Web deployment

Source and attribution

Source:forcedotcom/sf-skillsinskills/service-digital-engagement-deployment-configureat commite5164d9

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

More from forcedotcom/sf-skills

Service Itsm Teams Itservice Configure

forcedotcom

Configure the "Set Up Salesforce IT Service" checklist for Microsoft Teams Employee Service (ITSM) — the employee side, covering app enablement, marketplace install guidance, user access assignment, and Digital Experience Site selection. Use this for: 'turn on Salesforce IT Service', 'set up IT Service on Teams', 'assign Teams for Employee permission set', 'give employees access to Teams for Employee Service', 'manage user access for Teams ITSM', 'grant users the permission sets needed for Teams Employee Service', 'select a digital experience site for Teams', 'install Salesforce IT Service app on Teams', or any request to complete the IT Service half of the Teams ITSM Go page checklist (including the Manage User Access step). DO NOT TRIGGER for the base Teams Salesforce Go page toggle or Azure/Entra app setup (service-itsm-teams-configure) or for the IT Desk/fulfiller half of the checklist (service-itsm-teams-itdesk-configure).

Awaiting classification1Kupdated yesterday

Service Itsm Teams Coordinate

forcedotcom

End-to-end autopilot orchestrator for setting up Microsoft Teams integration in Salesforce Service Cloud ITSM — runs the whole flow (enable the Teams for Employee Service Go feature, register the Microsoft Entra app, populate Named Credentials, configure the IT Desk and IT Service checklists, turn on Swarming, and optionally embed the Agentforce agent) in one continuous pass, stopping only at the points a human must act. Use when the user asks to set up Microsoft Teams for ITSM end to end, 'set up teams for it service', 'do the whole teams itsm setup', 'configure microsoft teams for employee service', or wants a guided Teams ITSM walkthrough. Delegates each stage to a specialized child skill while driving the sequence itself. DO NOT TRIGGER when the user asks to enable Teams alone, configure just the IT Desk or IT Service checklist alone, or enable Swarming alone — delegate directly to the specific child skill in those cases.

Awaiting classification1Kupdated yesterday

Service Itsm Teams Itdesk Configure

forcedotcom

Configure the "Set Up Salesforce IT Desk" checklist for Microsoft Teams Employee Service (ITSM) — the fulfiller/agent side, covering app enablement, marketplace install guidance, user access assignment, and Swarming collaboration-tool setup. Use this for: 'turn on Salesforce IT Desk', 'set up IT Desk on Teams', 'assign Teams for IT Desk permission set', 'set Teams as collaboration tool for swarming', 'install Salesforce IT Desk app on Teams', or any request to complete the IT Desk half of the Teams ITSM Go page checklist. DO NOT TRIGGER for the base Teams Salesforce Go page toggle or Azure/Entra app setup (service-itsm-teams-configure) or for the IT Service/employee half of the checklist (service-itsm-teams-itservice-configure).

Awaiting classification1Kupdated yesterday

Service Itsm Teams Debug

forcedotcom

Diagnoses failing Microsoft Teams for Employee Service (ITSM) setups by running pass/fail configuration checklists against a Salesforce org.

DevOps & Cloud1Kupdated yesterday

Service Itsm Teams Employee Agent Configure

forcedotcom

Configure the embedded Agentforce Employee Agent so it replies inside the Microsoft Teams ITSM custom client ('Salesforce Employee Assist' / 'Ask AI Agent'). Use this for: 'set up employee agent in Teams', 'embed Agentforce agent in Teams', 'make the IT Service Employee Agent reply in Teams', 'Teams Ask AI Agent not responding', 'agent joins then leaves without replying', 'configure MIAW deployment for Teams employee agent', 'Teams embedded messaging agent setup'. Builds the whole stack headlessly (zero Setup-UI clicks): the Web messaging channel with User Verification ON, the Enhanced Chat User Verification Key Set (JWKS_URL) it requires, the Teams_AgentForce custom-client deployment, the routing flow to the agent, and the Agent Access permission set that lets the portal user reach the agent. DO NOT TRIGGER for enabling the Teams feature Salesforce Go page toggle (service-itsm-teams-configure) or for configuring notification preferences.

Awaiting classification1Kupdated yesterday

Service Itsm Swarming Configure

forcedotcom

Enables the Salesforce Swarming ITSM feature and sets the collaboration tool to Teams via Connect API calls.

DevOps & Cloud1Kupdated yesterday