MCPInstall

service-digital-engagement-deployment-configure

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.

Installs
2.4K
Last 24h
+9
Trending rank
#9075
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/forcedotcom/sf-skills --skill service-digital-engagement-deployment-configure
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads service-digital-engagement-deployment-configure automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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), generating the website code snippet (offered only as a next step, see references/code_snippet.md), creating Experience Sites (Connect API prerequisite for Web type)

Entry points and transport

  • Delegated (context.calledFrom == "service-onboarding"): use the approved values, ask nothing, and return failed naming any missing required key. Standalone (no context): run Clarifying Questions.
  • Transport A (primary): headless-360 MCP dispatch / dispatch_readonly on /services/data/vXX.0/headless/metadata. Transport B: the sf commands below, only where a probe shows Transport A unavailable. Exception: Web create always uses the sf CLI (step 17a).

Details: references/onboarding_contract.md (§1 entry points, §2 transport, §3 pre-scan, §5 result).


Clarifying Questions

Before generating, ask the user if not already clear (standalone only):

  • 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 pre-chat (if requested): the questions in references/prechat_forms.md §Inputs to Gather
  • 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 as masterLabel. Derive the API name (fullName / DeveloperName, Connect name) from it: replace each run of characters other than letters and digits with _, then trim leading/trailing _ (Acme Support Chat → Acme_Support_Chat). The result must match ^[a-zA-Z][a-zA-Z0-9_]*$. Use the API name for every lookup and write
  • 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): see references/prechat_forms.md §Inputs to Gather
  • 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 — standalone: ask whether the user wants to create a new deployment or update an existing one. Delegated: taken from values.operation, then confirmed by the pre-scan (step 4a).

  3. Collect inputs — standalone: per Clarifying Questions. Delegated: from values (deploymentName, deploymentType, channelName required).

3a. Probe transport — read-only GET of EmbeddedServiceConfig (contract §2).

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

4a. Pre-scan — look up the deployment by its derived API name (contract §3): none → create (Phase 2A); matches → no write, already-configured, skip to Phase 3; differs → update (Phase 2B), announce each change (standalone: ask first); linked to a different channel → standalone: ask before repointing, delegated: failed. Standalone, deployment exists: offer exactly three choices — no change / override / add to existing.

Phase 2A — Create New Deployment

Use this path when the operation is create.

  1. Determine API method by type — API/Mobile: Metadata API deploy. Web: Connect API (creates the Experience Site). All types need the channel to exist.

  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 — as in step 17.

Phase 2B — Update Existing Deployment (Metadata API)

Use this path when the operation is update.

  1. Retrieve the existing deployment — take the current EmbeddedServiceConfig from the org before making changes. Transport A: the xmlRep from the step 3a/4a GET. Transport B:

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

    Use it as the starting structure — the update is always a full document (see Rules). If retrieval is not possible, load assets/esd_web_update_template.xml as a fallback reference.

  2. Apply messaging channel settings — in <embeddedServiceMessagingChannel> set messagingChannel (the channel's channelPlatformKey) and the UI toggles (shouldShow*, shouldStartNewLineOnEnter, invitation flags). Include every boolean, even when false; full list in references/deployment_settings.md. Leave each shouldShow* / shouldStartNewLineOnEnter at its retrieved value (default false if nothing was retrieved); set one to true only when the user explicitly asks for that feature — never infer it from an example.

  3. Apply pre-chat forms — pre-chat is OFF by default: omit <embeddedServiceForms> unless the user asks to collect data before the conversation. If they do, read references/prechat_forms.md first and follow it (field attributes, hidden fields, ChoiceList, displayNameFormat, deactivate vs. remove).

    • Before generating, run the checks in its §Validating and Remediating Prerequisites against the retrieved channel. Channel fixes go through service-digital-engagement-channel-configure; never hand-edit the channel here.
    • Delta to graft onto a base deployment: examples/esd_web_prechat_fields.xml.
  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) — set isInvitationEnabled to true, add <embdMsgChannelInvitationConditions> (fields and operators in references/deployment_settings.md), and keep formula (e.g. 1 AND 2) in sync with the condition sequence numbers whenever conditions change.

  6. Apply additional settings:

    • isTermsAndConditionsEnabled / isTermsAndConditionsRequired — T&C in pre-chat
    • site — Web: the retrieved value, unchanged (see Rules); omit for API/Mobile
  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 (Web) — only after the user approves, per step 17c
    • Generate code snippet for integration — see references/code_snippet.md

Phase 2C — Apply to the org

Runs for both Phase 2A and 2B, except when the pre-scan returned already-configured. Standalone: confirm before writing. Delegated: the plan approval is the confirmation; still announce each write.

17a. Write the deployment — - Web create: Connect API (see references/connect_api_creation.md) via sf api request rest — always, not dispatch (MCP dispatch fails with INTERNAL_ERROR during site creation). - API/Mobile create: Transport A POST EmbeddedServiceConfig (body carries type, fullName, xmlRep); Transport B sf project deploy start. - Update: Transport A PUT of the full document; Transport B sf project deploy start. Check results[].success, not just HTTP status. On failure stop and report the step — no silent retry.

17b. Re-read and diff — GET the component again and confirm every intended field landed and no inline block (embeddedServiceMessagingChannel, forms) was dropped.

17c. Publish (Web only) — never automatic. Publishing makes the changes live to customers; the deploy only saves a draft. After 17b, stop: summarize what changed, give the plain Setup link <instanceUrl>/lightning/setup/EmbeddedServiceDeployments/<EmbeddedServiceConfigId>/view so the user can review the draft, and ask whether to publish now. Publish only on an explicit yes in that turn (a "publish" in the original request does not count). Then dispatch POST on the fully-qualified publish path; if it returns a path/route error, or on Transport B, run the sf publish command from references/connect_api_creation.md. Delegated: do not publish; return published: false. Note: a Web create via Connect API publishes by itself (isPublishSuccess: true); say so in the plan before creating.

Phase 3 — Validate

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

  2. Report — delegated: return the contract §5 result. Standalone: the same outcome in plain language.


Rules / Constraints

ConstraintRationale
deploymentType must be API, Mobile, or WebPlatform rejects other values
Web updates must include site, set to the retrieved value unchangedSite (ESW_<name>_<timestamp>) is auto-generated at creation; the platform rejects a missing or changed value
embeddedServiceMessagingChannelName must reference an existing channelDeployment fails if channel doesn't exist
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
Do not embed deploy/push commands inside generated files or artifactsArtifacts stay portable; in-session writes happen in Phase 2C through the chosen transport
Update with the full retrieved document, never a minimal PUTOmitted inline blocks can be silently cleared by the update

Gotchas

IssueResolution
Branding overrides not appliedUse Tooling API to update individual BrandingSet properties after the deployment is created
Pre-chat form, field, ChoiceList, or displayNameFormat issuesSee the Gotchas table in references/prechat_forms.md
Changes not appearing in widgetThe deploy is a draft until published (step 17c)
sf api request rest fails ("No 'mode' found", "Nonexistent flag: --url")See references/connect_api_creation.md §Publishing After Updates
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 pre-chat form field attributes

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?
  • Pre-chat (if configured): does every item in the references/prechat_forms.md Verification Checklist pass?
  • 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

  • Web: did you stop before publishing, give the review link, and publish only after the user's explicit yes? Is the user reminded to activate any deployed messaging components (Tooling API)?

Output Expectations

Deliverables:

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

File structure follows the templates in assets/.


Cross-Skill Integration

NeedDelegate to
Creating the messaging channelservice-digital-engagement-channel-configure skill
Channel custom parameters, flow-variable mappings, or Queue → Omni-Flow routingservice-digital-engagement-channel-configure skill (pass the retrieved channel; see step 12)
Creating Omni-Channel routing flowsautomation-flow-generate skill
Creating permission sets for agentsplatform-permission-set-generate skill

Reference File Index

FileWhen to read
references/onboarding_contract.mdPre-scan (§3, both modes); delegated mode (context.calledFrom == "service-onboarding"), org writes (transport), module registration
assets/esd_api_mobile_template.xml, assets/esd_web_update_template.xmlBefore generating API/Mobile deployments and Web updates, respectively
references/deployment_settings.mdWhen configuring deployment options beyond defaults; less common gotchas (embedded flow, reCAPTCHA, business hours)
references/prechat_forms.mdWhenever pre-chat is requested — inputs, field rules, ChoiceList, displayNameFormat, deactivate vs. remove, pre-chat gotchas and checklist
references/connect_api_creation.mdWhen creating Web type deployments (Connect API required); publish command and ID query
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.xml, esd_mobile.xml, esd_web_full.xml, esd_web_prechat_fields.xmlTo verify output per type; the pre-chat file is a forms delta to graft onto esd_web_full.xml

FAQ

What does the service-digital-engagement-deployment-configure skill do?

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.

How do I install service-digital-engagement-deployment-configure?

Run npx skills add https://github.com/forcedotcom/sf-skills --skill service-digital-engagement-deployment-configure in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/service-digital-engagement-deployment-configure/ (personal) or .claude/skills/service-digital-engagement-deployment-configure/ (project).

Which AI agents can use service-digital-engagement-deployment-configure?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is service-digital-engagement-deployment-configure safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains service-digital-engagement-deployment-configure?

It is published by forcedotcom in forcedotcom/sf-skills. It has 2,427 recorded installs.

More from forcedotcom/sf-skills

View all →

platform-apex-generate

forcedotcom/sf-skills

Primary Apex authoring skill for class generation, refactoring, and review. ALWAYS ACTIVATE when the user mentions Apex, .cls, triggers, or asks to create/refactor a class (service, selector, domain, batch, queueable, schedulable, invocable, DTO, utility, interface, abstract, exception, REST resource). Use this skill for requests involving SObject CRUD, mapping collections, fetching related records, scheduled jobs, batch jobs, trigger design, @AuraEnabled controllers, @RestResource endpoints, custom REST APIs, or code review of existing Apex.

platform-apex-test-generate

forcedotcom/sf-skills

Use to generate and validate Apex test classes with TestDataFactory patterns, bulk testing (251+ records), mocking, assertions, and disciplined test-fix loops. Use when creating Apex test classes (for triggers, services, controllers, batch jobs, queueables, and callouts), improving coverage, debugging or fixing failing Apex tests, or running test/coverage analysis. Triggers on Test.cls files, sf apex run test, coverage reports. Do NOT trigger for production Apex (use platform-apex-generate) or Jest/LWC tests.

Testing & QA7.1K installs

platform-apex-test-run

forcedotcom/sf-skills

Apex test execution, coverage analysis, and test-fix loops with 120-point scoring. Use when the user runs Apex tests, checks code coverage, fixes failing tests, or touches Test.cls / Test.cls files. DO NOT TRIGGER when writing Apex production code (use platform-apex-generate), Agentforce agent testing (use agentforce-test), or Jest/LWC tests (use experience-lwc-generate).

Testing & QA7K installs

platform-apex-logs-debug

forcedotcom/sf-skills

Salesforce debug log analysis and troubleshooting with 100-point scoring. TRIGGER when: user analyzes debug logs, hits governor limits, reads stack traces, or touches .log files from Salesforce orgs. DO NOT TRIGGER when: running Apex tests (use platform-apex-test-run), generating or fixing Apex code (use platform-apex-generate), or Agentforce session tracing (use agentforce-observe).

platform-soql-query

forcedotcom/sf-skills

Use when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan/selectivity analysis, and performance or safety improvements. TRIGGER when the user writes, optimizes, or debugs SOQL/SOSL, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER for bulk data operations (use platform-data-manage), Apex DML logic (use platform-apex-generate), or report/dashboard queries.

platform-metadata-deploy

forcedotcom/sf-skills

Salesforce DevOps automation using sf CLI v2. TRIGGER when: user deploys metadata, validates a deploy or does a dry-run, deploys to a Production org, quick-deploys a validated job ID, ships/promotes to prod, creates/manages scratch orgs or sandboxes, sets up CI/CD pipelines, or troubleshoots deployment errors with sf project deploy. DO NOT TRIGGER when: writing Apex code, building LWC components (use experience-lwc-generate), creating metadata definitions (use platform-custom-object-generate), deleting metadata from an org (use platform-destructive-deploy), or querying org data (use platform-data-manage).

DevOps & Cloud6.8K installs

Popular devops & cloud skills

View category →

microsoft-foundry

microsoft/azure-skills

Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure

OfficialDevOps & Cloud579.1K installs

azure-diagnostics

microsoft/azure-skills

Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.

OfficialDevOps & Cloud569.8K installs

azure-prepare

microsoft/azure-skills

Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.

OfficialDevOps & Cloud569K installs

azure-ai

microsoft/azure-skills

Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.

OfficialDevOps & Cloud568.8K installs

azure-deploy

microsoft/azure-skills

Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.

OfficialDevOps & Cloud568.6K installs

azure-validate

microsoft/azure-skills

Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.

OfficialDevOps & Cloud568K installs