@salesforce/afv-skills 1.65.0 → 1.65.1

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 (349) hide show
  1. package/package.json +1 -1
  2. package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +2 -23
  3. package/skills/field-service-data-capture-form-designer-configure/SKILL.md +3 -13
  4. package/skills/field-service-mobile-branding-configure/SKILL.md +3 -17
  5. package/skills/field-service-objective-designer-configure/SKILL.md +379 -72
  6. package/skills/field-service-prework-brief-deployer-configure/SKILL.md +537 -10
  7. package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1093 -65
  8. package/skills/field-service-sobject-create-configure/SKILL.md +213 -13
  9. package/skills/field-service-voice-to-form-configure/SKILL.md +11 -40
  10. package/skills/field-service-work-rule-designer-configure/SKILL.md +95 -121
  11. package/skills/agentforce-gpt-email-generation-configure/SKILL.md +0 -312
  12. package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +0 -64
  13. package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +0 -46
  14. package/skills/automation-company-profile-info-query/SKILL.md +0 -51
  15. package/skills/automation-digital-wallet-configure/SKILL.md +0 -689
  16. package/skills/automation-flow-coordinate/SKILL.md +0 -95
  17. package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +0 -1569
  18. package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +0 -96
  19. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +0 -23
  20. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +0 -31
  21. package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +0 -179
  22. package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +0 -13
  23. package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +0 -83
  24. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +0 -69
  25. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +0 -274
  26. package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +0 -192
  27. package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +0 -130
  28. package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +0 -92
  29. package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +0 -88
  30. package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +0 -152
  31. package/skills/automation-flow-coordinate/references/elements/start/start.md +0 -539
  32. package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +0 -152
  33. package/skills/automation-flow-coordinate/references/elements/wait/wait.md +0 -497
  34. package/skills/automation-flow-coordinate/references/recipes/author/author.md +0 -868
  35. package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +0 -300
  36. package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +0 -292
  37. package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +0 -323
  38. package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +0 -109
  39. package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +0 -219
  40. package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +0 -180
  41. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +0 -175
  42. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +0 -255
  43. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +0 -212
  44. package/skills/automation-flow-coordinate/references/resources/variable/variable.md +0 -171
  45. package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +0 -786
  46. package/skills/automation-flow-coordinate/references/shared/end/end.md +0 -267
  47. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +0 -69
  48. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +0 -80
  49. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +0 -116
  50. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +0 -321
  51. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +0 -320
  52. package/skills/automation-flow-coordinate/references/shared/server-functions.md +0 -597
  53. package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +0 -69
  54. package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +0 -78
  55. package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +0 -373
  56. package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +0 -273
  57. package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +0 -259
  58. package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +0 -369
  59. package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +0 -542
  60. package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  61. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +0 -349
  62. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +0 -505
  63. package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +0 -380
  64. package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +0 -567
  65. package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  66. package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +0 -360
  67. package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +0 -539
  68. package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +0 -358
  69. package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +0 -602
  70. package/skills/commerce-b2b-store-configure/SKILL.md +0 -251
  71. package/skills/commerce-credit-memo-create/SKILL.md +0 -139
  72. package/skills/commerce-delivery-business-hours-configure/SKILL.md +0 -277
  73. package/skills/commerce-delivery-estimation-apply/SKILL.md +0 -155
  74. package/skills/commerce-delivery-estimation-configure/SKILL.md +0 -377
  75. package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +0 -174
  76. package/skills/commerce-estimate-bopis-query/SKILL.md +0 -279
  77. package/skills/commerce-estimate-delivery-date-query/SKILL.md +0 -349
  78. package/skills/commerce-fees-apply/SKILL.md +0 -227
  79. package/skills/commerce-fulfillment-routing-analyze/SKILL.md +0 -200
  80. package/skills/commerce-guest-buyer-create/SKILL.md +0 -173
  81. package/skills/commerce-location-bopis-configure/SKILL.md +0 -378
  82. package/skills/commerce-location-business-hours-configure/SKILL.md +0 -235
  83. package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +0 -309
  84. package/skills/commerce-location-graph-integrate/SKILL.md +0 -131
  85. package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +0 -755
  86. package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +0 -331
  87. package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +0 -579
  88. package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +0 -626
  89. package/skills/commerce-merchant-catalog-configure/SKILL.md +0 -614
  90. package/skills/commerce-merchant-extension-provider-configure/SKILL.md +0 -368
  91. package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +0 -118
  92. package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +0 -65
  93. package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +0 -90
  94. package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +0 -72
  95. package/skills/commerce-merchant-insights-query/SKILL.md +0 -279
  96. package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +0 -656
  97. package/skills/commerce-order-summary-change-apply/SKILL.md +0 -375
  98. package/skills/commerce-product-details-get/SKILL.md +0 -363
  99. package/skills/commerce-product-search/SKILL.md +0 -563
  100. package/skills/commerce-react-storefront-create/SKILL.md +0 -350
  101. package/skills/commerce-return-order-summary-create/SKILL.md +0 -513
  102. package/skills/commerce-search-relevance-analyze/SKILL.md +0 -757
  103. package/skills/commerce-temporary-processing-time-override-create/SKILL.md +0 -274
  104. package/skills/communications-initial-setup-configure/SKILL.md +0 -630
  105. package/skills/communications-multisite-configure/SKILL.md +0 -571
  106. package/skills/communications-revenue-cloud-settings-configure/SKILL.md +0 -74
  107. package/skills/communications-smb-fiber-catalog-create/SKILL.md +0 -413
  108. package/skills/communications-tmf-integrate/SKILL.md +0 -1368
  109. package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +0 -448
  110. package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +0 -269
  111. package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +0 -271
  112. package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +0 -382
  113. package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +0 -373
  114. package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +0 -389
  115. package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +0 -338
  116. package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +0 -547
  117. package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +0 -346
  118. package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +0 -1110
  119. package/skills/crm-analytics-adoption-insights-configure/SKILL.md +0 -224
  120. package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +0 -418
  121. package/skills/crm-analytics-dashboards-configure/SKILL.md +0 -731
  122. package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +0 -233
  123. package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +0 -184
  124. package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +0 -167
  125. package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +0 -55
  126. package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +0 -1350
  127. package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +0 -1862
  128. package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +0 -83
  129. package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +0 -81
  130. package/skills/data360-activation-create/SKILL.md +0 -104
  131. package/skills/data360-activation-external-platform-get/SKILL.md +0 -49
  132. package/skills/data360-activation-target-create/SKILL.md +0 -93
  133. package/skills/data360-activation-v2-create/SKILL.md +0 -456
  134. package/skills/data360-audience-dmo-get/SKILL.md +0 -38
  135. package/skills/data360-calculated-affinity-create/SKILL.md +0 -82
  136. package/skills/data360-calculated-insight-create/SKILL.md +0 -148
  137. package/skills/data360-catalog-metadata-create/SKILL.md +0 -183
  138. package/skills/data360-code-extension-create/SKILL.md +0 -115
  139. package/skills/data360-communication-capping-create/SKILL.md +0 -227
  140. package/skills/data360-connection-create/SKILL.md +0 -491
  141. package/skills/data360-content-lens-create/SKILL.md +0 -181
  142. package/skills/data360-data-action-create/SKILL.md +0 -126
  143. package/skills/data360-data-action-target-create/SKILL.md +0 -181
  144. package/skills/data360-data-clean-room-create/SKILL.md +0 -238
  145. package/skills/data360-data-governance-create/SKILL.md +0 -746
  146. package/skills/data360-data-graph-create/SKILL.md +0 -82
  147. package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +0 -38
  148. package/skills/data360-data-lake-object-create/SKILL.md +0 -207
  149. package/skills/data360-data-model-object-catalog-get/SKILL.md +0 -49
  150. package/skills/data360-data-model-object-create/SKILL.md +0 -128
  151. package/skills/data360-data-model-object-mapping-create/SKILL.md +0 -106
  152. package/skills/data360-data-space-create/SKILL.md +0 -161
  153. package/skills/data360-data-streams-create/SKILL.md +0 -324
  154. package/skills/data360-engagement-signal-get/SKILL.md +0 -38
  155. package/skills/data360-experiment-create/SKILL.md +0 -82
  156. package/skills/data360-goal-based-campaign-create/SKILL.md +0 -192
  157. package/skills/data360-harmonization-process-history-get/SKILL.md +0 -38
  158. package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +0 -84
  159. package/skills/data360-identity-resolution-create/SKILL.md +0 -115
  160. package/skills/data360-intelligent-document-processing-create/SKILL.md +0 -148
  161. package/skills/data360-knowledge-graph-construction-create/SKILL.md +0 -93
  162. package/skills/data360-knowledge-graph-create/SKILL.md +0 -216
  163. package/skills/data360-knowledge-space-mcp-configure/SKILL.md +0 -475
  164. package/skills/data360-machine-learning-mcp-configure/SKILL.md +0 -697
  165. package/skills/data360-multi-org-mcp-configure/SKILL.md +0 -117
  166. package/skills/data360-secondary-index-mcp-configure/SKILL.md +0 -126
  167. package/skills/data360-segment-mcp-configure/SKILL.md +0 -159
  168. package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +0 -93
  169. package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +0 -93
  170. package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +0 -93
  171. package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +0 -38
  172. package/skills/data360-semantic-engine-mcp-configure/SKILL.md +0 -62
  173. package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +0 -38
  174. package/skills/data360-semantic-metric-mcp-configure/SKILL.md +0 -93
  175. package/skills/data360-semantic-model-mcp-configure/SKILL.md +0 -115
  176. package/skills/data360-standard-mapping-mcp-configure/SKILL.md +0 -38
  177. package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +0 -73
  178. package/skills/experience-afv-query/SKILL.md +0 -234
  179. package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +0 -63
  180. package/skills/experience-apex-components-configure/SKILL.md +0 -69
  181. package/skills/experience-apex-pages-configure/SKILL.md +0 -107
  182. package/skills/experience-app-home-configure/SKILL.md +0 -76
  183. package/skills/experience-aura-lightning-out-access-configure/SKILL.md +0 -58
  184. package/skills/experience-briefcase-configure/SKILL.md +0 -287
  185. package/skills/experience-community-flexi-page-list-create/SKILL.md +0 -74
  186. package/skills/experience-community-template-definition-list-query/SKILL.md +0 -48
  187. package/skills/experience-community-theme-definition-list-query/SKILL.md +0 -38
  188. package/skills/experience-content-assets-configure/SKILL.md +0 -86
  189. package/skills/experience-custom-domain-create/SKILL.md +0 -727
  190. package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +0 -41
  191. package/skills/experience-field-service-app-builder-configure/SKILL.md +0 -187
  192. package/skills/experience-flow-category-configure/SKILL.md +0 -117
  193. package/skills/experience-formula-configure/SKILL.md +0 -358
  194. package/skills/experience-global-actions-configure/SKILL.md +0 -69
  195. package/skills/experience-global-publisher-layouts-configure/SKILL.md +0 -79
  196. package/skills/experience-instrumentation-configure/SKILL.md +0 -64
  197. package/skills/experience-lex-engagement-configure/SKILL.md +0 -50
  198. package/skills/experience-lightning-bolt-open/SKILL.md +0 -12
  199. package/skills/experience-lightning-out-configure/SKILL.md +0 -129
  200. package/skills/experience-lightning-preview-configure/SKILL.md +0 -67
  201. package/skills/experience-lightning-types-query/SKILL.md +0 -98
  202. package/skills/experience-malware-scan-configure/SKILL.md +0 -71
  203. package/skills/experience-my-salesforce-configure/SKILL.md +0 -126
  204. package/skills/experience-navigation-menus-configure/SKILL.md +0 -235
  205. package/skills/experience-notification-types-configure/SKILL.md +0 -206
  206. package/skills/experience-notifications-configure/SKILL.md +0 -75
  207. package/skills/experience-record-discovery-query/SKILL.md +0 -227
  208. package/skills/experience-regenerate-previews-open/SKILL.md +0 -94
  209. package/skills/experience-sales-cloud-mab-configure/SKILL.md +0 -254
  210. package/skills/experience-schema-builder-open/SKILL.md +0 -38
  211. package/skills/experience-simple-record-home-configure/SKILL.md +0 -110
  212. package/skills/experience-static-resources-configure/SKILL.md +0 -74
  213. package/skills/field-service-setup-coordinate/SKILL.md +0 -62
  214. package/skills/field-service-work-plan-configure/SKILL.md +0 -253
  215. package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +0 -180
  216. package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +0 -196
  217. package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +0 -106
  218. package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +0 -96
  219. package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +0 -111
  220. package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +0 -250
  221. package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +0 -122
  222. package/skills/fsc-digital-origination-coordinate/SKILL.md +0 -653
  223. package/skills/fsc-digital-origination-demo-run/SKILL.md +0 -225
  224. package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +0 -112
  225. package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +0 -396
  226. package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +0 -336
  227. package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +0 -208
  228. package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +0 -375
  229. package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +0 -83
  230. package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +0 -248
  231. package/skills/fsc-digital-origination-sample-data-create/SKILL.md +0 -206
  232. package/skills/fsc-document-checklist-settings-configure/SKILL.md +0 -57
  233. package/skills/fsc-flexible-hierarchy-configure/SKILL.md +0 -148
  234. package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +0 -1430
  235. package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +0 -471
  236. package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +0 -429
  237. package/skills/fsc-pricing-product-configurator-configure/SKILL.md +0 -150
  238. package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +0 -123
  239. package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +0 -82
  240. package/skills/fsc-product-act3-attributes-create/SKILL.md +0 -249
  241. package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +0 -196
  242. package/skills/fsc-product-act5-considerations-get/SKILL.md +0 -44
  243. package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +0 -384
  244. package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +0 -144
  245. package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +0 -107
  246. package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +0 -189
  247. package/skills/fsc-stage-management-definition-create/SKILL.md +0 -108
  248. package/skills/fsc-stage-management-permissions-assign/SKILL.md +0 -143
  249. package/skills/fsc-stage-management-transitions-configure/SKILL.md +0 -139
  250. package/skills/health-cloud-appt-booking-config-configure/SKILL.md +0 -135
  251. package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +0 -134
  252. package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +0 -136
  253. package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +0 -134
  254. package/skills/health-cloud-care-requests-create/SKILL.md +0 -178
  255. package/skills/health-cloud-initial-configure/SKILL.md +0 -511
  256. package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +0 -1374
  257. package/skills/health-cloud-provider-search-settings-configure/SKILL.md +0 -924
  258. package/skills/health-cloud-referral-management-coordinate/SKILL.md +0 -513
  259. package/skills/health-cloud-timeline-configure/SKILL.md +0 -622
  260. package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +0 -135
  261. package/skills/industries-account-score-settings-query/SKILL.md +0 -78
  262. package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +0 -177
  263. package/skills/industries-ad-product-availability-search/SKILL.md +0 -399
  264. package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +0 -628
  265. package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +0 -73
  266. package/skills/industries-atm-settings-starter-configure/SKILL.md +0 -76
  267. package/skills/industries-batch-document-ai-configure/SKILL.md +0 -196
  268. package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +0 -71
  269. package/skills/industries-branch-management-settings-configure/SKILL.md +0 -89
  270. package/skills/industries-bre-decision-table-access-configure/SKILL.md +0 -367
  271. package/skills/industries-brokerage-settings-configure/SKILL.md +0 -41
  272. package/skills/industries-calendar-sync-settings-configure/SKILL.md +0 -89
  273. package/skills/industries-care-request-settings-configure/SKILL.md +0 -218
  274. package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +0 -54
  275. package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +0 -380
  276. package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +0 -216
  277. package/skills/industries-catalog-process-intake-configure/SKILL.md +0 -219
  278. package/skills/industries-catalog-process-knowledge-configure/SKILL.md +0 -153
  279. package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +0 -168
  280. package/skills/industries-cds-general-settings-configure/SKILL.md +0 -69
  281. package/skills/industries-claim-financial-settings-configure/SKILL.md +0 -169
  282. package/skills/industries-clinical-data-model-settings-configure/SKILL.md +0 -136
  283. package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +0 -105
  284. package/skills/industries-collection-plan-settings-configure/SKILL.md +0 -132
  285. package/skills/industries-comms-service-console-settings-configure/SKILL.md +0 -159
  286. package/skills/industries-compliance-configure/SKILL.md +0 -102
  287. package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +0 -76
  288. package/skills/industries-contact-center-app-layout-configure/SKILL.md +0 -88
  289. package/skills/industries-contact-center-components-configure/SKILL.md +0 -96
  290. package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +0 -95
  291. package/skills/industries-contact-center-user-access-assign/SKILL.md +0 -96
  292. package/skills/industries-course-waitlist-config-configure/SKILL.md +0 -162
  293. package/skills/industries-crisis-center-settings-configure/SKILL.md +0 -84
  294. package/skills/industries-custom-object-settings-configure/SKILL.md +0 -94
  295. package/skills/industries-data-cloud-integration-configure/SKILL.md +0 -88
  296. package/skills/industries-data-space-feature-mappings-configure/SKILL.md +0 -245
  297. package/skills/industries-decision-matrix-builder-configure/SKILL.md +0 -78
  298. package/skills/industries-decision-table-hbase-configure/SKILL.md +0 -87
  299. package/skills/industries-decision-table-version-configure/SKILL.md +0 -74
  300. package/skills/industries-decision-tables-builder-configure/SKILL.md +0 -253
  301. package/skills/industries-decision-tables-configure/SKILL.md +0 -439
  302. package/skills/industries-energy-utilities-configure/SKILL.md +0 -251
  303. package/skills/industries-eu-cloud-multisite-configure/SKILL.md +0 -1008
  304. package/skills/industries-eu-new-connections-configure/SKILL.md +0 -30
  305. package/skills/industries-explainability-msg-template-configure/SKILL.md +0 -135
  306. package/skills/industries-expression-set-message-token-configure/SKILL.md +0 -135
  307. package/skills/industries-field-service-settings-configure/SKILL.md +0 -82
  308. package/skills/industries-form-framework-settings-configure/SKILL.md +0 -30
  309. package/skills/industries-fsc-ai-settings-configure/SKILL.md +0 -57
  310. package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +0 -172
  311. package/skills/industries-fsc-b2b-settings-configure/SKILL.md +0 -61
  312. package/skills/industries-fsc-insurance-settings-configure/SKILL.md +0 -58
  313. package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +0 -103
  314. package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +0 -117
  315. package/skills/industries-fsc-wealth-settings-configure/SKILL.md +0 -99
  316. package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +0 -120
  317. package/skills/industries-fundraising-rfm-configure/SKILL.md +0 -128
  318. package/skills/industries-fundraising-settings-configure/SKILL.md +0 -145
  319. package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +0 -299
  320. package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +0 -87
  321. package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +0 -58
  322. package/skills/industries-hc-score-category-settings-configure/SKILL.md +0 -167
  323. package/skills/industries-health-engagement-settings-configure/SKILL.md +0 -218
  324. package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +0 -131
  325. package/skills/industries-home-health-bundling-policy-create/SKILL.md +0 -50
  326. package/skills/industries-home-health-entity-labels-configure/SKILL.md +0 -29
  327. package/skills/industries-home-health-fsl-package-deploy/SKILL.md +0 -71
  328. package/skills/industries-home-health-fsl-settings-validate/SKILL.md +0 -27
  329. package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +0 -80
  330. package/skills/industries-home-health-guided-setup-configure/SKILL.md +0 -836
  331. package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +0 -55
  332. package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +0 -61
  333. package/skills/industries-home-health-licenses-assign/SKILL.md +0 -27
  334. package/skills/industries-home-health-operating-hours-create/SKILL.md +0 -40
  335. package/skills/industries-home-health-scheduling-policy-create/SKILL.md +0 -41
  336. package/skills/industries-home-health-service-objective-create/SKILL.md +0 -22
  337. package/skills/industries-home-health-skills-create/SKILL.md +0 -31
  338. package/skills/industries-home-health-users-create/SKILL.md +0 -29
  339. package/skills/industries-icm-act3-toggles-configure/SKILL.md +0 -198
  340. package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +0 -361
  341. package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +0 -550
  342. package/skills/industries-integrated-care-management-configure/SKILL.md +0 -168
  343. package/skills/industries-object-enablement-configure/SKILL.md +0 -86
  344. package/skills/industries-tpm-system-processing-service-configure/SKILL.md +0 -64
  345. package/skills/integration-apex-settings-configure/SKILL.md +0 -61
  346. package/skills/marketing-e360-email-archiving-configure/SKILL.md +0 -73
  347. package/skills/platform-custom-permissions-configure/SKILL.md +0 -687
  348. package/skills/platform-label-workbench-import-create/SKILL.md +0 -67
  349. 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.