@salesforce/afv-skills 1.65.0 → 1.66.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 (379) hide show
  1. package/package.json +1 -1
  2. package/skills/agentforce-offline-experimentation-run/SKILL.md +16 -15
  3. package/skills/agentforce-offline-experimentation-run/scripts/sfap_replay.py +3 -245
  4. package/skills/dx-devops-work-item-manage/SKILL.md +34 -17
  5. package/skills/dx-devops-work-item-manage/examples/common-workflows.md +49 -0
  6. package/skills/dx-devops-work-item-manage/references/commit-api.md +116 -0
  7. package/skills/experience-lwc-widget-assess/SKILL.md +79 -0
  8. package/skills/experience-lwc-widget-migrate/SKILL.md +50 -0
  9. package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +2 -23
  10. package/skills/field-service-data-capture-form-designer-configure/SKILL.md +3 -13
  11. package/skills/field-service-mobile-branding-configure/SKILL.md +3 -17
  12. package/skills/field-service-objective-designer-configure/SKILL.md +379 -72
  13. package/skills/field-service-prework-brief-deployer-configure/SKILL.md +537 -10
  14. package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1093 -65
  15. package/skills/field-service-sobject-create-configure/SKILL.md +213 -13
  16. package/skills/field-service-voice-to-form-configure/SKILL.md +11 -40
  17. package/skills/field-service-work-rule-designer-configure/SKILL.md +95 -121
  18. package/skills/platform-role-hierarchy-apply/SKILL.md +177 -0
  19. package/skills/platform-widget-generate/SKILL.md +58 -41
  20. package/skills/platform-widget-generate/references/widget-bundle-validation.md +14 -0
  21. package/skills/service-agentforce-contact-center-coordinate/SKILL.md +1 -1
  22. package/skills/service-agentforce-contact-center-coordinate/references/number_management_api.md +11 -1
  23. package/skills/service-agentforce-contact-center-coordinate/scripts/fetch-numbers.sh +12 -6
  24. package/skills/service-agentforce-contact-center-coordinate/scripts/lib.sh +16 -0
  25. package/skills/service-agentforce-contact-center-coordinate/scripts/procure-number.sh +2 -1
  26. package/skills/service-concierge-portal-generate/references/portal-deploy-runbook.md +24 -11
  27. package/skills/service-digital-engagement-channel-configure/SKILL.md +25 -14
  28. package/skills/service-digital-engagement-channel-configure/references/onboarding_contract.md +143 -0
  29. package/skills/service-digital-engagement-deployment-configure/SKILL.md +61 -12
  30. package/skills/service-digital-engagement-deployment-configure/references/connect_api_creation.md +14 -5
  31. package/skills/service-digital-engagement-deployment-configure/references/onboarding_contract.md +146 -0
  32. package/skills/service-itsm-agentic-setup-incident-management/SKILL.md +23 -13
  33. package/skills/service-itsm-agentic-setup-incident-management/references/incident-persona-psg.md +7 -6
  34. package/skills/service-itsm-agentic-setup-incident-management/references/incident-preferences.md +9 -10
  35. package/skills/service-itsm-agentic-setup-incident-management/references/major-incident-management.md +6 -6
  36. package/skills/service-itsm-agentic-setup-incident-management/references/service-mgmt-privilege.md +1 -1
  37. package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +34 -25
  38. package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/milestone-patterns.md +1 -1
  39. package/skills/service-itsm-agentic-setup-incident-sla-configure/references/mcp-invocation.md +90 -86
  40. package/skills/service-itsm-agentic-setup-incident-sla-configure/references/workflow.md +63 -38
  41. package/skills/agentforce-gpt-email-generation-configure/SKILL.md +0 -312
  42. package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +0 -64
  43. package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +0 -46
  44. package/skills/automation-company-profile-info-query/SKILL.md +0 -51
  45. package/skills/automation-digital-wallet-configure/SKILL.md +0 -689
  46. package/skills/automation-flow-coordinate/SKILL.md +0 -95
  47. package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +0 -1569
  48. package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +0 -96
  49. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +0 -23
  50. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +0 -31
  51. package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +0 -179
  52. package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +0 -13
  53. package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +0 -83
  54. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +0 -69
  55. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +0 -274
  56. package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +0 -192
  57. package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +0 -130
  58. package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +0 -92
  59. package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +0 -88
  60. package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +0 -152
  61. package/skills/automation-flow-coordinate/references/elements/start/start.md +0 -539
  62. package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +0 -152
  63. package/skills/automation-flow-coordinate/references/elements/wait/wait.md +0 -497
  64. package/skills/automation-flow-coordinate/references/recipes/author/author.md +0 -868
  65. package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +0 -300
  66. package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +0 -292
  67. package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +0 -323
  68. package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +0 -109
  69. package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +0 -219
  70. package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +0 -180
  71. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +0 -175
  72. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +0 -255
  73. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +0 -212
  74. package/skills/automation-flow-coordinate/references/resources/variable/variable.md +0 -171
  75. package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +0 -786
  76. package/skills/automation-flow-coordinate/references/shared/end/end.md +0 -267
  77. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +0 -69
  78. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +0 -80
  79. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +0 -116
  80. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +0 -321
  81. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +0 -320
  82. package/skills/automation-flow-coordinate/references/shared/server-functions.md +0 -597
  83. package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +0 -69
  84. package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +0 -78
  85. package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +0 -373
  86. package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +0 -273
  87. package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +0 -259
  88. package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +0 -369
  89. package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +0 -542
  90. package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  91. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +0 -349
  92. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +0 -505
  93. package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +0 -380
  94. package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +0 -567
  95. package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  96. package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +0 -360
  97. package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +0 -539
  98. package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +0 -358
  99. package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +0 -602
  100. package/skills/commerce-b2b-store-configure/SKILL.md +0 -251
  101. package/skills/commerce-credit-memo-create/SKILL.md +0 -139
  102. package/skills/commerce-delivery-business-hours-configure/SKILL.md +0 -277
  103. package/skills/commerce-delivery-estimation-apply/SKILL.md +0 -155
  104. package/skills/commerce-delivery-estimation-configure/SKILL.md +0 -377
  105. package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +0 -174
  106. package/skills/commerce-estimate-bopis-query/SKILL.md +0 -279
  107. package/skills/commerce-estimate-delivery-date-query/SKILL.md +0 -349
  108. package/skills/commerce-fees-apply/SKILL.md +0 -227
  109. package/skills/commerce-fulfillment-routing-analyze/SKILL.md +0 -200
  110. package/skills/commerce-guest-buyer-create/SKILL.md +0 -173
  111. package/skills/commerce-location-bopis-configure/SKILL.md +0 -378
  112. package/skills/commerce-location-business-hours-configure/SKILL.md +0 -235
  113. package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +0 -309
  114. package/skills/commerce-location-graph-integrate/SKILL.md +0 -131
  115. package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +0 -755
  116. package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +0 -331
  117. package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +0 -579
  118. package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +0 -626
  119. package/skills/commerce-merchant-catalog-configure/SKILL.md +0 -614
  120. package/skills/commerce-merchant-extension-provider-configure/SKILL.md +0 -368
  121. package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +0 -118
  122. package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +0 -65
  123. package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +0 -90
  124. package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +0 -72
  125. package/skills/commerce-merchant-insights-query/SKILL.md +0 -279
  126. package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +0 -656
  127. package/skills/commerce-order-summary-change-apply/SKILL.md +0 -375
  128. package/skills/commerce-product-details-get/SKILL.md +0 -363
  129. package/skills/commerce-product-search/SKILL.md +0 -563
  130. package/skills/commerce-react-storefront-create/SKILL.md +0 -350
  131. package/skills/commerce-return-order-summary-create/SKILL.md +0 -513
  132. package/skills/commerce-search-relevance-analyze/SKILL.md +0 -757
  133. package/skills/commerce-temporary-processing-time-override-create/SKILL.md +0 -274
  134. package/skills/communications-initial-setup-configure/SKILL.md +0 -630
  135. package/skills/communications-multisite-configure/SKILL.md +0 -571
  136. package/skills/communications-revenue-cloud-settings-configure/SKILL.md +0 -74
  137. package/skills/communications-smb-fiber-catalog-create/SKILL.md +0 -413
  138. package/skills/communications-tmf-integrate/SKILL.md +0 -1368
  139. package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +0 -448
  140. package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +0 -269
  141. package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +0 -271
  142. package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +0 -382
  143. package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +0 -373
  144. package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +0 -389
  145. package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +0 -338
  146. package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +0 -547
  147. package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +0 -346
  148. package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +0 -1110
  149. package/skills/crm-analytics-adoption-insights-configure/SKILL.md +0 -224
  150. package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +0 -418
  151. package/skills/crm-analytics-dashboards-configure/SKILL.md +0 -731
  152. package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +0 -233
  153. package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +0 -184
  154. package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +0 -167
  155. package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +0 -55
  156. package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +0 -1350
  157. package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +0 -1862
  158. package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +0 -83
  159. package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +0 -81
  160. package/skills/data360-activation-create/SKILL.md +0 -104
  161. package/skills/data360-activation-external-platform-get/SKILL.md +0 -49
  162. package/skills/data360-activation-target-create/SKILL.md +0 -93
  163. package/skills/data360-activation-v2-create/SKILL.md +0 -456
  164. package/skills/data360-audience-dmo-get/SKILL.md +0 -38
  165. package/skills/data360-calculated-affinity-create/SKILL.md +0 -82
  166. package/skills/data360-calculated-insight-create/SKILL.md +0 -148
  167. package/skills/data360-catalog-metadata-create/SKILL.md +0 -183
  168. package/skills/data360-code-extension-create/SKILL.md +0 -115
  169. package/skills/data360-communication-capping-create/SKILL.md +0 -227
  170. package/skills/data360-connection-create/SKILL.md +0 -491
  171. package/skills/data360-content-lens-create/SKILL.md +0 -181
  172. package/skills/data360-data-action-create/SKILL.md +0 -126
  173. package/skills/data360-data-action-target-create/SKILL.md +0 -181
  174. package/skills/data360-data-clean-room-create/SKILL.md +0 -238
  175. package/skills/data360-data-governance-create/SKILL.md +0 -746
  176. package/skills/data360-data-graph-create/SKILL.md +0 -82
  177. package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +0 -38
  178. package/skills/data360-data-lake-object-create/SKILL.md +0 -207
  179. package/skills/data360-data-model-object-catalog-get/SKILL.md +0 -49
  180. package/skills/data360-data-model-object-create/SKILL.md +0 -128
  181. package/skills/data360-data-model-object-mapping-create/SKILL.md +0 -106
  182. package/skills/data360-data-space-create/SKILL.md +0 -161
  183. package/skills/data360-data-streams-create/SKILL.md +0 -324
  184. package/skills/data360-engagement-signal-get/SKILL.md +0 -38
  185. package/skills/data360-experiment-create/SKILL.md +0 -82
  186. package/skills/data360-goal-based-campaign-create/SKILL.md +0 -192
  187. package/skills/data360-harmonization-process-history-get/SKILL.md +0 -38
  188. package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +0 -84
  189. package/skills/data360-identity-resolution-create/SKILL.md +0 -115
  190. package/skills/data360-intelligent-document-processing-create/SKILL.md +0 -148
  191. package/skills/data360-knowledge-graph-construction-create/SKILL.md +0 -93
  192. package/skills/data360-knowledge-graph-create/SKILL.md +0 -216
  193. package/skills/data360-knowledge-space-mcp-configure/SKILL.md +0 -475
  194. package/skills/data360-machine-learning-mcp-configure/SKILL.md +0 -697
  195. package/skills/data360-multi-org-mcp-configure/SKILL.md +0 -117
  196. package/skills/data360-secondary-index-mcp-configure/SKILL.md +0 -126
  197. package/skills/data360-segment-mcp-configure/SKILL.md +0 -159
  198. package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +0 -93
  199. package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +0 -93
  200. package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +0 -93
  201. package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +0 -38
  202. package/skills/data360-semantic-engine-mcp-configure/SKILL.md +0 -62
  203. package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +0 -38
  204. package/skills/data360-semantic-metric-mcp-configure/SKILL.md +0 -93
  205. package/skills/data360-semantic-model-mcp-configure/SKILL.md +0 -115
  206. package/skills/data360-standard-mapping-mcp-configure/SKILL.md +0 -38
  207. package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +0 -73
  208. package/skills/experience-afv-query/SKILL.md +0 -234
  209. package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +0 -63
  210. package/skills/experience-apex-components-configure/SKILL.md +0 -69
  211. package/skills/experience-apex-pages-configure/SKILL.md +0 -107
  212. package/skills/experience-app-home-configure/SKILL.md +0 -76
  213. package/skills/experience-aura-lightning-out-access-configure/SKILL.md +0 -58
  214. package/skills/experience-briefcase-configure/SKILL.md +0 -287
  215. package/skills/experience-community-flexi-page-list-create/SKILL.md +0 -74
  216. package/skills/experience-community-template-definition-list-query/SKILL.md +0 -48
  217. package/skills/experience-community-theme-definition-list-query/SKILL.md +0 -38
  218. package/skills/experience-content-assets-configure/SKILL.md +0 -86
  219. package/skills/experience-custom-domain-create/SKILL.md +0 -727
  220. package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +0 -41
  221. package/skills/experience-field-service-app-builder-configure/SKILL.md +0 -187
  222. package/skills/experience-flow-category-configure/SKILL.md +0 -117
  223. package/skills/experience-formula-configure/SKILL.md +0 -358
  224. package/skills/experience-global-actions-configure/SKILL.md +0 -69
  225. package/skills/experience-global-publisher-layouts-configure/SKILL.md +0 -79
  226. package/skills/experience-instrumentation-configure/SKILL.md +0 -64
  227. package/skills/experience-lex-engagement-configure/SKILL.md +0 -50
  228. package/skills/experience-lightning-bolt-open/SKILL.md +0 -12
  229. package/skills/experience-lightning-out-configure/SKILL.md +0 -129
  230. package/skills/experience-lightning-preview-configure/SKILL.md +0 -67
  231. package/skills/experience-lightning-types-query/SKILL.md +0 -98
  232. package/skills/experience-malware-scan-configure/SKILL.md +0 -71
  233. package/skills/experience-my-salesforce-configure/SKILL.md +0 -126
  234. package/skills/experience-navigation-menus-configure/SKILL.md +0 -235
  235. package/skills/experience-notification-types-configure/SKILL.md +0 -206
  236. package/skills/experience-notifications-configure/SKILL.md +0 -75
  237. package/skills/experience-record-discovery-query/SKILL.md +0 -227
  238. package/skills/experience-regenerate-previews-open/SKILL.md +0 -94
  239. package/skills/experience-sales-cloud-mab-configure/SKILL.md +0 -254
  240. package/skills/experience-schema-builder-open/SKILL.md +0 -38
  241. package/skills/experience-simple-record-home-configure/SKILL.md +0 -110
  242. package/skills/experience-static-resources-configure/SKILL.md +0 -74
  243. package/skills/field-service-setup-coordinate/SKILL.md +0 -62
  244. package/skills/field-service-work-plan-configure/SKILL.md +0 -253
  245. package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +0 -180
  246. package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +0 -196
  247. package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +0 -106
  248. package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +0 -96
  249. package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +0 -111
  250. package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +0 -250
  251. package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +0 -122
  252. package/skills/fsc-digital-origination-coordinate/SKILL.md +0 -653
  253. package/skills/fsc-digital-origination-demo-run/SKILL.md +0 -225
  254. package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +0 -112
  255. package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +0 -396
  256. package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +0 -336
  257. package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +0 -208
  258. package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +0 -375
  259. package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +0 -83
  260. package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +0 -248
  261. package/skills/fsc-digital-origination-sample-data-create/SKILL.md +0 -206
  262. package/skills/fsc-document-checklist-settings-configure/SKILL.md +0 -57
  263. package/skills/fsc-flexible-hierarchy-configure/SKILL.md +0 -148
  264. package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +0 -1430
  265. package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +0 -471
  266. package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +0 -429
  267. package/skills/fsc-pricing-product-configurator-configure/SKILL.md +0 -150
  268. package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +0 -123
  269. package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +0 -82
  270. package/skills/fsc-product-act3-attributes-create/SKILL.md +0 -249
  271. package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +0 -196
  272. package/skills/fsc-product-act5-considerations-get/SKILL.md +0 -44
  273. package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +0 -384
  274. package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +0 -144
  275. package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +0 -107
  276. package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +0 -189
  277. package/skills/fsc-stage-management-definition-create/SKILL.md +0 -108
  278. package/skills/fsc-stage-management-permissions-assign/SKILL.md +0 -143
  279. package/skills/fsc-stage-management-transitions-configure/SKILL.md +0 -139
  280. package/skills/health-cloud-appt-booking-config-configure/SKILL.md +0 -135
  281. package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +0 -134
  282. package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +0 -136
  283. package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +0 -134
  284. package/skills/health-cloud-care-requests-create/SKILL.md +0 -178
  285. package/skills/health-cloud-initial-configure/SKILL.md +0 -511
  286. package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +0 -1374
  287. package/skills/health-cloud-provider-search-settings-configure/SKILL.md +0 -924
  288. package/skills/health-cloud-referral-management-coordinate/SKILL.md +0 -513
  289. package/skills/health-cloud-timeline-configure/SKILL.md +0 -622
  290. package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +0 -135
  291. package/skills/industries-account-score-settings-query/SKILL.md +0 -78
  292. package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +0 -177
  293. package/skills/industries-ad-product-availability-search/SKILL.md +0 -399
  294. package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +0 -628
  295. package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +0 -73
  296. package/skills/industries-atm-settings-starter-configure/SKILL.md +0 -76
  297. package/skills/industries-batch-document-ai-configure/SKILL.md +0 -196
  298. package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +0 -71
  299. package/skills/industries-branch-management-settings-configure/SKILL.md +0 -89
  300. package/skills/industries-bre-decision-table-access-configure/SKILL.md +0 -367
  301. package/skills/industries-brokerage-settings-configure/SKILL.md +0 -41
  302. package/skills/industries-calendar-sync-settings-configure/SKILL.md +0 -89
  303. package/skills/industries-care-request-settings-configure/SKILL.md +0 -218
  304. package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +0 -54
  305. package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +0 -380
  306. package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +0 -216
  307. package/skills/industries-catalog-process-intake-configure/SKILL.md +0 -219
  308. package/skills/industries-catalog-process-knowledge-configure/SKILL.md +0 -153
  309. package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +0 -168
  310. package/skills/industries-cds-general-settings-configure/SKILL.md +0 -69
  311. package/skills/industries-claim-financial-settings-configure/SKILL.md +0 -169
  312. package/skills/industries-clinical-data-model-settings-configure/SKILL.md +0 -136
  313. package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +0 -105
  314. package/skills/industries-collection-plan-settings-configure/SKILL.md +0 -132
  315. package/skills/industries-comms-service-console-settings-configure/SKILL.md +0 -159
  316. package/skills/industries-compliance-configure/SKILL.md +0 -102
  317. package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +0 -76
  318. package/skills/industries-contact-center-app-layout-configure/SKILL.md +0 -88
  319. package/skills/industries-contact-center-components-configure/SKILL.md +0 -96
  320. package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +0 -95
  321. package/skills/industries-contact-center-user-access-assign/SKILL.md +0 -96
  322. package/skills/industries-course-waitlist-config-configure/SKILL.md +0 -162
  323. package/skills/industries-crisis-center-settings-configure/SKILL.md +0 -84
  324. package/skills/industries-custom-object-settings-configure/SKILL.md +0 -94
  325. package/skills/industries-data-cloud-integration-configure/SKILL.md +0 -88
  326. package/skills/industries-data-space-feature-mappings-configure/SKILL.md +0 -245
  327. package/skills/industries-decision-matrix-builder-configure/SKILL.md +0 -78
  328. package/skills/industries-decision-table-hbase-configure/SKILL.md +0 -87
  329. package/skills/industries-decision-table-version-configure/SKILL.md +0 -74
  330. package/skills/industries-decision-tables-builder-configure/SKILL.md +0 -253
  331. package/skills/industries-decision-tables-configure/SKILL.md +0 -439
  332. package/skills/industries-energy-utilities-configure/SKILL.md +0 -251
  333. package/skills/industries-eu-cloud-multisite-configure/SKILL.md +0 -1008
  334. package/skills/industries-eu-new-connections-configure/SKILL.md +0 -30
  335. package/skills/industries-explainability-msg-template-configure/SKILL.md +0 -135
  336. package/skills/industries-expression-set-message-token-configure/SKILL.md +0 -135
  337. package/skills/industries-field-service-settings-configure/SKILL.md +0 -82
  338. package/skills/industries-form-framework-settings-configure/SKILL.md +0 -30
  339. package/skills/industries-fsc-ai-settings-configure/SKILL.md +0 -57
  340. package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +0 -172
  341. package/skills/industries-fsc-b2b-settings-configure/SKILL.md +0 -61
  342. package/skills/industries-fsc-insurance-settings-configure/SKILL.md +0 -58
  343. package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +0 -103
  344. package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +0 -117
  345. package/skills/industries-fsc-wealth-settings-configure/SKILL.md +0 -99
  346. package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +0 -120
  347. package/skills/industries-fundraising-rfm-configure/SKILL.md +0 -128
  348. package/skills/industries-fundraising-settings-configure/SKILL.md +0 -145
  349. package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +0 -299
  350. package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +0 -87
  351. package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +0 -58
  352. package/skills/industries-hc-score-category-settings-configure/SKILL.md +0 -167
  353. package/skills/industries-health-engagement-settings-configure/SKILL.md +0 -218
  354. package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +0 -131
  355. package/skills/industries-home-health-bundling-policy-create/SKILL.md +0 -50
  356. package/skills/industries-home-health-entity-labels-configure/SKILL.md +0 -29
  357. package/skills/industries-home-health-fsl-package-deploy/SKILL.md +0 -71
  358. package/skills/industries-home-health-fsl-settings-validate/SKILL.md +0 -27
  359. package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +0 -80
  360. package/skills/industries-home-health-guided-setup-configure/SKILL.md +0 -836
  361. package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +0 -55
  362. package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +0 -61
  363. package/skills/industries-home-health-licenses-assign/SKILL.md +0 -27
  364. package/skills/industries-home-health-operating-hours-create/SKILL.md +0 -40
  365. package/skills/industries-home-health-scheduling-policy-create/SKILL.md +0 -41
  366. package/skills/industries-home-health-service-objective-create/SKILL.md +0 -22
  367. package/skills/industries-home-health-skills-create/SKILL.md +0 -31
  368. package/skills/industries-home-health-users-create/SKILL.md +0 -29
  369. package/skills/industries-icm-act3-toggles-configure/SKILL.md +0 -198
  370. package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +0 -361
  371. package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +0 -550
  372. package/skills/industries-integrated-care-management-configure/SKILL.md +0 -168
  373. package/skills/industries-object-enablement-configure/SKILL.md +0 -86
  374. package/skills/industries-tpm-system-processing-service-configure/SKILL.md +0 -64
  375. package/skills/integration-apex-settings-configure/SKILL.md +0 -61
  376. package/skills/marketing-e360-email-archiving-configure/SKILL.md +0 -73
  377. package/skills/platform-custom-permissions-configure/SKILL.md +0 -687
  378. package/skills/platform-label-workbench-import-create/SKILL.md +0 -67
  379. package/skills/platform-privacy-agent-settings-configure/SKILL.md +0 -752
@@ -1,44 +0,0 @@
1
- ---
2
- name: fsc-product-act5-considerations-get
3
- description: "Sub-skill of digital-origination-product-setup. Act 5 — surface the Salesforce Help considerations and limitations for Digital Lending catalogs and products (100-product FlexCard cap, no pagination, dynamic name/image/description, currency vs number typing for loan-amount attributes, LoanTerm as months picklist, DigitalLendingTransFormProductInfo data-mapper update requirement when custom attributes are added). Not a write step — alignment step."
4
- metadata:
5
- version: "1.0"
6
- ---
7
-
8
- # Act 5 — Considerations & limits
9
-
10
- Source: [Considerations and Limitations for Catalogs and Products for Digital Lending](https://help.salesforce.com/s/articleView?id=ind.fsc_lending_catalogs_products_considerations.htm&type=5)
11
-
12
- ## Purpose
13
-
14
- Alignment step, not a write step. Surface each consideration to the admin so downstream
15
- expectations (product listing, offer validity, data mapper updates) are set correctly.
16
-
17
- ## Prereq gate
18
-
19
- - Acts 1–4 complete, OR the admin explicitly asked for a considerations-only summary.
20
-
21
- ## What to surface
22
-
23
- Full verbatim list at [`../../references/considerations-and-limits.md`](../../references/considerations-and-limits.md).
24
- Walk the admin through each bullet; capture acknowledgement.
25
-
26
- Priority items to call out:
27
-
28
- 1. **100-product FlexCard cap + no pagination.** Product List Page FlexCard shows up to 100 products from the CPQ API. If the admin plans to onboard more, this is a design blocker.
29
- 2. **Category-required rule.** If not using parent + child categories, products MUST be assigned to a category. If using parent + child, use subcategories.
30
- 3. **Attribute grouping.** Add LoanTerm, MinLoanAmount, MaxLoanAmount, OmniScriptName, OfferValidPeriod in the same attribute category OR as uncategorized. Do not split across attribute categories.
31
- 4. **Type mismatch — MinLoanAmount / MaxLoanAmount.** Sample-data considerations describe these as Type **currency**. Help-doc creation steps (Article 6, Act 3) use Data Type = **Number**. If the admin plans to use the Agentforce Financial Services sample data, use currency; otherwise follow Number per the creation steps.
32
- 5. **LoanTerm — picklist in months.** LoanTerm is a picklist type with loan terms as picklist values. Values are in months.
33
- 6. **Data mapper update requirement.** If the admin creates attributes beyond LoanTerm / MinLoanAmount / MaxLoanAmount / OmniScriptName / OfferValidPeriod, they MUST update the DigitalLendingTransFormProductInfo Data Mapper Transform with the custom attributes. This is out of scope for this SKILL — flag it as follow-up.
34
- 7. **Dynamic product-card fields.** Name, display URL, and description shown on the product card come from the product record's name / display URL / description attributes. Values are dynamic per product.
35
- 8. **CPQ Fetch product detail API.** Returns new attributes; the updated attributes appear on the product detail page. Wire-up is out of scope for this SKILL.
36
-
37
- ## End state
38
-
39
- - Admin has acknowledged each consideration.
40
- - Follow-up items captured (custom-attribute data-mapper update, FlexCard scale, sample-data currency typing).
41
-
42
- ## See also
43
-
44
- - [`../../references/considerations-and-limits.md`](../../references/considerations-and-limits.md) — verbatim source
@@ -1,384 +0,0 @@
1
- ---
2
- name: fsc-stage-management-apex-flow-deploy
3
- parent: "digital-origination-stage-management-setup"
4
- purpose: "Deploy the CDSCacheHelper and AutoLoanCDSUtil Apex classes and create the autolaunched Flow that stage transition rules invoke."
5
- description: "Deploy the two Apex classes that power Compliant Data Sharing for Stage Management (CDSCacheHelper, which caches participant role and group name-to-Id maps, and AutoLoanCDSUtil, which exposes the \"Digital Lending CDS\" invocable method that reads the three decision matrices and creates or updates participant records), then create the \"Digital Lending Stage Management\" autolaunched Flow that wraps the Apex so a stage transition rule can call it. Apex and Flow are code artifacts deployed through the Metadata/Tooling API and verified with a fresh read; if the org disallows deploys, the sibling stops at a guided checkpoint. It never hand-edits the delivered class logic beyond the documented developer-name substitutions."
6
- metadata:
7
- version: "1.0"
8
- cliTools:
9
- - tool:
10
- - "sf"
11
- semver: ">=2.0.0"
12
- ---
13
-
14
- # Digital Origination Stage Management — CDS Apex and Flow
15
-
16
- Deploy the code that runs on every stage transition. When a stage transition rule fires, an autolaunched
17
- Flow invokes `AutoLoanCDSUtil`, which reads the three decision matrices and creates or updates the CDS
18
- participant records that change who can see the application. This sibling deploys the two Apex classes and
19
- creates the Flow. It does not create the perm sets, groups, matrices, stage definition, or transitions —
20
- it only deploys the code that consumes them.
21
-
22
- Source: Salesforce Help "Create an Apex Class CDSCacheHelper"
23
- (`ind.fsc_lending_stage_management_apex_helper`), "Create an Apex Class CDSUtil"
24
- (`ind.fsc_lending_stage_management_apex_cdsutil`), and "Create Digital Lending Stage Management Flow".
25
- The complete, verbatim class bodies are inlined below — deploy them exactly as written (the only permitted
26
- edit is the documented `FSCCDSUser` perm-set-name substitution).
27
-
28
- ## Prerequisites this sibling depends on
29
-
30
- The Apex resolves these by name at runtime, so they must exist (from the `compliant-data-sharing` and
31
- `decision-matrices` siblings) before the Apex can run — though the classes can be **deployed** before the
32
- matrices exist, they will not evaluate correctly until every referenced artifact is present:
33
-
34
- - Permission set `FSCCDSUser`
35
- - Participant groups `Agent_Group`, `Underwriter_Group`
36
- - Participant roles prefixed `ApplicationForm`, `ApplicationFormProduct`, `PartyProfile`
37
- - Decision matrices `HomeLoan_CDS_Config`, `AFPStage_To_ApplicantVisibleStatus`, `AFPStage_To_AFStage`
38
-
39
- ## The two Apex classes
40
-
41
- Deploy both classes **verbatim** as given below. `CDSCacheHelper` has no dependency; `AutoLoanCDSUtil`
42
- depends on it (a `static {}` initializer calls `CDSCacheHelper.loadCDSData()`), so deploy them together or
43
- helper-first.
44
-
45
- ### `CDSCacheHelper`
46
-
47
- Caches two static name→Id maps via `loadCDSData()`: `PARTICIPANT_ROLE_NAME_TO_ID` (active
48
- `ParticipantRole`, keyed by `DeveloperName`) and `PARTICIPANT_GROUP_NAME_TO_ID` (`Group` where
49
- `Type='Participant'`, keyed by `DeveloperName`). The guard returns early only when **both** maps are
50
- already populated.
51
-
52
- ```apex
53
- public class CDSCacheHelper {
54
-
55
- public static Map<String, String> PARTICIPANT_ROLE_NAME_TO_ID = new Map<String, String>();
56
- public static Map<String, String> PARTICIPANT_GROUP_NAME_TO_ID = new Map<String, String>();
57
-
58
- public static void loadCDSData() {
59
-
60
- if (!(PARTICIPANT_ROLE_NAME_TO_ID.isEmpty() || PARTICIPANT_GROUP_NAME_TO_ID.isEmpty())) {
61
- return;
62
- }
63
-
64
- // Caching participant roles
65
- List<Participantrole> paticipantRoles = [SELECT ID, DeveloperName FROM ParticipantRole WHERE IsActive = true];
66
- for (Participantrole role: paticipantRoles) {
67
- PARTICIPANT_ROLE_NAME_TO_ID.put(role.DeveloperName, role.ID);
68
- }
69
-
70
- // Caching participant groups
71
- List<Group> groups = [SELECT ID, DeveloperName FROM Group WHERE Type = 'Participant'];
72
- for (Group groupData: groups) {
73
- PARTICIPANT_GROUP_NAME_TO_ID.put(groupData.DeveloperName, groupData.ID);
74
- }
75
-
76
- }
77
-
78
- }
79
- ```
80
-
81
- ### `AutoLoanCDSUtil`
82
-
83
- `public with sharing`, exposes `@InvocableMethod(label='Digital Lending CDS')` `execute(List<ID> ids)`
84
- where the first Id is an `ApplicationFormProduct`. On a stage change it (1) updates
85
- `ApplicationFormProduct.ApplicantVisibleStatus` via the `AFPStage_To_ApplicantVisibleStatus` matrix, (2)
86
- updates the parent `ApplicationForm.Stage` via `AFPStage_To_AFStage`, and (3) creates/updates participant
87
- records on `AppFormProductParticipant`, `ApplicationFormParticipant`, and `PartyProfileParticipant` via
88
- `HomeLoan_CDS_Config` (outputs `Applicant_Agent_Access` and `Underwriter_Access`, comma-separated
89
- role lists). Roles are dispatched by `startsWith` — `ApplicationFormProduct` is checked **before**
90
- `ApplicationForm` because the latter is a prefix of the former. It calls each matrix via
91
- `Invocable.Action.createCustomAction('runDecisionMatrix', <matrixName>)`.
92
-
93
- **The one documented customization point:** `CDS_PERMISSION_SET_NAME = 'FSCCDSUser'`. If the admin created
94
- the CDS permission set with a different API name, replace `'FSCCDSUser'` on that line before deploy (and
95
- keep it in lockstep with the `compliant-data-sharing` sibling). The matrix names, group names
96
- (`Agent_Group` / `Underwriter_Group`), and field names are load-bearing contracts — do not otherwise
97
- rewrite the class logic.
98
-
99
- ```apex
100
- public with sharing class AutoLoanCDSUtil {
101
-
102
- private static final String DM_APP_FORM_PRODUCT_STAGE_FIELD_NAME = 'ApplicationFormProductStage';
103
- private static final String DM_APP_FORM_STAGE_FIELD_NAME = 'ApplicationFormStage';
104
- private static final String DM_APPLICANT_STATUS_FIELD_NAME = 'ApplicantVisibleStatus';
105
-
106
- private static final String DM_AFP_STAGE_TO_AF_STAGE = 'AFPStage_To_AFStage';
107
- private static final String DM_AFP_STAGE_TO_APPLICANT_STATUS = 'AFPStage_To_ApplicantVisibleStatus';
108
-
109
- private static final String DM_AUTO_LOAN_CDS = 'HomeLoan_CDS_Config';
110
- private static final String DM_UW_ACCESS_FIELD_NAME = 'Underwriter_Access';
111
- private static final String DM_APPLICANT_AGENT_ACCESS_FIELD_NAME = 'Applicant_Agent_Access';
112
-
113
- private static final String APPLICATION_FORM = 'ApplicationForm';
114
- private static final String APPLICATION_FORM_PRODUCT = 'ApplicationFormProduct';
115
- private static final String PARTY_PROFILE = 'PartyProfile';
116
-
117
- private static final String UNDERWRITER_PARTICIPANT_GROUP_NAME = 'Underwriter_Group';
118
- private static final String AGENT_PARTICIPANT_GROUP_NAME = 'Agent_Group';
119
- private static final String CDS_PERMISSION_SET_NAME = 'FSCCDSUser';
120
-
121
- static {
122
- CDSCacheHelper.loadCDSData();
123
- }
124
-
125
- @InvocableMethod(label = 'Digital Lending CDS'
126
- description = 'Creates the CDS records on ApplicationForm/ApplicationFormProduct/PartyProfile based on the configuration.')
127
- public static List <Result> execute(List <ID> ids) {
128
- List <Result> results = new List <Result> ();
129
- Result result = new Result();
130
- try {
131
-
132
- Id applicationFormProductId = ids.get(0);
133
-
134
- ApplicationFormProduct appFormProduct = [SELECT Id, Stage, ApplicantVisibleStatus, ApplicationFormId FROM ApplicationFormProduct WHERE Id =: applicationFormProductId];
135
-
136
- updateApplicantVisibleStatus(appFormProduct);
137
- updateApplicationFormStage(appFormProduct);
138
-
139
- Invocable.Action.Result cdsDmResult = invokeDecisionMatrix(DM_AUTO_LOAN_CDS, appFormProduct.Stage);
140
- String applicantAgentRole = getOutputVal(cdsDmResult, DM_APPLICANT_AGENT_ACCESS_FIELD_NAME);
141
- String underwriterRole = getOutputVal(cdsDmResult, DM_UW_ACCESS_FIELD_NAME);
142
-
143
- String[] applicantAgentRoles = applicantAgentRole.split(',');
144
- String[] underwriterRoles = underwriterRole.split(',');
145
-
146
- Set <Id> partyProfileIds = new Set < Id > ();
147
-
148
- List <Applicant> applicants = [SELECT Id, Email, ApplicationFormId, PartyProfileId FROM Applicant WHERE ApplicationFormId =: appFormProduct.ApplicationFormId];
149
-
150
- for (Applicant applicant: applicants) {
151
- if (applicant.PartyProfileId != null) {
152
- partyProfileIds.add(applicant.PartyProfileId);
153
- }
154
- // If no users where email matches applicant email, continue
155
- List<User> users = [SELECT Id FROM USER WHERE Email =: applicant.Email];
156
- if (users.size() == 0) {
157
- continue;
158
- }
159
- User user = users.get(0);
160
-
161
- // If user does not have CDS permission, continue
162
- List<PermissionSetAssignment> permissionSetAssignments = [SELECT AssigneeId, PermissionSet.Name FROM PermissionSetAssignment
163
- WHERE AssigneeId =: user.Id AND PermissionSet.Name =: CDS_PERMISSION_SET_NAME ];
164
- if (permissionSetAssignments.size() == 0) {
165
- continue;
166
- }
167
-
168
- for (String cdsRole: applicantAgentRoles) {
169
- if (cdsRole.startsWith(APPLICATION_FORM_PRODUCT)) {
170
- handleApplicationFormProductParticipants(user.Id, appFormProduct, cdsRole);
171
- } else if (cdsRole.startsWith(APPLICATION_FORM)) {
172
- handleApplicationFormParticipants(user.Id, appFormProduct, cdsRole);
173
- } else if (cdsRole.startsWith(PARTY_PROFILE)) {
174
- handlePartyProfileParticipants(user.Id, applicant.PartyProfileId, cdsRole);
175
- }
176
- }
177
- }
178
- // Updating / Creating Participant Records for Underwrite groups
179
- handleCDSUpdatesForGroups(UNDERWRITER_PARTICIPANT_GROUP_NAME, underwriterRoles, partyProfileIds, appFormProduct);
180
-
181
- // Updating / Creating Participant Records for Agent groups
182
- handleCDSUpdatesForGroups(AGENT_PARTICIPANT_GROUP_NAME, applicantAgentRoles, partyProfileIds, appFormProduct);
183
- result.isSuccess = true;
184
- result.message = 'Stage configuration executed successfully.';
185
-
186
- } catch (Exception ex) {
187
- result.isSuccess = false;
188
- result.message = ex.getMessage();
189
- System.debug(ex);
190
- }
191
-
192
- results.add(result);
193
- return results;
194
- }
195
-
196
- public static void handleCDSUpdatesForGroups(String groupName, String[] roles, Set < Id > partyProfileIds, ApplicationFormProduct appFormProduct) {
197
- String groupId = CDSCacheHelper.PARTICIPANT_GROUP_NAME_TO_ID.get(groupName);
198
- for (String cdsRole: roles) {
199
- if (cdsRole.startsWith(APPLICATION_FORM_PRODUCT)) {
200
- handleApplicationFormProductParticipants(groupId, appFormProduct, cdsRole);
201
- } else if (cdsRole.startsWith(APPLICATION_FORM)) {
202
- handleApplicationFormParticipants(groupId, appFormProduct, cdsRole);
203
- } else if (cdsRole.startsWith(PARTY_PROFILE)) {
204
- for (Id partyProfileId: partyProfileIds) {
205
- handlePartyProfileParticipants(groupId, partyProfileId, cdsRole);
206
- }
207
- }
208
- }
209
- }
210
-
211
- public static void updateApplicantVisibleStatus(ApplicationFormProduct appFormProduct) {
212
- Invocable.Action.Result result = invokeDecisionMatrix(DM_AFP_STAGE_TO_APPLICANT_STATUS, appFormProduct.Stage);
213
- String applicantVisibleStatus = getOutputVal(result, DM_APPLICANT_STATUS_FIELD_NAME);
214
- appFormProduct.ApplicantVisibleStatus = applicantVisibleStatus;
215
- upsert appFormProduct;
216
- }
217
-
218
- public static void updateApplicationFormStage(ApplicationFormProduct appFormProduct) {
219
- Invocable.Action.Result result = invokeDecisionMatrix(DM_AFP_STAGE_TO_AF_STAGE, appFormProduct.Stage);
220
- String applicationFormStage = getOutputVal(result, DM_APP_FORM_STAGE_FIELD_NAME);
221
-
222
- ApplicationForm applicationForm = new ApplicationForm();
223
- applicationForm.Id = appFormProduct.ApplicationFormId;
224
- applicationForm.Stage = applicationFormStage;
225
- upsert applicationForm;
226
- }
227
-
228
- public static void handleApplicationFormParticipants(Id userOrGroupId, ApplicationFormProduct appFormProduct, String roleName) {
229
- List<ApplicationFormParticipant> appFormParticipants = [SELECT Id, ParticipantRoleId FROM ApplicationFormParticipant WHERE ParticipantId =: userOrGroupId AND ApplicationFormId=:appFormProduct.ApplicationFormId];
230
- String roleId = CDSCacheHelper.PARTICIPANT_ROLE_NAME_TO_ID.get(roleName);
231
- if (appFormParticipants.size() == 0) {
232
- ApplicationFormParticipant participant = new ApplicationFormParticipant(ApplicationFormId = appFormProduct.ApplicationFormId,
233
- IsActive = true,
234
- ParticipantRoleId = roleId,
235
- ParticipantId=userOrGroupId);
236
- insert participant;
237
- } else {
238
- ApplicationFormParticipant participant = appFormParticipants.get(0);
239
- participant.IsActive = true;
240
- participant.ParticipantRoleId = roleId;
241
- upsert participant;
242
- }
243
- }
244
-
245
- public static void handleApplicationFormProductParticipants(Id userOrGroupId, ApplicationFormProduct appFormProduct, String roleName) {
246
- List<AppFormProductParticipant> participants = [SELECT Id, ParticipantRoleId FROM AppFormProductParticipant WHERE ParticipantId =: userOrGroupId AND ApplicationFormProductId=:appFormProduct.Id];
247
- String roleId = CDSCacheHelper.PARTICIPANT_ROLE_NAME_TO_ID.get(roleName);
248
- if (participants.size() == 0) {
249
- AppFormProductParticipant participant = new AppFormProductParticipant(ApplicationFormProductId = appFormProduct.Id,
250
- IsActive = true,
251
- ParticipantRoleId = roleId,
252
- ParticipantId=userOrGroupId);
253
- insert participant;
254
- } else {
255
- AppFormProductParticipant participant = participants.get(0);
256
- participant.IsActive = true;
257
- participant.ParticipantRoleId = roleId;
258
- upsert participant;
259
- }
260
- }
261
-
262
- public static void handlePartyProfileParticipants(Id userOrGroupId, String partyProfileId, String roleName) {
263
- List<PartyProfileParticipant> participants = [SELECT Id, ParticipantRoleId FROM PartyProfileParticipant WHERE ParticipantId =: userOrGroupId AND PartyProfileId=:partyProfileId];
264
- String roleId = CDSCacheHelper.PARTICIPANT_ROLE_NAME_TO_ID.get(roleName);
265
- if (participants.size() == 0) {
266
- PartyProfileParticipant participant = new PartyProfileParticipant(PartyProfileId = partyProfileId,
267
- IsActive = true,
268
- ParticipantRoleId = roleId,
269
- ParticipantId=userOrGroupId);
270
- insert participant;
271
- } else {
272
- PartyProfileParticipant participant = participants.get(0);
273
- participant.IsActive = true;
274
- participant.ParticipantRoleId = roleId;
275
- upsert participant;
276
- }
277
- }
278
-
279
-
280
- public static Invocable.Action.Result invokeDecisionMatrix(String decisionMatrixName, String appFormProductStageVal) {
281
- // Create an Invocable.Action
282
- Invocable.Action action = Invocable.Action.createCustomAction('runDecisionMatrix', decisionMatrixName);
283
- action.setInvocationParameter(DM_APP_FORM_PRODUCT_STAGE_FIELD_NAME, appFormProductStageVal);
284
- List < Invocable.Action.Result > results = action.invoke();
285
- return results.get(0);
286
- }
287
-
288
- public static String getOutputVal(Invocable.Action.Result result, String outputFieldName) {
289
- return (String) result.getOutputParameters().get(outputFieldName);
290
- }
291
-
292
-
293
- public class Result {
294
- @InvocableVariable(label = 'Message'
295
- description = 'Resulted output of the action.'
296
- required = true)
297
- public String message;
298
-
299
- @InvocableVariable(label = 'Status'
300
- description = 'Resulted status of the action.'
301
- required = true)
302
- public boolean isSuccess;
303
- }
304
- }
305
- ```
306
-
307
- ## Deploy path — direct Tooling ApexClass create (dispatchable), with a production deploy fallback + checkpoint
308
-
309
- Apex is not headlessly *authored* through a Setup Connect API. Create it through the **Tooling REST
310
- sObjects route** — a plain-JSON HTTP path the hosted agent drives with no CLI, local project, or
311
- multipart body:
312
-
313
- 1. Read whether each class already exists (`SELECT Id, Name, Status FROM ApexClass WHERE Name IN
314
- ('CDSCacheHelper','AutoLoanCDSUtil')`). Reuse an exact-match class; on a body mismatch, present the
315
- diff and ask before overwriting.
316
- 2. **Create via the Tooling REST sObjects route (primary, dispatchable, org-verified):** POST
317
- `/services/data/vXX.0/tooling/sobjects/ApexClass` ONCE PER CLASS with a JSON body
318
- `{"Name":"...","Body":"<full .cls source>","Status":"Active"}`. Create **CDSCacheHelper first**, then
319
- **AutoLoanCDSUtil**, so the util compiles against an already-present helper (its `static{}` initializer
320
- calls `CDSCacheHelper.loadCDSData()`). The response is synchronous `{id, success:true}`; on
321
- `success:false` read the compile error (there is no async job to poll). This works in sandbox / scratch
322
- / developer orgs; production orgs block direct Apex create by platform rule (use the deploy fallback
323
- below there).
324
- 3. Re-read both classes (`SELECT Id, Name, Status FROM ApexClass WHERE Name IN (...)`) and confirm
325
- `Status = Active` with no compile errors.
326
- 4. **PRECONDITION — Enhanced Personal Information Management:** `AutoLoanCDSUtil` reads `User.Email`. If
327
- `UserManagementSettings.enableEnhancedConcealPersonalInfo` is **enabled**, `User.Email` is concealed
328
- from the Apex compiler for the creating user and the class will **not** compile (`success:false`, a
329
- "No such column 'Email' on entity 'User'"-class error). This is an org/permission condition — not a
330
- code defect and not a transport problem (every write channel feeds the same org Apex compiler, so
331
- switching deploy method does not fix it). Resolve it before creating `AutoLoanCDSUtil` (grant "View All
332
- Users", or disable Enhanced conceal on a disposable test org); never rewrite the class to dodge it.
333
- 5. **Production / non-dispatchable deploy fallback:** where direct Tooling create is blocked (production),
334
- deploy the same two class bodies (helper-first, one request) through the Metadata API `deployRequest`
335
- zip flow. Note this is a **multipart** upload (a binary zip part), so it is NOT drivable by the JSON
336
- dispatch client — it needs a multipart-capable caller (or, on a local workstation only,
337
- `sf project deploy start --metadata-dir <dir>`; the hosted agent cannot shell to a CLI). Do NOT use the
338
- Tooling `MetadataContainer` → `ApexClassMember` → `ContainerAsyncRequest` overwrite flow for these
339
- classes — its `ApexClassMember` POST has been observed to **500 server-side (org-verified)**.
340
- 6. **Checkpoint fallback:** if no create/deploy path is reachable at all (missing author-apex permission
341
- and no deploy surface), stop, report the blocker, and hand off the two class bodies inlined above
342
- ("The two Apex classes"). Do not report the sibling complete without the classes present.
343
-
344
- ## The autolaunched Flow
345
-
346
- Create the **`Digital Lending Stage Management`** autolaunched Flow (No Triggers):
347
-
348
- - One **Action** element running Apex `apex-AutoLoanCDSUtil`, with "Set Input Values" on.
349
- - A **Variable** resource: API name `RecordId`, data type **Text**, **Available for input** = true — the
350
- transition rule passes the `ApplicationFormProduct` record Id into it.
351
- - Label and API name: `Digital Lending Stage Management`.
352
- - Save and **activate** the Flow.
353
-
354
- Create the Flow via the **Tooling REST sObjects route (primary, dispatchable, org-verified)**: POST
355
- `/services/data/vXX.0/tooling/sobjects/Flow` with a JSON body
356
- `{"FullName":"Digital_Lending_Stage_Management","Metadata":{...}}` — `processType` `AutoLaunchedFlow`, a
357
- `start` element carrying both `locationX` and `locationY` (both required), the Action element above, the
358
- `RecordId` Text input variable (`isInput:true`), and `status` `Active`. Create it **after** the Apex
359
- classes (its Action references `apex-AutoLoanCDSUtil`). Then re-read `FlowDefinitionView` / `Flow` to
360
- confirm the active version references the Apex action. Where direct Tooling Flow create is blocked
361
- (production), deliver the same `Flow` component through the Metadata API `deployRequest` zip flow — a
362
- **multipart** upload, so NOT drivable by the JSON dispatch client; it needs a multipart-capable caller (or,
363
- local workstation only, the `sf` CLI). The stage-transition rules (the `stage-transitions` sibling) bind to
364
- this Flow by its exact name, so it must be active before transitions are activated.
365
-
366
- ## Idempotency and rollback
367
-
368
- - Reuse exact-match classes and an exact-match active Flow; do not create suffixed duplicates.
369
- - On a body/definition mismatch, present the diff and stop.
370
- - Rollback deletes only artifacts created by this run and only after confirming no transition rule
371
- depends on the Flow.
372
-
373
- ## Output contract
374
-
375
- Return: each Apex class Id and Status (or the deploy blocker), and the Flow's API name, active version
376
- number, and confirmation that its Action element calls `apex-AutoLoanCDSUtil` with the `RecordId` input.
377
-
378
- ## Definition of done
379
-
380
- `CDSCacheHelper` and `AutoLoanCDSUtil` are deployed and Active (deploying the verbatim bodies inlined
381
- above; or a deploy blocker is reported with those bodies handed off), and the
382
- `Digital Lending Stage Management` autolaunched Flow is active with a `RecordId`
383
- Text input variable and an Action element invoking `apex-AutoLoanCDSUtil`. A partial run is never reported
384
- as complete.
@@ -1,144 +0,0 @@
1
- ---
2
- name: fsc-stage-management-compliant-data-sharing-configure
3
- parent: "digital-origination-stage-management-setup"
4
- purpose: "Configure Compliant Data Sharing for stage management — org-wide sharing, the two CDS permission sets, object enablement, participant roles, and participant groups."
5
- description: "Configure Compliant Data Sharing (CDS) for Stage Management for Digital Lending: set org-wide sharing for the Application Form, Application Form Product, and Party Profile objects to Private or Public Read-Only; create the FSCCDSUser and FSCCDSConfigUser permission sets; enable CDS on those three objects; create the nine participant roles (No Access / Read Write / Read Only per object); and create the Agent_Group and Underwriter_Group participant groups. These artifacts carry exact API names the CDS Apex resolves at runtime, so it never invents or renames them silently."
6
- metadata:
7
- version: "1.0"
8
- cliTools:
9
- - tool:
10
- - "sf"
11
- semver: ">=2.0.0"
12
- ---
13
-
14
- # Digital Origination Stage Management — Compliant Data Sharing
15
-
16
- Set up the Compliant Data Sharing foundation that Stage Management drives. As an application form product
17
- moves through its stages, the CDS Apex creates or updates participant records so bankers, underwriters,
18
- and applicants gain or lose access. This sibling creates every CDS artifact those participant records
19
- depend on. It does not deploy the Apex, create the Flow, build the matrices, or create the stage
20
- definition.
21
-
22
- Source: Salesforce Help "Set Up Compliant Data Sharing for Stage Management Digital Lending" and its
23
- five child articles (CDS permission sets, object enablement, participant roles, participant groups).
24
-
25
- ## Inputs
26
-
27
- - Target-org alias and acting admin.
28
- - The three objects are fixed by the feature: `ApplicationForm`, `ApplicationFormProduct`, `PartyProfile`.
29
- - The admin's per-stage access policy (which role gets Read/Write, Read Only, or No Access at each stage)
30
- — this drives the participant-role set and, later, the decision-matrix rows. Do not infer it.
31
-
32
- ## The exact-name contract
33
-
34
- The CDS Apex (`AutoLoanCDSUtil`) resolves these artifacts **by API/developer name at runtime**. Create
35
- them with exactly these names, or thread any admin-approved rename into the Apex before it is deployed:
36
-
37
- - CDS user permission set: `FSCCDSUser`
38
- - Participant groups: `Agent_Group`, `Underwriter_Group`
39
- - Participant role API names begin with `ApplicationForm`, `ApplicationFormProduct`, `PartyProfile`.
40
-
41
- ## Step 1 — Org-wide sharing
42
-
43
- Set the org-wide default sharing for `ApplicationForm`, `ApplicationFormProduct`, and `PartyProfile` to
44
- **Private** or **Public Read-Only** (CDS requires the baseline be no broader than Read-Only so CDS grants
45
- are additive). Confirm the current setting first; report a change as an org-wide effect and apply only
46
- after confirming the target org. Follow Salesforce Help "Configure Your Org for Compliant Data Sharing",
47
- "Configure Page Layouts for CDS", and "Manage Users in CDS" for the page-layout and user steps.
48
-
49
- ## Step 2 — CDS permission sets
50
-
51
- Create two permission sets (License = **None** on both):
52
-
53
- - **`FSCCDSUser`** (label `FSCCDSUser`) — grant the **Use Compliant Data Sharing** system permission.
54
- On a headless `PermissionSet` write the literal field is **`PermissionsUseCompliantDataSharing = true`**.
55
- This exact developer name is referenced by the Apex; a rename must be threaded into the Apex constant.
56
- - **`FSCCDSConfigUser`** (label `FSCCDSConfigUser`) — grant **Configure Compliant Data Sharing**
57
- (field **`PermissionsConfigCompliantDataSharing = true`**); deselect **Use Compliant Data Sharing**
58
- (`PermissionsUseCompliantDataSharing = false`) if it was set.
59
-
60
- Create them via the Metadata/Tooling API (or sObject REST for `PermissionSet` + `SetupEntityAccess` /
61
- `PermissionSetPermissions` where available), describing first. Reuse an exact-match existing set rather
62
- than creating a duplicate.
63
-
64
- ## Step 3 — Enable CDS on the objects (proven: Metadata API `IndustriesSettings`)
65
-
66
- Turn on Compliant Data Sharing for `ApplicationForm`, `ApplicationFormProduct`, and `PartyProfile`.
67
- **The proven headless path is a Metadata API `IndustriesSettings` deploy** (org-verified on fsc-dop8,
68
- v63.0) — the Aura `updateEntityPreference` write 501s and the Org Preferences API rejects the `Cds*`
69
- bits, so use MDAPI:
70
-
71
- ```xml
72
- <!-- Industries.settings (MDAPI filename MUST be Industries.settings, NOT source-format .settings-meta.xml) -->
73
- <IndustriesSettings xmlns="http://soap.sforce.com/2006/04/metadata">
74
- <enableCdsApplicationForm>true</enableCdsApplicationForm>
75
- <enableCdsApplicationFormProduct>true</enableCdsApplicationFormProduct>
76
- <enableCdsPartyProfile>true</enableCdsPartyProfile>
77
- </IndustriesSettings>
78
- ```
79
-
80
- Package this with `package.xml` (`<members>Industries</members>` / `<name>Settings</name>`) and deploy it
81
- **headlessly through the Metadata API REST `deployRequest` endpoint** (base64-zip POST, then poll the
82
- deploy status) — no CLI required. Re-read the entity CDS state (`describe`) to confirm. (On a local
83
- workstation the same zip can be deployed with `sf project deploy start --metadata-dir <dir>` — local-dev
84
- convenience only, not a served path.) If the org disallows Metadata deploys, fall back to Setup →
85
- **Object Enablement Settings** (turn on for CRM and Experience Cloud users) and stop at the Setup
86
- checkpoint until the admin confirms.
87
-
88
- ## Step 4 — Participant roles
89
-
90
- For each of the three objects, create **No Access**, **Read/Write**, and **Read Only** participant roles
91
- (nine total) via Setup → **Participant Roles** → New (or the corresponding sObject/Metadata write,
92
- describe-first). Each role has a Name, an API name, a parent object, and a default access level. The Apex
93
- matches roles by API-name prefix, so keep the object prefix exact:
94
-
95
- | Object | Example role API names | Default access |
96
- |---|---|---|
97
- | Application Form | `ApplicationFormNoAccess`, `ApplicationFormRW`, `ApplicationFormRead` | No Access / Read Write / Read Only |
98
- | Application Form Product | `ApplicationFormProductNoAccess`, `ApplicationFormProductRW`, `ApplicationFormProductRead` | No Access / Read Write / Read Only |
99
- | Party Profile | `PartyProfileNoAccess`, `PartyProfileRW`, `PartyProfileRead` | No Access / Read Write / Read Only |
100
-
101
- The exact role API names must match the tokens the admin's decision-matrix rows emit (the
102
- `HomeLoan_CDS_Config` matrix outputs comma-separated role lists such as
103
- `ApplicationFormRW, ApplicationFormProductRW, PartyProfileRW`). Agree the naming with the admin up front
104
- so roles, matrix rows, and Apex align.
105
-
106
- ## Step 5 — Participant groups
107
-
108
- Create two participant groups (`Group` sObject with `Type = 'Participant'` — there is no dedicated
109
- ParticipantGroup entity):
110
-
111
- - `Agent_Group` (name and developer name `Agent_Group`)
112
- - `Underwriter_Group` (name and developer name `Underwriter_Group`)
113
-
114
- These developer names are hardcoded in the Apex (`AGENT_PARTICIPANT_GROUP_NAME` /
115
- `UNDERWRITER_PARTICIPANT_GROUP_NAME`).
116
-
117
- **Prerequisite (org-verified):** creating a `Type='Participant'` Group requires the **running/acting
118
- user** to hold **Configure Compliant Data Sharing** — i.e. assign the `FSCCDSConfigUser` perm set (and
119
- `FSCCDSUser`) to the acting user *before* this step. Without it the insert fails
120
- `INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY`. `dispatch` mints a fresh token per call, so a
121
- just-granted `PermissionSetAssignment` takes effect on the very next call.
122
-
123
- ## Idempotency and rollback
124
-
125
- - Query for an exact-match perm set, role, or group by API/developer name before creating; reuse it.
126
- - On a shape mismatch (e.g. a role with the right name but wrong default access), present the diff and
127
- stop rather than overwriting.
128
- - Rollback removes only artifacts created by this run, and only after confirming no participant record,
129
- Apex, or matrix row depends on them.
130
- - Never change org-wide sharing back without explicit approval — other features may now depend on it.
131
-
132
- ## Output contract
133
-
134
- Return: the org-wide sharing setting for each object (prior and final), the two perm set Ids and API
135
- names with their granted permissions, the CDS object-enablement state for all three objects, the nine
136
- participant role Ids/API names/default access, and the two participant group Ids/developer names.
137
-
138
- ## Definition of done
139
-
140
- Org-wide sharing for the three objects is Private or Public Read-Only; CDS is enabled on all three; the
141
- `FSCCDSUser` and `FSCCDSConfigUser` perm sets exist with the correct system permissions; the nine
142
- participant roles exist with matching API-name prefixes and the intended default access; and the
143
- `Agent_Group` and `Underwriter_Group` participant groups exist. Any missing feature/object or unresolved
144
- checkpoint is reported; a partial run is never reported as complete.