@salesforce/afv-skills 1.63.0 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/agentforce-gpt-email-generation-configure/SKILL.md +312 -0
- package/skills/agentforce-offline-experimentation-run/SKILL.md +253 -0
- package/skills/agentforce-offline-experimentation-run/scripts/build_report.py +796 -0
- package/skills/agentforce-offline-experimentation-run/scripts/resolve-token.sh +111 -0
- package/skills/agentforce-offline-experimentation-run/scripts/sfap_replay.py +1053 -0
- package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +64 -0
- package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +46 -0
- package/skills/automation-company-profile-info-query/SKILL.md +51 -0
- package/skills/automation-digital-wallet-configure/SKILL.md +689 -0
- package/skills/automation-flow-coordinate/SKILL.md +95 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +1569 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +96 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +23 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +31 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +179 -0
- package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +13 -0
- package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +83 -0
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +69 -0
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +274 -0
- package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +192 -0
- package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +130 -0
- package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +92 -0
- package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +88 -0
- package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +152 -0
- package/skills/automation-flow-coordinate/references/elements/start/start.md +539 -0
- package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +152 -0
- package/skills/automation-flow-coordinate/references/elements/wait/wait.md +497 -0
- package/skills/automation-flow-coordinate/references/recipes/author/author.md +868 -0
- package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +300 -0
- package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +292 -0
- package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +323 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +109 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +219 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +180 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +175 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +255 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +212 -0
- package/skills/automation-flow-coordinate/references/resources/variable/variable.md +171 -0
- package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +786 -0
- package/skills/automation-flow-coordinate/references/shared/end/end.md +267 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +69 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +80 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +116 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +321 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +320 -0
- package/skills/automation-flow-coordinate/references/shared/server-functions.md +597 -0
- package/skills/automation-sandbox-post-copy-config-generate/SKILL.md +21 -11
- package/skills/automation-sandbox-post-copy-config-generate/assets/config_template.json +10 -0
- package/skills/automation-sandbox-post-copy-config-generate/assets/json_schema.json +33 -1
- package/skills/automation-sandbox-post-copy-config-generate/references/configuration_catalog.md +44 -1
- package/skills/automation-sandbox-post-copy-configure/SKILL.md +132 -124
- package/skills/automation-sandbox-post-copy-configure/references/flow_activation_path.md +151 -0
- package/skills/automation-sandbox-post-copy-configure/references/scheduled_apex_path.md +55 -9
- package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +69 -0
- package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +78 -0
- package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +373 -0
- package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +273 -0
- package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +259 -0
- package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +369 -0
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +542 -0
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +159 -0
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +349 -0
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +505 -0
- package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +380 -0
- package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +567 -0
- package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +159 -0
- package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +360 -0
- package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +539 -0
- package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +358 -0
- package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +602 -0
- package/skills/commerce-b2b-store-configure/SKILL.md +251 -0
- package/skills/commerce-credit-memo-create/SKILL.md +139 -0
- package/skills/commerce-delivery-business-hours-configure/SKILL.md +277 -0
- package/skills/commerce-delivery-estimation-apply/SKILL.md +155 -0
- package/skills/commerce-delivery-estimation-configure/SKILL.md +377 -0
- package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +174 -0
- package/skills/commerce-estimate-bopis-query/SKILL.md +279 -0
- package/skills/commerce-estimate-delivery-date-query/SKILL.md +349 -0
- package/skills/commerce-fees-apply/SKILL.md +227 -0
- package/skills/commerce-fulfillment-routing-analyze/SKILL.md +200 -0
- package/skills/commerce-guest-buyer-create/SKILL.md +173 -0
- package/skills/commerce-location-bopis-configure/SKILL.md +378 -0
- package/skills/commerce-location-business-hours-configure/SKILL.md +235 -0
- package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +309 -0
- package/skills/commerce-location-graph-integrate/SKILL.md +131 -0
- package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +755 -0
- package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +331 -0
- package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +579 -0
- package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +626 -0
- package/skills/commerce-merchant-catalog-configure/SKILL.md +614 -0
- package/skills/commerce-merchant-extension-provider-configure/SKILL.md +368 -0
- package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +118 -0
- package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +65 -0
- package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +90 -0
- package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +72 -0
- package/skills/commerce-merchant-insights-query/SKILL.md +279 -0
- package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +656 -0
- package/skills/commerce-order-summary-change-apply/SKILL.md +375 -0
- package/skills/commerce-product-details-get/SKILL.md +363 -0
- package/skills/commerce-product-search/SKILL.md +563 -0
- package/skills/commerce-react-storefront-create/SKILL.md +350 -0
- package/skills/commerce-return-order-summary-create/SKILL.md +513 -0
- package/skills/commerce-search-relevance-analyze/SKILL.md +757 -0
- package/skills/commerce-temporary-processing-time-override-create/SKILL.md +274 -0
- package/skills/communications-initial-setup-configure/SKILL.md +630 -0
- package/skills/communications-multisite-configure/SKILL.md +571 -0
- package/skills/communications-revenue-cloud-settings-configure/SKILL.md +74 -0
- package/skills/communications-smb-fiber-catalog-create/SKILL.md +413 -0
- package/skills/communications-tmf-integrate/SKILL.md +1368 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +54 -107
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/copy.json +1 -1
- package/skills/consumer-goods-promotion-bo-api-deploy/references/conventions-and-payload-rules.md +82 -5
- package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +35 -2
- package/skills/consumer-goods-promotion-bo-api-deploy/references/preflight-and-seed-queries.md +149 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +17 -1
- package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +448 -0
- package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +269 -0
- package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +271 -0
- package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +382 -0
- package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +373 -0
- package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +389 -0
- package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +338 -0
- package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +547 -0
- package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +346 -0
- package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +1110 -0
- package/skills/crm-analytics-adoption-insights-configure/SKILL.md +224 -0
- package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +418 -0
- package/skills/crm-analytics-dashboards-configure/SKILL.md +731 -0
- package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +233 -0
- package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +184 -0
- package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +167 -0
- package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +55 -0
- package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +1350 -0
- package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +1862 -0
- package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +83 -0
- package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +81 -0
- package/skills/data360-activation-create/SKILL.md +104 -0
- package/skills/data360-activation-external-platform-get/SKILL.md +49 -0
- package/skills/data360-activation-target-create/SKILL.md +93 -0
- package/skills/data360-activation-v2-create/SKILL.md +456 -0
- package/skills/data360-audience-dmo-get/SKILL.md +38 -0
- package/skills/data360-calculated-affinity-create/SKILL.md +82 -0
- package/skills/data360-calculated-insight-create/SKILL.md +148 -0
- package/skills/data360-catalog-metadata-create/SKILL.md +183 -0
- package/skills/data360-code-extension-create/SKILL.md +115 -0
- package/skills/data360-communication-capping-create/SKILL.md +227 -0
- package/skills/data360-connection-create/SKILL.md +491 -0
- package/skills/data360-content-lens-create/SKILL.md +181 -0
- package/skills/data360-data-action-create/SKILL.md +126 -0
- package/skills/data360-data-action-target-create/SKILL.md +181 -0
- package/skills/data360-data-clean-room-create/SKILL.md +238 -0
- package/skills/data360-data-governance-create/SKILL.md +746 -0
- package/skills/data360-data-graph-create/SKILL.md +82 -0
- package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +38 -0
- package/skills/data360-data-lake-object-create/SKILL.md +207 -0
- package/skills/data360-data-model-object-catalog-get/SKILL.md +49 -0
- package/skills/data360-data-model-object-create/SKILL.md +128 -0
- package/skills/data360-data-model-object-mapping-create/SKILL.md +106 -0
- package/skills/data360-data-space-create/SKILL.md +161 -0
- package/skills/data360-data-streams-create/SKILL.md +324 -0
- package/skills/data360-engagement-signal-get/SKILL.md +38 -0
- package/skills/data360-experiment-create/SKILL.md +82 -0
- package/skills/data360-goal-based-campaign-create/SKILL.md +192 -0
- package/skills/data360-harmonization-process-history-get/SKILL.md +38 -0
- package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +84 -0
- package/skills/data360-identity-resolution-create/SKILL.md +115 -0
- package/skills/data360-intelligent-document-processing-create/SKILL.md +148 -0
- package/skills/data360-knowledge-graph-construction-create/SKILL.md +93 -0
- package/skills/data360-knowledge-graph-create/SKILL.md +216 -0
- package/skills/data360-knowledge-space-mcp-configure/SKILL.md +475 -0
- package/skills/data360-machine-learning-mcp-configure/SKILL.md +697 -0
- package/skills/data360-multi-org-mcp-configure/SKILL.md +117 -0
- package/skills/data360-secondary-index-mcp-configure/SKILL.md +126 -0
- package/skills/data360-segment-mcp-configure/SKILL.md +159 -0
- package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +38 -0
- package/skills/data360-semantic-engine-mcp-configure/SKILL.md +62 -0
- package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +38 -0
- package/skills/data360-semantic-metric-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-model-mcp-configure/SKILL.md +115 -0
- package/skills/data360-standard-mapping-mcp-configure/SKILL.md +38 -0
- package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +73 -0
- package/skills/dx-devops-conflict-resolve/SKILL.md +1 -5
- package/skills/dx-devops-pipeline-manage/SKILL.md +1 -5
- package/skills/dx-devops-project-manage/SKILL.md +1 -5
- package/skills/dx-devops-promote/SKILL.md +1 -5
- package/skills/dx-devops-request-status/SKILL.md +1 -5
- package/skills/dx-lifecycle-center/SKILL.md +120 -0
- package/skills/dx-lifecycle-center/examples/workflows.md +175 -0
- package/skills/dx-lifecycle-center/references/connect-api.md +123 -0
- package/skills/dx-lifecycle-center/references/connect-org.md +184 -0
- package/skills/dx-lifecycle-center/references/deploy.md +153 -0
- package/skills/dx-lifecycle-center/references/error-handling.md +21 -0
- package/skills/dx-lifecycle-center/references/hub-org.md +37 -0
- package/skills/dx-lifecycle-center/references/list-orgs.md +99 -0
- package/skills/dx-lifecycle-center/references/request-body.md +75 -0
- package/skills/dx-lifecycle-center/references/troubleshooting.md +31 -0
- package/skills/dx-lifecycle-center/scripts/poll-deploy-status.sh +200 -0
- package/skills/dx-lifecycle-center/scripts/resolve-environment.sh +120 -0
- package/skills/dx-org-devhub-configure/SKILL.md +1 -3
- package/skills/dx-org-shape-manage/SKILL.md +1 -5
- package/skills/dx-org-snapshot-manage/SKILL.md +1 -3
- package/skills/education-cloud-academic-calendar-generate/SKILL.md +1 -3
- package/skills/education-cloud-course-catalog-migrate/SKILL.md +1 -3
- package/skills/education-cloud-domain-configure/SKILL.md +1 -3
- package/skills/education-cloud-multi-campus-configure/SKILL.md +1 -3
- package/skills/education-cloud-student-recruitment-agent-configure/SKILL.md +1 -5
- package/skills/experience-afv-query/SKILL.md +234 -0
- package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +63 -0
- package/skills/experience-apex-components-configure/SKILL.md +69 -0
- package/skills/experience-apex-pages-configure/SKILL.md +107 -0
- package/skills/experience-app-home-configure/SKILL.md +76 -0
- package/skills/experience-aura-lightning-out-access-configure/SKILL.md +58 -0
- package/skills/experience-briefcase-configure/SKILL.md +287 -0
- package/skills/experience-community-flexi-page-list-create/SKILL.md +74 -0
- package/skills/experience-community-template-definition-list-query/SKILL.md +48 -0
- package/skills/experience-community-theme-definition-list-query/SKILL.md +38 -0
- package/skills/experience-content-assets-configure/SKILL.md +86 -0
- package/skills/experience-custom-domain-create/SKILL.md +727 -0
- package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +41 -0
- package/skills/experience-field-service-app-builder-configure/SKILL.md +187 -0
- package/skills/experience-flow-category-configure/SKILL.md +117 -0
- package/skills/experience-formula-configure/SKILL.md +358 -0
- package/skills/experience-global-actions-configure/SKILL.md +69 -0
- package/skills/experience-global-publisher-layouts-configure/SKILL.md +79 -0
- package/skills/experience-instrumentation-configure/SKILL.md +64 -0
- package/skills/experience-lex-engagement-configure/SKILL.md +50 -0
- package/skills/experience-lightning-bolt-open/SKILL.md +12 -0
- package/skills/experience-lightning-out-configure/SKILL.md +129 -0
- package/skills/experience-lightning-preview-configure/SKILL.md +67 -0
- package/skills/experience-lightning-types-query/SKILL.md +98 -0
- package/skills/experience-malware-scan-configure/SKILL.md +71 -0
- package/skills/experience-my-salesforce-configure/SKILL.md +126 -0
- package/skills/experience-navigation-menus-configure/SKILL.md +235 -0
- package/skills/experience-notification-types-configure/SKILL.md +206 -0
- package/skills/experience-notifications-configure/SKILL.md +75 -0
- package/skills/experience-record-discovery-query/SKILL.md +227 -0
- package/skills/experience-regenerate-previews-open/SKILL.md +94 -0
- package/skills/experience-sales-cloud-mab-configure/SKILL.md +254 -0
- package/skills/experience-schema-builder-open/SKILL.md +38 -0
- package/skills/experience-simple-record-home-configure/SKILL.md +110 -0
- package/skills/experience-static-resources-configure/SKILL.md +74 -0
- package/skills/experience-ui-bundle-2gp-deploy/SKILL.md +1 -3
- package/skills/experience-ui-bundle-features-generate/SKILL.md +1 -5
- package/skills/experience-ui-bundle-mfa-configure/SKILL.md +1 -3
- package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +23 -2
- package/skills/field-service-data-capture-form-designer-configure/SKILL.md +13 -3
- package/skills/field-service-data-capture-migrate/SKILL.md +1 -3
- package/skills/field-service-mobile-branding-configure/SKILL.md +17 -3
- package/skills/field-service-objective-designer-configure/SKILL.md +72 -379
- package/skills/field-service-prework-brief-deployer-configure/SKILL.md +10 -537
- package/skills/field-service-scheduling-policy-designer-query/SKILL.md +65 -1093
- package/skills/{field-service-setup-orchestrator-get → field-service-setup-coordinate}/SKILL.md +18 -3
- package/skills/field-service-sobject-create-configure/SKILL.md +13 -213
- package/skills/field-service-voice-to-form-configure/SKILL.md +40 -11
- package/skills/field-service-work-plan-configure/SKILL.md +253 -0
- package/skills/field-service-work-rule-designer-configure/SKILL.md +121 -95
- package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +180 -0
- package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +196 -0
- package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +106 -0
- package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +96 -0
- package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +111 -0
- package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +250 -0
- package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +122 -0
- package/skills/fsc-digital-origination-coordinate/SKILL.md +653 -0
- package/skills/fsc-digital-origination-demo-run/SKILL.md +225 -0
- package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +112 -0
- package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +396 -0
- package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +336 -0
- package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +208 -0
- package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +375 -0
- package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +83 -0
- package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +248 -0
- package/skills/fsc-digital-origination-sample-data-create/SKILL.md +206 -0
- package/skills/fsc-document-checklist-settings-configure/SKILL.md +57 -0
- package/skills/fsc-flexible-hierarchy-configure/SKILL.md +148 -0
- package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +1430 -0
- package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +471 -0
- package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +429 -0
- package/skills/fsc-pricing-product-configurator-configure/SKILL.md +150 -0
- package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +123 -0
- package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +82 -0
- package/skills/fsc-product-act3-attributes-create/SKILL.md +249 -0
- package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +196 -0
- package/skills/fsc-product-act5-considerations-get/SKILL.md +44 -0
- package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +384 -0
- package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +144 -0
- package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +107 -0
- package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +189 -0
- package/skills/fsc-stage-management-definition-create/SKILL.md +108 -0
- package/skills/fsc-stage-management-permissions-assign/SKILL.md +143 -0
- package/skills/fsc-stage-management-transitions-configure/SKILL.md +139 -0
- package/skills/health-cloud-appt-booking-config-configure/SKILL.md +135 -0
- package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +134 -0
- package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +136 -0
- package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +134 -0
- package/skills/health-cloud-care-requests-create/SKILL.md +178 -0
- package/skills/health-cloud-initial-configure/SKILL.md +511 -0
- package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +1374 -0
- package/skills/health-cloud-provider-search-settings-configure/SKILL.md +924 -0
- package/skills/health-cloud-referral-management-coordinate/SKILL.md +513 -0
- package/skills/health-cloud-timeline-configure/SKILL.md +622 -0
- package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +135 -0
- package/skills/industries-account-score-settings-query/SKILL.md +78 -0
- package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +177 -0
- package/skills/industries-ad-product-availability-search/SKILL.md +399 -0
- package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +628 -0
- package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +73 -0
- package/skills/industries-atm-settings-starter-configure/SKILL.md +76 -0
- package/skills/industries-batch-document-ai-configure/SKILL.md +196 -0
- package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +71 -0
- package/skills/industries-branch-management-settings-configure/SKILL.md +89 -0
- package/skills/industries-bre-decision-table-access-configure/SKILL.md +367 -0
- package/skills/industries-brokerage-settings-configure/SKILL.md +41 -0
- package/skills/industries-calendar-sync-settings-configure/SKILL.md +89 -0
- package/skills/industries-care-request-settings-configure/SKILL.md +218 -0
- package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +54 -0
- package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +380 -0
- package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +216 -0
- package/skills/industries-catalog-process-intake-configure/SKILL.md +219 -0
- package/skills/industries-catalog-process-knowledge-configure/SKILL.md +153 -0
- package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +168 -0
- package/skills/industries-cds-general-settings-configure/SKILL.md +69 -0
- package/skills/industries-claim-financial-settings-configure/SKILL.md +169 -0
- package/skills/industries-clinical-data-model-settings-configure/SKILL.md +136 -0
- package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +105 -0
- package/skills/industries-collection-plan-settings-configure/SKILL.md +132 -0
- package/skills/industries-comms-service-console-settings-configure/SKILL.md +159 -0
- package/skills/industries-compliance-configure/SKILL.md +102 -0
- package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +76 -0
- package/skills/industries-contact-center-app-layout-configure/SKILL.md +88 -0
- package/skills/industries-contact-center-components-configure/SKILL.md +96 -0
- package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +95 -0
- package/skills/industries-contact-center-user-access-assign/SKILL.md +96 -0
- package/skills/industries-course-waitlist-config-configure/SKILL.md +162 -0
- package/skills/industries-crisis-center-settings-configure/SKILL.md +84 -0
- package/skills/industries-custom-object-settings-configure/SKILL.md +94 -0
- package/skills/industries-data-cloud-integration-configure/SKILL.md +88 -0
- package/skills/industries-data-space-feature-mappings-configure/SKILL.md +245 -0
- package/skills/industries-decision-matrix-builder-configure/SKILL.md +78 -0
- package/skills/industries-decision-table-hbase-configure/SKILL.md +87 -0
- package/skills/industries-decision-table-version-configure/SKILL.md +74 -0
- package/skills/industries-decision-tables-builder-configure/SKILL.md +253 -0
- package/skills/industries-decision-tables-configure/SKILL.md +439 -0
- package/skills/industries-energy-utilities-configure/SKILL.md +251 -0
- package/skills/industries-eu-cloud-multisite-configure/SKILL.md +1008 -0
- package/skills/industries-eu-new-connections-configure/SKILL.md +30 -0
- package/skills/industries-explainability-msg-template-configure/SKILL.md +135 -0
- package/skills/industries-expression-set-message-token-configure/SKILL.md +135 -0
- package/skills/industries-field-service-settings-configure/SKILL.md +82 -0
- package/skills/industries-form-framework-settings-configure/SKILL.md +30 -0
- package/skills/industries-fsc-ai-settings-configure/SKILL.md +57 -0
- package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +172 -0
- package/skills/industries-fsc-b2b-settings-configure/SKILL.md +61 -0
- package/skills/industries-fsc-insurance-settings-configure/SKILL.md +58 -0
- package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +103 -0
- package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +117 -0
- package/skills/industries-fsc-wealth-settings-configure/SKILL.md +99 -0
- package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +120 -0
- package/skills/industries-fundraising-rfm-configure/SKILL.md +128 -0
- package/skills/industries-fundraising-settings-configure/SKILL.md +145 -0
- package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +299 -0
- package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +87 -0
- package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +58 -0
- package/skills/industries-hc-score-category-settings-configure/SKILL.md +167 -0
- package/skills/industries-health-engagement-settings-configure/SKILL.md +218 -0
- package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +131 -0
- package/skills/industries-home-health-bundling-policy-create/SKILL.md +50 -0
- package/skills/industries-home-health-entity-labels-configure/SKILL.md +29 -0
- package/skills/industries-home-health-fsl-package-deploy/SKILL.md +71 -0
- package/skills/industries-home-health-fsl-settings-validate/SKILL.md +27 -0
- package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +80 -0
- package/skills/industries-home-health-guided-setup-configure/SKILL.md +836 -0
- package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +55 -0
- package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +61 -0
- package/skills/industries-home-health-licenses-assign/SKILL.md +27 -0
- package/skills/industries-home-health-operating-hours-create/SKILL.md +40 -0
- package/skills/industries-home-health-scheduling-policy-create/SKILL.md +41 -0
- package/skills/industries-home-health-service-objective-create/SKILL.md +22 -0
- package/skills/industries-home-health-skills-create/SKILL.md +31 -0
- package/skills/industries-home-health-users-create/SKILL.md +29 -0
- package/skills/industries-icm-act3-toggles-configure/SKILL.md +198 -0
- package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +361 -0
- package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +550 -0
- package/skills/industries-integrated-care-management-configure/SKILL.md +168 -0
- package/skills/industries-object-enablement-configure/SKILL.md +86 -0
- package/skills/industries-tpm-system-processing-service-configure/SKILL.md +64 -0
- package/skills/insurance-brokerage-agency-billing-configure/SKILL.md +1 -3
- package/skills/integration-apex-settings-configure/SKILL.md +61 -0
- package/skills/marketing-e360-email-archiving-configure/SKILL.md +73 -0
- package/skills/marketing-message-test/SKILL.md +1 -3
- package/skills/nonprofit-fundraising-configure/SKILL.md +240 -0
- package/skills/nonprofit-fundraising-configure/references/gotchas.md +26 -0
- package/skills/nonprofit-fundraising-configure/references/mcp-invocation.md +678 -0
- package/skills/nonprofit-fundraising-configure/references/permission-targeting.md +35 -0
- package/skills/nonprofit-volunteer-management-model-get/SKILL.md +166 -0
- package/skills/nonprofit-volunteer-management-model-get/references/entities.md +315 -0
- package/skills/nonprofit-volunteer-management-model-get/references/relationships.md +175 -0
- package/skills/nonprofit-volunteer-management-model-get/references/themes.md +143 -0
- package/skills/nonprofit-volunteer-management-records-create/SKILL.md +121 -0
- package/skills/nonprofit-volunteer-management-records-create/references/field-guide.md +284 -0
- package/skills/nonprofit-volunteer-management-records-create/references/mcp-invocation.md +248 -0
- package/skills/nonprofit-volunteer-management-records-create/references/review-format.md +140 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/expand-series.py +632 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/render-review-table.py +419 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_expand_series.py +690 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_render_review_table.py +421 -0
- package/skills/nonprofit-volunteer-management-structure-generate/SKILL.md +119 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/configuration-decisions.md +159 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/discovery-interview.md +137 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/edge-cases.md +48 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/mcp-invocation.md +75 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/plan-output.md +141 -0
- package/skills/platform-custom-field-generate/SKILL.md +1 -0
- package/skills/platform-custom-field-generate/references/advanced-picklists.md +5 -5
- package/skills/platform-custom-metadata-type-generate/SKILL.md +3 -0
- package/skills/platform-custom-object-generate/SKILL.md +4 -0
- package/skills/platform-custom-permissions-configure/SKILL.md +687 -0
- package/skills/platform-custom-setting-generate/SKILL.md +3 -0
- package/skills/platform-datamask-run/SKILL.md +1 -5
- package/skills/platform-label-workbench-import-create/SKILL.md +67 -0
- package/skills/platform-permission-set-generate/SKILL.md +3 -0
- package/skills/platform-privacy-agent-settings-configure/SKILL.md +752 -0
- package/skills/platform-salesforce-connect-adapter-generate/SKILL.md +1 -3
- package/skills/platform-sandbox-configure/SKILL.md +1 -3
- package/skills/platform-value-set-generate/SKILL.md +3 -0
- package/skills/sales-call-scoring-configure/SKILL.md +1 -5
- package/skills/service-agentforce-channel-configure/SKILL.md +1 -3
- package/skills/service-agentforce-human-escalation-configure/SKILL.md +1 -3
- package/skills/service-catalog-template-coordinate/SKILL.md +1 -3
- package/skills/service-concierge-portal-generate/SKILL.md +1 -3
- package/skills/service-email-to-case-configure/SKILL.md +1 -5
- package/skills/service-itsm-agentic-setup-agent-runtime-access-assign/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-access-assign/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-bundle-deploy/SKILL.md +1 -5
- package/skills/service-itsm-agentic-setup-cmdb-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-coordinate/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-discovery-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +1 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-uel-user-create/SKILL.md +1 -9
- package/skills/service-itsm-incident-mgmt-configure/SKILL.md +1 -5
- package/skills/service-itsm-incident-priority-configure/SKILL.md +1 -3
- package/skills/service-itsm-slack-itservice-configure/SKILL.md +1 -3
- package/skills/service-itsm-swarming-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-debug/SKILL.md +1 -3
- package/skills/service-itsm-teams-employee-agent-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-itdesk-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-itservice-configure/SKILL.md +1 -3
- package/skills/service-native-voice-recording-transcription-configure/SKILL.md +1 -3
- package/skills/service-omni-agent-users-create/SKILL.md +1 -3
- package/skills/service-omni-agent-work-sharing-configure/SKILL.md +1 -3
- package/skills/service-omni-attribute-routing-configure/SKILL.md +1 -3
- package/skills/service-omni-base-settings-configure/SKILL.md +1 -3
- package/skills/service-omni-channel-inventory-analyze/SKILL.md +1 -3
- package/skills/service-omni-channel-limits-analyze/SKILL.md +1 -3
- package/skills/service-omni-channel-setup-coordinate/SKILL.md +1 -3
- package/skills/service-omni-command-center-analyze/SKILL.md +1 -3
- package/skills/service-omni-command-center-configure/SKILL.md +1 -3
- package/skills/service-omni-permission-set-assign/SKILL.md +1 -3
- package/skills/service-omni-presence-status-deploy/SKILL.md +1 -3
- package/skills/service-omni-presence-user-config-deploy/SKILL.md +1 -3
- package/skills/service-omni-queue-deploy/SKILL.md +1 -3
- package/skills/service-omni-queue-members-assign/SKILL.md +1 -3
- package/skills/service-omni-queue-routing-config-deploy/SKILL.md +1 -3
- package/skills/service-omni-routing-flow-deploy/SKILL.md +1 -3
- package/skills/service-omni-service-channel-configure/SKILL.md +1 -3
- package/skills/service-omni-sidebar-configure/SKILL.md +1 -3
- package/skills/service-omni-skills-based-routing-configure/SKILL.md +1 -3
- package/skills/service-omni-supervisor-config-deploy/SKILL.md +1 -3
- package/skills/service-omni-supervisor-permset-assign/SKILL.md +1 -3
- package/skills/service-omni-supervisor-surface-deploy/SKILL.md +1 -3
- package/skills/service-omni-supervisor-users-create/SKILL.md +1 -3
- package/skills/service-omni-work-skill-routing-configure/SKILL.md +1 -3
- package/skills/tableau-next-asset-create/README.md +0 -65
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: industries-icm-act6-mcg-integration-configure
|
|
3
|
+
description: "Act 6 of Health Cloud ICM setup — the sixth act of the full 1→8 journey (runs after Act 5 for an unqualified \"set up ICM\", followed by Acts 7-8; also runnable standalone on an explicit MCG ask) — stand up the working MCG (Milliman Care Guidelines) integration end-to-end, not just the Act 3 reveal toggle. Detect the MCG license stack first (hard-stop on the ISE PSL if absent), verify-then-enable the MCG preference + Discovery Framework, build the External/Named Credential chain (secrets are hard-manual; the principal-access permission set is automatable, authored here), create + activate the Integration Definition (prefer the controller dispatch the Setup UI itself uses; fall back to the UI create for the managed MCG case), then set the org-value the sync depends on (MANDATORY on the MDAPI path), wire the Assessment component's External Assessment Integration attribute (Tooling), and (on confirmation) guide the first data sync. Backing runbook: source/references/mcg-integration-runbook.md."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0"
|
|
6
|
+
cliTools:
|
|
7
|
+
- tool:
|
|
8
|
+
- "sf"
|
|
9
|
+
semver: ">=2.0.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Act 6 — Full MCG (Milliman Care Guidelines) integration
|
|
13
|
+
|
|
14
|
+
Part of the [`icm-setup`](../../SKILL.md) skill — the **sixth act** of the full 1→8
|
|
15
|
+
journey. For an unqualified "set up ICM" it runs **after
|
|
16
|
+
[Act 5](../act5-genai-suggested-assessments/SKILL.md)** and is followed by Acts 7-8; it is also runnable standalone on an
|
|
17
|
+
explicit MCG ask ("set up MCG", "configure Milliman Care Guidelines", "wire up the MCG
|
|
18
|
+
integration"). Because MCG requires a provisioned MCG license, a real Milliman (CareWebQI) account,
|
|
19
|
+
and customer secrets, Act 6 — like Act 5 — may legitimately **hard-stop for a genuinely absent
|
|
20
|
+
license stack**: detect the license FIRST, and if it's absent, report the named prerequisite rather
|
|
21
|
+
than forcing the integration (that's the act *running and reporting*, not being skipped). Runs after
|
|
22
|
+
— or re-verifies — [Act 2](../act2-discovery-framework/SKILL.md) (Discovery Framework) and
|
|
23
|
+
[Act 3](../act3-icm-toggles/SKILL.md) (whose toggle 5 only *reveals* MCG in the ICM Setting UI). The
|
|
24
|
+
full backing detail — component map, per-step automation verdict, transport contracts, the
|
|
25
|
+
unified-search dependency — lives in
|
|
26
|
+
[`../../references/mcg-integration-runbook.md`](../../references/mcg-integration-runbook.md);
|
|
27
|
+
**read it before telling an admin "MCG is set up."**
|
|
28
|
+
|
|
29
|
+
> ⚠️ **Secrets handling — non-negotiable.** The MCG **ClientID**, **HashKey**, and **endpoint
|
|
30
|
+
> URL** are Basic-Auth credentials to an external (Milliman) system. They must **never** be
|
|
31
|
+
> echoed into chat, prompts, logs, committed artifacts, or a deploy file — secure UI entry only.
|
|
32
|
+
> Never surface a literal MCG URL, ClientID, or HashKey even as an example; use placeholders
|
|
33
|
+
> (`{MCG_URL}`, `{MCG_CLIENT_ID}`, `{MCG_HASH_KEY}`). This applies to every step below that
|
|
34
|
+
> touches the credential chain.
|
|
35
|
+
|
|
36
|
+
## What "MCG" actually is (and why the Act-3 toggle is not enough)
|
|
37
|
+
|
|
38
|
+
MCG is **not** a toggle. Act 3's toggle 5 (`mcgPreference`) only **reveals** MCG in the ICM
|
|
39
|
+
Setting UI. The **working feature** is an external-system integration: Salesforce calls out to
|
|
40
|
+
Milliman's CareWebQI API to fetch guidelines, and an async job syncs MCG data back into the
|
|
41
|
+
`ExternalAssessmentDefinition` entity that the Assessment Library's **unified search** reads. That
|
|
42
|
+
requires a full Named-Credential → Integration-Definition → org-value → sync chain — none of which
|
|
43
|
+
the basic toggle touches. **This Act builds that chain.**
|
|
44
|
+
|
|
45
|
+
**Net scope (validated live):** the automatable-via-compliant-transport pieces are the
|
|
46
|
+
prerequisite toggles (MCG preference, Discovery Framework), the credential-chain *structure* + the
|
|
47
|
+
**principal-access permission set** (Phase 4b, MDAPI `PermissionSet` — this skill authors it, not the
|
|
48
|
+
admin), the `enableMcgSyncData` preference
|
|
49
|
+
(MDAPI `IndustriesSettings`), the `MCG_INTEGRATION_DEF_DETAILS` org-value write (**the Setup Connect
|
|
50
|
+
API for org values**), and the Assessment-component wiring (**Tooling** FlexiPage). The
|
|
51
|
+
**Integration-Definition create+activate** (Phase 5) should route to the **`IntegrationConfigurationSetup`
|
|
52
|
+
controller** (`/headless/invoke/platform/integration-configuration/*` — the surface the Setup UI
|
|
53
|
+
itself uses); **prefer** it, but its **managed-`healthcloudext`-Apex-class bind is not yet
|
|
54
|
+
live-verified** over headless dispatch (validate live first), and a subscriber **MDAPI deploy can't
|
|
55
|
+
bind that managed class at all** (MDAPI create works only for Java/LowCode/unmanaged-Apex), so **fall
|
|
56
|
+
back to the Setup UI create** for the managed MCG case if the controller bind isn't confirmed. The
|
|
57
|
+
one step with **no compliant API surface at all** is the `runSync` first sync (no
|
|
58
|
+
MDAPI/Tooling/Connect/invocable/platform-event surface of its own) — guided-manual UI + read-only
|
|
59
|
+
verify. The secret-bearing credential entry (Phase 4a) is the hard-manual step (structure deploys,
|
|
60
|
+
secrets don't); the Phase 4b principal-access perm set is automatable.
|
|
61
|
+
⚠️ **Runtime object vs deployable metadata type — don't conflate them:** the runtime object
|
|
62
|
+
`IntegrationProviderDefinition` has **no SOQL/Tooling *read* surface** — but it IS
|
|
63
|
+
readable through the `platform/integration-configuration` dispatch surface
|
|
64
|
+
(the `.../get-integration-config-definition-details` read-back + the list route), and the **deployable
|
|
65
|
+
metadata type `IntegrationProviderDef`** (a different, shorter name — dir
|
|
66
|
+
`integrationProviderDefinitions/`, suffix `.integrationProviderDefinition`) is a real public MDAPI
|
|
67
|
+
type. Verify read-only via those controller reads or `listMetadata`/retrieve, **never** SOQL. ⚠️
|
|
68
|
+
**Critical consequence:** the legacy UI wizard set `MCG_INTEGRATION_DEF_DETAILS` **for free**, but a
|
|
69
|
+
**controller- or MDAPI-created definition may NOT** — so Phase 5b's org-value write is
|
|
70
|
+
**verify-or-repair on every path** (read it back; write it if missing/stale; never assume). That
|
|
71
|
+
closes the #1 silent-failure trap only if you *always* verify it.
|
|
72
|
+
|
|
73
|
+
> **Transport discipline for this Act: MD-API / Tooling / Connect only.** The `runSync` first sync
|
|
74
|
+
> is the one capability whose **only** supported surface is the setup UI — a **guided manual** UI
|
|
75
|
+
> action plus read-only verify, never an API call from this skill. The Integration-Definition create
|
|
76
|
+
> is **not** UI-only: prefer the `IntegrationConfigurationSetup` controller dispatch
|
|
77
|
+
> (`/headless/invoke/platform/integration-configuration/*`, a compliant Connect surface). Its managed
|
|
78
|
+
> `healthcloudext` Apex-class bind is **not yet live-verified** over headless dispatch, and a
|
|
79
|
+
> subscriber MDAPI deploy can't bind that managed class at all (MDAPI only for
|
|
80
|
+
> Java/LowCode/unmanaged-Apex), so **fall back to the UI create** for the managed MCG case if the
|
|
81
|
+
> controller bind isn't confirmed.
|
|
82
|
+
>
|
|
83
|
+
> **Read `IndustriesSettings` state (the MCG reveal toggle, Discovery Framework master,
|
|
84
|
+
> `enableMcgSyncData`, `enableGlobalSearchForAssmt`) with a single `Settings:Industries` retrieve**
|
|
85
|
+
> (parent *Transport & deploy discipline* rule 4), not per-toggle Tooling `Is*Enabled` queries — the
|
|
86
|
+
> Tooling `SELECT … FROM IndustriesSettings` path server-errors on OrgFarm orgs. The Tooling column
|
|
87
|
+
> names used below are single-field fallbacks / for resolving exact element names, not the primary
|
|
88
|
+
> read. (`IntegrationProviderDefinition` is a separate matter — a non-queryable runtime POJO read via
|
|
89
|
+
> `listMetadata`/retrieve, never SOQL/Tooling, as its step already states.)
|
|
90
|
+
|
|
91
|
+
## Never defer the whole Act because of one manual step
|
|
92
|
+
|
|
93
|
+
**A confirmed live-run miss:** MCG setup was deferred **in its entirety** — the credential-chain
|
|
94
|
+
principal-access perm set (Phase 4b, fully MDAPI-automatable — author+deploy+assign) was skipped
|
|
95
|
+
along with the genuinely-manual credential-entry, Integration-Definition create, and `runSync`
|
|
96
|
+
steps — because the admin balked at the manual tail and treating the whole Act as deferred felt
|
|
97
|
+
like the simpler offer. **Do not do this.** The three things in this Act that require an admin
|
|
98
|
+
to leave the chat are (a) entering the MCG secrets (Phase 4a), (b) the MCG **Integration Definition**
|
|
99
|
+
create (Phase 5) — **only if** the controller dispatch can't bind the managed `healthcloudext` Apex
|
|
100
|
+
class (attempt the controller first; a subscriber MDAPI deploy definitely can't bind it, so the UI
|
|
101
|
+
fallback is the leave-the-chat path when the controller bind isn't confirmed), and (c)
|
|
102
|
+
confirming/running the first sync (Phase 7). Everything else — license detect, preference toggles, the **Phase 4b perm set**
|
|
103
|
+
(author+deploy+assign), the `MCG_INTEGRATION_DEF_DETAILS`/`enableMcgSyncData` writes, and the
|
|
104
|
+
Assessment-component wiring — has a compliant transport and must run regardless of whether or when
|
|
105
|
+
the admin does the three manual pieces. In particular **the Phase 4b perm set is NOT part of the
|
|
106
|
+
credential's manual boundary** — build and assign it even when the admin enters the secrets by hand.
|
|
107
|
+
If the admin isn't ready for credential entry yet, say so plainly and keep going with everything
|
|
108
|
+
that doesn't depend on the credential existing yet (the Phase 4b perm set can be authored and
|
|
109
|
+
deployed before secrets are entered); only the pieces that genuinely need the credential/definition
|
|
110
|
+
to exist first (the `MCG_INTEGRATION_DEF_DETAILS` write, the component wiring, `runSync`) wait on it.
|
|
111
|
+
|
|
112
|
+
## License stack — DETECT FIRST, hard-stop if the ISE PSL is absent
|
|
113
|
+
|
|
114
|
+
MCG's gating unknown for any given org. Detect via the real `PermissionSetLicense.DeveloperName`
|
|
115
|
+
values (never the non-existent `*AddOn` names — the same lesson as Act 1/Act 5 license detection):
|
|
116
|
+
|
|
117
|
+
| Required entitlement | Queryable proxy — `PermissionSetLicense.DeveloperName` | On absence |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| Industries Service Excellence (backs the Integration Definition) | `IndustriesServiceExcellencePsl` | **HARD STOP** |
|
|
120
|
+
| Health Cloud base | `HealthCloudGA_HealthCloudPsl` | **HARD STOP** |
|
|
121
|
+
| OmniStudio (the sync runs an OmniStudio Integration Procedure) | `OmniStudioDesigner`, `OmniStudioRuntime`, `OmniStudioRuntimeCC` | report + continue best-effort |
|
|
122
|
+
| Dynamic Assessments | `DynamicAssessmentPsl` | report + continue |
|
|
123
|
+
| Community access (if MCG via a site) | `HealthCloudCmtyAccessPSL` | report + continue |
|
|
124
|
+
|
|
125
|
+
```sql
|
|
126
|
+
SELECT DeveloperName, TotalLicenses, UsedLicenses FROM PermissionSetLicense
|
|
127
|
+
WHERE DeveloperName IN ('IndustriesServiceExcellencePsl','HealthCloudGA_HealthCloudPsl',
|
|
128
|
+
'OmniStudioDesigner','OmniStudioRuntime','OmniStudioRuntimeCC','DynamicAssessmentPsl')
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
If `IndustriesServiceExcellencePsl` (or the HC base PSL) returns zero rows: **stop and name every
|
|
132
|
+
missing entitlement explicitly** — "MCG can't be set up — your org is missing Industries Service
|
|
133
|
+
Excellence; ask your account team to provision it, then re-run." Don't attempt the Integration
|
|
134
|
+
Definition create into an org that lacks it (Phase 5 will reject). Report the full list of what's
|
|
135
|
+
absent, not the first miss.
|
|
136
|
+
|
|
137
|
+
## Standalone entry — re-check and enable the prerequisites
|
|
138
|
+
|
|
139
|
+
When Act 6 is asked for on its own, re-verify the two prerequisites it depends on and enable what
|
|
140
|
+
you can (reuse the existing idempotent enable/verify idiom — do not author parallel logic):
|
|
141
|
+
|
|
142
|
+
1. **Discovery Framework** (Act 2 master `enableIndustriesAssessment`) — enable if off. The
|
|
143
|
+
Assessment component and its unified search gate on it.
|
|
144
|
+
2. **MCG preference** (Act 3 toggle 5, `mcgPreference`, enable and verify via the
|
|
145
|
+
existing toggle steps) — enable
|
|
146
|
+
if off. This only *reveals* MCG in the UI; the rest of this Act does the real work.
|
|
147
|
+
|
|
148
|
+
Person Accounts and the base ICM prereqs are Act 1's concern; if Act 6 is truly the first thing
|
|
149
|
+
run against a green org, defer to Act 1's hard-stop on Person Accounts before proceeding.
|
|
150
|
+
|
|
151
|
+
## What this Act does — the phases
|
|
152
|
+
|
|
153
|
+
Follow the runbook's per-step automation verdicts; the phases below are the validated live
|
|
154
|
+
sequence. **Every write uses a compliant transport — MD-API / Tooling / Connect only.**
|
|
155
|
+
The `runSync` first sync (Phase 7 — no supported API surface) is **guided manual** (setup-UI action +
|
|
156
|
+
read-only verify, not an API call from this skill). The **Integration-Definition create+activate
|
|
157
|
+
(Phase 5)** prefers the **`IntegrationConfigurationSetup` controller dispatch**
|
|
158
|
+
(`/headless/invoke/platform/integration-configuration/*`) — its managed-`healthcloudext`-Apex-class
|
|
159
|
+
bind is **not yet live-verified** over headless dispatch, and a subscriber MDAPI deploy can't bind
|
|
160
|
+
that managed class at all (MDAPI viable only for Java/LowCode/unmanaged-Apex service classes), so
|
|
161
|
+
**fall back to the UI create** for the managed MCG case if the controller bind isn't confirmed. Standard
|
|
162
|
+
write discipline otherwise (MDAPI/Tooling fallback on 404; dry-run before real deploys; re-read to
|
|
163
|
+
verify — see the parent SKILL.md "Transport & deploy discipline").
|
|
164
|
+
|
|
165
|
+
> **Hand-off batching (see the parent SKILL.md "Manual-step hand-offs — batch per tier, then
|
|
166
|
+
> verify").** This Act is the case that shows why you batch *within* a tier and never collapse the
|
|
167
|
+
> chain. Three manual boundaries exist along the automated chain: the **Phase 4a credential entry**
|
|
168
|
+
> (External Credential + Named Principal + Named Credential secrets) is one manual cluster the admin
|
|
169
|
+
> does in a single trip to Setup, up front; the **Phase 5 Integration-Definition create** — a manual
|
|
170
|
+
> boundary **only if** its controller dispatch can't bind the managed Apex class (then a UI-create
|
|
171
|
+
> hand-off); and the **Phase 7 first sync**. Between them sit the fully
|
|
172
|
+
> automated pieces this skill runs itself: the **Phase 4b principal-access perm set**, the **Phase 5b**
|
|
173
|
+
> org-value write, and the **Phase 6** component wiring. So hand off the credential cluster together,
|
|
174
|
+
> verify it read-only, author+deploy+assign the Phase 4b perm set, attempt the Phase 5 controller
|
|
175
|
+
> create (hand off the UI create only if it can't bind the managed class),
|
|
176
|
+
> then run the automated Phase 5b → 6 work, then hand off Phase 7 (sync) at its point in the chain.
|
|
177
|
+
> Keep the admin oriented with a running marker (e.g. *"Act 6 of 9 · credential entry is the manual
|
|
178
|
+
> step (plus the Integration-Definition create if the controller can't bind the managed class); the
|
|
179
|
+
> first sync is the last hand-off after I wire the org value"*), and verify every hand-off by reading
|
|
180
|
+
> org state back (`calloutStatus`, the
|
|
181
|
+
> definition read back via `listMetadata`/retrieve, `MCG_INTEGRATION_DEF_DETAILS`, the
|
|
182
|
+
> `MCG_SYNC_JOB_DETAILS` poll) — never on the admin's "done" alone.
|
|
183
|
+
|
|
184
|
+
### Phase 1 — Licenses (detect + report)
|
|
185
|
+
The license table above. Hard-stop on a missing `IndustriesServiceExcellencePsl` / HC base PSL;
|
|
186
|
+
otherwise report and continue.
|
|
187
|
+
|
|
188
|
+
### Phase 2 — MCG preference (verify-then-enable)
|
|
189
|
+
Act 3 toggle 5. Verify `getPreference(mcgPreference)`; enable if off. Idempotent.
|
|
190
|
+
|
|
191
|
+
### Phase 3 — Discovery Framework (verify-then-enable)
|
|
192
|
+
Act 2 master. Verify; enable if off. Idempotent.
|
|
193
|
+
|
|
194
|
+
### Phase 4 — Credential chain (secret entry is hard-manual; the principal-access perm set is AUTOMATABLE)
|
|
195
|
+
This phase has **two distinct halves** — do not collapse them. 4a (secrets) is hard-manual; 4b (the
|
|
196
|
+
MCG permission set) is a compliant MDAPI deploy this skill **must author itself**, even when the admin
|
|
197
|
+
builds 4a in the UI.
|
|
198
|
+
|
|
199
|
+
**4a — External + Named Credential (HARD-MANUAL, secret-bearing):**
|
|
200
|
+
1. **External Credential** (Basic Auth) `MCG` + a **Named Principal** — ⚠️ **sequenceNumber `2`
|
|
201
|
+
(NOT 1)**. The `ExternalCredential` *structure* is MDAPI-deployable, but the
|
|
202
|
+
**ClientID (username) + HashKey (password) are secrets** — **guide the admin through secure
|
|
203
|
+
UI entry**; never bake them into a deploy artifact, script, or committed metadata.
|
|
204
|
+
2. **Named Credential** `MCG` pointing at the MCG endpoint (`{MCG_URL}` — customer-specific;
|
|
205
|
+
presumes a real Milliman account), enabled for callout. Verify `calloutStatus = Enabled`.
|
|
206
|
+
|
|
207
|
+
**4b — MCG permission set (AUTOMATABLE — this skill authors, deploys, and assigns it):**
|
|
208
|
+
3. **Permission Set** (suggested API name **`ICM_MCG_External_Credential_Access`**, label "Health
|
|
209
|
+
Cloud ICM MCG External Credential Access" — detect an existing equivalent first, don't blind-create)
|
|
210
|
+
with an **`externalCredentialPrincipalAccesses`** entry granting access to the 4a Named Principal,
|
|
211
|
+
the **`UserExternalCredentials`** user permission, and the **SetupEntityAccess** row wiring the perm
|
|
212
|
+
set to the principal. This is a normal MDAPI `PermissionSet` deploy — **it has a compliant transport
|
|
213
|
+
and is NOT part of the manual secret entry.**
|
|
214
|
+
4. **Assign** that perm set — gated like every perm-set assignment in this skill:
|
|
215
|
+
check → report → confirm → assign, **never auto-assign** (`DUPLICATE_VALUE` = already-assigned
|
|
216
|
+
success).
|
|
217
|
+
|
|
218
|
+
> ⚠️ **The perm set is a SEPARATE deliverable from the credential — build it even when the admin
|
|
219
|
+
> enters the credentials manually.** A confirmed live-run miss: the admin created the External/Named
|
|
220
|
+
> Credential + principal in the UI, so the run treated *all* of Phase 4 as "the admin's manual work"
|
|
221
|
+
> and **never authored the principal-access permission set at all** — then, when asked "what's the
|
|
222
|
+
> name of the custom MCG perm set you created?", answered "I didn't create one." The only genuinely
|
|
223
|
+
> hard-manual piece is the **secret entry (4a)**; the **permission set (4b) is always this skill's job**
|
|
224
|
+
> and produces a named, deployable artifact the admin can point to. Authoring it needs only the
|
|
225
|
+
> Named Principal to exist (4a step 1) — it does **not** wait on Phase 5.
|
|
226
|
+
|
|
227
|
+
### Phase 5 — Integration Definition (create + activate)
|
|
228
|
+
The **runtime** object is the Industries Consumption Framework **`IntegrationProviderDefinition`** —
|
|
229
|
+
not SOQL-queryable. It is reachable through **three** surfaces, not the two
|
|
230
|
+
("MDAPI vs. UI") this Act originally framed:
|
|
231
|
+
- **A dispatchable server-side surface** — the public `platform/integration-configuration` dispatch
|
|
232
|
+
routes under `/headless/invoke/platform/integration-configuration/*`. They carry both the
|
|
233
|
+
**create/activate writes** the Setup UI itself calls and the **dispatch reads**
|
|
234
|
+
(`.../get-integration-config-definition-details` + the list route) — so the runtime object
|
|
235
|
+
is NOT read-surface-less; only *SOQL/Tooling* can't see it.
|
|
236
|
+
- **The `IntegrationProviderDef` Metadata API type** (a *different, shorter* name — dir
|
|
237
|
+
`integrationProviderDefinitions/`, suffix `.integrationProviderDefinition`), a real public type.
|
|
238
|
+
- **The Setup UI** create wizard.
|
|
239
|
+
|
|
240
|
+
> ⚠️ **PREFER the controller dispatch; fall back to the UI for the managed MCG case.** The controller
|
|
241
|
+
> is the surface the Setup UI itself uses, so it is the right thing to **attempt** from a hosted agent
|
|
242
|
+
> (no CLI / no local deploy / no external auth):
|
|
243
|
+
> 1. `GET /headless/invoke/platform/integration-configuration/fetch-apex-class-records` — resolve the
|
|
244
|
+
> Apex class id (the same picker the UI uses; it surfaces managed/namespaced classes like
|
|
245
|
+
> `healthcloudext.HealthCareICMExternalService`).
|
|
246
|
+
> 2. `PATCH .../create-or-update-integration-configuration-definition` with
|
|
247
|
+
> `integrationConfigurationDefinitionJson` = `{ definitionType: Apex, the resolved apexClassId,
|
|
248
|
+
> integrationProviderAttributes Edition + Named Credential }`.
|
|
249
|
+
> 3. `PATCH .../activate` with the returned definition id.
|
|
250
|
+
> 4. Verify via the dispatch reads (`.../get-integration-config-definition-details` or the list
|
|
251
|
+
> route) — `isActive=true`, capture `developerName`.
|
|
252
|
+
>
|
|
253
|
+
> ⚠️ **This managed-class bind is NOT yet live-verified over headless dispatch — validate it
|
|
254
|
+
> end-to-end on a live org (expertise harness) before promising it.** What **is** live-proven: a
|
|
255
|
+
> subscriber **MDAPI deploy CANNOT bind the managed Apex class.** MCG's def points at `type=Apex`,
|
|
256
|
+
> `apexClass=healthcloudext.HealthCareICMExternalService` — a **managed-package global class**. A
|
|
257
|
+
> subscriber's **MDAPI `ApexClassId` resolver cannot bind a managed global class** that isn't
|
|
258
|
+
> subscriber-SOQL-visible (`SELECT … FROM ApexClass` returns 0 rows; Tooling too), even though the
|
|
259
|
+
> **Setup UI apex-class picker resolves it fine**. A live run proved this: with a fully valid XML
|
|
260
|
+
> body, the deploy failed `In field: ApexClassId - no ApexClass named
|
|
261
|
+
> healthcloudext.HealthCareICMExternalService found` — for *every* reference format
|
|
262
|
+
> (`HealthCareICMExternalService`, `healthcloudext__HealthCareICMExternalService`,
|
|
263
|
+
> `healthcloudext.HealthCareICMExternalService`). This is a **platform visibility boundary, not a
|
|
264
|
+
> naming mistake**. So **if the controller bind is not (yet) confirmed for the managed class, guide
|
|
265
|
+
> the admin to create + activate the definition in the Setup UI** (Integrated Care Management Setting
|
|
266
|
+
> → the MCG section, or Consumption Framework "Integrations" → New), then resume automation. The MDAPI
|
|
267
|
+
> deploy is only viable when the service class is **`type=Java`/`type=LowCode`, or
|
|
268
|
+
> first-party/unmanaged Apex** — not the managed `healthcloudext` class. (The earlier "AUTOMATABLE via
|
|
269
|
+
> a compliant MDAPI deploy, verified end-to-end" verdict was validated against the shipped `type=Java`
|
|
270
|
+
> **sample** class `industriesintegrationfwk.SampleJavaClass`, which binds fine — it never exercised
|
|
271
|
+
> the managed MCG Apex class, which does not.)
|
|
272
|
+
|
|
273
|
+
**Create values** (controller payload, or the wizard fields on the UI fallback):
|
|
274
|
+
- **Apex class**: `healthcloudext.HealthCareICMExternalService` (resolve its id via
|
|
275
|
+
`fetch-apex-class-records` for the controller payload).
|
|
276
|
+
- **Named Credential**: the NC from Phase 4a (`MCG`)
|
|
277
|
+
- **Edition**: an **admin question** — ask; **default the current release value, e.g. `29`**; it
|
|
278
|
+
upgrades across releases, don't assume.
|
|
279
|
+
- **Active**: yes (the `activate` call, or check "Active" on save in the UI).
|
|
280
|
+
- **Name**: anything (e.g. `MCGNEW`) — **auto-discover it afterward** (controller read /
|
|
281
|
+
`listMetadata`), so the admin doesn't need to report it. (`MCGNEW` is a common wizard default; other
|
|
282
|
+
orgs differ — never hardcode.)
|
|
283
|
+
|
|
284
|
+
After create+activate: **read it back** — via the dispatch reads
|
|
285
|
+
(`.../get-integration-config-definition-details` or the list route) or `listMetadata`/retrieve — confirm `active=true`
|
|
286
|
+
and **capture the org's actual `developerName`** for Phases 5b and 6. **Do not SOQL
|
|
287
|
+
`IntegrationProviderDefinition`** (the runtime object isn't SOQL/Tooling-visible); the dispatch reads
|
|
288
|
+
or `listMetadata`/retrieve are the supported read paths.
|
|
289
|
+
|
|
290
|
+
**If you DO deploy via MDAPI (Java/LowCode/unmanaged-Apex case), the exact `IntegrationProviderDef`
|
|
291
|
+
schema is (reverse-engineered live — don't re-discover it by dry-run iteration):**
|
|
292
|
+
```xml
|
|
293
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
294
|
+
<IntegrationProviderDef xmlns="http://soap.sforce.com/2006/04/metadata">
|
|
295
|
+
<active>true</active> <!-- the active element does the activation -->
|
|
296
|
+
<apexClass>...</apexClass> <!-- or <javaClassName>/<lowCode ref>; NO top-level masterLabel (label = file name) -->
|
|
297
|
+
<integrationProviderAttributes>
|
|
298
|
+
<dataType>String</dataType> <!-- per-attribute REQUIRED, alphabetical order: -->
|
|
299
|
+
<developerName>Edition</developerName> <!-- dataType, developerName, label, required, stringValue -->
|
|
300
|
+
<label>Edition</label>
|
|
301
|
+
<required>false</required>
|
|
302
|
+
<stringValue>29</stringValue> <!-- value element is stringValue, NOT value/masterLabel -->
|
|
303
|
+
</integrationProviderAttributes>
|
|
304
|
+
<integrationProviderAttributes>
|
|
305
|
+
<dataType>String</dataType>
|
|
306
|
+
<developerName>NamedCredential</developerName>
|
|
307
|
+
<label>Named Credential</label>
|
|
308
|
+
<required>false</required>
|
|
309
|
+
<stringValue>MCG</stringValue>
|
|
310
|
+
</integrationProviderAttributes>
|
|
311
|
+
<type>Apex</type> <!-- top-level order: active, apexClass, attributes, type -->
|
|
312
|
+
</IntegrationProviderDef>
|
|
313
|
+
```
|
|
314
|
+
The two MCG attribute developerNames — **`Edition`** and **`NamedCredential`** — are **live-confirmed**
|
|
315
|
+
against a UI-created def's retrieve (Edition=`29`, NamedCredential=`MCG`); the retrieve normalizes the
|
|
316
|
+
class to `healthcloudext__HealthCareICMExternalService`.
|
|
317
|
+
|
|
318
|
+
> The old NPE/`apexOldAttributes` and reflected-attribute-casing traps belonged to a *different*,
|
|
319
|
+
> internal programmatic create path and do **not** apply to the `IntegrationProviderDef` MDAPI deploy
|
|
320
|
+
> or the UI-wizard fallback.
|
|
321
|
+
|
|
322
|
+
### Phase 5b — Set the org-value the sync depends on ⚠️ CRITICAL — VERIFY-OR-REPAIR on every path
|
|
323
|
+
⚠️ **Whichever way Phase 5 created the definition (controller dispatch, MDAPI, or the UI fallback),
|
|
324
|
+
this org value may not be set — so read it back and write it if missing/stale; never assume.** A
|
|
325
|
+
**controller- or MDAPI-created `IntegrationProviderDef` may NOT populate `MCG_INTEGRATION_DEF_DETAILS`**
|
|
326
|
+
— only the legacy UI wizard set it "for free," and even then a live run found it `null` after a UI
|
|
327
|
+
create. So `GET` it first; if it is missing or stale (pointing at a since-replaced def), **you must
|
|
328
|
+
write it.** If it stays unset, the sync no-ops → **zero** `ExternalAssessmentDefinition` records →
|
|
329
|
+
**unified assessment search silently returns nothing** while everything *looks* configured (the #1
|
|
330
|
+
silent failure). Treat Phases 5 → 5b → 7 as one indivisible unit.
|
|
331
|
+
|
|
332
|
+
1. **`MCG_INTEGRATION_DEF_DETAILS`** must carry the **active definition's developerName** (Phase 5 —
|
|
333
|
+
read it from the definition via the controller reads or `listMetadata`/retrieve, never hardcode).
|
|
334
|
+
Always `GET` the org value first; write it via `PATCH
|
|
335
|
+
/services/data/v{version}/setup/org/values/MCG_INTEGRATION_DEF_DETAILS` only if it is missing or
|
|
336
|
+
stale — this **is a compliant, supported transport** (**the Setup Connect API** — a supported
|
|
337
|
+
REST/Connect resource). ⚠️ The PATCH **request** field is
|
|
338
|
+
**`orgValue`** (a bare `stringValue`/`value` → `JSON_PARSER_ERROR`; the GET *response* shape
|
|
339
|
+
`{stringValue,booleanValue,…}` is NOT the request shape):
|
|
340
|
+
```json
|
|
341
|
+
{"orgValue":"{\"developerName\":\"<active def developerName>\"}"}
|
|
342
|
+
```
|
|
343
|
+
⚠️ **Read the developerName from the active `IntegrationProviderDefinition` — never hardcode a
|
|
344
|
+
literal.** It is customer-specific (`MCGNEW` is a common wizard default; other orgs differ). The
|
|
345
|
+
enum name is underscored (`MCG_INTEGRATION_DEF_DETAILS`), **not** camelCase.
|
|
346
|
+
2. **`enableMcgSyncData = true`** (`IndustriesSettings`) — the sync's org preference gate.
|
|
347
|
+
`PUT /services/data/v{version}/headless/metadata` with a **minimal** settings body — ⚠️ the
|
|
348
|
+
envelope is `{type, fullName, xmlRep}` (raw XML in `xmlRep`), **not** `{metadataType, fullName,
|
|
349
|
+
body}`; and use a **single-field** body — round-tripping a full read redeploys read-only prefs
|
|
350
|
+
and 500s (`INSUFFICIENT_ACCESS_OR_READONLY`):
|
|
351
|
+
```json
|
|
352
|
+
{"type":"IndustriesSettings","fullName":"Industries",
|
|
353
|
+
"xmlRep":"<IndustriesSettings xmlns=\"http://soap.sforce.com/2006/04/metadata\"><enableMcgSyncData>true</enableMcgSyncData></IndustriesSettings>"}
|
|
354
|
+
```
|
|
355
|
+
⚠️ **Read-back caveat (don't burn cycles retrying the GET):** the `Settings:Industries`
|
|
356
|
+
settings-read GET **does not reliably echo `enableMcgSyncData`** — a live run saw it return only
|
|
357
|
+
`enableMcgSetting` while `enableMcgSyncData` was simply absent from the response, which is **not**
|
|
358
|
+
evidence the write failed. Confirm persistence via the **Tooling** object instead
|
|
359
|
+
(`SELECT EnableMcgSyncData FROM IndustriesSettings`, non-OrgFarm only — the OrgFarm caveat above
|
|
360
|
+
still applies); if neither read surface returns the field on this org, **rely on the PUT/deploy
|
|
361
|
+
success** rather than re-issuing the read in different query-string forms. (On an org where the
|
|
362
|
+
`headless/metadata` PUT is not available, the customer-transport equivalent is an
|
|
363
|
+
`sf project deploy` of the same one-field `IndustriesSettings`.)
|
|
364
|
+
|
|
365
|
+
### Phase 6 — Wire the Assessment component's External Assessment Integration attribute
|
|
366
|
+
The Assessment component (`industries_common:assessmentContainer`) exposes the design attribute
|
|
367
|
+
**`integrationDefinition`** (LAB label "External Assessment Integration"), which must hold the
|
|
368
|
+
Integration Definition's **developerName**. A Tooling FlexiPage metadata write, independent of
|
|
369
|
+
FlexCard activation:
|
|
370
|
+
|
|
371
|
+
1. Find the FlexiPage(s) carrying the component: `SELECT Id,DeveloperName FROM FlexiPage` (Tooling),
|
|
372
|
+
retrieve each, and match the `componentInstance` with
|
|
373
|
+
`componentName = "industries_common:assessmentContainer"` — the **ICM** Account record page
|
|
374
|
+
(e.g. `ICM_Account_Record_Page` from Act 4, matched by its tab-label props), **not** the plain
|
|
375
|
+
`Account_Record_Page` (which has no assessmentContainer).
|
|
376
|
+
2. Inject/replace `{"name":"integrationDefinition","value":"<active def developerName>"}` in that
|
|
377
|
+
instance's `componentInstanceProperties`, then `PATCH` the FlexiPage with the full `Metadata`
|
|
378
|
+
block (HTTP 204). Read-back to confirm it persisted.
|
|
379
|
+
3. ⚠️ **Read the value from the active definition — never hardcode a literal** (`MCGNEW`/`MCG`
|
|
380
|
+
differ per org). Same rule as Phase 5b.
|
|
381
|
+
|
|
382
|
+
### Phase 7 — (optional, on confirmation) kick off the first data sync — GUIDED MANUAL (no compliant API)
|
|
383
|
+
There is **no supported API to trigger the sync** — there is **no MDAPI / Tooling /
|
|
384
|
+
Connect / invocable / platform-event** surface, so it is **out of this skill's transport scope**.
|
|
385
|
+
**Do not attempt it programmatically.** Instead, guide the admin to run the sync from the **Integrated Care Management
|
|
386
|
+
Setting** UI (the "Sync" / "Sync Now" action on the MCG section). ⚠️ This is a **real external
|
|
387
|
+
callout to the customer's MCG endpoint** = *using* the feature, not strictly a setup step, and it is
|
|
388
|
+
guarded to sysadmin/customize-application + `ORG_HAS_HEALTH_CLOUD` + `ORG_HAS_CARE_PLANS`. **Only
|
|
389
|
+
proceed on explicit admin confirmation.** The sync reads `developerName` out of
|
|
390
|
+
`MCG_INTEGRATION_DEF_DETAILS` (Phase 5b), runs the OmniStudio IP `GetGuidelines_Metadata`, and
|
|
391
|
+
upserts `ExternalAssessmentDefinition` (Name←GuidelineTitle, SourceSystemName='MCG', …). Verify
|
|
392
|
+
read-only: poll the `MCG_SYNC_JOB_DETAILS` org value (`currentSyncStatus`/`lastSyncStatus`) for
|
|
393
|
+
completion. On success, `ExternalAssessmentDefinition` populates and the Assessment Library's
|
|
394
|
+
unified search returns those indexed records (allow a few minutes for SOSL indexing lag).
|
|
395
|
+
|
|
396
|
+
## Unified search dependency (why "search returns nothing" after setup)
|
|
397
|
+
|
|
398
|
+
When **`enableGlobalSearchForAssmt` / `IsGlobalSearchForAssmtEnabled`** (the "Unified Search
|
|
399
|
+
Experience for Assessments" pref, API 67.0+, **deployed in [Act 5](../act5-genai-suggested-assessments/SKILL.md),
|
|
400
|
+
NOT this Act**) is ON, the Assessment Library search runs as a
|
|
401
|
+
**SOSL** query over `OmniProcess` + `ExternalAssessmentDefinition` and returns only **indexed**
|
|
402
|
+
records. `ExternalAssessmentDefinition` is populated **exclusively by the MCG sync** (Phase 7). So
|
|
403
|
+
the chain that MUST be complete for unified search to return results is:
|
|
404
|
+
**Act 5 (`enableGlobalSearchForAssmt` genuinely effective) → Phase 5 (create+activate def) → Phase
|
|
405
|
+
5b (`MCG_INTEGRATION_DEF_DETAILS` + `enableMcgSyncData`) → Phase 7 (`runSync` upserts
|
|
406
|
+
`ExternalAssessmentDefinition`)**. Break any link — most commonly a **Phase 5 create (controller or
|
|
407
|
+
MDAPI) with Phase 5b skipped** (a programmatic create may NOT set the org value, so skipping 5b is
|
|
408
|
+
the default failure on the automated path) — and unified search silently shows the empty state even though direct
|
|
409
|
+
(pref-OFF) search works.
|
|
410
|
+
|
|
411
|
+
**Recognized recurring symptom — "search works with the pref off but fails with it on."** This has
|
|
412
|
+
recurred across multiple runs even after being fixed once before, so treat it as a known failure
|
|
413
|
+
class, not a one-off: it means the pref is reading `true` but at least one link in the chain above
|
|
414
|
+
is actually broken. **Don't stop at "the preference reads true" — re-verify the whole chain every
|
|
415
|
+
time this symptom is reported:**
|
|
416
|
+
1. **Re-confirm `enableGlobalSearchForAssmt` is genuinely effective** — re-read
|
|
417
|
+
`IsGlobalSearchForAssmtEnabled`, and confirm it isn't itself silently dropped (Act 5's own
|
|
418
|
+
gate/version-floor caveats apply here too).
|
|
419
|
+
2. **Re-read `MCG_INTEGRATION_DEF_DETAILS`** — don't assume the earlier Phase 5b write is still
|
|
420
|
+
correct. A later redeploy of the Integration Definition, or a definition recreated with a new
|
|
421
|
+
`developerName`, leaves the org value pointing at a **stale** definition — it will still be
|
|
422
|
+
"set" (non-null), so a naive presence-check passes while the value itself is wrong. Compare its
|
|
423
|
+
`developerName` against the **currently active** `IntegrationProviderDef` read via
|
|
424
|
+
`listMetadata`/retrieve, not just "is it non-null."
|
|
425
|
+
3. **Run an explicit `ExternalAssessmentDefinition` COUNT, don't infer it from "the sync ran
|
|
426
|
+
successfully."** `SELECT COUNT() FROM ExternalAssessmentDefinition` (or `WHERE
|
|
427
|
+
SourceSystemName='MCG'`) — a `runSync` that reports success can still upsert zero rows if
|
|
428
|
+
`MCG_INTEGRATION_DEF_DETAILS` was stale at sync time (step 2) or the callout partially failed.
|
|
429
|
+
Zero rows here is the direct, unambiguous cause of the empty-state symptom; a non-zero count that
|
|
430
|
+
still doesn't show up in search points at indexing lag (next) instead.
|
|
431
|
+
4. **Allow longer than "a few minutes" for SOSL indexing before concluding it's broken.** Indexing
|
|
432
|
+
lag on `ExternalAssessmentDefinition` (an `isTextIndexed` object) has been observed to run
|
|
433
|
+
noticeably longer than a first-glance check accounts for — if the COUNT in step 3 is non-zero,
|
|
434
|
+
re-check search after a longer wait (on the order of 15-30 minutes, not 2-3) before concluding
|
|
435
|
+
the chain is broken again; re-verify steps 1-3 first so you're not just waiting out an indexing
|
|
436
|
+
delay that's masking a real stale-value bug.
|
|
437
|
+
|
|
438
|
+
**Separate, org-side condition (not fixable from this Act):** the LAB **OmniProcess Fields /
|
|
439
|
+
Unified Search Fields** default-field pickers only render their built-in defaults with
|
|
440
|
+
a Salesforce-managed release setting (API version 67.0+) enabled; on an older org, or one where
|
|
441
|
+
that release setting isn't enabled, those lists show empty and "Add Field" errors. That's an org
|
|
442
|
+
version / release-setting condition, **not** a metadata write — flag it, don't try to fix it via
|
|
443
|
+
the component.
|
|
444
|
+
|
|
445
|
+
## Deferred / report-only (call out, do not build)
|
|
446
|
+
|
|
447
|
+
- **Named-Credential endpoint + secrets** (Phase 4a) — the structure deploys, the ClientID/HashKey/
|
|
448
|
+
URL do not. Hard-manual, secure UI entry. (The Phase 4b principal-access perm set is a SEPARATE,
|
|
449
|
+
automatable deliverable — it is NOT deferred; see Act end state.)
|
|
450
|
+
- **MCG Integration-Definition create** (Phase 5, real-MCG case) — **not flatly deferred: attempt the
|
|
451
|
+
`platform/integration-configuration` dispatch surface first** (`/headless/invoke/platform/integration-configuration/*`
|
|
452
|
+
— fetch the managed apex class id, `create-or-update-integration-configuration-definition`, then
|
|
453
|
+
`activate`). That dispatch-bound create is **not yet live-verified for the managed `healthcloudext`
|
|
454
|
+
Apex class**, and the subscriber **MDAPI** `IntegrationProviderDef` deploy definitely can't bind it
|
|
455
|
+
(MDAPI create is viable only for Java/LowCode/unmanaged-Apex) — so if the controller create fails on
|
|
456
|
+
the managed class, **fall back to the guided Setup-UI create**. Everything around it
|
|
457
|
+
(Edition/NamedCredential values, read-back, the `MCG_INTEGRATION_DEF_DETAILS` verify-or-repair,
|
|
458
|
+
component wiring) is automated regardless of which create path lands.
|
|
459
|
+
- **"User External Credentials" on a standard-user profile** — profile edits are heavy/risky;
|
|
460
|
+
treat as guided, confirm scope before touching a shared profile.
|
|
461
|
+
- **Automated Process user perm-set grant for the cron sync** — binding the MCG permission set to
|
|
462
|
+
the Automated Process user (for the cron sync job) has no supported customer API surface. Report as a gap; don't fabricate a
|
|
463
|
+
call path.
|
|
464
|
+
- **The API-67 / release-setting condition** behind the empty LAB field-pickers (above).
|
|
465
|
+
|
|
466
|
+
## Act 6 end state
|
|
467
|
+
|
|
468
|
+
- MCG license stack detected (`IndustriesServiceExcellencePsl` + HC base present) — or the Act
|
|
469
|
+
stopped with a named missing-license message.
|
|
470
|
+
- MCG preference + Discovery Framework verified/enabled.
|
|
471
|
+
- Credential chain built: External Credential + Named Principal (**sequenceNumber 2**), Named
|
|
472
|
+
Credential (`calloutStatus = Enabled`) — with the secret entry done by the admin, never by this
|
|
473
|
+
skill (Phase 4a).
|
|
474
|
+
- **MCG permission set authored, deployed, and assigned by this skill (Phase 4b)** — a named artifact
|
|
475
|
+
(e.g. `ICM_MCG_External_Credential_Access`) with `externalCredentialPrincipalAccesses` to the Named
|
|
476
|
+
Principal + the `UserExternalCredentials` user perm + SetupEntityAccess, assigned on confirmation.
|
|
477
|
+
**Built even when the admin created the credentials manually** — it is not part of the manual secret
|
|
478
|
+
entry, and the admin should be able to name it.
|
|
479
|
+
- Integration Definition created **and activated**, Edition set to the admin's value, Named Credential
|
|
480
|
+
wired — **dispatch-first for MCG** (via the public
|
|
481
|
+
`/headless/invoke/platform/integration-configuration/*` routes), **guided Setup-UI create as the fallback**
|
|
482
|
+
if the controller-bound create can't bind the managed `healthcloudext` Apex class (that bind is not
|
|
483
|
+
yet live-verified; the subscriber MDAPI deploy definitely can't do it — MDAPI create is viable only
|
|
484
|
+
for Java/LowCode/unmanaged-Apex), with the org's actual `developerName` read back via the controller
|
|
485
|
+
read / `listMetadata` (not SOQL).
|
|
486
|
+
- **`MCG_INTEGRATION_DEF_DETAILS` set** via the Connect PATCH (on any **programmatic create path**
|
|
487
|
+
— controller or MDAPI — assume it is NOT set for you; on the **UI create path** the wizard
|
|
488
|
+
*sometimes* sets it — a live run found it `null` after a UI create, so on **every** path **read it
|
|
489
|
+
back and write it if missing/stale**, never assume) and **`enableMcgSyncData = true`**.
|
|
490
|
+
- Assessment component's `integrationDefinition` attribute set to the active def's developerName
|
|
491
|
+
(Tooling FlexiPage, read not hardcoded).
|
|
492
|
+
- Optionally, the first sync run from the UI on confirmation → `ExternalAssessmentDefinition`
|
|
493
|
+
populated → unified assessment search returns results.
|
|
494
|
+
- The genuine deferrals (`runSync` = guided-manual, no compliant API at all; secret entry; User
|
|
495
|
+
External Credentials profile flag; Automated Process user grant; the API-67 / release-setting
|
|
496
|
+
field-picker condition) reported explicitly. **The MCG Integration-Definition create is NOT in this
|
|
497
|
+
list** — it is controller-first with a UI fallback (the fallback fires only if the not-yet-live-verified
|
|
498
|
+
controller bind of the managed `healthcloudext` Apex class fails), reported as such.
|
|
499
|
+
|
|
500
|
+
## Gotchas learned from live execution
|
|
501
|
+
|
|
502
|
+
- **Transport discipline: controller / MD-API / Tooling / Connect — in that order of preference.**
|
|
503
|
+
Only **one** thing has **no compliant write path for the real MCG case** and is flatly guided-manual:
|
|
504
|
+
**`runSync`** (no MDAPI/Tooling/Connect/invocable/platform-event/controller surface at all). The
|
|
505
|
+
**MCG Integration-Definition create** is NOT in that bucket — it has a real server-side surface, the
|
|
506
|
+
public **`platform/integration-configuration`** dispatch routes at `/headless/invoke/platform/integration-configuration/*`
|
|
507
|
+
(the same picker the UI uses; it surfaces managed classes). **Attempt that dispatch create first**
|
|
508
|
+
(fetch apex class id → `create-or-update-integration-configuration-definition` → `activate`). CAUTION:
|
|
509
|
+
binding the managed `healthcloudext` Apex class over that controller is **not yet live-verified** —
|
|
510
|
+
so if it fails, fall back to the guided Setup-UI create. The deployable metadata type
|
|
511
|
+
**`IntegrationProviderDef`** (shorter name than the runtime POJO `IntegrationProviderDefinition`)
|
|
512
|
+
*is* a real public MDAPI type, BUT a subscriber MDAPI deploy **definitely cannot bind MCG's managed
|
|
513
|
+
`healthcloudext` Apex class** (not subscriber-SOQL-visible, so the `ApexClassId` resolver fails) —
|
|
514
|
+
which is exactly what a live run hit — so MDAPI create is viable only for Java/LowCode/unmanaged-Apex
|
|
515
|
+
integration defs. Don't re-conflate the non-queryable runtime POJO (no SOQL *read* surface) with the
|
|
516
|
+
deployable metadata type; read the created def back via the controller read / `listMetadata`, never SOQL.
|
|
517
|
+
- **The `MCG_INTEGRATION_DEF_DETAILS` org value is load-bearing — and MANDATORY to verify-or-repair on
|
|
518
|
+
every programmatic create path.** A **programmatically created def (controller OR MDAPI) may NOT set
|
|
519
|
+
it** (only the legacy UI wizard did, for free — and a live run found even a UI create left it `null`) —
|
|
520
|
+
so on any automated path you must read it back and PATCH it yourself; skipping it silently no-ops the
|
|
521
|
+
sync → 0 `ExternalAssessmentDefinition` → unified search returns nothing while looking correct.
|
|
522
|
+
Write/repair via the compliant Connect PATCH (the Setup Connect API for org values). Always do
|
|
523
|
+
Phases 5 → 5b → 7 as a unit. (An earlier research pass used the wrong camelCase enum name and
|
|
524
|
+
wrongly concluded the org value "didn't apply" — the real name is underscored and it IS required.)
|
|
525
|
+
- **Transport request-vs-response shapes differ.** The org-value PATCH accepts `{"orgValue":…}`,
|
|
526
|
+
not the GET's `{stringValue,…}` response shape. The `/headless/metadata` deploy body is
|
|
527
|
+
`{type,fullName,xmlRep}` (raw XML), not `{metadataType,fullName,body}`; use a minimal one-field
|
|
528
|
+
settings body or a full round-trip 500s on read-only prefs.
|
|
529
|
+
- **Never hardcode the definition developerName** — read it from the active `IntegrationProviderDef`
|
|
530
|
+
via `listMetadata`/retrieve (never SOQL — the runtime `IntegrationProviderDefinition` POJO has no
|
|
531
|
+
queryable surface). It is customer-specific (`MCGNEW` common default; others differ) and is written
|
|
532
|
+
in two places (Phase 5b org value + Phase 6 component attr) — both must use the org's actual value.
|
|
533
|
+
- **`runSync` is a real external MCG callout**, not a passive setup step — proceed only on explicit
|
|
534
|
+
confirmation (from the setup UI), and only once the credential chain + Phase 5b are complete.
|
|
535
|
+
|
|
536
|
+
<!-- skill-validate: ignore-start -->
|
|
537
|
+
<!-- codey:operations start -->
|
|
538
|
+
## Operations Reference
|
|
539
|
+
|
|
540
|
+
Operations this skill uses — routing and dependency reference.
|
|
541
|
+
|
|
542
|
+
| Operation | Purpose | Status | Call | Depends on |
|
|
543
|
+
|-----------|---------|--------|------|------------|
|
|
544
|
+
| `detect-mcg-license-stack` | read | — | `GET /services/data/v63.0/query` | — |
|
|
545
|
+
| `establish-mcg-credential-chain` | discovery | — | — | `detect-mcg-license-stack` |
|
|
546
|
+
| `provision-mcg-integration-definition` | write | — | `PATCH /headless/invoke/platform/integration-configuration/create-or-update-integration-configuration-definition` | `establish-mcg-credential-chain` |
|
|
547
|
+
| `verify-mcg-integration-definition-active` | verify | — | `GET /headless/invoke/platform/integration-configuration/get-integration-config-definition-details` | `provision-mcg-integration-definition` |
|
|
548
|
+
| `run-mcg-first-data-sync` | discovery | — | — | — |
|
|
549
|
+
<!-- codey:operations end -->
|
|
550
|
+
<!-- skill-validate: ignore-end -->
|