@salesforce/afv-skills 1.46.0 → 1.48.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-observe/SKILL.md +32 -4
- package/skills/agentforce-observe/references/ahm-alerts.md +719 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +275 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/README.md +32 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/SetCommentValue.cls +75 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/SetCommentValue.cls-meta.xml +5 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/interview-answers.json +13 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/copy.json +10 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/create.json +20 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/update.json +16 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/references/conventions-and-payload-rules.md +273 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +236 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/references/reference-example-set-comment-value.md +132 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +211 -0
- package/skills/dx-devops-project-manage/SKILL.md +197 -0
- package/skills/dx-devops-project-manage/examples/common-workflows.md +197 -0
- package/skills/dx-devops-project-manage/references/cli-commands.md +295 -0
- package/skills/dx-devops-project-manage/scripts/create-project.sh +48 -0
- package/skills/dx-devops-project-manage/scripts/list-projects.sh +51 -0
- package/skills/dx-devops-project-manage/scripts/update-project.sh +96 -0
- package/skills/education-cloud-academic-calendar-generate/SKILL.md +225 -0
- package/skills/education-cloud-academic-calendar-generate/examples/quarter-calendar.json +47 -0
- package/skills/education-cloud-academic-calendar-generate/examples/sample-output.md +57 -0
- package/skills/education-cloud-academic-calendar-generate/examples/semester-calendar.json +54 -0
- package/skills/education-cloud-academic-calendar-generate/references/calendar-systems.md +127 -0
- package/skills/education-cloud-academic-calendar-generate/references/date-validation.md +222 -0
- package/skills/education-cloud-academic-calendar-generate/references/foundation_prerequisites.md +40 -0
- package/skills/education-cloud-academic-calendar-generate/scripts/validate_calendar_dates.py +143 -0
- package/skills/education-cloud-course-catalog-migrate/SKILL.md +321 -0
- package/skills/education-cloud-course-catalog-migrate/references/gotchas-detail.md +16 -0
- package/skills/education-cloud-course-catalog-migrate/references/gotchas.md +16 -0
- package/skills/education-cloud-course-catalog-migrate/references/large-catalog-handling.md +42 -0
- package/skills/education-cloud-course-catalog-migrate/scripts/batch_courses.py +36 -0
- package/skills/education-cloud-course-catalog-migrate/scripts/detect_linked_courses.py +51 -0
- package/skills/education-cloud-course-catalog-migrate/scripts/detect_modality_variants.py +48 -0
- package/skills/education-cloud-course-catalog-migrate/scripts/resolve_api_version.py +43 -0
- package/skills/education-cloud-course-catalog-migrate/scripts/split_course_code.py +39 -0
- package/skills/education-cloud-course-catalog-migrate/scripts/validate_completeness.py +54 -0
- package/skills/education-cloud-domain-configure/SKILL.md +234 -0
- package/skills/education-cloud-domain-configure/references/dependent-features.md +198 -0
- package/skills/education-cloud-domain-configure/references/domain-features/academic-operations.md +386 -0
- package/skills/education-cloud-domain-configure/references/domain-features/alumni-relations.md +155 -0
- package/skills/education-cloud-domain-configure/references/domain-features/cross-domain-dependencies.md +18 -0
- package/skills/education-cloud-domain-configure/references/domain-features/industriessettings-toggle-reference.md +43 -0
- package/skills/education-cloud-domain-configure/references/domain-features/mentoring.md +198 -0
- package/skills/education-cloud-domain-configure/references/domain-features/recruitment-admissions.md +315 -0
- package/skills/education-cloud-domain-configure/references/domain-features/student-management.md +155 -0
- package/skills/education-cloud-domain-configure/references/domain-features/student-success.md +249 -0
- package/skills/education-cloud-domain-configure/references/domain-features.md +27 -0
- package/skills/education-cloud-domain-configure/references/gotchas-extended.md +23 -0
- package/skills/education-cloud-domain-configure/references/toggle-write-path.md +67 -0
- package/skills/education-cloud-domain-configure/scripts/check_license_provisioned.py +62 -0
- package/skills/education-cloud-domain-configure/scripts/check_org_edition.py +44 -0
- package/skills/education-cloud-domain-configure/scripts/check_permission_assigned.py +39 -0
- package/skills/education-cloud-multi-campus-configure/SKILL.md +7 -0
- package/skills/education-cloud-multi-campus-configure/references/foundation_prerequisites.md +1 -2
- package/skills/education-cloud-student-recruitment-agent-configure/SKILL.md +177 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/agent-and-subagents.md +151 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/customer-narration.md +34 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/execution-model.md +54 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/flows.md +82 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/grounding.md +199 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/permissions.md +183 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/platform-enablement.md +82 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/prerequisites.md +158 -0
- package/skills/education-cloud-student-recruitment-agent-configure/references/routing.md +141 -0
- package/skills/experience-cms-brand-apply/SKILL.md +5 -5
- package/skills/experience-cms-brand-create/SKILL.md +2 -2
- package/skills/experience-cms-content-generate/SKILL.md +1 -0
- package/skills/experience-cms-content-render/SKILL.md +173 -0
- package/skills/experience-cms-content-render/assets/angular/DetailPage.component.ts +25 -0
- package/skills/experience-cms-content-render/assets/angular/MediaRenderer.component.ts +133 -0
- package/skills/experience-cms-content-render/assets/angular/TypeList.component.ts +38 -0
- package/skills/experience-cms-content-render/assets/angular/TypeRenderer.component.ts +90 -0
- package/skills/experience-cms-content-render/assets/angular/cms-content.component.ts +248 -0
- package/skills/experience-cms-content-render/assets/angular/cms-item.service.ts +100 -0
- package/skills/experience-cms-content-render/assets/react/DetailPage.tsx +20 -0
- package/skills/experience-cms-content-render/assets/react/MediaRenderer.tsx +129 -0
- package/skills/experience-cms-content-render/assets/react/TypeList.tsx +40 -0
- package/skills/experience-cms-content-render/assets/react/TypeRenderer.tsx +64 -0
- package/skills/experience-cms-content-render/assets/react/heuristicRenderer.tsx +310 -0
- package/skills/experience-cms-content-render/assets/react/useCmsItem.ts +129 -0
- package/skills/experience-cms-content-render/assets/shared/cmsContentType.ts +49 -0
- package/skills/experience-cms-content-render/assets/shared/cmsCore.types.ts +96 -0
- package/skills/experience-cms-content-render/assets/shared/externalRefs.ts +55 -0
- package/skills/experience-cms-content-render/references/bulk-loading.md +60 -0
- package/skills/experience-cms-content-render/references/codegen-guardrails.md +111 -0
- package/skills/experience-cms-content-render/references/detail-pages.md +87 -0
- package/skills/experience-cms-content-render/references/embed-recipes.md +127 -0
- package/skills/experience-cms-content-render/references/failure-modes.md +96 -0
- package/skills/experience-cms-content-render/references/heuristic-render-rules.md +131 -0
- package/skills/experience-cms-content-render/references/init-scaffold.md +122 -0
- package/skills/experience-cms-content-render/references/interaction-model.md +173 -0
- package/skills/experience-cms-content-render/references/package-api.md +106 -0
- package/skills/experience-cms-content-render/references/schema-sync.md +114 -0
- package/skills/experience-cms-content-render/references/styling-scopes.md +65 -0
- package/skills/experience-cms-content-render/references/verify.md +49 -0
- package/skills/experience-cms-content-type-generate/SKILL.md +2 -2
- package/skills/experience-content-media-stock-image-search/SKILL.md +5 -4
- package/skills/experience-search-coordinate/SKILL.md +198 -0
- package/skills/experience-search-coordinate/assets/search-payload-template.json +25 -0
- package/skills/experience-search-coordinate/references/content-route.md +313 -0
- package/skills/experience-search-coordinate/references/content-type-discovery.md +57 -0
- package/skills/experience-search-coordinate/references/media-route.md +172 -0
- package/skills/experience-search-coordinate/references/scope-resolution.md +14 -0
- package/skills/experience-ui-bundle-localize/SKILL.md +1 -1
- package/skills/experience-ui-bundle-localize/references/i18n-setup.md +5 -3
- package/skills/experience-ui-bundle-project-generate/SKILL.md +18 -14
- package/skills/experience-ui-bundle-project-generate/references/angular-project-generate.md +22 -0
- package/skills/experience-ui-bundle-project-generate/references/react-project-generate.md +20 -0
- package/skills/experience-ui-bundle-salesforce-data-access/SKILL.md +58 -54
- package/skills/experience-ui-bundle-salesforce-data-access/references/caching.md +6 -0
- package/skills/experience-ui-bundle-salesforce-data-access/references/graphiti-cli.md +2 -2
- package/skills/experience-ui-bundle-salesforce-data-access/references/migration.md +6 -0
- package/skills/experience-ui-bundle-salesforce-data-access/references/rest-and-integration.md +2 -1
- package/skills/experience-ui-bundle-salesforce-data-access/references/sdk-api.md +6 -0
- package/skills/experience-ui-bundle-site-generate/SKILL.md +59 -8
- package/skills/experience-ui-bundle-site-generate/references/configure-metadata-digital-experience.md +8 -3
- package/skills/experience-ui-bundle-site-generate/references/configure-metadata-language-settings.md +120 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/SKILL.md +336 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/orchestration-flow.md +143 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-application-flexipage-mapping.md +127 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-deploy-commands.md +116 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-lifesci-metadata-deploy.md +111 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-overview.md +312 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-profile-layout-assignments.md +171 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-state-tracking.md +64 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-trigger-handlers.md +122 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-4-user-provisioning-overview.md +335 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-4-user-provisioning-user-provisioning-details.md +140 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-execution-state-and-recovery.md +196 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-metadata-cache-generation.md +155 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-overview.md +307 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-visit-creation-data.md +211 -0
- package/skills/life-sciences-fieldsalesrep-coordinate/references/state-machine-and-changes.md +108 -0
- package/skills/life-sciences-kam-coordinate/SKILL.md +241 -0
- package/skills/life-sciences-kam-coordinate/references/orchestration-flow.md +152 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-application-flexipage-mapping.md +79 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-deploy-commands.md +131 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-kam-config-records.md +85 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-lifesci-metadata-deploy.md +112 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-overview.md +202 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-profile-layout-assignments.md +67 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-state-tracking.md +65 -0
- package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-trigger-handlers.md +123 -0
- package/skills/life-sciences-kam-coordinate/references/stage-4-participant-role-and-sprint.md +89 -0
- package/skills/life-sciences-kam-coordinate/references/stage-5-data-and-plan-templates-overview.md +337 -0
- package/skills/life-sciences-kam-coordinate/references/stage-5-data-creation-data.md +248 -0
- package/skills/life-sciences-kam-coordinate/references/stage-6-ipad-validation-script.md +35 -0
- package/skills/life-sciences-kam-coordinate/references/stage-6-metadata-cache-generation.md +155 -0
- package/skills/life-sciences-kam-coordinate/references/stage-6-user-provisioning-details.md +146 -0
- package/skills/life-sciences-kam-coordinate/references/stage-6-user-provisioning-overview.md +89 -0
- package/skills/life-sciences-kam-coordinate/references/state-machine-and-changes.md +114 -0
- package/skills/life-sciences-prerequisites-validate/SKILL.md +138 -0
- package/skills/life-sciences-prerequisites-validate/references/checks-org-settings.md +190 -0
- package/skills/life-sciences-prerequisites-validate/references/checks-user-and-package.md +211 -0
- package/skills/life-sciences-territory-configure/SKILL.md +217 -0
- package/skills/life-sciences-territory-configure/references/territory-metadata.md +262 -0
- package/skills/platform-dsar-policy-manage/SKILL.md +272 -0
- package/skills/platform-dsar-policy-manage/references/configure.md +106 -0
- package/skills/platform-dsar-policy-manage/references/export-and-history.md +123 -0
- package/skills/platform-dsar-policy-manage/references/gap-analysis-guide.md +150 -0
- package/skills/platform-dsar-policy-manage/references/gap-scan.md +129 -0
- package/skills/platform-dsar-policy-manage/references/headless-sor.md +59 -0
- package/skills/platform-dsar-policy-manage/references/report-format.md +59 -0
- package/skills/platform-dsar-policy-manage/scripts/tests/__init__.py +0 -0
- package/skills/platform-dsar-policy-manage/scripts/tests/test_validate_policy_tree.py +76 -0
- package/skills/platform-dsar-policy-manage/scripts/validate-policy-tree.py +130 -0
- package/skills/platform-salesforce-connect-adapter-generate/SKILL.md +359 -0
- package/skills/platform-salesforce-connect-adapter-generate/references/official-examples.md +69 -0
- package/skills/platform-salesforce-connect-adapter-generate/references/scenarios.md +187 -0
- package/skills/service-agentforce-channel-configure/SKILL.md +33 -28
- package/skills/service-agentforce-human-escalation-configure/SKILL.md +205 -0
- package/skills/service-agentforce-human-escalation-configure/assets/escalation-thresholds.instructions.md +37 -0
- package/skills/service-agentforce-human-escalation-configure/assets/force-app/main/default/flows/Human_Escalation_Outbound_Flow.flow-meta.xml +173 -0
- package/skills/service-agentforce-human-escalation-configure/assets/package.xml +8 -0
- package/skills/service-agentforce-human-escalation-configure/assets/sfdx-project.json +5 -0
- package/skills/service-agentforce-human-escalation-configure/references/classifier-contracts.md +103 -0
- package/skills/service-agentforce-human-escalation-configure/references/escalation-mechanism.md +63 -0
- package/skills/service-agentforce-human-escalation-configure/references/failure-policy.md +44 -0
- package/skills/service-agentforce-human-escalation-configure/references/nga-escalation.md +57 -0
- package/skills/service-agentforce-human-escalation-configure/references/runtime-verification.md +72 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/classify-agent-active.mjs +49 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/classify-nga-escalation.mjs +166 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/extract-outbound-route.mjs +67 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/patch-escalation-surfaces.mjs +131 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/tests/__init__.py +0 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/tests/_bootstrap.py +249 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/tests/test_escalation_contracts.py +899 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/verify-and-configure.sh +705 -0
- package/skills/service-agentforce-human-escalation-configure/scripts/verify-escalation-config.mjs +89 -0
- package/skills/service-de-channel-routing-configure/SKILL.md +13 -5
- package/skills/service-de-channel-routing-configure/scripts/tests/test_skill_contract.py +25 -0
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +23 -10
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/examples/output-templates.md +63 -48
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/scripts/verify-child-verdict.mjs +6 -2
- package/skills/service-itsm-agentic-setup-cmdb-coordinate/SKILL.md +20 -27
- package/skills/service-native-voice-recording-transcription-configure/SKILL.md +47 -27
- package/skills/service-native-voice-recording-transcription-configure/references/thunderbird-voice-settings.md +13 -9
- package/skills/service-native-voice-recording-transcription-configure/scripts/enable-recording-transcription.sh +104 -45
- package/skills/service-omni-agent-users-create/SKILL.md +96 -0
- package/skills/service-omni-agent-users-create/assets/create-users.apex.template +80 -0
- package/skills/service-omni-agent-users-create/references/apex-patterns.md +135 -0
- package/skills/service-omni-agent-users-create/references/apex-template-notes.md +40 -0
- package/skills/service-omni-agent-users-create/scripts/detect-and-create.sh +206 -0
- package/skills/service-omni-agent-users-create/scripts/detect-existing.sh +122 -0
- package/skills/service-omni-agent-users-create/scripts/run-create.sh +298 -0
- package/skills/service-omni-agent-users-create/scripts/tests/test_user_create_security.py +171 -0
- package/skills/service-omni-agent-work-sharing-configure/SKILL.md +78 -0
- package/skills/service-omni-agent-work-sharing-configure/references/api-notes.md +31 -0
- package/skills/service-omni-agent-work-sharing-configure/scripts/configure-and-report.sh +186 -0
- package/skills/service-omni-agent-work-sharing-configure/scripts/tests/_bootstrap.py +120 -0
- package/skills/service-omni-agent-work-sharing-configure/scripts/tests/test_agent_work_sharing_contracts.py +93 -0
- package/skills/service-omni-base-settings-configure/SKILL.md +77 -0
- package/skills/service-omni-base-settings-configure/assets/force-app/main/default/settings/OmniChannel.settings-meta.xml +8 -0
- package/skills/service-omni-base-settings-configure/assets/package.xml +8 -0
- package/skills/service-omni-base-settings-configure/assets/sfdx-project.json +12 -0
- package/skills/service-omni-base-settings-configure/references/api-notes.md +121 -0
- package/skills/service-omni-base-settings-configure/scripts/configure-and-report.sh +164 -0
- package/skills/service-omni-base-settings-configure/scripts/detect-existing.sh +69 -0
- package/skills/service-omni-channel-setup-coordinate/SKILL.md +168 -0
- package/skills/service-omni-channel-setup-coordinate/examples/output-templates.md +161 -0
- package/skills/service-omni-channel-setup-coordinate/references/gap-catalog.md +99 -0
- package/skills/service-omni-channel-setup-coordinate/scripts/integration-driver.sh +1542 -0
- package/skills/service-omni-channel-setup-coordinate/scripts/tests/__init__.py +0 -0
- package/skills/service-omni-channel-setup-coordinate/scripts/tests/_bootstrap.py +223 -0
- package/skills/service-omni-channel-setup-coordinate/scripts/tests/test_omni_contracts.py +804 -0
- package/skills/service-omni-command-center-analyze/SKILL.md +84 -0
- package/skills/service-omni-command-center-analyze/references/api-notes.md +54 -0
- package/skills/service-omni-command-center-analyze/scripts/analyze.sh +198 -0
- package/skills/service-omni-command-center-analyze/scripts/tests/_bootstrap.py +115 -0
- package/skills/service-omni-command-center-analyze/scripts/tests/test_command_center_analyze_contracts.py +165 -0
- package/skills/service-omni-permission-set-assign/SKILL.md +88 -0
- package/skills/service-omni-permission-set-assign/assets/package.xml +8 -0
- package/skills/service-omni-permission-set-assign/references/api-notes.md +143 -0
- package/skills/service-omni-permission-set-assign/scripts/verify-and-assign.sh +397 -0
- package/skills/service-omni-presence-status-deploy/SKILL.md +87 -0
- package/skills/service-omni-presence-status-deploy/assets/package.xml +12 -0
- package/skills/service-omni-presence-status-deploy/references/api-notes.md +115 -0
- package/skills/service-omni-presence-status-deploy/scripts/deploy-and-report.sh +422 -0
- package/skills/service-omni-presence-user-config-deploy/SKILL.md +80 -0
- package/skills/service-omni-presence-user-config-deploy/references/api-notes.md +60 -0
- package/skills/service-omni-presence-user-config-deploy/scripts/deploy-and-report.sh +261 -0
- package/skills/service-omni-presence-user-config-deploy/scripts/tests/_bootstrap.py +106 -0
- package/skills/service-omni-presence-user-config-deploy/scripts/tests/test_presence_user_config_contracts.py +142 -0
- package/skills/service-omni-queue-deploy/SKILL.md +91 -0
- package/skills/service-omni-queue-deploy/references/api-notes.md +140 -0
- package/skills/service-omni-queue-deploy/scripts/verify-and-align.sh +470 -0
- package/skills/service-omni-queue-members-assign/SKILL.md +93 -0
- package/skills/service-omni-queue-members-assign/references/api-notes.md +144 -0
- package/skills/service-omni-queue-members-assign/scripts/tests/_bootstrap.py +67 -0
- package/skills/service-omni-queue-members-assign/scripts/tests/test_queue_members_contracts.py +73 -0
- package/skills/service-omni-queue-members-assign/scripts/verify-and-bind.sh +362 -0
- package/skills/service-omni-queue-routing-config-deploy/SKILL.md +101 -0
- package/skills/service-omni-queue-routing-config-deploy/references/api-notes.md +127 -0
- package/skills/service-omni-queue-routing-config-deploy/scripts/tests/_bootstrap.py +90 -0
- package/skills/service-omni-queue-routing-config-deploy/scripts/tests/test_queue_routing_config_contracts.py +70 -0
- package/skills/service-omni-queue-routing-config-deploy/scripts/upsert-and-report.sh +538 -0
- package/skills/service-omni-routing-flow-deploy/SKILL.md +111 -0
- package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_Case_Trigger.SkillsBased.flow-meta.xml +94 -0
- package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_Case_Trigger.flow-meta.xml +88 -0
- package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_Cases.flow-meta.xml +144 -0
- package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_VoiceCall_Trigger.SkillsBased.flow-meta.xml +94 -0
- package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_VoiceCall_Trigger.flow-meta.xml +88 -0
- package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_VoiceCalls.flow-meta.xml +144 -0
- package/skills/service-omni-routing-flow-deploy/assets/package.xml +11 -0
- package/skills/service-omni-routing-flow-deploy/assets/sfdx-project.json +11 -0
- package/skills/service-omni-routing-flow-deploy/references/api-notes.md +265 -0
- package/skills/service-omni-routing-flow-deploy/scripts/deploy-and-report.sh +684 -0
- package/skills/service-omni-service-channel-configure/SKILL.md +83 -0
- package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/Cases.serviceChannel-meta.xml +9 -0
- package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/Incidents.serviceChannel-meta.xml +9 -0
- package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/MessagingSessions.serviceChannel-meta.xml +9 -0
- package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/VoiceCalls.serviceChannel-meta.xml +9 -0
- package/skills/service-omni-service-channel-configure/assets/package.xml +11 -0
- package/skills/service-omni-service-channel-configure/assets/sfdx-project.json +12 -0
- package/skills/service-omni-service-channel-configure/references/api-notes.md +84 -0
- package/skills/service-omni-service-channel-configure/scripts/deploy-and-report.sh +383 -0
- package/skills/service-omni-sidebar-configure/SKILL.md +77 -0
- package/skills/service-omni-sidebar-configure/references/api-notes.md +51 -0
- package/skills/service-omni-sidebar-configure/scripts/enable-and-report.sh +315 -0
- package/skills/service-omni-sidebar-configure/scripts/tests/_bootstrap.py +142 -0
- package/skills/service-omni-sidebar-configure/scripts/tests/test_sidebar_contracts.py +139 -0
- package/skills/service-omni-skills-based-routing-configure/SKILL.md +81 -0
- package/skills/service-omni-skills-based-routing-configure/references/api-notes.md +50 -0
- package/skills/service-omni-skills-based-routing-configure/scripts/configure-and-report.sh +270 -0
- package/skills/service-omni-skills-based-routing-configure/scripts/tests/_bootstrap.py +120 -0
- package/skills/service-omni-skills-based-routing-configure/scripts/tests/test_sbr_contracts.py +129 -0
- package/skills/service-omni-supervisor-config-deploy/SKILL.md +97 -0
- package/skills/service-omni-supervisor-config-deploy/assets/force-app/main/default/omniSupervisorConfigs/Omni_Supervisor.omniSupervisorConfig-meta.xml +9 -0
- package/skills/service-omni-supervisor-config-deploy/assets/package.xml +8 -0
- package/skills/service-omni-supervisor-config-deploy/assets/sfdx-project.json +12 -0
- package/skills/service-omni-supervisor-config-deploy/references/api-notes.md +205 -0
- package/skills/service-omni-supervisor-config-deploy/scripts/deploy-and-report.sh +586 -0
- package/skills/service-omni-supervisor-config-deploy/scripts/tests/_bootstrap.py +153 -0
- package/skills/service-omni-supervisor-config-deploy/scripts/tests/test_supervisor_config_contracts.py +116 -0
- package/skills/service-omni-supervisor-permset-assign/SKILL.md +88 -0
- package/skills/service-omni-supervisor-permset-assign/references/api-notes.md +48 -0
- package/skills/service-omni-supervisor-permset-assign/scripts/verify-and-assign.sh +316 -0
- package/skills/service-omni-supervisor-surface-deploy/SKILL.md +85 -0
- package/skills/service-omni-supervisor-surface-deploy/references/api-notes.md +47 -0
- package/skills/service-omni-supervisor-surface-deploy/scripts/deploy-and-report.sh +216 -0
- package/skills/service-omni-supervisor-surface-deploy/scripts/tests/_bootstrap.py +95 -0
- package/skills/service-omni-supervisor-surface-deploy/scripts/tests/test_supervisor_surface_contracts.py +154 -0
- package/skills/service-omni-supervisor-users-create/SKILL.md +92 -0
- package/skills/service-omni-supervisor-users-create/assets/create-supervisors.apex.template +72 -0
- package/skills/service-omni-supervisor-users-create/references/apex-patterns.md +73 -0
- package/skills/service-omni-supervisor-users-create/references/apex-template-notes.md +41 -0
- package/skills/service-omni-supervisor-users-create/scripts/detect-and-create.sh +197 -0
- package/skills/service-omni-supervisor-users-create/scripts/detect-existing.sh +112 -0
- package/skills/service-omni-supervisor-users-create/scripts/run-create.sh +296 -0
- package/skills/service-omni-work-skill-routing-configure/SKILL.md +80 -0
- package/skills/service-omni-work-skill-routing-configure/references/api-notes.md +67 -0
- package/skills/service-omni-work-skill-routing-configure/scripts/configure-and-report.sh +262 -0
- package/skills/service-omni-work-skill-routing-configure/scripts/tests/_bootstrap.py +121 -0
- package/skills/service-omni-work-skill-routing-configure/scripts/tests/test_work_skill_routing_contracts.py +161 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Stage 6 — KAM User Provisioning
|
|
2
|
+
|
|
3
|
+
Creates the KAM end user, assigns the four KAM permission sets, sets a password, assigns both the user and the admin to the Stage-3 level-3 territory, and generates the mobile metadata cache. This is the final stage of `life-sciences-kam-coordinate`; the coordinator invokes it after the KAM data & plan templates (Stage 5) exist.
|
|
4
|
+
|
|
5
|
+
## Stage Scope
|
|
6
|
+
|
|
7
|
+
- **In scope**: creating one Active user (username contains `kam`) on the `LSC Custom Profile`, assigning 4 permission sets, setting a password, assigning the user + admin to the level-3 territory, and generating + verifying the mobile metadata cache
|
|
8
|
+
- **Out of scope**: everything in Stages 1–5
|
|
9
|
+
|
|
10
|
+
## Required Inputs
|
|
11
|
+
|
|
12
|
+
- **Target org / admin**: admin alias or username (the metadata-cache generation runs as admin)
|
|
13
|
+
- **KAM user details**: shown to the admin as **defaults for confirmation** before creation — the admin can edit **FirstName / LastName / Email**; the **username is auto-generated** (always containing `kam`) and the rest are fixed defaults (see the details reference)
|
|
14
|
+
- **Stage-3 level-3 territory Id**: from `OrchestrationState.territoryId` — **MUST be the same territory used for `ProductTerritoryAvailability` in Stage 5**, or the KAM user sees no product/account data
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
### Phase A — Create the user
|
|
19
|
+
|
|
20
|
+
1. Query the `LSC Custom Profile` Id.
|
|
21
|
+
2. **Confirm the user details with the admin BEFORE creating.** Present the default/derived details as a table (see "Default User Details & Confirmation" in the details reference). The admin may edit **FirstName / LastName / Email**; the **username is auto-generated** (always containing `kam`) from the name, and the remaining fields are fixed defaults. If the admin edits the name, re-derive the username + alias and re-display. **Do NOT create the user until the admin confirms.**
|
|
22
|
+
3. Create the user with the confirmed fields (username MUST contain `kam`, `IsActive=true`). Full field table, username rule, and error handling: **`references/stage-6-user-provisioning-details.md`**.
|
|
23
|
+
4. Set the user's password with anonymous Apex, writing the temp file to a **project-local** relative path (never `/tmp`) and removing it right after — see the password section in the details reference.
|
|
24
|
+
5. Capture the login URL (`sf org display`) for the credential handoff.
|
|
25
|
+
|
|
26
|
+
### Phase B — Assign the four permission sets
|
|
27
|
+
|
|
28
|
+
Assign **exactly four** permission sets:
|
|
29
|
+
|
|
30
|
+
| Label | Expected API name |
|
|
31
|
+
|-------|-------------------|
|
|
32
|
+
| Health Cloud Starter | HealthCloudStarter |
|
|
33
|
+
| Life Sciences Key Account Management | LifeSciencesKeyAccountManager |
|
|
34
|
+
| Life Sciences Field Sales Representative | LifeSciencesFieldSalesRepresentative |
|
|
35
|
+
| Life Sciences Core | LifeSciencesCore |
|
|
36
|
+
|
|
37
|
+
Resolve the API names by label first (they may be namespace-prefixed) — see the details reference. Create a `PermissionSetAssignment` for each.
|
|
38
|
+
|
|
39
|
+
> **STOP-GATE (permset count = 4).** After assigning, query the count filtered to non-profile-owned sets:
|
|
40
|
+
> ```bash
|
|
41
|
+
> sf data query --query "SELECT COUNT(Id) c FROM PermissionSetAssignment WHERE AssigneeId = '<userId>' AND PermissionSet.IsOwnedByProfile = false" --target-org <admin> --json
|
|
42
|
+
> ```
|
|
43
|
+
> This MUST return **exactly 4** (`{HealthCloudStarter, LifeSciencesKeyAccountManager, LifeSciencesFieldSalesRepresentative, LifeSciencesCore}`). More or fewer means the wrong sets were assigned — reconcile before proceeding.
|
|
44
|
+
|
|
45
|
+
### Phase C — Territory assignment (user + admin)
|
|
46
|
+
|
|
47
|
+
Assign **both** the KAM user and the admin to the Stage-3 level-3 territory via `UserTerritory2Association`. Confirm with the admin that this is the same territory used for `ProductTerritoryAvailability` in Stage 5. Field details + verification: the details reference.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
sf data query --query "SELECT User.Name, User.Username, Territory2.Name FROM UserTerritory2Association WHERE Territory2Id = '<territoryId>'" --target-org <admin> --json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Expect ≥2 rows (KAM user + admin).
|
|
54
|
+
|
|
55
|
+
### Phase D — Generate the mobile metadata cache
|
|
56
|
+
|
|
57
|
+
Run entirely as the admin. Create the parent + child `LifeSciMobileMetadataRecord` (both `ValidationCompleted`), call the Connect API generate endpoint with `sf api request rest`, and poll until `Status='Active'`. Full commands, request body, and error table: **`references/stage-6-metadata-cache-generation.md`**.
|
|
58
|
+
|
|
59
|
+
## Verification Gate
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
sf data query --query "SELECT Id, Username, Profile.Name, IsActive FROM User WHERE Username = '<username>'" --target-org <admin> --json
|
|
63
|
+
sf data query --query "SELECT Id, Status FROM LifeSciMobileMetadataRecord ORDER BY LastModifiedDate DESC LIMIT 1" --target-org <admin> --json
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Expect the user `IsActive=true` on `LSC Custom Profile`, permset count = 4, ≥2 territory rows, and a metadata record at `Status='Active'`.
|
|
67
|
+
|
|
68
|
+
## Credential Handoff
|
|
69
|
+
|
|
70
|
+
At the end, present the KAM username, the login URL, and the temporary password in the **single** credential-handoff summary. Do not print the password anywhere else.
|
|
71
|
+
|
|
72
|
+
## Rules / Constraints
|
|
73
|
+
|
|
74
|
+
| Constraint | Rationale |
|
|
75
|
+
|-----------|-----------|
|
|
76
|
+
| Username MUST contain `kam` | KAM-user identification requirement |
|
|
77
|
+
| Assign exactly 4 permission sets | KAM users get Health Cloud Starter + Life Sciences Key Account Management + Life Sciences Field Sales Representative + Life Sciences Core |
|
|
78
|
+
| Assign the SAME level-3 territory used in Stage 5 | A mismatch hides all product/account data from the KAM user |
|
|
79
|
+
| Assign BOTH the user and the admin to the territory | Admin visibility + user data access |
|
|
80
|
+
| Write temp files (password Apex, mdgen body) project-local | Never `/tmp` or outside the project |
|
|
81
|
+
| Deactivate, never delete, unwanted users | Deletion is unsafe; deactivation cascade-deletes territory associations |
|
|
82
|
+
| Print the password only in the single credential-handoff summary | Credential hygiene |
|
|
83
|
+
|
|
84
|
+
## Reference File Index
|
|
85
|
+
|
|
86
|
+
| File | When to read |
|
|
87
|
+
|------|-------------|
|
|
88
|
+
| `references/stage-6-user-provisioning-details.md` | Phases A–C — user fields, username rule, permsets, password, territory, verification |
|
|
89
|
+
| `references/stage-6-metadata-cache-generation.md` | Phase D — parent/child record creation + Connect API generate call + polling |
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Orchestration State Machine & Change Handling (KAM)
|
|
2
|
+
|
|
3
|
+
Operational reference for `life-sciences-kam-coordinate`: the idempotent stage-transition rules, the mid-flow change-request impact assessment, and the resume/partial-re-run protocol. Read this alongside the workflow in `SKILL.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Idempotent Stage Transitions
|
|
8
|
+
|
|
9
|
+
Stages are **not re-entrant**. If the user says "Proceed" or names a stage that is already running or completed, do NOT re-execute it.
|
|
10
|
+
|
|
11
|
+
### Behavior Matrix
|
|
12
|
+
|
|
13
|
+
| Current stage status | User says "Proceed" / "Run Stage N" | Response |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `running` | Duplicate trigger | "Stage N is already in progress — I'll let you know when it completes." |
|
|
16
|
+
| `passed` | Re-run request | "Stage N already completed successfully. Would you like to re-run it anyway? This is safe (all stages are idempotent) but will take extra time." |
|
|
17
|
+
| `failed` | Retry request | Allow — re-run the stage (this is intentional recovery) |
|
|
18
|
+
| `pending` | Advance request | Allow — normal forward progression |
|
|
19
|
+
|
|
20
|
+
### Implementation Rules
|
|
21
|
+
|
|
22
|
+
1. **Before executing any stage**, check its current `status` in `OrchestrationState`.
|
|
23
|
+
2. **If `running`**: reply with the in-progress message and take no action. Do not queue a second execution.
|
|
24
|
+
3. **If `passed`**: ask for explicit confirmation before re-running. Only re-run if the user says "yes, re-run it".
|
|
25
|
+
4. **If `failed`**: treat as a retry — re-run without extra confirmation (the user is explicitly recovering).
|
|
26
|
+
5. **Accidental double-confirms** (user says "yes" or "proceed" twice in quick succession) must never cause a stage to execute twice. The `status` field is the single source of truth — transition to `running` at the START of execution, not on user input.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Mid-Flow Change Requests (Impact Assessment)
|
|
31
|
+
|
|
32
|
+
If the user requests a change to inputs or decisions made in an earlier stage **while a later stage is in progress or pending**, perform an impact assessment before applying the change.
|
|
33
|
+
|
|
34
|
+
### When This Applies
|
|
35
|
+
|
|
36
|
+
- User wants to change the target org mid-flow
|
|
37
|
+
- User wants to change territory names after territories were already deployed
|
|
38
|
+
- User wants to change the KAM user's details after the profile/permsets were chosen
|
|
39
|
+
- User wants to switch which layouts or flexipages were selected after deploy
|
|
40
|
+
- User wants to change the ParticipantRole/Sprint, goal, or template names after they were created
|
|
41
|
+
|
|
42
|
+
### Impact Assessment Protocol
|
|
43
|
+
|
|
44
|
+
1. **Acknowledge the change request** without applying it immediately.
|
|
45
|
+
|
|
46
|
+
2. **Identify affected stages** — determine which completed or in-progress stages would be impacted:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
Change Request Impact Assessment
|
|
50
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
51
|
+
|
|
52
|
+
Requested change: <describe the change>
|
|
53
|
+
|
|
54
|
+
Stages affected:
|
|
55
|
+
Stage <N>: <StageName> — <what would need to change/redo>
|
|
56
|
+
Stage <M>: <StageName> — <downstream impact>
|
|
57
|
+
|
|
58
|
+
Stages NOT affected:
|
|
59
|
+
Stage <X>: <StageName> — no impact
|
|
60
|
+
|
|
61
|
+
Estimated rework: <time/effort to re-do affected stages>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
3. **Present options** to the user:
|
|
65
|
+
- **Apply change and re-run affected stages** — will undo/redo the impacted work
|
|
66
|
+
- **Apply change for remaining stages only** — keep what's done, apply change going forward (if possible without inconsistency)
|
|
67
|
+
- **Cancel the change** — continue with original inputs
|
|
68
|
+
|
|
69
|
+
4. **Wait for user decision** before taking any action.
|
|
70
|
+
|
|
71
|
+
### Impact Mapping
|
|
72
|
+
|
|
73
|
+
| Change | Affects Stages | Re-run Required | Notes |
|
|
74
|
+
|--------|--------------|-----------------|-------|
|
|
75
|
+
| Target org | All stages | Yes — full restart | Nothing from prior org transfers |
|
|
76
|
+
| Territory names | Stage 3, Stage 5, Stage 6 | Stage 3 re-deploy + Stage 5 re-associate + Stage 6 re-assign | Stage 5 `ProductTerritoryAvailability` and Stage 6 `UserTerritory2Association` both bind the level-3 territory; a new territory means re-doing both |
|
|
77
|
+
| Layout/flexipage selection | Stage 2 only | Re-deploy updated profile + app | Does not affect Stages 3-6 |
|
|
78
|
+
| KAM/Sprint config picklist values | Stage 2 only | Re-deploy config records | Upsert-safe |
|
|
79
|
+
| ParticipantRole / Sprint name | Stage 4 only | Stage 4 only | Both are simple record creates |
|
|
80
|
+
| Product / Account data | Stage 5 (Part A + Part B) | Stage 5 re-create + re-link | Part B `GoalDefinitionProduct` references the Part A `LifeSciMarketableProduct` |
|
|
81
|
+
| Goal / template names | Stage 5 (Part B) only | Stage 5 (Part B) only | Un-publish is not possible — see destructive warnings |
|
|
82
|
+
| User details (name, email, username) | Stage 6 only | Stage 6 only | Username must still contain `kam` |
|
|
83
|
+
| Permission set list | Stage 6 only | Stage 6 only | Can add/remove assignments (target set is exactly 4) |
|
|
84
|
+
|
|
85
|
+
### Destructive Change Warnings
|
|
86
|
+
|
|
87
|
+
Some changes cannot be fully undone:
|
|
88
|
+
|
|
89
|
+
| Change | Warning |
|
|
90
|
+
|--------|---------|
|
|
91
|
+
| Territory model already activated | "The territory model cannot be deleted once activated. A new model with a different name can be created, but the old one will remain." |
|
|
92
|
+
| ActionPlanTemplate already published (Final) | "A published template version cannot be un-published. A new version (or a new template) can be created, but the Final version remains." |
|
|
93
|
+
| User already created | "The existing user will remain. A new user with different details will be created as a separate record. Deactivate (never delete) any unwanted user; deactivation cascade-deletes its territory associations." |
|
|
94
|
+
| Config records already deployed | "Config records are upsert-safe — re-deploying with changes will update existing records, not create duplicates." |
|
|
95
|
+
|
|
96
|
+
Always surface these warnings as part of the impact assessment so the user makes an informed decision.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Resume / Partial Re-run
|
|
101
|
+
|
|
102
|
+
If the user has already completed some stages (e.g., from a prior session):
|
|
103
|
+
|
|
104
|
+
1. Ask: "Have you already completed any of these stages?"
|
|
105
|
+
2. For each claimed-complete stage, **verify** by querying the org:
|
|
106
|
+
- Stage 1: Ask user to confirm prerequisites are met
|
|
107
|
+
- Stage 2: Query for `LSC Custom Profile`
|
|
108
|
+
- Stage 3: Query for active territory model with level-3 territory
|
|
109
|
+
- Stage 4: Query for `ParticipantRole` (DeveloperName `Rep_Execution_Specialist`) + a `Sprint`
|
|
110
|
+
- Stage 5: Query for a `ProductTerritoryAvailability` (and Account) **and** a `Final` `ActionPlanTemplateVersion` + `ActionPlanTemplateAssignment`
|
|
111
|
+
- Stage 6: Query for the user with username containing `kam` on `LSC Custom Profile`
|
|
112
|
+
3. Skip verified stages and resume from the first incomplete one.
|
|
113
|
+
|
|
114
|
+
(The exact detection queries per stage are in `orchestration-flow.md` → Resume Logic.)
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: life-sciences-prerequisites-validate
|
|
3
|
+
description: "Validate Life Sciences Cloud for Customer Engagement org prerequisites. Use when an admin needs to verify that all required settings, permissions, OWD sharing rules, and feature toggles are correctly configured before deploying Life Sciences Cloud. Checks user profile, permission sets, Life Sciences CE settings, surveys, OWD, inventory, account plans, care plans, Chatter, data protection, multi-currency, state/country picklists, and person accounts. Reports pass/fail for each check with remediation steps. TRIGGER when: user says 'check prerequisites', 'verify org setup for Life Sciences', 'LSC readiness check', 'pre-requisites for Life Sciences Cloud', 'validate org for LSC'. DO NOT TRIGGER when: user wants to automatically enable or configure these settings, or when the user asks for the full end-to-end Life Sciences Cloud setup / orchestration (that is the `life-sciences-fieldsalesrep-coordinate` orchestrator's job — this skill runs only as a standalone prerequisites check)."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0"
|
|
6
|
+
minApiVersion: "65.0"
|
|
7
|
+
domains: ["Life Sciences"]
|
|
8
|
+
relatedSkills:
|
|
9
|
+
- life-sciences-fieldsalesrep-coordinate
|
|
10
|
+
- life-sciences-territory-configure
|
|
11
|
+
cliTools:
|
|
12
|
+
- tool: ["sf"]
|
|
13
|
+
semver: ">=2.0.0"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Life Sciences Cloud Prerequisites Validation
|
|
17
|
+
|
|
18
|
+
Validates that a Salesforce org meets all prerequisites for Life Sciences Cloud for Customer Engagement. Runs checks via the `sf` CLI against the currently authenticated org and produces a consolidated pass/fail report with remediation steps for any failures.
|
|
19
|
+
|
|
20
|
+
## Scope
|
|
21
|
+
|
|
22
|
+
- **In scope**: Validating org settings, user permissions, OWD sharing, and feature toggles required for Life Sciences Cloud CE
|
|
23
|
+
- **Out of scope**: Automatically enabling or configuring settings that fail validation
|
|
24
|
+
|
|
25
|
+
### Off-topic requests
|
|
26
|
+
|
|
27
|
+
If the user asks for something unrelated to this skill (either at the start or mid-execution), do not attempt it. Tell the user you did not understand the request, then show what you *can* help with: validating Life Sciences Cloud org prerequisites (this skill), and — if relevant — point them to `life-sciences-territory-configure` for territory setup or `life-sciences-fieldsalesrep-coordinate` for the full end-to-end setup. Then stop and wait.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Required Inputs
|
|
32
|
+
|
|
33
|
+
Gather before proceeding:
|
|
34
|
+
|
|
35
|
+
- **Target org**: The org alias or username to validate (from `sf config get target-org` or user-specified)
|
|
36
|
+
- **Confirmation**: The logged-in user must be the admin whose profile and permission sets are being validated
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Workflow
|
|
41
|
+
|
|
42
|
+
All checks run sequentially. Collect all results before presenting the final report.
|
|
43
|
+
|
|
44
|
+
### Phase 1 — Validate Environment
|
|
45
|
+
|
|
46
|
+
1. **Confirm org connection** — run `sf org display --target-org <org>` to verify the org is accessible. If it fails, stop and ask the user to authenticate.
|
|
47
|
+
|
|
48
|
+
2. **Identify the logged-in user** — extract the username from the org display output.
|
|
49
|
+
|
|
50
|
+
### Phase 2 — Run All Prerequisite Checks
|
|
51
|
+
|
|
52
|
+
Run each check below. For each, record PASS or FAIL with the remediation steps. The checks use the canonical **Check 1 – Check 12** numbering from the reference files and the final report; the managed-package check is an un-numbered hard-stop gate, not one of the 12 scored categories. Checks 1–3 (and the managed-package gate) are in `references/checks-user-and-package.md`; Checks 4–12 are in `references/checks-org-settings.md`.
|
|
53
|
+
|
|
54
|
+
> **STOP-GATE (report completeness).** Every check MUST produce a row in the final report — a check that errors (e.g. Multi-Currency returns HTTP 400 `INVALID_TYPE`, or an object isn't deployed) is a **FAIL row**, never a skipped/omitted row or a reason to abort the run. The report's row count MUST equal the full scored-check count (**12 categories**, Check 1 – Check 12). The **one** intended early exit is the managed-package gate (the un-numbered `lsc4ce` package check, step 4 below) — that legitimately stops the run with the "BLOCKED" message. In every other case, a query error is the FAIL signal: record it and continue. Do NOT let a single 4xx or unexpected-shape response silently drop a row or halt the sweep — a short report reads as "fewer things to fix" when the truth is "we didn't check."
|
|
55
|
+
|
|
56
|
+
3. **Check 1 — user profile and permission sets** — read `references/checks-user-and-package.md` section "User Profile and Permission Sets" for the exact queries and validation logic.
|
|
57
|
+
|
|
58
|
+
4. **Managed-package gate (un-numbered hard stop)** — read `references/checks-user-and-package.md` section "Managed Package Check". If the `lsc4ce` package is not installed, display the failure message and **stop** — do not proceed with remaining checks.
|
|
59
|
+
|
|
60
|
+
5. **Check 2 — Life Sciences CE settings** — read `references/checks-user-and-package.md` section "Life Sciences Customer Engagement Setup" for the exact queries.
|
|
61
|
+
|
|
62
|
+
6. **Check 3 — Surveys enabled** — read `references/checks-user-and-package.md` section "Surveys".
|
|
63
|
+
|
|
64
|
+
7. **Check 4 — OWD sharing settings** — read `references/checks-org-settings.md` section "OWD Sharing" for the exact objects and expected values.
|
|
65
|
+
|
|
66
|
+
8. **Check 5 — Inventory Count** — read `references/checks-org-settings.md` section "Inventory Count".
|
|
67
|
+
|
|
68
|
+
9. **Check 6 — Sales Account Plans** — read `references/checks-org-settings.md` section "Sales Account Plans".
|
|
69
|
+
|
|
70
|
+
10. **Check 7 — Care Plans** — read `references/checks-org-settings.md` section "Care Plans".
|
|
71
|
+
|
|
72
|
+
11. **Check 8 — Chatter Settings** — read `references/checks-org-settings.md` section "Chatter Settings".
|
|
73
|
+
|
|
74
|
+
12. **Check 9 — Data Protection and Privacy** — read `references/checks-org-settings.md` section "Data Protection and Privacy".
|
|
75
|
+
|
|
76
|
+
13. **Check 10 — Multiple Currencies** — read `references/checks-org-settings.md` section "Multiple Currencies".
|
|
77
|
+
|
|
78
|
+
14. **Check 11 — State and Country/Territory Picklists** — read `references/checks-org-settings.md` section "State and Country/Territory Picklists".
|
|
79
|
+
|
|
80
|
+
15. **Check 12 — Person Accounts** — read `references/checks-org-settings.md` section "Person Accounts".
|
|
81
|
+
|
|
82
|
+
### Phase 3 — Report
|
|
83
|
+
|
|
84
|
+
16. **Generate consolidated report** — present results in a table:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
| # | Prerequisite | Status | Remediation (if failed/warning) |
|
|
88
|
+
|---|-------------------------------------------|--------|----------------------------------|
|
|
89
|
+
| 1 | System Administrator + Permission Sets | PASS/FAIL | <steps if failed> |
|
|
90
|
+
| 2 | Life Sciences CE Enabled | PASS/FAIL | <steps if failed> |
|
|
91
|
+
| ... |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Status values are **PASS**, **FAIL**, or **WARNING**. Most checks are PASS/FAIL. The **OWD Sharing** check (Check 4) is WARNING-level: when its values differ from the expected ones, report **WARNING** (with the recommended value in the remediation column), never FAIL — see `references/checks-org-settings.md` for the exact rule.
|
|
95
|
+
|
|
96
|
+
Include a summary line: `X of 12 prerequisites passed. Y require action (Z warnings).`
|
|
97
|
+
|
|
98
|
+
If all pass, confirm the org is ready for Life Sciences Cloud deployment.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Rules / Constraints
|
|
103
|
+
|
|
104
|
+
| Constraint | Rationale |
|
|
105
|
+
|-----------|-----------|
|
|
106
|
+
| Run all checks even if early ones fail | Admin needs the full picture to remediate in one pass |
|
|
107
|
+
| Use `sf` CLI with `--target-org` for every query | Ensures correct org context even with multiple orgs authenticated |
|
|
108
|
+
| Never modify org settings | This skill validates only — it does not enable or configure anything |
|
|
109
|
+
| Report exact Setup navigation paths | Admins need to know where to click in Setup UI |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Gotchas
|
|
114
|
+
|
|
115
|
+
| Issue | Resolution |
|
|
116
|
+
|-------|------------|
|
|
117
|
+
| Some settings are not queryable via Metadata API | Use Tooling API or org settings queries where Metadata API lacks coverage |
|
|
118
|
+
| Person Accounts cannot be disabled once enabled | Only check if enabled; no rollback possible |
|
|
119
|
+
| Multiple Currencies cannot be disabled once activated | Only check if activated; warn that this is irreversible if recommending enablement |
|
|
120
|
+
| State/Country Picklists enabling is irreversible | Include this warning in remediation steps |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Output Expectations
|
|
125
|
+
|
|
126
|
+
Deliverables:
|
|
127
|
+
- A formatted table showing pass/fail status for all 12 prerequisite categories
|
|
128
|
+
- Remediation steps (Setup navigation paths and actions) for each failed check
|
|
129
|
+
- Summary count of passed vs. failed checks
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Reference File Index
|
|
134
|
+
|
|
135
|
+
| File | When to read |
|
|
136
|
+
|------|-------------|
|
|
137
|
+
| `references/checks-user-and-package.md` | During Phase 2 (checks 3–6) — exact sf CLI commands, expected values, and remediation for the user profile/permission-set, managed-package, Life Sciences CE feature, and survey checks |
|
|
138
|
+
| `references/checks-org-settings.md` | During Phase 2 (checks 7–15) — exact sf CLI commands, expected values, and remediation for the OWD sharing, inventory, account plans, care plans, chatter, data protection, currencies, picklists, and person-accounts checks |
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Prerequisite Checks — Org-Level Sharing and Data Settings
|
|
2
|
+
|
|
3
|
+
Covers the org-wide sharing and data-feature checks: OWD sharing, inventory count, sales account plans, care plans, chatter, data protection, multiple currencies, state/country picklists, and person accounts. For the user-access, managed-package, Life Sciences CE feature, and survey checks, see `checks-user-and-package.md`.
|
|
4
|
+
|
|
5
|
+
Each section contains: the sf CLI command to run, how to interpret the result, and the remediation steps if the check fails.
|
|
6
|
+
|
|
7
|
+
All Tooling API queries use `sf data query --target-org <org> --json --use-tooling-api`. Replace `<org>` with the target org alias.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## OWD Sharing
|
|
12
|
+
|
|
13
|
+
### Check 4 — Organization-Wide Defaults
|
|
14
|
+
|
|
15
|
+
Query OWD via `EntityDefinition` in the Tooling API:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
sf data query --query "SELECT ExternalSharingModel, InternalSharingModel, QualifiedApiName FROM EntityDefinition WHERE QualifiedApiName IN ('Account','Case')" --target-org <org> --json --use-tooling-api
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Status: this is a WARNING-level check, not a hard FAIL.** OWD values are org-configuration preferences that depend on how Life Sciences Cloud is deployed. When they differ from the expected values below, record the row as **WARNING** (with the recommended value in the remediation column), not FAIL — do not block on it.
|
|
22
|
+
|
|
23
|
+
**Expected values**:
|
|
24
|
+
|
|
25
|
+
| Object | Expected InternalSharingModel | Expected ExternalSharingModel |
|
|
26
|
+
|--------|-------------------------------|-------------------------------|
|
|
27
|
+
| Account | Private | Private |
|
|
28
|
+
| Case | Private | Private |
|
|
29
|
+
|
|
30
|
+
> Note: In the API response, `Private` means "Private" OWD and `ReadWrite` means "Public Read/Write".
|
|
31
|
+
|
|
32
|
+
**Remediation if the values differ (WARNING):**
|
|
33
|
+
|
|
34
|
+
1. Navigate to **Setup > Security > Sharing Settings**
|
|
35
|
+
2. Click **Edit** in the Organization-Wide Defaults section
|
|
36
|
+
3. Recommended values:
|
|
37
|
+
- **Account**: Private
|
|
38
|
+
- **Case**: Private
|
|
39
|
+
4. Click **Save**
|
|
40
|
+
5. Confirm the changes when prompted (recalculation may take time)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Inventory Count
|
|
45
|
+
|
|
46
|
+
### Check 5 — Inventory Count Enabled
|
|
47
|
+
|
|
48
|
+
**Field** (from IndustriesSettings Metadata): `enableVisitInventoryEnabled`
|
|
49
|
+
|
|
50
|
+
**Pass condition**: Value is `true`.
|
|
51
|
+
|
|
52
|
+
**Remediation if failed**:
|
|
53
|
+
|
|
54
|
+
1. Navigate to **Setup > Feature Settings > Inventory Management > Inventory Count Settings**
|
|
55
|
+
2. Enable **Inventory Count**
|
|
56
|
+
3. Click **Save**
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Sales Account Plans
|
|
61
|
+
|
|
62
|
+
### Check 6 — Sales Account Plans Enabled
|
|
63
|
+
|
|
64
|
+
**Field** (from IndustriesSettings Metadata): `enableLSC4CEKeyAccountManagement`
|
|
65
|
+
|
|
66
|
+
**Pass condition**: Value is `true`.
|
|
67
|
+
|
|
68
|
+
**Remediation if failed**:
|
|
69
|
+
|
|
70
|
+
1. Navigate to **Setup > Feature Settings > Sales > Accounts > Account Plans > Sales Account Plans**
|
|
71
|
+
2. Toggle **Switch on Sales Account Plans** to enabled
|
|
72
|
+
3. Click **Save**
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Care Plans
|
|
77
|
+
|
|
78
|
+
### Check 7 — Care Plans Enabled
|
|
79
|
+
|
|
80
|
+
**Field** (from IndustriesSettings Metadata): `enableCarePlansPreference`
|
|
81
|
+
|
|
82
|
+
**Pass condition**: Value is `true`.
|
|
83
|
+
|
|
84
|
+
**Remediation if failed**:
|
|
85
|
+
|
|
86
|
+
1. Navigate to **Setup > Feature Settings > Program and Case Management > Care Plan Settings**
|
|
87
|
+
2. Enable **Care Plans**
|
|
88
|
+
3. Click **Save**
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Chatter Settings
|
|
93
|
+
|
|
94
|
+
### Check 8 — Chatter Enabled
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
sf data query --query "SELECT IsChatterEnabled FROM ChatterSettings" --target-org <org> --json --use-tooling-api
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Pass condition**: `IsChatterEnabled` is `true`.
|
|
101
|
+
|
|
102
|
+
**Remediation if failed**:
|
|
103
|
+
|
|
104
|
+
1. Navigate to **Setup > Feature Settings > Chatter > Chatter Settings**
|
|
105
|
+
2. Enable **Chatter Settings**
|
|
106
|
+
3. Click **Save**
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Data Protection and Privacy
|
|
111
|
+
|
|
112
|
+
### Check 9 — Data Protection and Privacy Enabled
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
sf data query --query "SELECT Metadata FROM PartyDataModelSettings" --target-org <org> --json --use-tooling-api
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Field** (from Metadata): `enableConsentManagement`
|
|
119
|
+
|
|
120
|
+
**Pass condition**: Value is `true`.
|
|
121
|
+
|
|
122
|
+
**Remediation if failed**:
|
|
123
|
+
|
|
124
|
+
1. Navigate to **Setup > Company Settings > Data Protection and Privacy**
|
|
125
|
+
2. Enable **Data Protection and Privacy**
|
|
126
|
+
3. Click **Save**
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Multiple Currencies
|
|
131
|
+
|
|
132
|
+
### Check 10 — Multiple Currencies Activated
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
sf data query --query "SELECT Id FROM CurrencyType LIMIT 1" --target-org <org> --json
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Pass condition**: The query succeeds and returns at least one record. If the `CurrencyType` object is queryable, Multi-Currency is activated.
|
|
139
|
+
|
|
140
|
+
**Alternative check**: If the above fails with `INVALID_TYPE`, Multi-Currency is NOT activated.
|
|
141
|
+
|
|
142
|
+
**Remediation if failed**:
|
|
143
|
+
|
|
144
|
+
1. Navigate to **Setup > Company Settings > Company Information**
|
|
145
|
+
2. Click **Edit**
|
|
146
|
+
3. Check **Activate Multiple Currencies**
|
|
147
|
+
4. Click **Save**
|
|
148
|
+
5. Confirm the activation when prompted
|
|
149
|
+
|
|
150
|
+
> **Warning**: Activating Multiple Currencies is irreversible. Include this warning when presenting remediation steps.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## State and Country/Territory Picklists
|
|
155
|
+
|
|
156
|
+
### Check 11 — State and Country/Territory Picklists Enabled
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
sf data query --query "SELECT Metadata FROM AddressSettings" --target-org <org> --json --use-tooling-api
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Pass condition**: The `Metadata` response contains a `countriesAndStates` object with country data populated. If `countriesAndStates` is present and non-null, the feature is enabled.
|
|
163
|
+
|
|
164
|
+
**Remediation if failed**:
|
|
165
|
+
|
|
166
|
+
1. Navigate to **Setup > Data > State and Country/Territory Picklists**
|
|
167
|
+
2. Click **Enable** to enable state and country/territory picklists
|
|
168
|
+
3. Follow the wizard to configure your picklist values
|
|
169
|
+
|
|
170
|
+
> **Warning**: Enabling State and Country/Territory Picklists is irreversible. Include this warning when presenting remediation steps.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Person Accounts
|
|
175
|
+
|
|
176
|
+
### Check 12 — Person Accounts Enabled
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
sf data query --query "SELECT Id FROM RecordType WHERE SobjectType = 'Account' AND IsPersonType = true LIMIT 1" --target-org <org> --json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Pass condition**: At least one record returned (a person-type RecordType exists on Account).
|
|
183
|
+
|
|
184
|
+
**Remediation if failed**:
|
|
185
|
+
|
|
186
|
+
1. Navigate to **Setup > Feature Settings > Sales > Accounts > Person Accounts**
|
|
187
|
+
2. Follow the steps to enable Person Accounts
|
|
188
|
+
3. This requires Record Types to be enabled on Account first
|
|
189
|
+
|
|
190
|
+
> **Warning**: Enabling Person Accounts is irreversible. Include this warning when presenting remediation steps.
|