@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,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fsc-actionable-segmentation-settings-configure
|
|
3
|
+
description: "Use this skill when users want to manages Actionable Segmentation (FSC Actionable List) admin settings. Trigger when users mention actionable, segmentation, settings, actionable segmentation settings."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0"
|
|
6
|
+
accessCheck: "(ActionableList.userHasActionableListAccess) || (SetupUtil.isSetupAdmin)"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Managing Actionable Segmentation Settings
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
Manages Actionable Segmentation (FSC Actionable List) admin settings. Three concept clusters: (1) two org prefs `listPref` (master feature toggle) and `adminConfigAccess` (admin-config edit perm) read together as a map and toggled individually; (2) install + status of the bundled CRM Analytics (Wave) application that backs the feature; (3) admin-list-view ops on `ActionableListDefinition` (ALD) records — toggle IsActive, upsert dataset columns and member statuses with server-enforced caps + uniqueness, and a canDelete + delete pair. `BatchCalcJobDefinition` lookup by anchor entity supports the ALD editor.
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
|
|
17
|
+
Enable the feature via save-pref(listPref=true), then install-wave-application; poll get-actionable-list-folder-status until it returns `CompletedStatus` (`InProgressStatus` while still running; `NotAvailable` before it starts). ALD edits need an existing ALD id (creation lives on industries-actionablelist-connect-api). Always call can-delete-actionable-list-definition before delete-actionable-list-definition.
|
|
18
|
+
|
|
19
|
+
## Critical Constraints
|
|
20
|
+
|
|
21
|
+
**Preconditions:**
|
|
22
|
+
|
|
23
|
+
- User must have ActionableList ActionableListAccess access. (check: `Actionable List access`)
|
|
24
|
+
- Caller must be a Setup admin. The backing bean gates BOTH the read (getActionableListAllConfigurations) and the write (savePref) with `!isSetupAdmin() && ORG_HAS_ACTIONABLE_LIST → NoAccessException`, so once ActionableList is enabled on the org a non-admin cannot read the config map or toggle any pref. Skill-wide, not step-scoped. (check: `Setup administrator access`)
|
|
25
|
+
|
|
26
|
+
**Destructive operations — require explicit user confirmation:**
|
|
27
|
+
|
|
28
|
+
- **`delete-actionable-list-definition`** — Delete the ActionableListDefinition; cascades to its dataset columns and member statuses. Pair with can-delete-actionable-list-definition to gate the call and avoid orphaning ActionableList rows.
|
|
29
|
+
- Rollback: No automatic rollback.
|
|
30
|
+
|
|
31
|
+
## Verification Checklist
|
|
32
|
+
|
|
33
|
+
After every write operation, confirm the effect by re-reading state:
|
|
34
|
+
|
|
35
|
+
- After `save-pref`: call `verify-save-pref` (`GET /headless/invoke/platform/actionable-segmentation-settings`)
|
|
36
|
+
- After `install-wave-application`: call `verify-install-wave-application` (`GET /headless/invoke/platform/actionable-segmentation-settings/get-actionable-list-folder-status`)
|
|
37
|
+
|
|
38
|
+
## Operations Reference
|
|
39
|
+
|
|
40
|
+
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
41
|
+
|
|
42
|
+
### Summary
|
|
43
|
+
|
|
44
|
+
| Operation | Purpose | Status | Call | Depends on |
|
|
45
|
+
|-----------|---------|--------|------|------------|
|
|
46
|
+
| `get-all-configurations` | read | proposed | `GET /headless/invoke/platform/actionable-segmentation-settings` | — |
|
|
47
|
+
| `get-datatable-data-types` | read | proposed | `GET /headless/invoke/platform/actionable-segmentation-settings/get-datatable-data-types` | — |
|
|
48
|
+
| `save-pref` | write | implemented | `PATCH /headless/invoke/platform/actionable-segmentation-settings/save-pref` | — |
|
|
49
|
+
| `get-actionable-list-folder-status` | read | proposed | `GET /headless/invoke/platform/actionable-segmentation-settings/get-actionable-list-folder-status` | — |
|
|
50
|
+
| `install-wave-application` | write | proposed | `PATCH /headless/invoke/platform/actionable-segmentation-settings/install-wave-application` | — |
|
|
51
|
+
| `update-actionable-list-member-status` | write | proposed | `PATCH /headless/invoke/platform/actionable-segmentation-settings/update-actionable-list-member-status` | — |
|
|
52
|
+
| `update-dataset-columns` | write | proposed | `PATCH /headless/invoke/platform/actionable-segmentation-settings/update-dataset-columns` | — |
|
|
53
|
+
| `toggle-actionable-list-definition` | write | proposed | `PATCH /headless/invoke/platform/actionable-segmentation-settings/toggle-actionable-list-definition` | — |
|
|
54
|
+
| `can-delete-actionable-list-definition` | read | proposed | `GET /headless/invoke/platform/actionable-segmentation-settings/can-delete-actionable-list-definition` | — |
|
|
55
|
+
| `delete-actionable-list-definition` | delete | proposed | `DELETE /headless/invoke/platform/actionable-segmentation-settings/delete-actionable-list-definition` | — |
|
|
56
|
+
| `get-batch-calc-job-definitions` | read | proposed | `GET /headless/invoke/platform/actionable-segmentation-settings/get-batch-calc-job-definitions` | — |
|
|
57
|
+
| `verify-save-pref` | verify | — | `GET /headless/invoke/platform/actionable-segmentation-settings` | `save-pref` |
|
|
58
|
+
| `verify-install-wave-application` | verify | — | `GET /headless/invoke/platform/actionable-segmentation-settings/get-actionable-list-folder-status` | `install-wave-application` |
|
|
59
|
+
|
|
60
|
+
### Read operations
|
|
61
|
+
|
|
62
|
+
#### `get-all-configurations`
|
|
63
|
+
|
|
64
|
+
Returns Map<String,Boolean> with `listPref` (master toggle) and `adminConfigAccess` (admin-config edit perm). Throws NoAccessException for non-Setup-admins when listPref is on. AURA-IS-CANONICAL — feature-scoped 2-key projection of org prefs.
|
|
65
|
+
|
|
66
|
+
**Call:** `GET /headless/invoke/platform/actionable-segmentation-settings` — status: `proposed`
|
|
67
|
+
|
|
68
|
+
#### `get-datatable-data-types`
|
|
69
|
+
|
|
70
|
+
Returns supported column types as Map<name,apiValue>: Boolean, Currency, Date, DateTime, Email, Location, Number, Percent, Phone, Text (default), Url. AURA-IS-CANONICAL — wraps internal Java enum, no public describe surface.
|
|
71
|
+
|
|
72
|
+
**Call:** `GET /headless/invoke/platform/actionable-segmentation-settings/get-datatable-data-types` — status: `proposed`
|
|
73
|
+
|
|
74
|
+
#### `get-actionable-list-folder-status`
|
|
75
|
+
|
|
76
|
+
Returns the bundled CRM Analytics (Wave) app install status, or null when caller lacks View Setup. Fixed 3-value enum: `CompletedStatus` (install finished successfully), `InProgressStatus` (install still running), `NotAvailable` (no install present / not started). AURA-IS-CANONICAL — controller hides the canonical Wave folder name; raw `/wave/folders/{id}` requires the agent to know it.
|
|
77
|
+
|
|
78
|
+
**Call:** `GET /headless/invoke/platform/actionable-segmentation-settings/get-actionable-list-folder-status` — status: `proposed`
|
|
79
|
+
|
|
80
|
+
#### `can-delete-actionable-list-definition`
|
|
81
|
+
|
|
82
|
+
Returns true when no ActionableList rows reference the given ALD (delete would not orphan). Call before delete-actionable-list-definition. AURA-IS-CANONICAL — wraps orphan-check semantics that may evolve; raw SOQL count bakes the current implementation in.
|
|
83
|
+
|
|
84
|
+
**Call:** `GET /headless/invoke/platform/actionable-segmentation-settings/can-delete-actionable-list-definition` — status: `proposed`
|
|
85
|
+
|
|
86
|
+
**Inputs:**
|
|
87
|
+
|
|
88
|
+
- `actionableListDefinitionId` *(`String`)*
|
|
89
|
+
|
|
90
|
+
#### `get-batch-calc-job-definitions`
|
|
91
|
+
|
|
92
|
+
Lists BatchCalcJobDefinition records whose AnchorEntity matches the given object API name. Powers the ALD editor's calc-job picker. AURA-IS-CANONICAL — BatchCalcJobDefinition is industries-internal; sObject substitution plausible but unverified.
|
|
93
|
+
|
|
94
|
+
**Call:** `GET /headless/invoke/platform/actionable-segmentation-settings/get-batch-calc-job-definitions` — status: `proposed`
|
|
95
|
+
|
|
96
|
+
**Inputs:**
|
|
97
|
+
|
|
98
|
+
- `anchorEntity` *(`String`)*
|
|
99
|
+
|
|
100
|
+
### Write operations
|
|
101
|
+
|
|
102
|
+
#### `save-pref`
|
|
103
|
+
|
|
104
|
+
Writes one org pref. `pref` is restricted to {listPref, adminConfigAccess}; any other name is ignored. Server-enforced gating inside savePref: a non-Setup-admin caller (with ActionableList enabled) gets NoAccessException; a Setup-admin caller must additionally have Data Pipelines/Insights enabled (InsightsAccessCheck.ORG_HAS_DATA_PIPELINES_APP AND ORG_HAS_DATA_PIPELINES_APP_ENABLED — else AuraHandledException "DataPipeLineNotEnabledError") and Data Processing Engine enabled (CalcserviceAccessCheck.ORG_HAS_CALCSERVICE — else "DPENotEnabledError"). AURA-IS-CANONICAL — the pref allowlist + admin cross-feature gate are not reconstructable via a raw pref / Metadata-API write.
|
|
105
|
+
|
|
106
|
+
**Call:** `PATCH /headless/invoke/platform/actionable-segmentation-settings/save-pref` — status: `implemented`
|
|
107
|
+
|
|
108
|
+
**Inputs:**
|
|
109
|
+
|
|
110
|
+
- `pref` *(`String`)* — Value for the pref field.
|
|
111
|
+
- `enabled` *(`boolean`)* — Whether d is enabled.
|
|
112
|
+
|
|
113
|
+
#### `install-wave-application`
|
|
114
|
+
|
|
115
|
+
Triggers install of the bundled CRM Analytics (Wave) app required for Actionable Segmentation. Setup-admin only. Idempotent at the service layer. AURA-IS-CANONICAL — controller hides the canonical templateApiName; sibling SORs RevenueInsightsSetup / ServiceUnifiedAnalytics wrap the install per-feature for the same reason.
|
|
116
|
+
|
|
117
|
+
**Call:** `PATCH /headless/invoke/platform/actionable-segmentation-settings/install-wave-application` — status: `proposed`
|
|
118
|
+
|
|
119
|
+
#### `update-actionable-list-member-status`
|
|
120
|
+
|
|
121
|
+
Upserts ActionableListMemberStatus rows on one ALD. inputJson is `{memberStatus:[{id?, statusIcon, status}]}`; entries without id created, with id modified, duplicate `status` rejected server-side. Returns ALL member statuses (max 100). AURA-IS-CANONICAL — batch + uniqueness not reconstructable via per-row sObject PATCH.
|
|
122
|
+
|
|
123
|
+
**Call:** `PATCH /headless/invoke/platform/actionable-segmentation-settings/update-actionable-list-member-status` — status: `proposed`
|
|
124
|
+
|
|
125
|
+
**Inputs:**
|
|
126
|
+
|
|
127
|
+
- `actionableListDefinitionId` *(`String`)* — Id of the actionable list definition.
|
|
128
|
+
- `inputJson` *(`String`)* — Value for the input json field.
|
|
129
|
+
|
|
130
|
+
#### `update-dataset-columns`
|
|
131
|
+
|
|
132
|
+
Upserts ActionableListDatasetColumn rows on one ALD. inputJson is `{datasetColumn:[{id, sourceFieldName, objectName, isDefault, dataDomain, dataType, isTypeAheadSearchEnabled}]}`. Server enforces MAX_DEF_ALDC_IN_ALD cap on default-flagged columns and rejects renaming the anchor object's Id column. AURA-IS-CANONICAL.
|
|
133
|
+
|
|
134
|
+
**Call:** `PATCH /headless/invoke/platform/actionable-segmentation-settings/update-dataset-columns` — status: `proposed`
|
|
135
|
+
|
|
136
|
+
**Inputs:**
|
|
137
|
+
|
|
138
|
+
- `actionableListDefinitionId` *(`String`)* — Id of the actionable list definition.
|
|
139
|
+
- `inputJson` *(`String`)* — Value for the input json field.
|
|
140
|
+
|
|
141
|
+
#### `toggle-actionable-list-definition`
|
|
142
|
+
|
|
143
|
+
Sets IsActive on the named ALD and returns the updated record (id + recordLink + named fields). AURA-IS-CANONICAL — Connect API has no PATCH on ALD; raw sObject PATCH returns 204, losing the controller's record-projection response.
|
|
144
|
+
|
|
145
|
+
**Call:** `PATCH /headless/invoke/platform/actionable-segmentation-settings/toggle-actionable-list-definition` — status: `proposed`
|
|
146
|
+
|
|
147
|
+
**Inputs:**
|
|
148
|
+
|
|
149
|
+
- `actionableListDefinitionId` *(`String`)* — Id of the actionable list definition.
|
|
150
|
+
- `isActive` *(`boolean`)* — Whether active is enabled.
|
|
151
|
+
|
|
152
|
+
### Verify operations
|
|
153
|
+
|
|
154
|
+
#### `verify-save-pref`
|
|
155
|
+
|
|
156
|
+
Read back the org-pref map via getActionableListAllConfigurations to confirm save-pref took effect; check the targeted key (`listPref` or `adminConfigAccess`) equals the value that was written.
|
|
157
|
+
|
|
158
|
+
**Call:** `GET /headless/invoke/platform/actionable-segmentation-settings`
|
|
159
|
+
|
|
160
|
+
**Depends on:** `save-pref`
|
|
161
|
+
|
|
162
|
+
#### `verify-install-wave-application`
|
|
163
|
+
|
|
164
|
+
Read the Wave folder install status via getActionableListFolderStatus to confirm install-wave-application kicked off and to poll until it reports `CompletedStatus` (`InProgressStatus` while the install is still running; `NotAvailable` before it starts).
|
|
165
|
+
|
|
166
|
+
**Call:** `GET /headless/invoke/platform/actionable-segmentation-settings/get-actionable-list-folder-status`
|
|
167
|
+
|
|
168
|
+
**Depends on:** `install-wave-application`
|
|
169
|
+
|
|
170
|
+
### Destructive operations
|
|
171
|
+
|
|
172
|
+
#### `delete-actionable-list-definition`
|
|
173
|
+
|
|
174
|
+
Delete the ActionableListDefinition; cascades to its dataset columns and member statuses. Pair with can-delete-actionable-list-definition to gate the call and avoid orphaning ActionableList rows.
|
|
175
|
+
|
|
176
|
+
**Call:** `DELETE /headless/invoke/platform/actionable-segmentation-settings/delete-actionable-list-definition` — status: `proposed`
|
|
177
|
+
|
|
178
|
+
**Inputs:**
|
|
179
|
+
|
|
180
|
+
- `actionableListDefinitionId` *(`String`)*
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fsc-digital-origination-bre-decision-matrix-foundation-create
|
|
3
|
+
parent: "digital-origination-bre-setup"
|
|
4
|
+
purpose: "Create, populate, and activate a Business Rules Engine decision matrix used by a lending BRE feature."
|
|
5
|
+
description: "Create a Business Rules Engine decision matrix, define its input and output columns, load its rows, and activate the version - the shared building block for the Digital Lending Disclosures and Consent, Document Upload, and STP applicant eligibility features. The matrix is a CalculationMatrix sObject (key prefix 0lI); its Type field MUST be set to \"Standard\" (the derived version MatrixType formula reads from it - a null Type makes the runtime lookup throw \"Unsupported Matrix type null\"). Columns are written through the BRE Taurus decision-matrix Connect builder API (columns auto-create version 1); rows are written by direct CalculationMatrixRow sObject insert with an engine-computed MD5-hash Name into a draft version; and the version is activated through the decision-matrix builder controller. Resolves an existing matrix by exact name before creating one, and validates activation with a fresh read AND a live BRE lookup."
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Digital Origination decision-matrix foundation
|
|
11
|
+
|
|
12
|
+
Create the Business Rules Engine **decision matrix** that a lending BRE feature depends on: a lookup of
|
|
13
|
+
input column values to output column values. This sibling owns the matrix lifecycle only — create,
|
|
14
|
+
columns, rows, activate. The calling feature sibling supplies the matrix name, the column contract, and
|
|
15
|
+
the concrete rows, and consumes the returned matrix and version IDs.
|
|
16
|
+
|
|
17
|
+
A decision matrix here is the admin-typed lookup surface from the help articles (Business Rules Engine →
|
|
18
|
+
Lookup Tables → New → Decision Matrix), **not** the source-object decision *table* used by
|
|
19
|
+
`digital-origination-pricing-setup`. Do not use the decision-table Connect API for this work.
|
|
20
|
+
|
|
21
|
+
## The matrix is a CalculationMatrix, not a DecisionMatrixDefinition
|
|
22
|
+
|
|
23
|
+
Org-verified: the FSC Digital Lending decision matrix is stored as a **`CalculationMatrix`** sObject
|
|
24
|
+
(key prefix `0lI`), with `CalculationMatrixVersion` (`0lN`), `CalculationMatrixColumn` (`0lJ`), and
|
|
25
|
+
`CalculationMatrixRow` (`9mt`). The BRE `DecisionMatrixDefinition`/`DecisionMatrixDefinitionVersion`
|
|
26
|
+
sObjects (prefixes `9QN`/`9QO`) are a **different model** — the Connect decision-matrix API rejects a
|
|
27
|
+
`9QN` id with `INVALID_ID_FIELD`. Always create and address the matrix as a `CalculationMatrix`.
|
|
28
|
+
|
|
29
|
+
There is **no Connect "create matrix definition" operation.** The matrix definition is created by a
|
|
30
|
+
direct `CalculationMatrix` sObject insert (or, the officially supported path, a Metadata API deploy of a
|
|
31
|
+
`DecisionMatrixDefinition` metadata component with `type` set). Do not look for a
|
|
32
|
+
`POST /connect/business-rules/...` create op — it does not exist.
|
|
33
|
+
|
|
34
|
+
## The single most important field: `CalculationMatrix.Type`
|
|
35
|
+
|
|
36
|
+
**Org-verified root cause — set `CalculationMatrix.Type` or the matrix will never evaluate.**
|
|
37
|
+
`CalculationMatrixVersion.MatrixType` is a **derived formula field** that mirrors the parent
|
|
38
|
+
`CalculationMatrix.Type` at query time (it is read-only — createable=false, updateable=false — so nothing
|
|
39
|
+
writes it directly). A raw `CalculationMatrix` sObject insert leaves `Type` null, so `MatrixType` reads
|
|
40
|
+
null on every version forever, and the runtime lookup dispatch (`Standard` vs `Grouped`) falls through to
|
|
41
|
+
`throw "Unsupported Matrix type null"` — surfaced to callers as *"there isn't any output for the specified
|
|
42
|
+
input parameters."* The same null also 500s the Connect rows write.
|
|
43
|
+
|
|
44
|
+
**Fix / requirement:** immediately after inserting the `CalculationMatrix`, PATCH
|
|
45
|
+
`Type = "Standard"` (a plain settable STATICENUM; enum `CalcMatrixType` = `Standard` | `Grouped` — use
|
|
46
|
+
`Standard` unless you genuinely need grouped semantics). Verify with a query that
|
|
47
|
+
`CalculationMatrixVersion.MatrixType` reads `Standard`, not null. The supported *creation* path — a
|
|
48
|
+
Metadata API deploy of a `DecisionMatrixDefinition` with a required `type` — sets `Type` for you; a raw
|
|
49
|
+
sObject insert does not, so you must PATCH it.
|
|
50
|
+
|
|
51
|
+
## Preconditions and input contract
|
|
52
|
+
|
|
53
|
+
Require from the calling feature sibling:
|
|
54
|
+
|
|
55
|
+
- Target-org alias and acting admin.
|
|
56
|
+
- Exact matrix **Name**.
|
|
57
|
+
- Column contract: for each column, the header name/apiName, header type (`Input` or `Output`), and
|
|
58
|
+
data type. Use the exact enum the `CalculationMatrixColumn` describe accepts — verified tokens:
|
|
59
|
+
`ColumnType` = `Input` | `Output`; `DataType` = `Text` | `Number` | `NumberRange` | `TextRange` |
|
|
60
|
+
`Currency` | `Percent` | `Boolean`. Map help-article labels (e.g. "Number Range") to these tokens
|
|
61
|
+
(`NumberRange`) — never submit the English label.
|
|
62
|
+
- Row contract: one or more rows, each mapping input values to output values.
|
|
63
|
+
|
|
64
|
+
Confirm Rule Engine Designer access from the `permissions` sibling before creating a matrix.
|
|
65
|
+
|
|
66
|
+
## Corpus operations and sObjects to use
|
|
67
|
+
|
|
68
|
+
**Create the matrix definition (sObject insert).** Insert a `CalculationMatrix` record — required field
|
|
69
|
+
`Name`, optional `Description`. Capture the returned id (`0lI…`) as `matrixId`. **Then PATCH
|
|
70
|
+
`CalculationMatrix.Type = "Standard"`** (see "The single most important field" above) — without it the
|
|
71
|
+
matrix never evaluates.
|
|
72
|
+
|
|
73
|
+
**Columns — approved BRE Taurus decision-matrix Connect API**
|
|
74
|
+
(SOR `connect-api/bre-taurus/industries-interaction-decisionmatrix-connect-api__sfdc.industries.interaction.decisionmatrix.connect.api_oas_67.0`):
|
|
75
|
+
|
|
76
|
+
| Purpose | Step | Endpoint |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| Add columns | `post-decision-matrix-columns` | `POST /connect/omnistudio/decision-matrices/{matrixId}/columns` |
|
|
79
|
+
| Verify columns | `verify-columns` / `get-decision-matrix-columns` | `GET /connect/omnistudio/decision-matrices/{matrixId}/columns` |
|
|
80
|
+
| Read rows | `verify-rows` / `get-decision-matrix-rows` | `GET /connect/omnistudio/decision-matrices/{matrixId}/versions/{versionId}/rows` |
|
|
81
|
+
|
|
82
|
+
Rows are written by **direct `CalculationMatrixRow` sObject insert**, not a Connect POST — see the rows
|
|
83
|
+
section below. The Connect `post-decision-matrix-rows` op exists but 500s on the verified org.
|
|
84
|
+
|
|
85
|
+
Each column object: `{name, apiName, columnType, dataType, displaySequence}` — and, for a `NumberRange`
|
|
86
|
+
input column, `rangeValues` (see below). **The first `post-decision-matrix-columns` call auto-creates
|
|
87
|
+
version 1** (`CalculationMatrixVersion`, `0lN`). Do **not** insert a `CalculationMatrixVersion` yourself —
|
|
88
|
+
inserting it before columns fails ("needs at least one input and one output column"), and inserting it
|
|
89
|
+
after fails ("version number 1 already in use"). Read the auto-created version id with a SOQL query on
|
|
90
|
+
`CalculationMatrixVersion` filtered by `CalculationMatrixId`.
|
|
91
|
+
|
|
92
|
+
**`NumberRange` banding is a column property, set at column-creation time.** A `NumberRange` input column
|
|
93
|
+
carries a `rangeValues` string — a comma-separated list of band boundaries (org-verified shape, e.g.
|
|
94
|
+
`"0,740,10000"` for two bands 0–739 and 740–9999). It **cannot** be edited later: once the version is
|
|
95
|
+
enabled the Connect columns-POST returns "You can't edit the column data in an enabled Decision Matrix
|
|
96
|
+
version," and once the matrix has more than one version it returns "Can't edit columns in a Decision
|
|
97
|
+
Matrix with more than 1000 rows or more than one version." So set `rangeValues` on the very first
|
|
98
|
+
`post-decision-matrix-columns` call. A column posted without it reads back `rangeValues: null` and the
|
|
99
|
+
runtime lookup will never match a range row.
|
|
100
|
+
|
|
101
|
+
**Rows — direct `CalculationMatrixRow` sObject insert with an engine-computed MD5-hash `Name`
|
|
102
|
+
(org-verified).** Insert each row as a `CalculationMatrixRow` sObject. Fields: `CalculationMatrixVersionId`
|
|
103
|
+
(the ONLY FK — there is no `CalculationMatrixId` field on the row), `Name` (the engine hash, below),
|
|
104
|
+
`InputData` (JSON string), `OutputData` (JSON string). Direct inserts **do** materialize into the runtime
|
|
105
|
+
lookup **once `CalculationMatrix.Type` is set** (the earlier belief that they don't was a
|
|
106
|
+
misdiagnosis — the real blocker was the null `Type`). The Connect `post-decision-matrix-rows` write 500s
|
|
107
|
+
on the verified org (`UNKNOWN_EXCEPTION`) regardless of body, so do not depend on it.
|
|
108
|
+
|
|
109
|
+
- **The `Name` MUST be the engine's row hash, or the lookup won't find the row.** Algorithm (this is the
|
|
110
|
+
exact hash the matrix engine computes to match a row at lookup time, reproduced here): over the **input columns only**, sort keys in natural String order;
|
|
111
|
+
for each build `columnName + String.valueOf(value).toLowerCase()` (the column `Name` is NOT lowercased,
|
|
112
|
+
the value IS); join with `""` (no separator); MD5 the UTF-8 bytes; hex-encode lowercase (32 chars).
|
|
113
|
+
Example (`CreditScore` boundary `740`): `md5("CreditScore740")` = `f3b5ae55316f2fb03e4b416d3b80940e`.
|
|
114
|
+
- **`InputData` shape:** for a `NumberRange` column, the **band-boundary value as a string**
|
|
115
|
+
(`{"CreditScore":"0"}`, `{"CreditScore":"740"}` — NOT `{"min":0,"max":739}`; the boundary is the hashed
|
|
116
|
+
value). For `Text`, the literal value. `OutputData` carries the raw typed output (`{"IsSTP":true}`,
|
|
117
|
+
`{"docTypeLabel":"ApplicationForm"}`, `{"DataUsePurpose":"<id>"}`).
|
|
118
|
+
- **Rows can only be inserted/deleted while the version is a draft (`IsEnabled=false`)** — an enabled
|
|
119
|
+
version rejects row DML. Set `IsEnabled=false` first. To change an existing row, DELETE then INSERT
|
|
120
|
+
(an in-place UPDATE is rejected by the matrix save-hook). To add rows to an already-enabled matrix,
|
|
121
|
+
disable the version (or append a new draft version — see step 4a), do the row DML, then re-activate.
|
|
122
|
+
|
|
123
|
+
Verify with the `get-decision-matrix-rows` GET (or a SOQL on `CalculationMatrixRow`), then prove
|
|
124
|
+
materialization with a live BRE lookup.
|
|
125
|
+
|
|
126
|
+
**Activate — decision-matrix builder controller** (SOR
|
|
127
|
+
`wizard-ui-industries-interaction-decisionmatrix-components`):
|
|
128
|
+
|
|
129
|
+
| Purpose | Step | Endpoint |
|
|
130
|
+
|---|---|---|
|
|
131
|
+
| Activate a matrix version | `decision-matrix-version-controller-activate-d-m-version` | `PATCH /headless/invoke/industries/industries-interaction-decisionmatrix/activate-dmversion` (body `{decisionMatrixVersionId}`) |
|
|
132
|
+
|
|
133
|
+
Related builder ops exist (`get-decision-matrix-definition-id`, `create-new-dmversion`,
|
|
134
|
+
`is-missing-columns-in-dm`) but `create-new-dmversion` needs an existing anchor version, so it is for
|
|
135
|
+
adding a **second** version to an already-built matrix, not the initial build.
|
|
136
|
+
|
|
137
|
+
## Create-or-reuse algorithm
|
|
138
|
+
|
|
139
|
+
1. **Resolve existing.** SOQL `CalculationMatrix` by exact `Name`. If found, capture its id and its
|
|
140
|
+
latest `CalculationMatrixVersion`; read its columns/rows via the Connect GETs. Do not create a
|
|
141
|
+
duplicate merely because an id was not handed in. (`GET /connect/omnistudio/decision-matrices` search
|
|
142
|
+
is gated by `orgHasInteractionCalculationAccess` and may 400 — fall back to SOQL.)
|
|
143
|
+
2. **Create the matrix if absent.** Insert a `CalculationMatrix` sObject with the requested `Name`.
|
|
144
|
+
Capture `matrixId`. **PATCH `Type = "Standard"`** and confirm the version's derived `MatrixType` reads
|
|
145
|
+
`Standard` (not null) — this is the step that makes the matrix evaluable at runtime.
|
|
146
|
+
3. **Add columns (with `NumberRange` banding).** Call `post-decision-matrix-columns` with the full column
|
|
147
|
+
contract — including `rangeValues` on any `NumberRange` input column, because it cannot be set later —
|
|
148
|
+
then confirm with `get-decision-matrix-columns`. This auto-creates version 1 — read its id from
|
|
149
|
+
`CalculationMatrixVersion` (filter on `CalculationMatrixId`). Set input attributes on input columns
|
|
150
|
+
only.
|
|
151
|
+
4. **Add rows by direct sObject insert.** For the auto-created draft version 1, insert each
|
|
152
|
+
`CalculationMatrixRow` with `CalculationMatrixVersionId`, the MD5-hash `Name`, `InputData`
|
|
153
|
+
(`NumberRange` = boundary-scalar string, `Text` = literal), and `OutputData` (raw typed value). Confirm
|
|
154
|
+
with the `get-decision-matrix-rows` GET (or SOQL) that every row round-trips. The version must be a
|
|
155
|
+
draft (`IsEnabled=false`) for the insert; the auto-created v1 is a draft until you activate it.
|
|
156
|
+
4a. **Editing rows on an already-enabled matrix.** If the target version is enabled, set
|
|
157
|
+
`IsEnabled=false` first (or append a new draft `CalculationMatrixVersion` — the `create-new-dmversion`
|
|
158
|
+
clone API returns "Cannot create definition record" on sObject-created matrices, so a direct version
|
|
159
|
+
insert with `IsEnabled=false` and the next `VersionNumber` is the fallback), do the row DML
|
|
160
|
+
(DELETE+INSERT to change a row — in-place UPDATE is rejected by the save-hook), then re-activate.
|
|
161
|
+
5. **Activate.** Call `activate-dmversion` with the version id, then re-read the
|
|
162
|
+
`CalculationMatrixVersion`. Activation is confirmed when `StartDateTime` is set and `EndDateTime` is
|
|
163
|
+
null (there is no `Status` field on the version and no `ActiveVersionId` on the matrix). A 200 alone
|
|
164
|
+
is not proof — require the fresh read.
|
|
165
|
+
5a. **Prove runtime materialization.** Call the live BRE lookup
|
|
166
|
+
`POST /connect/business-rules/decision-matrices/{Name}` with a representative input and confirm it
|
|
167
|
+
returns the expected output (not "there isn't any output for the specified input parameters"). An
|
|
168
|
+
Active window with a failing lookup means the rows did not materialize — revisit step 4.
|
|
169
|
+
6. **Setup checkpoint fallback.** If `activate-dmversion` is rejected or the version never shows an
|
|
170
|
+
active window, stop at the Setup checkpoint: App Launcher → Business Rules Engine → Lookup Tables →
|
|
171
|
+
open the matrix → open the version → Save and Activate. Resume only after re-reading the active
|
|
172
|
+
window. Do not report an in-progress or draft matrix as active.
|
|
173
|
+
|
|
174
|
+
## Idempotency and rollback
|
|
175
|
+
|
|
176
|
+
- Reuse an exact-match matrix (same columns, same header/data types) and exact-match rows.
|
|
177
|
+
- Do not create suffixed duplicates such as `IsSTPApplication2` automatically. On a shape mismatch,
|
|
178
|
+
stop and present the diff.
|
|
179
|
+
- Rollback for rows added by this run is a targeted removal; do not delete a matrix that a feature or
|
|
180
|
+
OmniScript already depends on without explicit approval.
|
|
181
|
+
|
|
182
|
+
## Output contract
|
|
183
|
+
|
|
184
|
+
Return matrix Name, `CalculationMatrix` id (`0lI…`), `CalculationMatrixVersion` id (`0lN…`), active
|
|
185
|
+
status (the version's `StartDateTime`/`EndDateTime` window), the verified column list (with
|
|
186
|
+
header/data types), and the verified row set. These IDs are the handoff back to the calling feature
|
|
187
|
+
sibling.
|
|
188
|
+
|
|
189
|
+
## Definition of done
|
|
190
|
+
|
|
191
|
+
The requested matrix exists exactly once as a `CalculationMatrix`, carries the exact columns and rows
|
|
192
|
+
supplied by the feature sibling, its version reads active (StartDateTime set, EndDateTime null) on a
|
|
193
|
+
fresh read, **and a live BRE lookup against the matrix returns the expected output** (proving the rows
|
|
194
|
+
materialized into the runtime index). A matrix that is Active but whose lookup returns "no output for the
|
|
195
|
+
specified input" is NOT done. A manual activation checkpoint left incomplete means this sibling is
|
|
196
|
+
partial.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fsc-digital-origination-bre-disclosures-consent-configure
|
|
3
|
+
parent: "digital-origination-bre-setup"
|
|
4
|
+
purpose: "Set up disclosure and consent for a lending product via a decision matrix, a data use purpose, and an authorization form."
|
|
5
|
+
description: "Set up Disclosures and Consent for Digital Lending: a Business Rules Engine decision matrix that matches a lending product and applicant type to the data use purpose that defines why consent and disclosure are collected, plus the supporting home loan product, Data Use Purpose record, and locale-scoped Authorization Form. Drives the shared decision-matrix-foundation sibling for the matrix, and handles the Data Use Purpose and Authorization Form objects through standard sObject REST with describe-first discovery. Never invents disclosure text, products, or applicant types."
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Digital Origination disclosure and consent
|
|
11
|
+
|
|
12
|
+
Automate which disclosure-and-consent applies to a lending application. A decision matrix matches the
|
|
13
|
+
lending product and applicant type to a **Data Use Purpose** record (the reason consent and disclosure
|
|
14
|
+
are collected); an **Authorization Form** holds the locale-scoped text the applicant sees. This sibling
|
|
15
|
+
owns the consent matrix and its supporting records. It does not create OmniScripts or document types.
|
|
16
|
+
|
|
17
|
+
Source: Salesforce Help "Disclosure and Consent for Digital Lending" and its use-case example. Concept:
|
|
18
|
+
*disclosure* is information the institution must share with a customer; *consent* is the permission the
|
|
19
|
+
customer grants the institution to act on their behalf.
|
|
20
|
+
|
|
21
|
+
## Required inputs
|
|
22
|
+
|
|
23
|
+
- Target-org alias and acting admin.
|
|
24
|
+
- The lending Product (create or reuse) and the applicant type (the example uses `Primary Applicant`).
|
|
25
|
+
- The Data Use Purpose definition — the business reason for collecting consent/disclosure.
|
|
26
|
+
- The disclosure-and-consent text and its locale (the example uses English).
|
|
27
|
+
|
|
28
|
+
Help-article values are examples, never customer defaults. A missing product, purpose, or text is a
|
|
29
|
+
user decision, not something to infer.
|
|
30
|
+
|
|
31
|
+
## Decision matrix contract
|
|
32
|
+
|
|
33
|
+
Drive nested `decision-matrix-foundation` to create and activate a decision matrix with:
|
|
34
|
+
|
|
35
|
+
| Column header (apiName) | columnType | dataType |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `ProductId` | `Input` | `Text` |
|
|
38
|
+
| `ApplicantType` | `Input` | `Text` |
|
|
39
|
+
| `Level` | `Input` | `Text` |
|
|
40
|
+
| `DataUsePurpose` | `Output` | `Text` |
|
|
41
|
+
|
|
42
|
+
Use the exact `CalculationMatrixColumn` enum tokens (`Input`/`Output`, `Text`); do not submit English
|
|
43
|
+
labels. The `DataUsePurpose` output cell holds the activated Data Use Purpose Id.
|
|
44
|
+
|
|
45
|
+
## Supporting records (sObject REST, describe-first)
|
|
46
|
+
|
|
47
|
+
The Data Use Purpose and Authorization Form objects have no dedicated corpus SOR. Handle them through
|
|
48
|
+
standard sObject REST, describing each object first and binding only to field API names the describe
|
|
49
|
+
returns. Never guess a field name from a UI label. Org-verified objects on a Digital Lending org:
|
|
50
|
+
`DataUsePurpose` (`0ZW`, has `IsActive`), `AuthorizationForm` (`0cI`, has `DefaultAuthFormTextId`,
|
|
51
|
+
`EffectiveFromDate`/`EffectiveToDate`), `AuthorizationFormText` (`0cN`, has `Locale`/`LocaleSelection`
|
|
52
|
+
picklists — English is `en_US` — plus `IsActive` and `DetailAuthorizationFormText`), and the
|
|
53
|
+
`AuthorizationFormDataUse` junction (`0cM`, links `AuthorizationFormId` + `DataUsePurposeId`).
|
|
54
|
+
|
|
55
|
+
**Order matters — each step gates the next (org-verified):**
|
|
56
|
+
|
|
57
|
+
1. **Product.** Reuse an existing lending product or create one (`Product2`) with the admin-approved
|
|
58
|
+
Name, Product Code, and Active = true. Capture its Id.
|
|
59
|
+
2. **Data Use Purpose.** Query for an existing record matching the approved purpose before creating
|
|
60
|
+
one. Create it with the approved definition (do not activate it yet — activation fails until it is
|
|
61
|
+
linked to an Authorization Form). Capture its Id.
|
|
62
|
+
3. **Authorization Form.** Create the `AuthorizationForm`.
|
|
63
|
+
4. **Authorization Form Text.** Create an `AuthorizationFormText` with `Locale`/`LocaleSelection` =
|
|
64
|
+
`en_US`, `IsActive` = true, and the approved disclosure-and-consent text in
|
|
65
|
+
`DetailAuthorizationFormText`.
|
|
66
|
+
5. **Set the form's default text.** Update the `AuthorizationForm.DefaultAuthFormTextId` to the text
|
|
67
|
+
created in step 4. The next step fails ("Authorization Form doesn't have default text assigned") if
|
|
68
|
+
this is skipped.
|
|
69
|
+
6. **Link form to purpose.** Create the `AuthorizationFormDataUse` junction referencing the form and the
|
|
70
|
+
Data Use Purpose.
|
|
71
|
+
7. **Activate the Data Use Purpose** (`IsActive` = true) and confirm with a fresh read. This fails
|
|
72
|
+
("must be associated with an Authorization Form") if the junction in step 6 is missing.
|
|
73
|
+
|
|
74
|
+
If describe shows either object is not present in the target org, stop and report it as a blocker
|
|
75
|
+
(missing feature/package artifact) rather than deploying an ad-hoc custom object.
|
|
76
|
+
|
|
77
|
+
## Matrix row
|
|
78
|
+
|
|
79
|
+
After the supporting records exist and the Data Use Purpose is active, hand the row to
|
|
80
|
+
`decision-matrix-foundation`:
|
|
81
|
+
|
|
82
|
+
- `ProductId` = the created/reused Product Id
|
|
83
|
+
- `ApplicantType` = the approved applicant type (example: `Primary Applicant`)
|
|
84
|
+
- `Level` = the application-form product level (example: `ApplicationFormProduct`)
|
|
85
|
+
- `DataUsePurpose` = the activated Data Use Purpose Id
|
|
86
|
+
|
|
87
|
+
Then activate the matrix through `decision-matrix-foundation` and confirm Active on a fresh read.
|
|
88
|
+
|
|
89
|
+
## Idempotency and rollback
|
|
90
|
+
|
|
91
|
+
- Reuse an exact-match product, purpose, form, and matrix row rather than creating duplicates.
|
|
92
|
+
- Do not silently overwrite differing disclosure text or a differing purpose; present current vs
|
|
93
|
+
requested and ask.
|
|
94
|
+
- Rollback removes only records created by this run, and only after confirming no active matrix row or
|
|
95
|
+
application depends on them.
|
|
96
|
+
|
|
97
|
+
## Output contract
|
|
98
|
+
|
|
99
|
+
Return the Product Id, Data Use Purpose Id and active status, Authorization Form Id and locale, the
|
|
100
|
+
matrix Name/ID/version with its verified row, and the activation evidence.
|
|
101
|
+
|
|
102
|
+
## Definition of done
|
|
103
|
+
|
|
104
|
+
The consent decision matrix is Active with the linking row, the Data Use Purpose is active, and the
|
|
105
|
+
Authorization Form exists with the English locale and is linked to the purpose. Any missing object or
|
|
106
|
+
unresolved checkpoint is reported; a partial run is never reported as complete.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fsc-digital-origination-bre-document-upload-configure
|
|
3
|
+
parent: "digital-origination-bre-setup"
|
|
4
|
+
purpose: "Set up the document-upload decision matrix that maps a lending product and applicant type to the document types an applicant must upload."
|
|
5
|
+
description: "Set up Document Upload for Digital Lending: a Business Rules Engine decision matrix that determines which document types an applicant must upload based on the lending product, applicant type, and level, returning a document type label. Drives the shared decision-matrix-foundation sibling for the matrix, and reuses the approved Document Type and Document Category entity SORs for the supporting metadata. Resolves and reuses existing document types by API name, and never invents products, applicant types, or document types."
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Digital Origination document upload
|
|
11
|
+
|
|
12
|
+
Determine which document types an applicant must upload for a lending application. A decision matrix
|
|
13
|
+
matches the lending product, applicant type, and level to a document type label. This sibling owns the
|
|
14
|
+
document-upload matrix and its supporting document-type metadata. It does not create consent records or
|
|
15
|
+
OmniScripts.
|
|
16
|
+
|
|
17
|
+
Source: Salesforce Help "Create a Decision Matrix for Digital Lending" (document upload). The example
|
|
18
|
+
matches a home loan product and applicant type to the document types required for the application.
|
|
19
|
+
|
|
20
|
+
## Required inputs
|
|
21
|
+
|
|
22
|
+
- Target-org alias and acting admin.
|
|
23
|
+
- The lending Product (create or reuse).
|
|
24
|
+
- The applicant type (the example uses `Primary Applicant`) and level (example: `ApplicationFormProduct`).
|
|
25
|
+
- The Document Type(s) an applicant must upload, with their exact API names.
|
|
26
|
+
|
|
27
|
+
Help-article values are examples, never customer defaults.
|
|
28
|
+
|
|
29
|
+
## Decision matrix contract
|
|
30
|
+
|
|
31
|
+
Drive nested `decision-matrix-foundation` to create and activate a decision matrix (the example names it
|
|
32
|
+
`LendingDocumentTypes`) with:
|
|
33
|
+
|
|
34
|
+
| Column header (apiName) | columnType | dataType |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| `productId` | `Input` | `Text` |
|
|
37
|
+
| `applicantType` | `Input` | `Text` |
|
|
38
|
+
| `level` | `Input` | `Text` |
|
|
39
|
+
| `docTypeLabel` | `Output` | `Text` |
|
|
40
|
+
|
|
41
|
+
Use the exact `CalculationMatrixColumn` enum tokens (`Input`/`Output`, `Text`); do not submit English
|
|
42
|
+
labels.
|
|
43
|
+
|
|
44
|
+
## Supporting metadata (reuse Document Type / Document Category entity SORs)
|
|
45
|
+
|
|
46
|
+
Reuse the approved entity SORs rather than deploying custom objects (find each with `discover`, then
|
|
47
|
+
`describe` it for its operations):
|
|
48
|
+
|
|
49
|
+
- The **Document Type** entity SOR — `describe`, `list`, `get-by-id`, `create`, `update`.
|
|
50
|
+
- The **Document Category** entity SOR — same operations, for the category the type belongs to.
|
|
51
|
+
- The **Document Category Document Type** entity SOR — the junction linking a category to a type, when
|
|
52
|
+
the org models that relationship.
|
|
53
|
+
|
|
54
|
+
1. **Product.** Reuse or create the lending `Product2` (Name, Product Code, Family/Type, Active) and
|
|
55
|
+
capture its Id.
|
|
56
|
+
2. **Document Type.** Query `DocumentType` (`list` / by name) for an existing type matching the required
|
|
57
|
+
document. If present, capture its **API name** and reuse it. If absent, `create` it with the approved
|
|
58
|
+
values, and create/link its `DocumentCategory` and `DocumentCategoryDocumentType` where the org
|
|
59
|
+
requires the category relationship. Save each Document Type's API name for the matrix row.
|
|
60
|
+
|
|
61
|
+
Do not invent a document type from a UI label; resolve the API name from the create/describe response.
|
|
62
|
+
|
|
63
|
+
**If the `DocumentType` sObject is not present on the org** (org-observed: not all Digital Lending orgs
|
|
64
|
+
have it), the matrix still builds — `docTypeLabel` is a free `Text` output column, so populate it with
|
|
65
|
+
the intended label string and report the missing `DocumentType` object as a supporting-metadata gap
|
|
66
|
+
rather than deploying a custom object.
|
|
67
|
+
|
|
68
|
+
## Matrix row
|
|
69
|
+
|
|
70
|
+
Hand the row to `decision-matrix-foundation` after the product and document type(s) exist:
|
|
71
|
+
|
|
72
|
+
- `productId` = the created/reused Product Id
|
|
73
|
+
- `applicantType` = the approved applicant type (example: `Primary Applicant`)
|
|
74
|
+
- `level` = the level (example: `ApplicationFormProduct`)
|
|
75
|
+
- `docTypeLabel` = the Document Type API name saved above
|
|
76
|
+
|
|
77
|
+
Add one row per required product / applicant-type / document-type combination. Then activate the matrix
|
|
78
|
+
through `decision-matrix-foundation` and confirm Active on a fresh read.
|
|
79
|
+
|
|
80
|
+
## Idempotency and rollback
|
|
81
|
+
|
|
82
|
+
- Reuse an exact-match product, document type, and matrix row rather than creating duplicates.
|
|
83
|
+
- Do not silently overwrite a differing document type; present current vs requested and ask.
|
|
84
|
+
- Rollback removes only records created by this run, and only after confirming no active matrix row
|
|
85
|
+
depends on them. Never auto-delete a shared Document Type or Category.
|
|
86
|
+
|
|
87
|
+
## Output contract
|
|
88
|
+
|
|
89
|
+
Return the Product Id, the Document Type API name(s) and IDs (with any Category / junction IDs), and the
|
|
90
|
+
matrix Name/ID/version with its verified row(s) and activation evidence.
|
|
91
|
+
|
|
92
|
+
## Definition of done
|
|
93
|
+
|
|
94
|
+
The document-upload decision matrix is Active with the intended row(s), and every referenced Document
|
|
95
|
+
Type exists and is linked through the row. Any missing metadata or unresolved checkpoint is reported; a
|
|
96
|
+
partial run is never reported as complete.
|