@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.
Files changed (484) hide show
  1. package/package.json +1 -1
  2. package/skills/agentforce-gpt-email-generation-configure/SKILL.md +312 -0
  3. package/skills/agentforce-offline-experimentation-run/SKILL.md +253 -0
  4. package/skills/agentforce-offline-experimentation-run/scripts/build_report.py +796 -0
  5. package/skills/agentforce-offline-experimentation-run/scripts/resolve-token.sh +111 -0
  6. package/skills/agentforce-offline-experimentation-run/scripts/sfap_replay.py +1053 -0
  7. package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +64 -0
  8. package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +46 -0
  9. package/skills/automation-company-profile-info-query/SKILL.md +51 -0
  10. package/skills/automation-digital-wallet-configure/SKILL.md +689 -0
  11. package/skills/automation-flow-coordinate/SKILL.md +95 -0
  12. package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +1569 -0
  13. package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +96 -0
  14. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +23 -0
  15. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +31 -0
  16. package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +179 -0
  17. package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +13 -0
  18. package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +83 -0
  19. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +69 -0
  20. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +274 -0
  21. package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +192 -0
  22. package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +130 -0
  23. package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +92 -0
  24. package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +88 -0
  25. package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +152 -0
  26. package/skills/automation-flow-coordinate/references/elements/start/start.md +539 -0
  27. package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +152 -0
  28. package/skills/automation-flow-coordinate/references/elements/wait/wait.md +497 -0
  29. package/skills/automation-flow-coordinate/references/recipes/author/author.md +868 -0
  30. package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +300 -0
  31. package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +292 -0
  32. package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +323 -0
  33. package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +109 -0
  34. package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +219 -0
  35. package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +180 -0
  36. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +175 -0
  37. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +255 -0
  38. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +212 -0
  39. package/skills/automation-flow-coordinate/references/resources/variable/variable.md +171 -0
  40. package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +786 -0
  41. package/skills/automation-flow-coordinate/references/shared/end/end.md +267 -0
  42. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +69 -0
  43. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +80 -0
  44. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +116 -0
  45. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +321 -0
  46. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +320 -0
  47. package/skills/automation-flow-coordinate/references/shared/server-functions.md +597 -0
  48. package/skills/automation-sandbox-post-copy-config-generate/SKILL.md +21 -11
  49. package/skills/automation-sandbox-post-copy-config-generate/assets/config_template.json +10 -0
  50. package/skills/automation-sandbox-post-copy-config-generate/assets/json_schema.json +33 -1
  51. package/skills/automation-sandbox-post-copy-config-generate/references/configuration_catalog.md +44 -1
  52. package/skills/automation-sandbox-post-copy-configure/SKILL.md +132 -124
  53. package/skills/automation-sandbox-post-copy-configure/references/flow_activation_path.md +151 -0
  54. package/skills/automation-sandbox-post-copy-configure/references/scheduled_apex_path.md +55 -9
  55. package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +69 -0
  56. package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +78 -0
  57. package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +373 -0
  58. package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +273 -0
  59. package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +259 -0
  60. package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +369 -0
  61. package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +542 -0
  62. package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +159 -0
  63. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +349 -0
  64. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +505 -0
  65. package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +380 -0
  66. package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +567 -0
  67. package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +159 -0
  68. package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +360 -0
  69. package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +539 -0
  70. package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +358 -0
  71. package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +602 -0
  72. package/skills/commerce-b2b-store-configure/SKILL.md +251 -0
  73. package/skills/commerce-credit-memo-create/SKILL.md +139 -0
  74. package/skills/commerce-delivery-business-hours-configure/SKILL.md +277 -0
  75. package/skills/commerce-delivery-estimation-apply/SKILL.md +155 -0
  76. package/skills/commerce-delivery-estimation-configure/SKILL.md +377 -0
  77. package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +174 -0
  78. package/skills/commerce-estimate-bopis-query/SKILL.md +279 -0
  79. package/skills/commerce-estimate-delivery-date-query/SKILL.md +349 -0
  80. package/skills/commerce-fees-apply/SKILL.md +227 -0
  81. package/skills/commerce-fulfillment-routing-analyze/SKILL.md +200 -0
  82. package/skills/commerce-guest-buyer-create/SKILL.md +173 -0
  83. package/skills/commerce-location-bopis-configure/SKILL.md +378 -0
  84. package/skills/commerce-location-business-hours-configure/SKILL.md +235 -0
  85. package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +309 -0
  86. package/skills/commerce-location-graph-integrate/SKILL.md +131 -0
  87. package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +755 -0
  88. package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +331 -0
  89. package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +579 -0
  90. package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +626 -0
  91. package/skills/commerce-merchant-catalog-configure/SKILL.md +614 -0
  92. package/skills/commerce-merchant-extension-provider-configure/SKILL.md +368 -0
  93. package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +118 -0
  94. package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +65 -0
  95. package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +90 -0
  96. package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +72 -0
  97. package/skills/commerce-merchant-insights-query/SKILL.md +279 -0
  98. package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +656 -0
  99. package/skills/commerce-order-summary-change-apply/SKILL.md +375 -0
  100. package/skills/commerce-product-details-get/SKILL.md +363 -0
  101. package/skills/commerce-product-search/SKILL.md +563 -0
  102. package/skills/commerce-react-storefront-create/SKILL.md +350 -0
  103. package/skills/commerce-return-order-summary-create/SKILL.md +513 -0
  104. package/skills/commerce-search-relevance-analyze/SKILL.md +757 -0
  105. package/skills/commerce-temporary-processing-time-override-create/SKILL.md +274 -0
  106. package/skills/communications-initial-setup-configure/SKILL.md +630 -0
  107. package/skills/communications-multisite-configure/SKILL.md +571 -0
  108. package/skills/communications-revenue-cloud-settings-configure/SKILL.md +74 -0
  109. package/skills/communications-smb-fiber-catalog-create/SKILL.md +413 -0
  110. package/skills/communications-tmf-integrate/SKILL.md +1368 -0
  111. package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +54 -107
  112. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/copy.json +1 -1
  113. package/skills/consumer-goods-promotion-bo-api-deploy/references/conventions-and-payload-rules.md +82 -5
  114. package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +35 -2
  115. package/skills/consumer-goods-promotion-bo-api-deploy/references/preflight-and-seed-queries.md +149 -0
  116. package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +17 -1
  117. package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +448 -0
  118. package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +269 -0
  119. package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +271 -0
  120. package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +382 -0
  121. package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +373 -0
  122. package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +389 -0
  123. package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +338 -0
  124. package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +547 -0
  125. package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +346 -0
  126. package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +1110 -0
  127. package/skills/crm-analytics-adoption-insights-configure/SKILL.md +224 -0
  128. package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +418 -0
  129. package/skills/crm-analytics-dashboards-configure/SKILL.md +731 -0
  130. package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +233 -0
  131. package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +184 -0
  132. package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +167 -0
  133. package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +55 -0
  134. package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +1350 -0
  135. package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +1862 -0
  136. package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +83 -0
  137. package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +81 -0
  138. package/skills/data360-activation-create/SKILL.md +104 -0
  139. package/skills/data360-activation-external-platform-get/SKILL.md +49 -0
  140. package/skills/data360-activation-target-create/SKILL.md +93 -0
  141. package/skills/data360-activation-v2-create/SKILL.md +456 -0
  142. package/skills/data360-audience-dmo-get/SKILL.md +38 -0
  143. package/skills/data360-calculated-affinity-create/SKILL.md +82 -0
  144. package/skills/data360-calculated-insight-create/SKILL.md +148 -0
  145. package/skills/data360-catalog-metadata-create/SKILL.md +183 -0
  146. package/skills/data360-code-extension-create/SKILL.md +115 -0
  147. package/skills/data360-communication-capping-create/SKILL.md +227 -0
  148. package/skills/data360-connection-create/SKILL.md +491 -0
  149. package/skills/data360-content-lens-create/SKILL.md +181 -0
  150. package/skills/data360-data-action-create/SKILL.md +126 -0
  151. package/skills/data360-data-action-target-create/SKILL.md +181 -0
  152. package/skills/data360-data-clean-room-create/SKILL.md +238 -0
  153. package/skills/data360-data-governance-create/SKILL.md +746 -0
  154. package/skills/data360-data-graph-create/SKILL.md +82 -0
  155. package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +38 -0
  156. package/skills/data360-data-lake-object-create/SKILL.md +207 -0
  157. package/skills/data360-data-model-object-catalog-get/SKILL.md +49 -0
  158. package/skills/data360-data-model-object-create/SKILL.md +128 -0
  159. package/skills/data360-data-model-object-mapping-create/SKILL.md +106 -0
  160. package/skills/data360-data-space-create/SKILL.md +161 -0
  161. package/skills/data360-data-streams-create/SKILL.md +324 -0
  162. package/skills/data360-engagement-signal-get/SKILL.md +38 -0
  163. package/skills/data360-experiment-create/SKILL.md +82 -0
  164. package/skills/data360-goal-based-campaign-create/SKILL.md +192 -0
  165. package/skills/data360-harmonization-process-history-get/SKILL.md +38 -0
  166. package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +84 -0
  167. package/skills/data360-identity-resolution-create/SKILL.md +115 -0
  168. package/skills/data360-intelligent-document-processing-create/SKILL.md +148 -0
  169. package/skills/data360-knowledge-graph-construction-create/SKILL.md +93 -0
  170. package/skills/data360-knowledge-graph-create/SKILL.md +216 -0
  171. package/skills/data360-knowledge-space-mcp-configure/SKILL.md +475 -0
  172. package/skills/data360-machine-learning-mcp-configure/SKILL.md +697 -0
  173. package/skills/data360-multi-org-mcp-configure/SKILL.md +117 -0
  174. package/skills/data360-secondary-index-mcp-configure/SKILL.md +126 -0
  175. package/skills/data360-segment-mcp-configure/SKILL.md +159 -0
  176. package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +93 -0
  177. package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +93 -0
  178. package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +93 -0
  179. package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +38 -0
  180. package/skills/data360-semantic-engine-mcp-configure/SKILL.md +62 -0
  181. package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +38 -0
  182. package/skills/data360-semantic-metric-mcp-configure/SKILL.md +93 -0
  183. package/skills/data360-semantic-model-mcp-configure/SKILL.md +115 -0
  184. package/skills/data360-standard-mapping-mcp-configure/SKILL.md +38 -0
  185. package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +73 -0
  186. package/skills/dx-devops-conflict-resolve/SKILL.md +1 -5
  187. package/skills/dx-devops-pipeline-manage/SKILL.md +1 -5
  188. package/skills/dx-devops-project-manage/SKILL.md +1 -5
  189. package/skills/dx-devops-promote/SKILL.md +1 -5
  190. package/skills/dx-devops-request-status/SKILL.md +1 -5
  191. package/skills/dx-lifecycle-center/SKILL.md +120 -0
  192. package/skills/dx-lifecycle-center/examples/workflows.md +175 -0
  193. package/skills/dx-lifecycle-center/references/connect-api.md +123 -0
  194. package/skills/dx-lifecycle-center/references/connect-org.md +184 -0
  195. package/skills/dx-lifecycle-center/references/deploy.md +153 -0
  196. package/skills/dx-lifecycle-center/references/error-handling.md +21 -0
  197. package/skills/dx-lifecycle-center/references/hub-org.md +37 -0
  198. package/skills/dx-lifecycle-center/references/list-orgs.md +99 -0
  199. package/skills/dx-lifecycle-center/references/request-body.md +75 -0
  200. package/skills/dx-lifecycle-center/references/troubleshooting.md +31 -0
  201. package/skills/dx-lifecycle-center/scripts/poll-deploy-status.sh +200 -0
  202. package/skills/dx-lifecycle-center/scripts/resolve-environment.sh +120 -0
  203. package/skills/dx-org-devhub-configure/SKILL.md +1 -3
  204. package/skills/dx-org-shape-manage/SKILL.md +1 -5
  205. package/skills/dx-org-snapshot-manage/SKILL.md +1 -3
  206. package/skills/education-cloud-academic-calendar-generate/SKILL.md +1 -3
  207. package/skills/education-cloud-course-catalog-migrate/SKILL.md +1 -3
  208. package/skills/education-cloud-domain-configure/SKILL.md +1 -3
  209. package/skills/education-cloud-multi-campus-configure/SKILL.md +1 -3
  210. package/skills/education-cloud-student-recruitment-agent-configure/SKILL.md +1 -5
  211. package/skills/experience-afv-query/SKILL.md +234 -0
  212. package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +63 -0
  213. package/skills/experience-apex-components-configure/SKILL.md +69 -0
  214. package/skills/experience-apex-pages-configure/SKILL.md +107 -0
  215. package/skills/experience-app-home-configure/SKILL.md +76 -0
  216. package/skills/experience-aura-lightning-out-access-configure/SKILL.md +58 -0
  217. package/skills/experience-briefcase-configure/SKILL.md +287 -0
  218. package/skills/experience-community-flexi-page-list-create/SKILL.md +74 -0
  219. package/skills/experience-community-template-definition-list-query/SKILL.md +48 -0
  220. package/skills/experience-community-theme-definition-list-query/SKILL.md +38 -0
  221. package/skills/experience-content-assets-configure/SKILL.md +86 -0
  222. package/skills/experience-custom-domain-create/SKILL.md +727 -0
  223. package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +41 -0
  224. package/skills/experience-field-service-app-builder-configure/SKILL.md +187 -0
  225. package/skills/experience-flow-category-configure/SKILL.md +117 -0
  226. package/skills/experience-formula-configure/SKILL.md +358 -0
  227. package/skills/experience-global-actions-configure/SKILL.md +69 -0
  228. package/skills/experience-global-publisher-layouts-configure/SKILL.md +79 -0
  229. package/skills/experience-instrumentation-configure/SKILL.md +64 -0
  230. package/skills/experience-lex-engagement-configure/SKILL.md +50 -0
  231. package/skills/experience-lightning-bolt-open/SKILL.md +12 -0
  232. package/skills/experience-lightning-out-configure/SKILL.md +129 -0
  233. package/skills/experience-lightning-preview-configure/SKILL.md +67 -0
  234. package/skills/experience-lightning-types-query/SKILL.md +98 -0
  235. package/skills/experience-malware-scan-configure/SKILL.md +71 -0
  236. package/skills/experience-my-salesforce-configure/SKILL.md +126 -0
  237. package/skills/experience-navigation-menus-configure/SKILL.md +235 -0
  238. package/skills/experience-notification-types-configure/SKILL.md +206 -0
  239. package/skills/experience-notifications-configure/SKILL.md +75 -0
  240. package/skills/experience-record-discovery-query/SKILL.md +227 -0
  241. package/skills/experience-regenerate-previews-open/SKILL.md +94 -0
  242. package/skills/experience-sales-cloud-mab-configure/SKILL.md +254 -0
  243. package/skills/experience-schema-builder-open/SKILL.md +38 -0
  244. package/skills/experience-simple-record-home-configure/SKILL.md +110 -0
  245. package/skills/experience-static-resources-configure/SKILL.md +74 -0
  246. package/skills/experience-ui-bundle-2gp-deploy/SKILL.md +1 -3
  247. package/skills/experience-ui-bundle-features-generate/SKILL.md +1 -5
  248. package/skills/experience-ui-bundle-mfa-configure/SKILL.md +1 -3
  249. package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +23 -2
  250. package/skills/field-service-data-capture-form-designer-configure/SKILL.md +13 -3
  251. package/skills/field-service-data-capture-migrate/SKILL.md +1 -3
  252. package/skills/field-service-mobile-branding-configure/SKILL.md +17 -3
  253. package/skills/field-service-objective-designer-configure/SKILL.md +72 -379
  254. package/skills/field-service-prework-brief-deployer-configure/SKILL.md +10 -537
  255. package/skills/field-service-scheduling-policy-designer-query/SKILL.md +65 -1093
  256. package/skills/{field-service-setup-orchestrator-get → field-service-setup-coordinate}/SKILL.md +18 -3
  257. package/skills/field-service-sobject-create-configure/SKILL.md +13 -213
  258. package/skills/field-service-voice-to-form-configure/SKILL.md +40 -11
  259. package/skills/field-service-work-plan-configure/SKILL.md +253 -0
  260. package/skills/field-service-work-rule-designer-configure/SKILL.md +121 -95
  261. package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +180 -0
  262. package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +196 -0
  263. package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +106 -0
  264. package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +96 -0
  265. package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +111 -0
  266. package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +250 -0
  267. package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +122 -0
  268. package/skills/fsc-digital-origination-coordinate/SKILL.md +653 -0
  269. package/skills/fsc-digital-origination-demo-run/SKILL.md +225 -0
  270. package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +112 -0
  271. package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +396 -0
  272. package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +336 -0
  273. package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +208 -0
  274. package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +375 -0
  275. package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +83 -0
  276. package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +248 -0
  277. package/skills/fsc-digital-origination-sample-data-create/SKILL.md +206 -0
  278. package/skills/fsc-document-checklist-settings-configure/SKILL.md +57 -0
  279. package/skills/fsc-flexible-hierarchy-configure/SKILL.md +148 -0
  280. package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +1430 -0
  281. package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +471 -0
  282. package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +429 -0
  283. package/skills/fsc-pricing-product-configurator-configure/SKILL.md +150 -0
  284. package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +123 -0
  285. package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +82 -0
  286. package/skills/fsc-product-act3-attributes-create/SKILL.md +249 -0
  287. package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +196 -0
  288. package/skills/fsc-product-act5-considerations-get/SKILL.md +44 -0
  289. package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +384 -0
  290. package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +144 -0
  291. package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +107 -0
  292. package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +189 -0
  293. package/skills/fsc-stage-management-definition-create/SKILL.md +108 -0
  294. package/skills/fsc-stage-management-permissions-assign/SKILL.md +143 -0
  295. package/skills/fsc-stage-management-transitions-configure/SKILL.md +139 -0
  296. package/skills/health-cloud-appt-booking-config-configure/SKILL.md +135 -0
  297. package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +134 -0
  298. package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +136 -0
  299. package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +134 -0
  300. package/skills/health-cloud-care-requests-create/SKILL.md +178 -0
  301. package/skills/health-cloud-initial-configure/SKILL.md +511 -0
  302. package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +1374 -0
  303. package/skills/health-cloud-provider-search-settings-configure/SKILL.md +924 -0
  304. package/skills/health-cloud-referral-management-coordinate/SKILL.md +513 -0
  305. package/skills/health-cloud-timeline-configure/SKILL.md +622 -0
  306. package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +135 -0
  307. package/skills/industries-account-score-settings-query/SKILL.md +78 -0
  308. package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +177 -0
  309. package/skills/industries-ad-product-availability-search/SKILL.md +399 -0
  310. package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +628 -0
  311. package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +73 -0
  312. package/skills/industries-atm-settings-starter-configure/SKILL.md +76 -0
  313. package/skills/industries-batch-document-ai-configure/SKILL.md +196 -0
  314. package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +71 -0
  315. package/skills/industries-branch-management-settings-configure/SKILL.md +89 -0
  316. package/skills/industries-bre-decision-table-access-configure/SKILL.md +367 -0
  317. package/skills/industries-brokerage-settings-configure/SKILL.md +41 -0
  318. package/skills/industries-calendar-sync-settings-configure/SKILL.md +89 -0
  319. package/skills/industries-care-request-settings-configure/SKILL.md +218 -0
  320. package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +54 -0
  321. package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +380 -0
  322. package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +216 -0
  323. package/skills/industries-catalog-process-intake-configure/SKILL.md +219 -0
  324. package/skills/industries-catalog-process-knowledge-configure/SKILL.md +153 -0
  325. package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +168 -0
  326. package/skills/industries-cds-general-settings-configure/SKILL.md +69 -0
  327. package/skills/industries-claim-financial-settings-configure/SKILL.md +169 -0
  328. package/skills/industries-clinical-data-model-settings-configure/SKILL.md +136 -0
  329. package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +105 -0
  330. package/skills/industries-collection-plan-settings-configure/SKILL.md +132 -0
  331. package/skills/industries-comms-service-console-settings-configure/SKILL.md +159 -0
  332. package/skills/industries-compliance-configure/SKILL.md +102 -0
  333. package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +76 -0
  334. package/skills/industries-contact-center-app-layout-configure/SKILL.md +88 -0
  335. package/skills/industries-contact-center-components-configure/SKILL.md +96 -0
  336. package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +95 -0
  337. package/skills/industries-contact-center-user-access-assign/SKILL.md +96 -0
  338. package/skills/industries-course-waitlist-config-configure/SKILL.md +162 -0
  339. package/skills/industries-crisis-center-settings-configure/SKILL.md +84 -0
  340. package/skills/industries-custom-object-settings-configure/SKILL.md +94 -0
  341. package/skills/industries-data-cloud-integration-configure/SKILL.md +88 -0
  342. package/skills/industries-data-space-feature-mappings-configure/SKILL.md +245 -0
  343. package/skills/industries-decision-matrix-builder-configure/SKILL.md +78 -0
  344. package/skills/industries-decision-table-hbase-configure/SKILL.md +87 -0
  345. package/skills/industries-decision-table-version-configure/SKILL.md +74 -0
  346. package/skills/industries-decision-tables-builder-configure/SKILL.md +253 -0
  347. package/skills/industries-decision-tables-configure/SKILL.md +439 -0
  348. package/skills/industries-energy-utilities-configure/SKILL.md +251 -0
  349. package/skills/industries-eu-cloud-multisite-configure/SKILL.md +1008 -0
  350. package/skills/industries-eu-new-connections-configure/SKILL.md +30 -0
  351. package/skills/industries-explainability-msg-template-configure/SKILL.md +135 -0
  352. package/skills/industries-expression-set-message-token-configure/SKILL.md +135 -0
  353. package/skills/industries-field-service-settings-configure/SKILL.md +82 -0
  354. package/skills/industries-form-framework-settings-configure/SKILL.md +30 -0
  355. package/skills/industries-fsc-ai-settings-configure/SKILL.md +57 -0
  356. package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +172 -0
  357. package/skills/industries-fsc-b2b-settings-configure/SKILL.md +61 -0
  358. package/skills/industries-fsc-insurance-settings-configure/SKILL.md +58 -0
  359. package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +103 -0
  360. package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +117 -0
  361. package/skills/industries-fsc-wealth-settings-configure/SKILL.md +99 -0
  362. package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +120 -0
  363. package/skills/industries-fundraising-rfm-configure/SKILL.md +128 -0
  364. package/skills/industries-fundraising-settings-configure/SKILL.md +145 -0
  365. package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +299 -0
  366. package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +87 -0
  367. package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +58 -0
  368. package/skills/industries-hc-score-category-settings-configure/SKILL.md +167 -0
  369. package/skills/industries-health-engagement-settings-configure/SKILL.md +218 -0
  370. package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +131 -0
  371. package/skills/industries-home-health-bundling-policy-create/SKILL.md +50 -0
  372. package/skills/industries-home-health-entity-labels-configure/SKILL.md +29 -0
  373. package/skills/industries-home-health-fsl-package-deploy/SKILL.md +71 -0
  374. package/skills/industries-home-health-fsl-settings-validate/SKILL.md +27 -0
  375. package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +80 -0
  376. package/skills/industries-home-health-guided-setup-configure/SKILL.md +836 -0
  377. package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +55 -0
  378. package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +61 -0
  379. package/skills/industries-home-health-licenses-assign/SKILL.md +27 -0
  380. package/skills/industries-home-health-operating-hours-create/SKILL.md +40 -0
  381. package/skills/industries-home-health-scheduling-policy-create/SKILL.md +41 -0
  382. package/skills/industries-home-health-service-objective-create/SKILL.md +22 -0
  383. package/skills/industries-home-health-skills-create/SKILL.md +31 -0
  384. package/skills/industries-home-health-users-create/SKILL.md +29 -0
  385. package/skills/industries-icm-act3-toggles-configure/SKILL.md +198 -0
  386. package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +361 -0
  387. package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +550 -0
  388. package/skills/industries-integrated-care-management-configure/SKILL.md +168 -0
  389. package/skills/industries-object-enablement-configure/SKILL.md +86 -0
  390. package/skills/industries-tpm-system-processing-service-configure/SKILL.md +64 -0
  391. package/skills/insurance-brokerage-agency-billing-configure/SKILL.md +1 -3
  392. package/skills/integration-apex-settings-configure/SKILL.md +61 -0
  393. package/skills/marketing-e360-email-archiving-configure/SKILL.md +73 -0
  394. package/skills/marketing-message-test/SKILL.md +1 -3
  395. package/skills/nonprofit-fundraising-configure/SKILL.md +240 -0
  396. package/skills/nonprofit-fundraising-configure/references/gotchas.md +26 -0
  397. package/skills/nonprofit-fundraising-configure/references/mcp-invocation.md +678 -0
  398. package/skills/nonprofit-fundraising-configure/references/permission-targeting.md +35 -0
  399. package/skills/nonprofit-volunteer-management-model-get/SKILL.md +166 -0
  400. package/skills/nonprofit-volunteer-management-model-get/references/entities.md +315 -0
  401. package/skills/nonprofit-volunteer-management-model-get/references/relationships.md +175 -0
  402. package/skills/nonprofit-volunteer-management-model-get/references/themes.md +143 -0
  403. package/skills/nonprofit-volunteer-management-records-create/SKILL.md +121 -0
  404. package/skills/nonprofit-volunteer-management-records-create/references/field-guide.md +284 -0
  405. package/skills/nonprofit-volunteer-management-records-create/references/mcp-invocation.md +248 -0
  406. package/skills/nonprofit-volunteer-management-records-create/references/review-format.md +140 -0
  407. package/skills/nonprofit-volunteer-management-records-create/scripts/expand-series.py +632 -0
  408. package/skills/nonprofit-volunteer-management-records-create/scripts/render-review-table.py +419 -0
  409. package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_expand_series.py +690 -0
  410. package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_render_review_table.py +421 -0
  411. package/skills/nonprofit-volunteer-management-structure-generate/SKILL.md +119 -0
  412. package/skills/nonprofit-volunteer-management-structure-generate/references/configuration-decisions.md +159 -0
  413. package/skills/nonprofit-volunteer-management-structure-generate/references/discovery-interview.md +137 -0
  414. package/skills/nonprofit-volunteer-management-structure-generate/references/edge-cases.md +48 -0
  415. package/skills/nonprofit-volunteer-management-structure-generate/references/mcp-invocation.md +75 -0
  416. package/skills/nonprofit-volunteer-management-structure-generate/references/plan-output.md +141 -0
  417. package/skills/platform-custom-field-generate/SKILL.md +1 -0
  418. package/skills/platform-custom-field-generate/references/advanced-picklists.md +5 -5
  419. package/skills/platform-custom-metadata-type-generate/SKILL.md +3 -0
  420. package/skills/platform-custom-object-generate/SKILL.md +4 -0
  421. package/skills/platform-custom-permissions-configure/SKILL.md +687 -0
  422. package/skills/platform-custom-setting-generate/SKILL.md +3 -0
  423. package/skills/platform-datamask-run/SKILL.md +1 -5
  424. package/skills/platform-label-workbench-import-create/SKILL.md +67 -0
  425. package/skills/platform-permission-set-generate/SKILL.md +3 -0
  426. package/skills/platform-privacy-agent-settings-configure/SKILL.md +752 -0
  427. package/skills/platform-salesforce-connect-adapter-generate/SKILL.md +1 -3
  428. package/skills/platform-sandbox-configure/SKILL.md +1 -3
  429. package/skills/platform-value-set-generate/SKILL.md +3 -0
  430. package/skills/sales-call-scoring-configure/SKILL.md +1 -5
  431. package/skills/service-agentforce-channel-configure/SKILL.md +1 -3
  432. package/skills/service-agentforce-human-escalation-configure/SKILL.md +1 -3
  433. package/skills/service-catalog-template-coordinate/SKILL.md +1 -3
  434. package/skills/service-concierge-portal-generate/SKILL.md +1 -3
  435. package/skills/service-email-to-case-configure/SKILL.md +1 -5
  436. package/skills/service-itsm-agentic-setup-agent-runtime-access-assign/SKILL.md +1 -3
  437. package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +1 -3
  438. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +1 -3
  439. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +1 -3
  440. package/skills/service-itsm-agentic-setup-cmdb-access-assign/SKILL.md +1 -3
  441. package/skills/service-itsm-agentic-setup-cmdb-bundle-deploy/SKILL.md +1 -5
  442. package/skills/service-itsm-agentic-setup-cmdb-configure/SKILL.md +1 -3
  443. package/skills/service-itsm-agentic-setup-cmdb-coordinate/SKILL.md +1 -3
  444. package/skills/service-itsm-agentic-setup-cmdb-discovery-configure/SKILL.md +1 -3
  445. package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +1 -3
  446. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +1 -3
  447. package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +1 -0
  448. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +1 -3
  449. package/skills/service-itsm-agentic-setup-uel-user-create/SKILL.md +1 -9
  450. package/skills/service-itsm-incident-mgmt-configure/SKILL.md +1 -5
  451. package/skills/service-itsm-incident-priority-configure/SKILL.md +1 -3
  452. package/skills/service-itsm-slack-itservice-configure/SKILL.md +1 -3
  453. package/skills/service-itsm-swarming-configure/SKILL.md +1 -3
  454. package/skills/service-itsm-teams-configure/SKILL.md +1 -3
  455. package/skills/service-itsm-teams-debug/SKILL.md +1 -3
  456. package/skills/service-itsm-teams-employee-agent-configure/SKILL.md +1 -3
  457. package/skills/service-itsm-teams-itdesk-configure/SKILL.md +1 -3
  458. package/skills/service-itsm-teams-itservice-configure/SKILL.md +1 -3
  459. package/skills/service-native-voice-recording-transcription-configure/SKILL.md +1 -3
  460. package/skills/service-omni-agent-users-create/SKILL.md +1 -3
  461. package/skills/service-omni-agent-work-sharing-configure/SKILL.md +1 -3
  462. package/skills/service-omni-attribute-routing-configure/SKILL.md +1 -3
  463. package/skills/service-omni-base-settings-configure/SKILL.md +1 -3
  464. package/skills/service-omni-channel-inventory-analyze/SKILL.md +1 -3
  465. package/skills/service-omni-channel-limits-analyze/SKILL.md +1 -3
  466. package/skills/service-omni-channel-setup-coordinate/SKILL.md +1 -3
  467. package/skills/service-omni-command-center-analyze/SKILL.md +1 -3
  468. package/skills/service-omni-command-center-configure/SKILL.md +1 -3
  469. package/skills/service-omni-permission-set-assign/SKILL.md +1 -3
  470. package/skills/service-omni-presence-status-deploy/SKILL.md +1 -3
  471. package/skills/service-omni-presence-user-config-deploy/SKILL.md +1 -3
  472. package/skills/service-omni-queue-deploy/SKILL.md +1 -3
  473. package/skills/service-omni-queue-members-assign/SKILL.md +1 -3
  474. package/skills/service-omni-queue-routing-config-deploy/SKILL.md +1 -3
  475. package/skills/service-omni-routing-flow-deploy/SKILL.md +1 -3
  476. package/skills/service-omni-service-channel-configure/SKILL.md +1 -3
  477. package/skills/service-omni-sidebar-configure/SKILL.md +1 -3
  478. package/skills/service-omni-skills-based-routing-configure/SKILL.md +1 -3
  479. package/skills/service-omni-supervisor-config-deploy/SKILL.md +1 -3
  480. package/skills/service-omni-supervisor-permset-assign/SKILL.md +1 -3
  481. package/skills/service-omni-supervisor-surface-deploy/SKILL.md +1 -3
  482. package/skills/service-omni-supervisor-users-create/SKILL.md +1 -3
  483. package/skills/service-omni-work-skill-routing-configure/SKILL.md +1 -3
  484. 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.