
service-digital-engagement-channel-configure
Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW). Use when the user needs to create, deploy, and activate a messaging channel configured with Omni-Channel Flow, Omni-Channel Queue, User, or Agentforce Service Agent routing. Generates MessagingChannel metadata, deploys it to the target org, and activates the channel with User Verification, pre-chat forms, automated responses, consent settings, and all customizable channel options via Metadata API. TRIGGER when the user mentions messaging channel, MIAW, enhanced chat, in-app messaging, web messaging setup, or references a .messagingChannel-meta.xml file. DO NOT TRIGGER when the user is configuring legacy Live Agent chat, Embedded Service deployments without messaging, or standard Omni-Channel routing rules without a messaging channel.
- Installs
- 2.4K
- Last 24h
- +8
- Trending rank
- #9896
- 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-channel-configure- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads service-digital-engagement-channel-configure automatically when relevant.
- 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 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.
Scope
- In scope: Creating
MessagingChannelmetadata 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 — useservice-digital-engagement-deployment-configure), creating permission sets for messaging (useplatform-permission-set-generate), configuring the Embedded Service Code Snippet
Entry points and transport
- Delegated (
context.calledFrom == "service-onboarding"): use the approvedvalues, ask nothing, and returnfailednaming any missing required key. Standalone (nocontext): run Clarifying Questions. - Transport A (primary): headless-360 MCP
dispatch/dispatch_readonlyon/headless/metadata. Transport B: thesfcommands below, only where a probe shows Transport A unavailable.
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):
- What is the channel name / label? (used for
masterLabeland 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
trueper this skill) - Are there pre-chat form fields required? If so, which fields and types?
Required Inputs
Gather or infer before proceeding:
- Channel name: Used for
masterLabeland the file name (<Name>.messagingChannel-meta.xml) - Routing type: One of
Queue,Flow,User, orAgentforceServiceAgent - 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:EmbeddedMessagingauthMode:AuthchatAbandonmentTimeout:5(minutes)endUserIdleTimeOut:5(minutes)isAttachmentUploadEnabled:truemaxFileSize:5(MB)allowedFileTypes:bmp,csv,doc,docx,gif,jpg,pdf,png,tiff,txt,xls,xmlanonymousUserJwtExpirationTime:360(minutes, required for UnAuth, range 60-4320)verifiedUserJwtExpirationTime:60(minutes, required for Auth, range 60-240)isAbandonedChatsEnabled:falseisSaveTranscriptEnabled:falseisFallbackMessageEnabled:falseisEstimatedWaitTimeEnabled:falseisFileAttachmentExtUnrestricted:falseisQueuePositionEnabled:falseisSynchronousChatEnabled:falseisVoiceModeEnabled:false
Workflow
All steps are sequential. Do not skip or reorder.
Phase 1 — Gather Context
-
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 asfdx-project.jsonin the metadata output folder with"sourceApiVersion": "67.0". -
Collect inputs — standalone: per Clarifying Questions. Delegated: from
values. Then probe transport with a read-onlyGETofMessagingChannel(contract §2). -
Determine file name — run
scripts/normalize-channel-name.sh "<LABEL>"and surface any errors it returns.
3a. Pre-scan — GET MessagingChannel by the step 3 name (contract §3): none → create; matches and active → no write, already-configured, skip to Phase 4; matches but inactive → activate only (step 15); differs → announce each change, then write the full document (standalone: ask first).
-
Verify routing target exists — skip when step 3a ended in
already-configuredor activate-only, so a re-run never creates a queue. 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: standalone — inform the user and ask whether to create it. Delegated — return
failednaming the missing target; never create it. If the standalone user confirms creating:- For Queue: generate a
.queue-meta.xmlwithMessagingSessionas thequeueSobjecttype and deploy it before the channel. A new queue needs aQueueRoutingConfig, or sessions fail with "Agents are not available. Try again later" even though the channel deploys and activates. Right after the queue deploys, resolve or create one perservice-agentforce-channel-configure'sreferences/queue-resolution.mdStep 4 — do not defer it. - For Flow/User/ASA: inform the user that the flow, user, or bot must be created separately (out of scope for this skill)
- For Queue:
-
Read the channel settings reference — load
references/channel_settings.mdto understand all available configuration options and their valid values.
Phase 2 — Generate Metadata
-
Read the metadata template — load
assets/messaging_channel_template.xmlas the starting structure. -
Apply routing configuration — set
sessionHandlerTypeand the corresponding handler field:Routing Type sessionHandlerTypeRequired Fields Omni-Channel Queue QueuesessionHandlerQueueOmni-Channel Flow FlowsessionHandlerFlow+sessionHandlerQueue(fallback)User UsersessionHandlerUser+sessionHandlerQueue(fallback)Agentforce Service Agent AgentforceServiceAgentsessionHandlerQueue(fallback) +sessionHandlerAsa(bot dev name — required, see v67 note below)v67 note —
<sessionHandlerAsa>is required (omitting it fails with "Missing required Agentforce Service Agent"); the deploy then bindsSessionHandlerId, no PATCH needed. The bot must be Active first: runsf agent activate -o <org> --api-name <BotDevName>and confirmBotVersion.Status = Active. -
Apply user verification — if enabled, set
embeddedConfig.authModetoAuthand include<messagingAuthorizations>. If not enabled, setembeddedConfig.authModetoUnAuthand omit<messagingAuthorizations>. -
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 cleanupisAbandonedChatsEnabled— enable abandoned chat detectionisAttachmentUploadEnabled— file upload supportisEstimatedWaitTimeEnabled— show estimated wait timeisFallbackMessageEnabled— fallback when agents unavailableisFileAttachmentExtUnrestricted— allow any file extensionisSaveTranscriptEnabled— save conversation transcriptsmaxFileSize— maximum attachment size in MB
-
Configure messaging keywords — generate
<messagingKeywords>elements:OptOuttype with individual<keyword>elements: cancel, end, quit, stop, stopall, unsubscribeHelptype with<keyword>: help
-
Apply standard parameters — if the user needs standard pre-chat fields, generate
<standardParameters>elements withparameterType. If the channel uses Flow-based routing and the user specifies flow variable mappings, include<actionParameterMappings>withactionParameterNameto map each parameter to a flow input variable. -
Apply custom parameters — if the user needs pre-chat data collection, generate
<customParameters>elements withname,masterLabel,parameterDataType,externalParameterName, andmaxLength. Always setparameterDataTypetoString— the channel accepts no other value (the field's actual type, including Checkbox/Number/dropdown, is set at the deployment level viaformFieldType, not here). If the channel uses Flow-based routing and the user specifies flow variable mappings, include<actionParameterMappings>withactionParameterNameto map each parameter to a flow input variable. -
Generate the file — produce the
.messagingChannel-meta.xmlfile following the template structure. Place at the path the user specifies, or default to the project's metadata source path undermessagingChannels/.
Phase 3 — Deploy and Activate
- Write the channel — Transport A:
POSTto create,PUTthe full document to update (a minimal PUT dropsembeddedConfig); checkresults[].success, then re-GET. Transport B:sf project deploy start --source-dir <path-to-messagingChannels-folder> --target-org <org-alias>
15a. ASA routing only — verify the bind landed (skip for Queue, Flow, User):
```bash
sf data query -o <org> --json \
-q "SELECT SessionHandlerId, FallbackQueueId FROM MessagingChannel WHERE DeveloperName='<CHANNEL_DEV_NAME>'"
```
Both must be non-null; if not, check both handler elements were in the XML and the bot was Active before the deploy.
15. Activate the channel — after a successful write, activate the messaging channel (IsActive is not part of the metadata). Transport A: sObject update {"IsActive": true} through dispatch. Transport B:
bash sf data update record --sobject MessagingChannel --where "DeveloperName='<CHANNEL_NAME>'" --values "IsActive=true" --target-org <org-alias>
Phase 4 — Validate
-
Verify against checklist — confirm all items in the Verification Checklist below pass before presenting output.
-
Report — delegated: return the contract §5 result and stop. Standalone: continue.
-
Present output (standalone) — 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 withautoResponseContentType: TextResponse,language, and XML-escapedresponsetext, then redeploy.
- Automated responses — ask if the user wants to configure
Rules / Constraints
| Constraint | Rationale |
|---|---|
| File name serves as the channel API name | No 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: include both sessionHandlerQueue and sessionHandlerAsa in the XML | sessionHandlerAsa is required at v67 — the deploy fails with "Missing required Agentforce Service Agent" if omitted; the deploy itself binds SessionHandlerId, no PATCH needed |
Bot must be Active before the metadata deploy that binds SessionHandlerId | API rejects with "Only active Agentforce Service Agents are supported" if the bot is inactive |
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 deployment | Channels 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 |
Gotchas
| Issue | Resolution |
|---|---|
| Channel name conflicts with existing channel | Check org for existing channels; file name must be unique |
| Queue not found on deploy | Ensure the referenced queue exists and has MessagingSession as a queueSobject type |
| Channel deploys and activates fine, but widget shows "Agents are not available. Try again later." at session start | The queue has no QueueRoutingConfig — this is silent at deploy time. Check SELECT QueueRoutingConfigId FROM Group WHERE Id='<QUEUE_ID>'; if null, resolve/create one per queue-resolution.md Step 4 |
| Omni-Channel Flow not found on deploy | Ensure the referenced flow exists and is active before deploying the channel |
| ASA bot reference invalid | Bot must be published and active; use exact developer name from BotDefinition metadata |
| ASA channel deploy fails with "Missing required Agentforce Service Agent" | <sessionHandlerAsa>{BotDevName}</sessionHandlerAsa> is missing from the XML — it's required at v67, not optional |
ASA channel deployed but SessionHandlerId is null after deploy | Bot was not Active at deploy time — run sf agent activate, confirm BotVersion.Status = Active, then redeploy |
| "Only active Agentforce Service Agents are supported" on deploy | Bot is inactive — run sf agent activate before deploying |
| Flow or ASA routing fails without fallback queue | sessionHandlerQueue is mandatory when sessionHandlerType is Flow or AgentforceServiceAgent |
| JWT verification not working | Connected app and certificate must be configured for the org |
| Custom parameters not collected | name must be unique per channel |
<customParameters> deploy fails: "bad value for restricted picklist field" | parameterDataType was set to something other than String. Channel custom parameters are always String; set the field's actual type (Number, Checkbox, dropdown) at the deployment level, not here |
| Removing a custom parameter: "can't be deleted as it is referenced elsewhere" | Check before deploying, not after. Every deployment on this channel whose pre-chat form uses the param must first drop that field and be published (user-approved); remove the param's actionParameterMappings in a separate deploy first. See references/channel_settings.md §Removing a Custom Parameter |
| Automated responses not showing | Use exact type values (OptOutConfirmation, HelpResponse); XML-escape special characters |
| Channel deployed but messages not routing | Channel 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 |
Verification Checklist
Universal Checks
- Does the file name match
^[a-zA-Z][a-zA-Z0-9_]*$? - Is
masterLabel40 characters or fewer? - Is
messagingChannelTypeset toEmbeddedMessaging?
Routing Checks
- Is exactly one
sessionHandlerTypevalue set (Queue,Flow,User, orAgentforceServiceAgent)? - For Queue routing: is
sessionHandlerQueuein the XML? - For Flow routing: is
sessionHandlerFlowin the XML, plussessionHandlerQueueas fallback? - For User routing: is
sessionHandlerUserin the XML, plussessionHandlerQueueas fallback? - For ASA routing: are both
sessionHandlerQueueandsessionHandlerAsain the XML? - For ASA routing: was step 15a run? Are
SessionHandlerIdandFallbackQueueIdnon-null after the deploy? - Does the routing target reference an existing entity in the org?
User Verification Checks
- If verification is enabled, is
embeddedConfig.authModeset toAuth? - If verification is disabled, is
embeddedConfig.authModeset toUnAuth?
Embedded Config Checks
- Is
chatAbandonmentTimeouta positive integer (minutes)? - Is
allowedFileTypesa comma-separated string with no spaces? - Is
maxFileSizea value between 1-5 MB? - If UnAuth, is
anonymousUserJwtExpirationTimeset (default 360, range 60-4320)? - If Auth, is
verifiedUserJwtExpirationTimeset (default 60, range 60-240)?
Automated Response Checks (only if user requested)
- Do all
typevalues use valid IDs (OptOutConfirmation,HelpResponse)? - Are special characters XML-escaped in
responsetext?
Keyword Checks
- Is there at least an
OptOutkeyword type defined? - Are keywords individual
<keyword>elements (not comma-separated)? - Is
languageset on each keyword block?
Activation Checks
- Was the channel deployed successfully?
- Was the channel activated after deployment (
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.
Cross-Skill Integration
| Need | Delegate 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 |
Reference File Index
| File | When to read |
|---|---|
references/onboarding_contract.md | Delegated mode (context.calledFrom == "service-onboarding"), org writes (transport), module registration |
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 |
FAQ
What does the service-digital-engagement-channel-configure skill do?
Configures and deploys enhanced chat Messaging Channels for Messaging for In-App and Web (MIAW). Use when the user needs to create, deploy, and activate a messaging channel configured with Omni-Channel Flow, Omni-Channel Queue, User, or Agentforce Service Agent routing. Generates MessagingChannel metadata, deploys it to the target org, and activates the channel with User Verification, pre-chat forms, automated responses, consent settings, and all customizable channel options via Metadata API. TRIGGER when the user mentions messaging channel, MIAW, enhanced chat, in-app messaging, web messaging setup, or references a .messagingChannel-meta.xml file. DO NOT TRIGGER when the user is configuring legacy Live Agent chat, Embedded Service deployments without messaging, or standard Omni-Channel routing rules without a messaging channel.
How do I install service-digital-engagement-channel-configure?
Run npx skills add https://github.com/forcedotcom/sf-skills --skill service-digital-engagement-channel-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-channel-configure/ (personal) or .claude/skills/service-digital-engagement-channel-configure/ (project).
Which AI agents can use service-digital-engagement-channel-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-channel-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-channel-configure?
It is published by forcedotcom in forcedotcom/sf-skills. It has 2,434 recorded installs.
More from forcedotcom/sf-skills
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.
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).
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).
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.