@salesforce/afv-skills 1.8.0 → 1.9.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 (488) hide show
  1. package/package.json +1 -1
  2. package/skills/activating-datacloud/CREDITS.md +5 -0
  3. package/skills/activating-datacloud/README.md +39 -0
  4. package/skills/activating-datacloud/SKILL.md +118 -0
  5. package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
  6. package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
  7. package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
  8. package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
  9. package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
  10. package/skills/building-omnistudio-callable-apex/README.md +80 -0
  11. package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
  12. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
  13. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
  14. package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
  15. package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
  16. package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
  17. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
  18. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
  19. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
  20. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
  21. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
  22. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
  23. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
  24. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
  25. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
  26. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
  27. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
  28. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
  29. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
  30. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
  31. package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
  32. package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
  33. package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
  34. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
  35. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
  36. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
  37. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
  38. package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
  39. package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
  40. package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
  41. package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
  42. package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
  43. package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
  44. package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
  45. package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
  46. package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
  47. package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
  48. package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
  49. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
  50. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
  51. package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
  52. package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
  53. package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
  54. package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
  55. package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
  56. package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
  57. package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
  58. package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
  59. package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
  60. package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
  61. package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
  62. package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
  63. package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
  64. package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
  65. package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
  66. package/skills/building-sf-integrations/CREDITS.md +5 -0
  67. package/skills/building-sf-integrations/README.md +95 -0
  68. package/skills/building-sf-integrations/SKILL.md +192 -0
  69. package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
  70. package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
  71. package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
  72. package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
  73. package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
  74. package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
  75. package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
  76. package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
  77. package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
  78. package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
  79. package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
  80. package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
  81. package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
  82. package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
  83. package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
  84. package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
  85. package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
  86. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
  87. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
  88. package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
  89. package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
  90. package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
  91. package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
  92. package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
  93. package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
  94. package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
  95. package/skills/building-sf-integrations/references/cli-reference.md +94 -0
  96. package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
  97. package/skills/building-sf-integrations/references/event-patterns.md +838 -0
  98. package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
  99. package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
  100. package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
  101. package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
  102. package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
  103. package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
  104. package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
  105. package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
  106. package/skills/building-sf-integrations/scripts/README.md +100 -0
  107. package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
  108. package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
  109. package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
  110. package/skills/configuring-connected-apps/CREDITS.md +3 -0
  111. package/skills/configuring-connected-apps/README.md +99 -0
  112. package/skills/configuring-connected-apps/SKILL.md +224 -0
  113. package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
  114. package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
  115. package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
  116. package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
  117. package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
  118. package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
  119. package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
  120. package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
  121. package/skills/configuring-connected-apps/references/example-usage.md +256 -0
  122. package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
  123. package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
  124. package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
  125. package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
  126. package/skills/connecting-datacloud/CREDITS.md +5 -0
  127. package/skills/connecting-datacloud/README.md +59 -0
  128. package/skills/connecting-datacloud/SKILL.md +155 -0
  129. package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
  130. package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
  131. package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
  132. package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
  133. package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
  134. package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
  135. package/skills/debugging-apex-logs/CREDITS.md +22 -0
  136. package/skills/debugging-apex-logs/README.md +74 -0
  137. package/skills/debugging-apex-logs/SKILL.md +172 -0
  138. package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
  139. package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
  140. package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
  141. package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
  142. package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
  143. package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
  144. package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
  145. package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
  146. package/skills/debugging-apex-logs/references/common-issues.md +68 -0
  147. package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
  148. package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
  149. package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
  150. package/skills/deploying-metadata/CREDITS.md +25 -0
  151. package/skills/deploying-metadata/README.md +104 -0
  152. package/skills/deploying-metadata/SKILL.md +214 -0
  153. package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
  154. package/skills/deploying-metadata/assets/package.xml +121 -0
  155. package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
  156. package/skills/deploying-metadata/references/deploy.sh +73 -0
  157. package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
  158. package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
  159. package/skills/deploying-metadata/references/orchestration.md +183 -0
  160. package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
  161. package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
  162. package/skills/deploying-omnistudio-datapacks/README.md +88 -0
  163. package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
  164. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
  165. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
  166. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
  167. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
  168. package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
  169. package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
  170. package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
  171. package/skills/developing-agentforce/references/actions-reference.md +8 -8
  172. package/skills/fetching-salesforce-docs/README.md +66 -0
  173. package/skills/fetching-salesforce-docs/SKILL.md +209 -0
  174. package/skills/fetching-salesforce-docs/requirements.txt +2 -0
  175. package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
  176. package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
  177. package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
  178. package/skills/generating-apex/CREDITS.md +1 -26
  179. package/skills/generating-apex-test/CREDITS.md +2 -27
  180. package/skills/generating-lwc-components/CREDITS.md +5 -0
  181. package/skills/generating-lwc-components/README.md +126 -0
  182. package/skills/generating-lwc-components/SKILL.md +191 -0
  183. package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
  184. package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
  185. package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
  186. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
  187. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
  188. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
  189. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
  190. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
  191. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
  192. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
  193. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
  194. package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
  195. package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
  196. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
  197. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
  198. package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
  199. package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
  200. package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
  201. package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
  202. package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
  203. package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
  204. package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
  205. package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
  206. package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
  207. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
  208. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
  209. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
  210. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
  211. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
  212. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
  213. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
  214. package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
  215. package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
  216. package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
  217. package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
  218. package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
  219. package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
  220. package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
  221. package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
  222. package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
  223. package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
  224. package/skills/generating-lwc-components/references/advanced-features.md +108 -0
  225. package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
  226. package/skills/generating-lwc-components/references/cli-commands.md +545 -0
  227. package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
  228. package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
  229. package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
  230. package/skills/generating-lwc-components/references/lms-guide.md +860 -0
  231. package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
  232. package/skills/generating-lwc-components/references/performance-guide.md +861 -0
  233. package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
  234. package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
  235. package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
  236. package/skills/generating-lwc-components/references/state-management.md +642 -0
  237. package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
  238. package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
  239. package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
  240. package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
  241. package/skills/generating-mermaid-diagrams/README.md +114 -0
  242. package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
  243. package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
  244. package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
  245. package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
  246. package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
  247. package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
  248. package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
  249. package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
  250. package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
  251. package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
  252. package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
  253. package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
  254. package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
  255. package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
  256. package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
  257. package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
  258. package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
  259. package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
  260. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
  261. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
  262. package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
  263. package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
  264. package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
  265. package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
  266. package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
  267. package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
  268. package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
  269. package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
  270. package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
  271. package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
  272. package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
  273. package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
  274. package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
  275. package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
  276. package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
  277. package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
  278. package/skills/generating-visual-diagrams/CREDITS.md +80 -0
  279. package/skills/generating-visual-diagrams/README.md +83 -0
  280. package/skills/generating-visual-diagrams/SKILL.md +208 -0
  281. package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
  282. package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
  283. package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
  284. package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
  285. package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
  286. package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
  287. package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
  288. package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
  289. package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
  290. package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
  291. package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
  292. package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
  293. package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
  294. package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
  295. package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
  296. package/skills/handling-sf-data/CREDITS.md +5 -0
  297. package/skills/handling-sf-data/README.md +112 -0
  298. package/skills/handling-sf-data/SKILL.md +235 -0
  299. package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
  300. package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
  301. package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
  302. package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
  303. package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
  304. package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
  305. package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
  306. package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
  307. package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
  308. package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
  309. package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
  310. package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
  311. package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
  312. package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
  313. package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
  314. package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
  315. package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
  316. package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
  317. package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
  318. package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
  319. package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
  320. package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
  321. package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
  322. package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
  323. package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
  324. package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
  325. package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
  326. package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
  327. package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
  328. package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
  329. package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
  330. package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
  331. package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
  332. package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
  333. package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
  334. package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
  335. package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
  336. package/skills/handling-sf-data/references/orchestration.md +174 -0
  337. package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
  338. package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
  339. package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
  340. package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
  341. package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
  342. package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
  343. package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
  344. package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
  345. package/skills/harmonizing-datacloud/CREDITS.md +3 -0
  346. package/skills/harmonizing-datacloud/README.md +31 -0
  347. package/skills/harmonizing-datacloud/SKILL.md +117 -0
  348. package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
  349. package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
  350. package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
  351. package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
  352. package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
  353. package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
  354. package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
  355. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
  356. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
  357. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
  358. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
  359. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
  360. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
  361. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
  362. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
  363. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
  364. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
  365. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
  366. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
  367. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
  368. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
  369. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
  370. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
  371. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
  372. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
  373. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
  374. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
  375. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
  376. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
  377. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
  378. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
  379. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
  380. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
  381. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
  382. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
  383. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
  384. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
  385. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
  386. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
  387. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
  388. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
  389. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
  390. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
  391. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
  392. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
  393. package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
  394. package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
  395. package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
  396. package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
  397. package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
  398. package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
  399. package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
  400. package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
  401. package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
  402. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
  403. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
  404. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
  405. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
  406. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
  407. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
  408. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
  409. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
  410. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
  411. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
  412. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
  413. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
  414. package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
  415. package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
  416. package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
  417. package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
  418. package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
  419. package/skills/orchestrating-datacloud/CREDITS.md +15 -0
  420. package/skills/orchestrating-datacloud/README.md +129 -0
  421. package/skills/orchestrating-datacloud/SKILL.md +236 -0
  422. package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
  423. package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
  424. package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
  425. package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
  426. package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
  427. package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
  428. package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
  429. package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
  430. package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
  431. package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
  432. package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
  433. package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
  434. package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
  435. package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
  436. package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
  437. package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
  438. package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
  439. package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
  440. package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
  441. package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
  442. package/skills/preparing-datacloud/CREDITS.md +7 -0
  443. package/skills/preparing-datacloud/README.md +51 -0
  444. package/skills/preparing-datacloud/SKILL.md +191 -0
  445. package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
  446. package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
  447. package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
  448. package/skills/querying-soql/CREDITS.md +21 -0
  449. package/skills/querying-soql/README.md +41 -0
  450. package/skills/querying-soql/SKILL.md +143 -0
  451. package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
  452. package/skills/querying-soql/assets/basic-queries.soql +188 -0
  453. package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
  454. package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
  455. package/skills/querying-soql/assets/relationship-queries.soql +203 -0
  456. package/skills/querying-soql/assets/selector-class.cls +219 -0
  457. package/skills/querying-soql/references/anti-patterns.md +348 -0
  458. package/skills/querying-soql/references/cli-commands.md +358 -0
  459. package/skills/querying-soql/references/field-coverage-rules.md +514 -0
  460. package/skills/querying-soql/references/query-optimization.md +142 -0
  461. package/skills/querying-soql/references/selector-patterns.md +479 -0
  462. package/skills/querying-soql/references/soql-reference.md +227 -0
  463. package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
  464. package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
  465. package/skills/retrieving-datacloud/CREDITS.md +7 -0
  466. package/skills/retrieving-datacloud/README.md +44 -0
  467. package/skills/retrieving-datacloud/SKILL.md +120 -0
  468. package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
  469. package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
  470. package/skills/running-apex-tests/CREDITS.md +22 -0
  471. package/skills/running-apex-tests/README.md +94 -0
  472. package/skills/running-apex-tests/SKILL.md +158 -0
  473. package/skills/running-apex-tests/assets/basic-test.cls +169 -0
  474. package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
  475. package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
  476. package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
  477. package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
  478. package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
  479. package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
  480. package/skills/running-apex-tests/references/cli-commands.md +289 -0
  481. package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
  482. package/skills/running-apex-tests/references/performance-optimization.md +283 -0
  483. package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
  484. package/skills/running-apex-tests/references/test-patterns.md +154 -0
  485. package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
  486. package/skills/segmenting-datacloud/CREDITS.md +3 -0
  487. package/skills/segmenting-datacloud/README.md +36 -0
  488. package/skills/segmenting-datacloud/SKILL.md +115 -0
@@ -0,0 +1,588 @@
1
+ <!-- Parent: building-omnistudio-integration-procedure/SKILL.md -->
2
+
3
+ # Integration Procedure Element Types Reference
4
+
5
+ > **Version**: 1.0.0
6
+ > **Applies to**: OmniStudio Integration Procedures (Core namespace and Vlocity managed package)
7
+
8
+ This reference documents every element type available in Integration Procedures, including PropertySetConfig JSON structures, input/output node mapping, and variable scoping rules.
9
+
10
+ ---
11
+
12
+ ## Table of Contents
13
+
14
+ 1. [DataRaptor Extract Action](#1-dataraptor-extract-action)
15
+ 2. [DataRaptor Load Action](#2-dataraptor-load-action)
16
+ 3. [DataRaptor Transform Action](#3-dataraptor-transform-action)
17
+ 4. [Remote Action](#4-remote-action)
18
+ 5. [Integration Procedure Action](#5-integration-procedure-action)
19
+ 6. [HTTP Action](#6-http-action)
20
+ 7. [Conditional Block](#7-conditional-block)
21
+ 8. [Loop Block](#8-loop-block)
22
+ 9. [Set Values](#9-set-values)
23
+ 10. [Variable Scoping and Data Passing](#10-variable-scoping-and-data-passing)
24
+ 11. [PropertySetConfig Common Properties](#11-propertysetconfig-common-properties)
25
+
26
+ ---
27
+
28
+ ## 1. DataRaptor Extract Action
29
+
30
+ Reads data from Salesforce objects using a DataRaptor (Data Mapper) Extract definition.
31
+
32
+ ### PropertySetConfig
33
+
34
+ ```json
35
+ {
36
+ "bundle": "DRExtract_AccountDetails",
37
+ "disableFlushCacheForGet": false,
38
+ "useQueueableApexRemoting": false,
39
+ "additionalInput": {},
40
+ "additionalOutput": {},
41
+ "sendOnlyAdditionalInput": false,
42
+ "responseJSONPath": "",
43
+ "responseJSONNode": ""
44
+ }
45
+ ```
46
+
47
+ ### Key Properties
48
+
49
+ | Property | Type | Required | Description |
50
+ |----------|------|----------|-------------|
51
+ | `bundle` | String | Yes | Name of the DataRaptor Extract definition |
52
+ | `additionalInput` | Object | No | Extra key-value pairs merged into the DataRaptor input |
53
+ | `sendOnlyAdditionalInput` | Boolean | No | If true, only sends `additionalInput`, ignoring upstream data |
54
+ | `responseJSONPath` | String | No | JSONPath expression to extract a subset of the response |
55
+ | `responseJSONNode` | String | No | Key name to wrap the response under |
56
+ | `disableFlushCacheForGet` | Boolean | No | If true, uses cached DataRaptor results |
57
+
58
+ ### Input Mapping
59
+
60
+ The element receives the IP's current data context. To pass specific values to the DataRaptor:
61
+
62
+ - Use `additionalInput` to map values from upstream elements:
63
+ ```json
64
+ {
65
+ "additionalInput": {
66
+ "AccountId": "%PreviousElement:accountId%"
67
+ }
68
+ }
69
+ ```
70
+
71
+ ### Output
72
+
73
+ The DataRaptor's output is stored under the element name in the IP response:
74
+
75
+ ```json
76
+ {
77
+ "GetAccountDetails": {
78
+ "Name": "Acme Corp",
79
+ "Industry": "Technology",
80
+ "BillingCity": "San Francisco"
81
+ }
82
+ }
83
+ ```
84
+
85
+ For multi-record results, the output is an array.
86
+
87
+ ---
88
+
89
+ ## 2. DataRaptor Load Action
90
+
91
+ Writes data to Salesforce objects using a DataRaptor (Data Mapper) Load definition.
92
+
93
+ ### PropertySetConfig
94
+
95
+ ```json
96
+ {
97
+ "bundle": "DRLoad_CreateContact",
98
+ "disableFlushCacheForGet": false,
99
+ "useQueueableApexRemoting": false,
100
+ "additionalInput": {},
101
+ "additionalOutput": {},
102
+ "sendOnlyAdditionalInput": false,
103
+ "responseJSONPath": "",
104
+ "responseJSONNode": ""
105
+ }
106
+ ```
107
+
108
+ ### Key Properties
109
+
110
+ | Property | Type | Required | Description |
111
+ |----------|------|----------|-------------|
112
+ | `bundle` | String | Yes | Name of the DataRaptor Load definition |
113
+ | `additionalInput` | Object | No | Extra key-value pairs merged into the DataRaptor input |
114
+ | `sendOnlyAdditionalInput` | Boolean | No | If true, only sends `additionalInput` as input |
115
+
116
+ ### Input Mapping
117
+
118
+ Map upstream data into the fields the DataRaptor Load expects:
119
+
120
+ ```json
121
+ {
122
+ "additionalInput": {
123
+ "FirstName": "%SetInputValues:firstName%",
124
+ "LastName": "%SetInputValues:lastName%",
125
+ "AccountId": "%GetAccountDetails:Id%"
126
+ }
127
+ }
128
+ ```
129
+
130
+ ### Output
131
+
132
+ Returns the result of the DML operation:
133
+
134
+ ```json
135
+ {
136
+ "CreateContact": {
137
+ "Id": "003XXXXXXXXXXXX",
138
+ "errors": [],
139
+ "success": true
140
+ }
141
+ }
142
+ ```
143
+
144
+ ### Error Handling
145
+
146
+ Always follow a DataRaptor Load with error inspection. Check for:
147
+ - `success` field (boolean)
148
+ - `errors` array (contains error objects with `statusCode` and `message`)
149
+
150
+ ---
151
+
152
+ ## 3. DataRaptor Transform Action
153
+
154
+ Reshapes data without making any Salesforce queries or DML. Uses a DataRaptor Transform definition to map fields between JSON structures.
155
+
156
+ ### PropertySetConfig
157
+
158
+ ```json
159
+ {
160
+ "bundle": "DRTransform_FlattenAddress",
161
+ "additionalInput": {},
162
+ "additionalOutput": {},
163
+ "sendOnlyAdditionalInput": false,
164
+ "responseJSONPath": "",
165
+ "responseJSONNode": ""
166
+ }
167
+ ```
168
+
169
+ ### Key Properties
170
+
171
+ | Property | Type | Required | Description |
172
+ |----------|------|----------|-------------|
173
+ | `bundle` | String | Yes | Name of the DataRaptor Transform definition |
174
+ | `additionalInput` | Object | No | Extra key-value pairs to include in the transform input |
175
+
176
+ ### Use Cases
177
+
178
+ - Flatten nested JSON structures for downstream processing
179
+ - Rename fields to match external API contracts
180
+ - Combine data from multiple upstream elements into a single structure
181
+ - Extract specific fields from a large response
182
+
183
+ ### Input/Output
184
+
185
+ Input: The full IP data context or specific values via `additionalInput`
186
+ Output: The transformed JSON structure, stored under the element name
187
+
188
+ ---
189
+
190
+ ## 4. Remote Action
191
+
192
+ Calls an Apex class method. The Apex class must implement the `vlocity_cmt.VlocityOpenInterface` (managed package) or `omnistudio.VlocityOpenInterface2` (Core namespace) interface.
193
+
194
+ ### PropertySetConfig
195
+
196
+ ```json
197
+ {
198
+ "remoteClass": "AccountValidationService",
199
+ "remoteMethod": "validateAccount",
200
+ "additionalInput": {},
201
+ "additionalOutput": {},
202
+ "sendOnlyAdditionalInput": false,
203
+ "responseJSONPath": "",
204
+ "responseJSONNode": "",
205
+ "useQueueableApexRemoting": false,
206
+ "useFuture": false
207
+ }
208
+ ```
209
+
210
+ ### Key Properties
211
+
212
+ | Property | Type | Required | Description |
213
+ |----------|------|----------|-------------|
214
+ | `remoteClass` | String | Yes | Apex class name |
215
+ | `remoteMethod` | String | Yes | Method name to invoke |
216
+ | `useQueueableApexRemoting` | Boolean | No | If true, executes as a Queueable job (async) |
217
+ | `useFuture` | Boolean | No | If true, executes as a future method (async, no return value) |
218
+
219
+ ### Apex Interface
220
+
221
+ The Apex class must follow this pattern:
222
+
223
+ ```apex
224
+ // Core namespace
225
+ global class AccountValidationService implements omnistudio.VlocityOpenInterface2 {
226
+ global Object invokeMethod(
227
+ String methodName,
228
+ Map<String, Object> inputMap,
229
+ Map<String, Object> outputMap,
230
+ Map<String, Object> options
231
+ ) {
232
+ if (methodName == 'validateAccount') {
233
+ // Business logic here
234
+ String accountId = (String) inputMap.get('AccountId');
235
+ // ... validation logic ...
236
+ outputMap.put('isValid', true);
237
+ outputMap.put('validationMessages', new List<String>());
238
+ }
239
+ return null;
240
+ }
241
+ }
242
+ ```
243
+
244
+ ### Input Mapping
245
+
246
+ The IP data context is passed as `inputMap`. Use `additionalInput` to add or override values:
247
+
248
+ ```json
249
+ {
250
+ "additionalInput": {
251
+ "AccountId": "%GetAccountDetails:Id%",
252
+ "validationType": "full"
253
+ }
254
+ }
255
+ ```
256
+
257
+ ### Output
258
+
259
+ The `outputMap` contents are stored under the element name:
260
+
261
+ ```json
262
+ {
263
+ "ValidateAccount": {
264
+ "isValid": true,
265
+ "validationMessages": []
266
+ }
267
+ }
268
+ ```
269
+
270
+ ---
271
+
272
+ ## 5. Integration Procedure Action
273
+
274
+ Calls another Integration Procedure. Enables composition and reuse of IP logic.
275
+
276
+ ### PropertySetConfig
277
+
278
+ ```json
279
+ {
280
+ "ipMethod": "SharedLookup_Standard",
281
+ "additionalInput": {},
282
+ "additionalOutput": {},
283
+ "sendOnlyAdditionalInput": false,
284
+ "responseJSONPath": "",
285
+ "responseJSONNode": "",
286
+ "chainable": false
287
+ }
288
+ ```
289
+
290
+ ### Key Properties
291
+
292
+ | Property | Type | Required | Description |
293
+ |----------|------|----------|-------------|
294
+ | `ipMethod` | String | Yes | The nested IP's Type_SubType identifier |
295
+ | `chainable` | Boolean | No | If true, allows chaining outputs from the nested IP |
296
+ | `sendOnlyAdditionalInput` | Boolean | No | If true, only sends `additionalInput` to the nested IP |
297
+
298
+ ### Input Mapping
299
+
300
+ By default, the entire IP data context is passed to the nested IP. Use `sendOnlyAdditionalInput: true` with `additionalInput` to send only specific data:
301
+
302
+ ```json
303
+ {
304
+ "ipMethod": "ContactLookup_Standard",
305
+ "sendOnlyAdditionalInput": true,
306
+ "additionalInput": {
307
+ "accountId": "%GetAccountDetails:Id%"
308
+ }
309
+ }
310
+ ```
311
+
312
+ ### Output
313
+
314
+ The nested IP's full response is stored under the calling element's name:
315
+
316
+ ```json
317
+ {
318
+ "LookupContacts": {
319
+ "contacts": [...],
320
+ "totalCount": 5
321
+ }
322
+ }
323
+ ```
324
+
325
+ ### Circular Dependency Prevention
326
+
327
+ Before configuring an IP Action, verify that the target IP does not call back to the current IP (directly or through intermediaries). Circular calls cause stack overflow errors at runtime.
328
+
329
+ ---
330
+
331
+ ## 6. HTTP Action
332
+
333
+ Makes an HTTP callout to an external API endpoint.
334
+
335
+ ### PropertySetConfig
336
+
337
+ ```json
338
+ {
339
+ "path": "https://api.example.com/v1/accounts",
340
+ "method": "POST",
341
+ "headers": {
342
+ "Content-Type": "application/json",
343
+ "Authorization": "Bearer %GetToken:accessToken%"
344
+ },
345
+ "body": {},
346
+ "additionalInput": {},
347
+ "additionalOutput": {},
348
+ "sendOnlyAdditionalInput": false,
349
+ "responseJSONPath": "",
350
+ "responseJSONNode": "",
351
+ "namedCredential": "",
352
+ "timeout": 30000
353
+ }
354
+ ```
355
+
356
+ ### Key Properties
357
+
358
+ | Property | Type | Required | Description |
359
+ |----------|------|----------|-------------|
360
+ | `path` | String | Yes | Full URL or relative path (if using Named Credential) |
361
+ | `method` | String | Yes | HTTP method: GET, POST, PUT, PATCH, DELETE |
362
+ | `headers` | Object | No | Request headers as key-value pairs |
363
+ | `body` | Object | No | Request body (for POST/PUT/PATCH) |
364
+ | `namedCredential` | String | No | Salesforce Named Credential for authentication |
365
+ | `timeout` | Number | No | Request timeout in milliseconds |
366
+
367
+ ### Security Best Practices
368
+
369
+ - Use Named Credentials for API authentication instead of hardcoded tokens
370
+ - Reference tokens from upstream elements (e.g., OAuth token retrieval) using `%elementName:key%` syntax
371
+ - Never store API keys in PropertySetConfig — use Custom Settings or Custom Metadata
372
+
373
+ ### Input Mapping
374
+
375
+ Use `additionalInput` to build dynamic request bodies:
376
+
377
+ ```json
378
+ {
379
+ "body": {
380
+ "accountName": "%GetAccountDetails:Name%",
381
+ "externalId": "%InputData:externalId%"
382
+ }
383
+ }
384
+ ```
385
+
386
+ ### Output
387
+
388
+ The HTTP response is stored under the element name:
389
+
390
+ ```json
391
+ {
392
+ "CallExternalAPI": {
393
+ "statusCode": 200,
394
+ "body": {
395
+ "result": "success",
396
+ "externalRecordId": "EXT-12345"
397
+ }
398
+ }
399
+ }
400
+ ```
401
+
402
+ ### Error Handling
403
+
404
+ Check `statusCode` in a downstream Conditional Block:
405
+
406
+ - 2xx: Success, proceed
407
+ - 4xx: Client error, log and return error response
408
+ - 5xx: Server error, consider retry or graceful degradation
409
+
410
+ ---
411
+
412
+ ## 7. Conditional Block
413
+
414
+ Evaluates conditions and branches execution based on the result. Contains child elements that execute only when the condition evaluates to true.
415
+
416
+ ### Configuration
417
+
418
+ Conditional Blocks do not use PropertySetConfig in the same way as action elements. Instead, conditions are defined in the element's condition configuration:
419
+
420
+ ### Condition Types
421
+
422
+ | Condition Type | Description | Example |
423
+ |----------------|-------------|---------|
424
+ | Value Comparison | Compare two values | `%GetAccount:Industry% EQUALS 'Technology'` |
425
+ | Null Check | Check if a value is null/empty | `%GetAccount:Id% IS NOT NULL` |
426
+ | Boolean Check | Evaluate a boolean value | `%ValidateInput:isValid% EQUALS true` |
427
+ | Group (AND/OR) | Combine multiple conditions | `condition1 AND condition2` |
428
+
429
+ ### Nested Elements
430
+
431
+ Elements inside a Conditional Block execute only when the condition is true. They follow the same ordering principles as top-level elements.
432
+
433
+ ### If/Else Pattern
434
+
435
+ Use two Conditional Blocks with complementary conditions:
436
+
437
+ 1. **Conditional Block A**: condition = `%check:value% EQUALS true` -> contains success path elements
438
+ 2. **Conditional Block B**: condition = `%check:value% NOT EQUALS true` -> contains error/alternate path elements
439
+
440
+ ---
441
+
442
+ ## 8. Loop Block
443
+
444
+ Iterates over a collection (array) and executes child elements for each item.
445
+
446
+ ### Configuration
447
+
448
+ | Property | Description |
449
+ |----------|-------------|
450
+ | Loop collection | JSONPath to the array to iterate over (e.g., `%GetContacts:records%`) |
451
+ | Loop element variable | Variable name for the current item in each iteration |
452
+
453
+ ### Child Elements
454
+
455
+ Elements inside a Loop Block execute once per iteration. The current item is accessible via the loop element variable.
456
+
457
+ ### Performance Considerations
458
+
459
+ - Minimize the number of elements inside the loop body
460
+ - Avoid DataRaptor Extract/Load inside loops (N+1 pattern)
461
+ - Prefer bulk operations: collect data in the loop, perform a single DML after the loop
462
+ - Set appropriate batch sizes for large collections
463
+ - If loop body requires DML, consider using a single DataRaptor Load with a collection input instead
464
+
465
+ ### Example Pattern: Collect and Bulk Process
466
+
467
+ Instead of:
468
+ ```
469
+ Loop -> DataRaptor Load (per item) // BAD: N DML operations
470
+ ```
471
+
472
+ Use:
473
+ ```
474
+ Loop -> Set Values (collect items into array)
475
+ DataRaptor Load (entire array) // GOOD: 1 DML operation
476
+ ```
477
+
478
+ ---
479
+
480
+ ## 9. Set Values
481
+
482
+ Assigns values to variables within the IP context. Used for initialization, response assembly, and data transformation.
483
+
484
+ ### Configuration
485
+
486
+ Set Values elements define key-value mappings:
487
+
488
+ | Mapping Type | Description | Example |
489
+ |--------------|-------------|---------|
490
+ | Static value | Hardcoded constant | `"status": "Processed"` |
491
+ | Element reference | Value from upstream element | `"accountName": "%GetAccount:Name%"` |
492
+ | Formula | Computed value | Concatenation, conditional expressions |
493
+ | Input reference | Value from IP input | `"requestId": "%input:requestId%"` |
494
+
495
+ ### Common Uses
496
+
497
+ 1. **Initialize defaults**: Set default values at the beginning of the procedure
498
+ 2. **Build output response**: Assemble the final response JSON at the end
499
+ 3. **Intermediate variables**: Store computed values for use in downstream conditions
500
+ 4. **Error response**: Build standardized error response objects
501
+
502
+ ### Example: Response Assembly
503
+
504
+ ```
505
+ Set Values: "BuildResponse"
506
+ out_success = true
507
+ out_accountId = %GetAccount:Id%
508
+ out_contactCount = %GetContacts:totalSize%
509
+ out_status = "Complete"
510
+ ```
511
+
512
+ ---
513
+
514
+ ## 10. Variable Scoping and Data Passing
515
+
516
+ ### Scope Rules
517
+
518
+ | Scope Level | Visibility | Lifetime |
519
+ |-------------|------------|----------|
520
+ | IP Input | All elements | Entire execution |
521
+ | Element Output | All downstream elements | Entire execution |
522
+ | Set Values Variable | All downstream elements | Entire execution |
523
+ | Loop Variable | Elements inside the loop body | Current iteration |
524
+ | Conditional Block Variable | Elements inside the block | Block execution |
525
+ | Nested IP Output | Calling element and downstream | Entire execution (under element name) |
526
+
527
+ ### Data Context
528
+
529
+ The IP maintains a cumulative data context. Each element's output is added to this context under the element's name. Downstream elements can reference any upstream element's output.
530
+
531
+ ### Reference Syntax
532
+
533
+ | Syntax | Description | Example |
534
+ |--------|-------------|---------|
535
+ | `%elementName:key%` | Reference a specific key from an element's output | `%GetAccount:Name%` |
536
+ | `%elementName:nested.key%` | Reference a nested key using dot notation | `%GetAccount:BillingAddress.City%` |
537
+ | `%elementName:array[0]%` | Reference an array element by index | `%GetContacts:records[0].Name%` |
538
+ | `%input:key%` | Reference an IP input parameter | `%input:accountId%` |
539
+
540
+ ### Data Passing to Nested IPs
541
+
542
+ When calling a nested IP via Integration Procedure Action:
543
+
544
+ - **Default**: The entire data context is passed as input
545
+ - **Selective**: Use `sendOnlyAdditionalInput: true` + `additionalInput` to pass specific values
546
+ - **Output**: The nested IP's response is namespaced under the calling element's name
547
+
548
+ ### Data Passing Best Practices
549
+
550
+ - Use `sendOnlyAdditionalInput: true` for nested IP calls to avoid leaking unnecessary data
551
+ - Keep variable names consistent across elements for readability
552
+ - Document the expected data shape at each stage of the procedure
553
+ - Use Set Values to explicitly name and scope intermediate results rather than relying on implicit context merging
554
+
555
+ ---
556
+
557
+ ## 11. PropertySetConfig Common Properties
558
+
559
+ These properties are available on most action elements:
560
+
561
+ | Property | Type | Default | Description |
562
+ |----------|------|---------|-------------|
563
+ | `additionalInput` | Object | `{}` | Extra key-value pairs added to the element's input |
564
+ | `additionalOutput` | Object | `{}` | Extra key-value pairs added to the element's output |
565
+ | `sendOnlyAdditionalInput` | Boolean | `false` | If true, only `additionalInput` is sent (upstream context excluded) |
566
+ | `responseJSONPath` | String | `""` | JSONPath to extract a subset of the element's response |
567
+ | `responseJSONNode` | String | `""` | Key name to wrap the response under |
568
+ | `useQueueableApexRemoting` | Boolean | `false` | Execute asynchronously via Queueable Apex |
569
+ | `disableFlushCacheForGet` | Boolean | `false` | Use cached results if available |
570
+
571
+ ### `responseJSONPath` vs `responseJSONNode`
572
+
573
+ - `responseJSONPath`: Extracts a subset of the response. For example, `$.records` extracts only the `records` array from the response.
574
+ - `responseJSONNode`: Wraps the response under a named key. For example, setting `responseJSONNode` to `accountData` wraps the entire response under `{"accountData": {...}}`.
575
+
576
+ These can be combined: first extract via path, then wrap under a node name.
577
+
578
+ ### `additionalInput` Merge Behavior
579
+
580
+ When `sendOnlyAdditionalInput` is false (default):
581
+ 1. The IP's current data context is used as the base input
582
+ 2. `additionalInput` key-value pairs are merged into this context
583
+ 3. If a key exists in both, `additionalInput` takes precedence (override)
584
+
585
+ When `sendOnlyAdditionalInput` is true:
586
+ 1. The data context is ignored
587
+ 2. Only `additionalInput` key-value pairs are sent as input
588
+ 3. Use this for nested IP calls where you want a clean input boundary
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ # Integration Procedure CLI Commands
3
+ # Replace <Name> with the IP's Type_SubType name and <org> with your authenticated org alias.
4
+
5
+ # Query active Integration Procedures (add filters as needed)
6
+ sf data query -q "SELECT Id,Name,Type,SubType,IsActive FROM OmniProcess WHERE IsActive=true AND IsIntegrationProcedure=true LIMIT 200" -o <org>
7
+
8
+ # Query all Integration Procedures including inactive, sorted by most recently modified
9
+ sf data query -q "SELECT Id,Name,Type,SubType,IsActive,LastModifiedDate FROM OmniProcess WHERE IsIntegrationProcedure=true ORDER BY LastModifiedDate DESC LIMIT 200" -o <org>
10
+
11
+ # Retrieve an Integration Procedure from an org
12
+ sf project retrieve start -m OmniIntegrationProcedure:<Name> -o <org>
13
+
14
+ # Deploy an Integration Procedure to an org
15
+ sf project deploy start -m OmniIntegrationProcedure:<Name> -o <org>
16
+
17
+ # Deploy with dry-run validation first (recommended before production deploys)
18
+ sf project deploy start -m OmniIntegrationProcedure:<Name> -o <org> --dry-run
@@ -0,0 +1,5 @@
1
+ # Credits & Acknowledgments
2
+
3
+ This skill reflects patterns and conventions established within the Salesforce OmniStudio platform and its practitioner community.
4
+
5
+ ---