@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.
- package/package.json +1 -1
- package/skills/activating-datacloud/CREDITS.md +5 -0
- package/skills/activating-datacloud/README.md +39 -0
- package/skills/activating-datacloud/SKILL.md +118 -0
- package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
- package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
- package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
- package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
- package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
- package/skills/building-omnistudio-callable-apex/README.md +80 -0
- package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
- package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
- package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
- package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
- package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
- package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
- package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
- package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
- package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
- package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
- package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
- package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
- package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
- package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
- package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
- package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
- package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
- package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
- package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
- package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
- package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
- package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
- package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
- package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
- package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
- package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
- package/skills/building-sf-integrations/CREDITS.md +5 -0
- package/skills/building-sf-integrations/README.md +95 -0
- package/skills/building-sf-integrations/SKILL.md +192 -0
- package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
- package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
- package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
- package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
- package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
- package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
- package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
- package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
- package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
- package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
- package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
- package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
- package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
- package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
- package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
- package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
- package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
- package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
- package/skills/building-sf-integrations/references/cli-reference.md +94 -0
- package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
- package/skills/building-sf-integrations/references/event-patterns.md +838 -0
- package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
- package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
- package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
- package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
- package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
- package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
- package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
- package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
- package/skills/building-sf-integrations/scripts/README.md +100 -0
- package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
- package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
- package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
- package/skills/configuring-connected-apps/CREDITS.md +3 -0
- package/skills/configuring-connected-apps/README.md +99 -0
- package/skills/configuring-connected-apps/SKILL.md +224 -0
- package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
- package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
- package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
- package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
- package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
- package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
- package/skills/configuring-connected-apps/references/example-usage.md +256 -0
- package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
- package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
- package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
- package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
- package/skills/connecting-datacloud/CREDITS.md +5 -0
- package/skills/connecting-datacloud/README.md +59 -0
- package/skills/connecting-datacloud/SKILL.md +155 -0
- package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
- package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
- package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
- package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
- package/skills/debugging-apex-logs/CREDITS.md +22 -0
- package/skills/debugging-apex-logs/README.md +74 -0
- package/skills/debugging-apex-logs/SKILL.md +172 -0
- package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
- package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
- package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
- package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
- package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
- package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
- package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
- package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
- package/skills/debugging-apex-logs/references/common-issues.md +68 -0
- package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
- package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
- package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
- package/skills/deploying-metadata/CREDITS.md +25 -0
- package/skills/deploying-metadata/README.md +104 -0
- package/skills/deploying-metadata/SKILL.md +214 -0
- package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
- package/skills/deploying-metadata/assets/package.xml +121 -0
- package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
- package/skills/deploying-metadata/references/deploy.sh +73 -0
- package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
- package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
- package/skills/deploying-metadata/references/orchestration.md +183 -0
- package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
- package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
- package/skills/deploying-omnistudio-datapacks/README.md +88 -0
- package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
- package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
- package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
- package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
- package/skills/developing-agentforce/references/actions-reference.md +8 -8
- package/skills/fetching-salesforce-docs/README.md +66 -0
- package/skills/fetching-salesforce-docs/SKILL.md +209 -0
- package/skills/fetching-salesforce-docs/requirements.txt +2 -0
- package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
- package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
- package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
- package/skills/generating-apex/CREDITS.md +1 -26
- package/skills/generating-apex-test/CREDITS.md +2 -27
- package/skills/generating-lwc-components/CREDITS.md +5 -0
- package/skills/generating-lwc-components/README.md +126 -0
- package/skills/generating-lwc-components/SKILL.md +191 -0
- package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
- package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
- package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
- package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
- package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
- package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
- package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
- package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
- package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
- package/skills/generating-lwc-components/references/advanced-features.md +108 -0
- package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
- package/skills/generating-lwc-components/references/cli-commands.md +545 -0
- package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
- package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
- package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
- package/skills/generating-lwc-components/references/lms-guide.md +860 -0
- package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
- package/skills/generating-lwc-components/references/performance-guide.md +861 -0
- package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
- package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
- package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
- package/skills/generating-lwc-components/references/state-management.md +642 -0
- package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
- package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
- package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
- package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
- package/skills/generating-mermaid-diagrams/README.md +114 -0
- package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
- package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
- package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
- package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
- package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
- package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
- package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
- package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
- package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
- package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
- package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
- package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
- package/skills/generating-visual-diagrams/CREDITS.md +80 -0
- package/skills/generating-visual-diagrams/README.md +83 -0
- package/skills/generating-visual-diagrams/SKILL.md +208 -0
- package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
- package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
- package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
- package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
- package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
- package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
- package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
- package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
- package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
- package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
- package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
- package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
- package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
- package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
- package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
- package/skills/handling-sf-data/CREDITS.md +5 -0
- package/skills/handling-sf-data/README.md +112 -0
- package/skills/handling-sf-data/SKILL.md +235 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
- package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
- package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
- package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
- package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
- package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
- package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
- package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
- package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
- package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
- package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
- package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
- package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
- package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
- package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
- package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
- package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
- package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
- package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
- package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
- package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
- package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
- package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
- package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
- package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
- package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
- package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
- package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
- package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
- package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
- package/skills/handling-sf-data/references/orchestration.md +174 -0
- package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
- package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
- package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
- package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
- package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
- package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
- package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
- package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
- package/skills/harmonizing-datacloud/CREDITS.md +3 -0
- package/skills/harmonizing-datacloud/README.md +31 -0
- package/skills/harmonizing-datacloud/SKILL.md +117 -0
- package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
- package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
- package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
- package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
- package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
- package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
- package/skills/orchestrating-datacloud/CREDITS.md +15 -0
- package/skills/orchestrating-datacloud/README.md +129 -0
- package/skills/orchestrating-datacloud/SKILL.md +236 -0
- package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
- package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
- package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
- package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
- package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
- package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
- package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
- package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
- package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
- package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
- package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
- package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
- package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
- package/skills/preparing-datacloud/CREDITS.md +7 -0
- package/skills/preparing-datacloud/README.md +51 -0
- package/skills/preparing-datacloud/SKILL.md +191 -0
- package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
- package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
- package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
- package/skills/querying-soql/CREDITS.md +21 -0
- package/skills/querying-soql/README.md +41 -0
- package/skills/querying-soql/SKILL.md +143 -0
- package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
- package/skills/querying-soql/assets/basic-queries.soql +188 -0
- package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
- package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
- package/skills/querying-soql/assets/relationship-queries.soql +203 -0
- package/skills/querying-soql/assets/selector-class.cls +219 -0
- package/skills/querying-soql/references/anti-patterns.md +348 -0
- package/skills/querying-soql/references/cli-commands.md +358 -0
- package/skills/querying-soql/references/field-coverage-rules.md +514 -0
- package/skills/querying-soql/references/query-optimization.md +142 -0
- package/skills/querying-soql/references/selector-patterns.md +479 -0
- package/skills/querying-soql/references/soql-reference.md +227 -0
- package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
- package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
- package/skills/retrieving-datacloud/CREDITS.md +7 -0
- package/skills/retrieving-datacloud/README.md +44 -0
- package/skills/retrieving-datacloud/SKILL.md +120 -0
- package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
- package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
- package/skills/running-apex-tests/CREDITS.md +22 -0
- package/skills/running-apex-tests/README.md +94 -0
- package/skills/running-apex-tests/SKILL.md +158 -0
- package/skills/running-apex-tests/assets/basic-test.cls +169 -0
- package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
- package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
- package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
- package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
- package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
- package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
- package/skills/running-apex-tests/references/cli-commands.md +289 -0
- package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
- package/skills/running-apex-tests/references/performance-optimization.md +283 -0
- package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
- package/skills/running-apex-tests/references/test-patterns.md +154 -0
- package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
- package/skills/segmenting-datacloud/CREDITS.md +3 -0
- package/skills/segmenting-datacloud/README.md +36 -0
- package/skills/segmenting-datacloud/SKILL.md +115 -0
|
@@ -0,0 +1,628 @@
|
|
|
1
|
+
<!-- Parent: deploying-metadata/SKILL.md -->
|
|
2
|
+
# Agentforce Agent Deployment Guide
|
|
3
|
+
|
|
4
|
+
> Complete DevOps guide for deploying Agentforce agents using SF CLI
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
This guide covers the complete deployment lifecycle for Agentforce agents, including:
|
|
9
|
+
- Agent metadata types and pseudo metadata
|
|
10
|
+
- Sync operations (retrieve/deploy)
|
|
11
|
+
- Lifecycle management (activate/deactivate)
|
|
12
|
+
- Full deployment workflows
|
|
13
|
+
|
|
14
|
+
**Related Skills:**
|
|
15
|
+
- `developing-agentforce` - Agent authoring, publishing, Agent Builder, and Prompt Builder
|
|
16
|
+
- `deploying-metadata` - This skill - deployment orchestration
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Agent Metadata Types
|
|
21
|
+
|
|
22
|
+
Agentforce agents consist of multiple metadata components:
|
|
23
|
+
|
|
24
|
+
| Metadata Type | Description | Example API Name |
|
|
25
|
+
|---------------|-------------|------------------|
|
|
26
|
+
| `Bot` | Top-level chatbot definition | `Customer_Support_Agent` |
|
|
27
|
+
| `BotVersion` | Version configuration | `Customer_Support_Agent.v1` |
|
|
28
|
+
| `GenAiPlannerBundle` | Reasoning engine (LLM config) | `Customer_Support_Agent_Planner` |
|
|
29
|
+
| `GenAiPlugin` | Topic definition | `Order_Management_Plugin` |
|
|
30
|
+
| `GenAiFunction` | Action definition | `Get_Order_Status_Function` |
|
|
31
|
+
|
|
32
|
+
### Metadata Hierarchy
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Bot (Agent Definition)
|
|
36
|
+
└── BotVersion (Version Config)
|
|
37
|
+
└── GenAiPlannerBundle (Reasoning Engine)
|
|
38
|
+
├── GenAiPlugin (Topic 1)
|
|
39
|
+
│ ├── GenAiFunction (Action 1)
|
|
40
|
+
│ └── GenAiFunction (Action 2)
|
|
41
|
+
└── GenAiPlugin (Topic 2)
|
|
42
|
+
└── GenAiFunction (Action 3)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Agent Pseudo Metadata Type
|
|
48
|
+
|
|
49
|
+
The `Agent` pseudo metadata type is a convenience wrapper that retrieves or deploys all agent-related components at once.
|
|
50
|
+
|
|
51
|
+
### Using the Agent Pseudo Type
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Retrieve agent + all dependencies from org
|
|
55
|
+
sf project retrieve start --metadata Agent:[AgentName] --target-org [alias]
|
|
56
|
+
|
|
57
|
+
# Deploy agent metadata to org
|
|
58
|
+
sf project deploy start --metadata Agent:[AgentName] --target-org [alias]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### What Gets Synced
|
|
62
|
+
|
|
63
|
+
When using `--metadata Agent:[Name]`:
|
|
64
|
+
|
|
65
|
+
**Retrieved/Deployed:**
|
|
66
|
+
- `Bot` - Top-level chatbot
|
|
67
|
+
- `BotVersion` - Version configuration
|
|
68
|
+
- `GenAiPlannerBundle` - Reasoning engine
|
|
69
|
+
- `GenAiPlugin` - All topics
|
|
70
|
+
- `GenAiFunction` - All actions
|
|
71
|
+
|
|
72
|
+
**NOT Included:**
|
|
73
|
+
- Apex classes (deploy separately)
|
|
74
|
+
- Flows (deploy separately)
|
|
75
|
+
- Named Credentials (deploy separately)
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Sync Operations
|
|
80
|
+
|
|
81
|
+
### Retrieving Agents from Org
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Retrieve agent using pseudo metadata type
|
|
85
|
+
sf project retrieve start --metadata Agent:Customer_Support_Agent --target-org myorg
|
|
86
|
+
|
|
87
|
+
# Retrieve to specific output directory
|
|
88
|
+
sf project retrieve start --metadata Agent:Customer_Support_Agent --output-dir ./retrieved --target-org myorg
|
|
89
|
+
|
|
90
|
+
# Retrieve multiple agents
|
|
91
|
+
sf project retrieve start --metadata Agent:Support_Agent,Agent:Sales_Agent --target-org myorg
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Retrieving Specific Components
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Retrieve just the bot definition
|
|
98
|
+
sf project retrieve start --metadata Bot:Customer_Support_Agent --target-org myorg
|
|
99
|
+
|
|
100
|
+
# Retrieve a specific BotVersion along with the bot definition
|
|
101
|
+
sf project retrieve start \
|
|
102
|
+
--metadata Bot:Customer_Support_Agent \
|
|
103
|
+
--metadata BotVersion:Customer_Support_Agent.v3 \
|
|
104
|
+
--target-org myorg
|
|
105
|
+
|
|
106
|
+
# Retrieve just the planner bundle
|
|
107
|
+
sf project retrieve start --metadata GenAiPlannerBundle:Customer_Support_Agent_Planner --target-org myorg
|
|
108
|
+
|
|
109
|
+
# Retrieve all plugins (topics)
|
|
110
|
+
sf project retrieve start --metadata GenAiPlugin --target-org myorg
|
|
111
|
+
|
|
112
|
+
# Retrieve all functions (actions)
|
|
113
|
+
sf project retrieve start --metadata GenAiFunction --target-org myorg
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
> **Versioned retrieve note:** Current SF CLI releases correctly retrieve the specific `BotVersion` you request instead of always pulling only the latest version.
|
|
117
|
+
|
|
118
|
+
### Deploying Agents to Org
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Deploy agent using pseudo metadata type
|
|
122
|
+
sf project deploy start --metadata Agent:Customer_Support_Agent --target-org myorg
|
|
123
|
+
|
|
124
|
+
# Deploy with validation only (dry run)
|
|
125
|
+
sf project deploy start --metadata Agent:Customer_Support_Agent --dry-run --target-org myorg
|
|
126
|
+
|
|
127
|
+
# Deploy multiple agents
|
|
128
|
+
sf project deploy start --metadata Agent:Support_Agent,Agent:Sales_Agent --target-org myorg
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Agent Lifecycle Management
|
|
134
|
+
|
|
135
|
+
### Activate Agent
|
|
136
|
+
|
|
137
|
+
Makes an agent available to users.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Manual activation
|
|
141
|
+
sf agent activate --api-name [AgentName] --target-org [alias]
|
|
142
|
+
|
|
143
|
+
# CI / deterministic activation of a known BotVersion
|
|
144
|
+
sf agent activate --api-name [AgentName] --version [N] --target-org [alias] --json
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Requirements:**
|
|
148
|
+
- Agent must be published first (`sf agent publish authoring-bundle`)
|
|
149
|
+
- All Apex classes and Flows must be deployed
|
|
150
|
+
- `default_agent_user` must be a valid org user with Agentforce permissions
|
|
151
|
+
|
|
152
|
+
**Activation notes:**
|
|
153
|
+
- `--version [N]` maps to the `vN` suffix in `BotVersion` metadata
|
|
154
|
+
- Omitting `--version` triggers interactive version selection
|
|
155
|
+
- Using `--json` without `--version` activates the latest agent version
|
|
156
|
+
- For CI/CD and reproducible rollouts, prefer `--version [N] --json`
|
|
157
|
+
|
|
158
|
+
**Post-Activation:**
|
|
159
|
+
- Agent is immediately available to users
|
|
160
|
+
- Preview command can be used for testing
|
|
161
|
+
- Changes require deactivation first
|
|
162
|
+
|
|
163
|
+
### Deactivate Agent
|
|
164
|
+
|
|
165
|
+
Deactivates an agent for modifications. **Required before making changes.**
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Manual deactivation
|
|
169
|
+
sf agent deactivate --api-name [AgentName] --target-org [alias]
|
|
170
|
+
|
|
171
|
+
# Script-friendly deactivation
|
|
172
|
+
sf agent deactivate --api-name [AgentName] --target-org [alias] --json
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**When Deactivation is Required:**
|
|
176
|
+
- Adding or removing topics
|
|
177
|
+
- Modifying action configurations
|
|
178
|
+
- Changing system instructions
|
|
179
|
+
- Updating variable definitions
|
|
180
|
+
|
|
181
|
+
### Modification Workflow
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# 1. Deactivate agent
|
|
185
|
+
sf agent deactivate --api-name Customer_Support_Agent --target-org myorg
|
|
186
|
+
|
|
187
|
+
# 2. Make changes to Agent Script
|
|
188
|
+
|
|
189
|
+
# 3. Re-publish
|
|
190
|
+
sf agent publish authoring-bundle --api-name Customer_Support_Agent --target-org myorg
|
|
191
|
+
|
|
192
|
+
# 4. Re-activate
|
|
193
|
+
sf agent activate --api-name Customer_Support_Agent --target-org myorg
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Agent Preview
|
|
199
|
+
|
|
200
|
+
Preview allows testing agent behavior before production deployment.
|
|
201
|
+
|
|
202
|
+
### Preview Modes
|
|
203
|
+
|
|
204
|
+
| Mode | Command | Use When |
|
|
205
|
+
|------|---------|----------|
|
|
206
|
+
| **Simulated** | `sf agent preview --api-name X` | Testing logic, Apex/Flows not ready |
|
|
207
|
+
| **Live** | `sf agent preview --api-name X --use-live-actions` | Integration testing with real data |
|
|
208
|
+
|
|
209
|
+
### Simulated Mode (Default)
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
sf agent preview --api-name Customer_Support_Agent --target-org myorg
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
- LLM simulates action responses
|
|
216
|
+
- No actual Apex/Flow execution
|
|
217
|
+
- Safe for testing - no data changes
|
|
218
|
+
|
|
219
|
+
### Live Mode
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
sf agent preview --api-name Customer_Support_Agent --use-live-actions --target-org myorg
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Requirements:**
|
|
226
|
+
- Standard org auth (`sf org login web`)
|
|
227
|
+
- Apex classes and Flows deployed
|
|
228
|
+
- Agent must be active
|
|
229
|
+
|
|
230
|
+
### Preview with Debug Output
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
sf agent preview --api-name Customer_Support_Agent --output-dir ./preview-logs --apex-debug --target-org myorg
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
> **v2.121.7+**: Live preview no longer requires a Connected App. Standard org auth (`sf org login web`) suffices.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Full Deployment Workflows
|
|
241
|
+
|
|
242
|
+
### New Agent Deployment
|
|
243
|
+
|
|
244
|
+
Complete workflow for deploying a new agent:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# 1. Deploy Apex classes (if any)
|
|
248
|
+
sf project deploy start --metadata ApexClass --target-org myorg
|
|
249
|
+
|
|
250
|
+
# 2. Deploy Flows
|
|
251
|
+
sf project deploy start --metadata Flow --target-org myorg
|
|
252
|
+
|
|
253
|
+
# 3. Validate Agent Script
|
|
254
|
+
sf agent validate authoring-bundle --api-name Customer_Support_Agent --target-org myorg
|
|
255
|
+
|
|
256
|
+
# 4. Publish agent
|
|
257
|
+
sf agent publish authoring-bundle --api-name Customer_Support_Agent --target-org myorg
|
|
258
|
+
|
|
259
|
+
# 5. Preview (simulated mode)
|
|
260
|
+
sf agent preview --api-name Customer_Support_Agent --target-org myorg
|
|
261
|
+
|
|
262
|
+
# 6. Activate
|
|
263
|
+
sf agent activate --api-name Customer_Support_Agent --target-org myorg
|
|
264
|
+
|
|
265
|
+
# 7. Preview (live mode - optional)
|
|
266
|
+
sf agent preview --api-name Customer_Support_Agent --use-live-actions --target-org myorg
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Update Existing Agent
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# 1. Deactivate
|
|
273
|
+
sf agent deactivate --api-name Customer_Support_Agent --target-org myorg
|
|
274
|
+
|
|
275
|
+
# 2. Deploy updated dependencies (if any)
|
|
276
|
+
sf project deploy start --metadata ApexClass,Flow --target-org myorg
|
|
277
|
+
|
|
278
|
+
# 3. Validate
|
|
279
|
+
sf agent validate authoring-bundle --api-name Customer_Support_Agent --target-org myorg
|
|
280
|
+
|
|
281
|
+
# 4. Re-publish
|
|
282
|
+
sf agent publish authoring-bundle --api-name Customer_Support_Agent --target-org myorg
|
|
283
|
+
|
|
284
|
+
# 5. Preview
|
|
285
|
+
sf agent preview --api-name Customer_Support_Agent --target-org myorg
|
|
286
|
+
|
|
287
|
+
# 6. Re-activate
|
|
288
|
+
sf agent activate --api-name Customer_Support_Agent --target-org myorg
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Sync Between Orgs
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
# 1. Retrieve from source org
|
|
295
|
+
sf project retrieve start --metadata Agent:Customer_Support_Agent --target-org source-org
|
|
296
|
+
|
|
297
|
+
# 2. Deploy dependencies to target org first
|
|
298
|
+
sf project deploy start --source-dir force-app/main/default/classes --target-org target-org
|
|
299
|
+
sf project deploy start --source-dir force-app/main/default/flows --target-org target-org
|
|
300
|
+
|
|
301
|
+
# 3. Deploy agent metadata
|
|
302
|
+
sf project deploy start --metadata Agent:Customer_Support_Agent --target-org target-org
|
|
303
|
+
|
|
304
|
+
# 4. Publish agent in target org
|
|
305
|
+
sf agent publish authoring-bundle --api-name Customer_Support_Agent --target-org target-org
|
|
306
|
+
|
|
307
|
+
# 5. Activate in target org
|
|
308
|
+
sf agent activate --api-name Customer_Support_Agent --target-org target-org
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### CI/CD Pipeline Integration
|
|
312
|
+
|
|
313
|
+
Example deployment script for CI/CD:
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
#!/bin/bash
|
|
317
|
+
# deploy-agent.sh
|
|
318
|
+
|
|
319
|
+
set -e # Exit on error
|
|
320
|
+
|
|
321
|
+
ORG_ALIAS=$1
|
|
322
|
+
AGENT_NAME=$2
|
|
323
|
+
AGENT_VERSION=$3
|
|
324
|
+
|
|
325
|
+
echo "🚀 Deploying agent: $AGENT_NAME to $ORG_ALIAS (version: $AGENT_VERSION)"
|
|
326
|
+
|
|
327
|
+
# Step 1: Deploy dependencies
|
|
328
|
+
echo "📦 Deploying Apex classes..."
|
|
329
|
+
sf project deploy start --metadata ApexClass --target-org $ORG_ALIAS --wait 10 --json
|
|
330
|
+
|
|
331
|
+
echo "📦 Deploying Flows..."
|
|
332
|
+
sf project deploy start --metadata Flow --target-org $ORG_ALIAS --wait 10 --json
|
|
333
|
+
|
|
334
|
+
# Step 2: Validate agent script
|
|
335
|
+
echo "✅ Validating Agent Script..."
|
|
336
|
+
sf agent validate authoring-bundle --api-name $AGENT_NAME --target-org $ORG_ALIAS --json
|
|
337
|
+
|
|
338
|
+
# Step 3: Check if agent exists (deactivate if needed)
|
|
339
|
+
echo "🔍 Checking agent status..."
|
|
340
|
+
if sf agent deactivate --api-name $AGENT_NAME --target-org $ORG_ALIAS --json 2>/dev/null; then
|
|
341
|
+
echo "⏸️ Agent deactivated for update"
|
|
342
|
+
fi
|
|
343
|
+
|
|
344
|
+
# Step 4: Publish agent (--skip-retrieve skips metadata retrieval, faster in CI)
|
|
345
|
+
echo "📤 Publishing agent..."
|
|
346
|
+
sf agent publish authoring-bundle --api-name $AGENT_NAME --target-org $ORG_ALIAS --skip-retrieve --json
|
|
347
|
+
|
|
348
|
+
# Step 5: Activate agent deterministically
|
|
349
|
+
echo "▶️ Activating agent..."
|
|
350
|
+
sf agent activate --api-name $AGENT_NAME --version $AGENT_VERSION --target-org $ORG_ALIAS --json
|
|
351
|
+
|
|
352
|
+
echo "✅ Agent deployment complete: $AGENT_NAME"
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Usage:
|
|
356
|
+
```bash
|
|
357
|
+
./deploy-agent.sh myorg Customer_Support_Agent 4
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Pass the BotVersion number you intend to activate as the third argument.
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## Dependency Deployment Order
|
|
365
|
+
|
|
366
|
+
**Critical:** Dependencies must be deployed BEFORE the agent.
|
|
367
|
+
|
|
368
|
+
```
|
|
369
|
+
1. Custom Objects/Fields (generating-custom-object, generating-custom-field)
|
|
370
|
+
↓
|
|
371
|
+
2. Apex Classes (generating-apex)
|
|
372
|
+
↓
|
|
373
|
+
3. Flows (generating-flow)
|
|
374
|
+
↓
|
|
375
|
+
4. Named Credentials (building-sf-integrations, if external APIs)
|
|
376
|
+
↓
|
|
377
|
+
5. Agent Metadata (developing-agentforce publish)
|
|
378
|
+
↓
|
|
379
|
+
6. Agent Activation
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Deployment Commands by Order
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
# 1. Objects/Fields
|
|
386
|
+
sf project deploy start --metadata CustomObject,CustomField --target-org myorg
|
|
387
|
+
|
|
388
|
+
# 2. Apex
|
|
389
|
+
sf project deploy start --metadata ApexClass --target-org myorg
|
|
390
|
+
|
|
391
|
+
# 3. Flows
|
|
392
|
+
sf project deploy start --metadata Flow --target-org myorg
|
|
393
|
+
|
|
394
|
+
# 4. Named Credentials (if needed)
|
|
395
|
+
sf project deploy start --metadata NamedCredential --target-org myorg
|
|
396
|
+
|
|
397
|
+
# 5. Publish agent
|
|
398
|
+
sf agent publish authoring-bundle --api-name My_Agent --target-org myorg
|
|
399
|
+
|
|
400
|
+
# 6. Activate
|
|
401
|
+
sf agent activate --api-name My_Agent --target-org myorg
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## Post-Deployment Validation for API Access
|
|
407
|
+
|
|
408
|
+
After deploying and activating an agent, verify it is accessible via the Agent Runtime API. Missing metadata causes silent 500 errors.
|
|
409
|
+
|
|
410
|
+
### Validation Checklist
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# 1. Verify GenAiPlannerBundle has plannerSurfaces
|
|
414
|
+
sf project retrieve start --metadata GenAiPlannerBundle --target-org myorg --output-dir ./check
|
|
415
|
+
grep -l "plannerSurfaces" ./check/**/*.xml
|
|
416
|
+
# If no results → add plannerSurfaces block (see below)
|
|
417
|
+
|
|
418
|
+
# 2. Verify BotVersion has surfacesEnabled=true
|
|
419
|
+
sf project retrieve start --metadata BotVersion --target-org myorg --output-dir ./check
|
|
420
|
+
grep "surfacesEnabled" ./check/**/*.xml
|
|
421
|
+
# Should show: <surfacesEnabled>true</surfacesEnabled>
|
|
422
|
+
|
|
423
|
+
# 3. Test API connectivity
|
|
424
|
+
curl -s -X POST "https://DOMAIN.my.salesforce.com/services/oauth2/token" \
|
|
425
|
+
-d "grant_type=client_credentials&client_id=KEY&client_secret=SECRET" | jq .access_token
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Fix: Add Missing plannerSurfaces
|
|
429
|
+
|
|
430
|
+
If the GenAiPlannerBundle XML is missing the `plannerSurfaces` block, add `CustomerWebClient`:
|
|
431
|
+
|
|
432
|
+
```xml
|
|
433
|
+
<GenAiPlannerBundle xmlns="http://soap.sforce.com/2006/04/metadata">
|
|
434
|
+
<!-- existing elements -->
|
|
435
|
+
<plannerSurfaces>
|
|
436
|
+
<adaptiveResponseAllowed>false</adaptiveResponseAllowed>
|
|
437
|
+
<callRecordingAllowed>false</callRecordingAllowed>
|
|
438
|
+
<surface>SurfaceAction__CustomerWebClient</surface>
|
|
439
|
+
<surfaceType>CustomerWebClient</surfaceType>
|
|
440
|
+
</plannerSurfaces>
|
|
441
|
+
</GenAiPlannerBundle>
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
> **Note**: `EinsteinAgentApiChannel` surfaceType is NOT available on all orgs. Use `CustomerWebClient` instead — it enables both Agent Builder Preview and Agent Runtime API access.
|
|
445
|
+
|
|
446
|
+
> **⚠️ Agent Script agents**: `connection messaging:` in the `.agent` DSL ONLY generates a `Messaging` plannerSurface — `CustomerWebClient` is never auto-generated. You must manually patch it after EVERY `sf agent publish authoring-bundle`. See the post-publish workflow in `developing-agentforce`.
|
|
447
|
+
|
|
448
|
+
### Fix: Add plannerSurfaces when agent is active
|
|
449
|
+
|
|
450
|
+
If the agent is active, you must deactivate before deploying:
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
# Deactivate → Deploy → Activate
|
|
454
|
+
sf agent deactivate --api-name AgentName -o TARGET_ORG --json
|
|
455
|
+
sf project deploy start --metadata "GenAiPlannerBundle:AgentName_vNN" -o TARGET_ORG --json
|
|
456
|
+
sf agent activate --api-name AgentName --version NN -o TARGET_ORG --json
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
Use the same `NN` value from the planner bundle version you just patched so activation is deterministic.
|
|
460
|
+
|
|
461
|
+
### Fix: Enable surfacesEnabled on BotVersion
|
|
462
|
+
|
|
463
|
+
```xml
|
|
464
|
+
<BotVersion xmlns="http://soap.sforce.com/2006/04/metadata">
|
|
465
|
+
<!-- existing elements -->
|
|
466
|
+
<surfacesEnabled>true</surfacesEnabled>
|
|
467
|
+
</BotVersion>
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
Then redeploy:
|
|
471
|
+
```bash
|
|
472
|
+
sf project deploy start --metadata GenAiPlannerBundle,BotVersion --target-org myorg
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
> **Why this matters**: Without `CustomerWebClient` plannerSurface, the Agent Builder Preview shows "Something went wrong" and the Agent Runtime API returns `500 UNKNOWN_EXCEPTION` on session creation.
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## ISV Packaging (BotTemplate)
|
|
480
|
+
|
|
481
|
+
Use `sf agent generate template` to package an agent for distribution via managed packages on AppExchange.
|
|
482
|
+
|
|
483
|
+
### Generate a BotTemplate
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
sf agent generate template \
|
|
487
|
+
--agent-file force-app/main/default/bots/My_Agent/My_Agent.bot-meta.xml \
|
|
488
|
+
--agent-version 1 \
|
|
489
|
+
--output-dir my-package \
|
|
490
|
+
--source-org my-scratch-org \
|
|
491
|
+
--json
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
> **Important:** This command packages Bot / BotVersion-based agents. It does **not** package Agent Script `.agent` authoring bundles.
|
|
495
|
+
|
|
496
|
+
### What Gets Generated
|
|
497
|
+
|
|
498
|
+
The command generates a `BotTemplate` metadata type that wraps:
|
|
499
|
+
- `Bot` — Top-level agent definition
|
|
500
|
+
- `BotVersion` — Version configuration
|
|
501
|
+
- `GenAiPlannerBundle` — Reasoning engine and topic/action bindings
|
|
502
|
+
|
|
503
|
+
### Packaging Workflow
|
|
504
|
+
|
|
505
|
+
1. **Generate template**: Run `sf agent generate template` as shown above
|
|
506
|
+
2. **Include in package**: Add the `BotTemplate` and `GenAiPlannerBundle` metadata to your managed package directory
|
|
507
|
+
3. **Create package version**: `sf package version create --package <name> --installation-key <key> --wait 20`
|
|
508
|
+
4. **Install in subscriber org**: `sf package install --package <version-id> --target-org <alias> --wait 10`
|
|
509
|
+
5. **Publish agent in subscriber org**: `sf agent publish authoring-bundle --api-name <name> --target-org <alias>`
|
|
510
|
+
|
|
511
|
+
### Key Considerations
|
|
512
|
+
|
|
513
|
+
- The BotTemplate is designed for ISV distribution — it allows subscribers to install and customize the agent
|
|
514
|
+
- Subscribers can modify topics, actions, and instructions after installation
|
|
515
|
+
- The `--agent-version` flag specifies which BotVersion to template (typically `1` for new agents)
|
|
516
|
+
- The `--agent-file` must point to the `.bot-meta.xml` file in your local project
|
|
517
|
+
- `--source-org` must be a namespaced scratch org that contains the source agent
|
|
518
|
+
- Agent Script `.agent` bundles currently need a different rollout path; use source-driven publish workflows instead of `sf agent generate template`
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
## Troubleshooting
|
|
523
|
+
|
|
524
|
+
### "Internal Error, try again later"
|
|
525
|
+
|
|
526
|
+
**Causes:**
|
|
527
|
+
- Invalid `default_agent_user`
|
|
528
|
+
- Dependencies not deployed
|
|
529
|
+
- Flow/action variable name mismatch
|
|
530
|
+
|
|
531
|
+
**Solutions:**
|
|
532
|
+
```bash
|
|
533
|
+
# Verify user exists
|
|
534
|
+
sf data query --query "SELECT Id, Username FROM User WHERE Username = 'agent@example.com'" --target-org myorg
|
|
535
|
+
|
|
536
|
+
# Deploy dependencies first
|
|
537
|
+
sf project deploy start --metadata ApexClass,Flow --target-org myorg
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
### "No active agents found"
|
|
541
|
+
|
|
542
|
+
**Cause:** Agent not activated
|
|
543
|
+
|
|
544
|
+
**Solution:**
|
|
545
|
+
```bash
|
|
546
|
+
sf agent activate --api-name My_Agent --target-org myorg
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
### "Agent must be deactivated before changes"
|
|
550
|
+
|
|
551
|
+
**Cause:** Trying to modify active agent
|
|
552
|
+
|
|
553
|
+
**Solution:**
|
|
554
|
+
```bash
|
|
555
|
+
sf agent deactivate --api-name My_Agent --target-org myorg
|
|
556
|
+
# Make changes
|
|
557
|
+
sf agent publish authoring-bundle --api-name My_Agent --target-org myorg
|
|
558
|
+
sf agent activate --api-name My_Agent --target-org myorg
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
### Deployment Fails with Missing Dependencies
|
|
562
|
+
|
|
563
|
+
**Cause:** Apex/Flows not deployed before agent
|
|
564
|
+
|
|
565
|
+
**Solution:** Follow the dependency deployment order above.
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
## Cross-Skill Integration
|
|
570
|
+
|
|
571
|
+
| From Skill | To Skill | Purpose |
|
|
572
|
+
|------------|----------|---------|
|
|
573
|
+
| developing-agentforce | deploying-metadata | Publish and activate agents |
|
|
574
|
+
| generating-apex | deploying-metadata | Deploy Apex before agent |
|
|
575
|
+
| generating-flow | deploying-metadata | Deploy Flows before agent |
|
|
576
|
+
| building-sf-integrations | deploying-metadata | Deploy Named Credentials for external APIs |
|
|
577
|
+
|
|
578
|
+
### Integration Pattern
|
|
579
|
+
|
|
580
|
+
```bash
|
|
581
|
+
# 1. generating-apex creates InvocableMethod class
|
|
582
|
+
# 2. generating-flow creates wrapper Flow
|
|
583
|
+
# 3. developing-agentforce creates agent with flow:// action
|
|
584
|
+
# 4. deploying-metadata orchestrates deployment in correct order
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
---
|
|
588
|
+
|
|
589
|
+
## Command Reference
|
|
590
|
+
|
|
591
|
+
### Agent-Specific Commands
|
|
592
|
+
|
|
593
|
+
| Command | Description |
|
|
594
|
+
|---------|-------------|
|
|
595
|
+
| `sf agent publish authoring-bundle --api-name X` | Publish authoring bundle |
|
|
596
|
+
| `sf agent publish authoring-bundle --api-name X --skip-retrieve` | Publish without retrieving from org (CI/CD) |
|
|
597
|
+
| `sf agent activate --api-name X --version N --json` | Activate a specific published BotVersion deterministically |
|
|
598
|
+
| `sf agent deactivate --api-name X --json` | Deactivate agent for changes |
|
|
599
|
+
| `sf agent preview --api-name X` | Preview agent behavior |
|
|
600
|
+
| `sf agent validate authoring-bundle --api-name X` | Validate Agent Script syntax |
|
|
601
|
+
|
|
602
|
+
### Metadata Commands with Agent Pseudo Type
|
|
603
|
+
|
|
604
|
+
| Command | Description |
|
|
605
|
+
|---------|-------------|
|
|
606
|
+
| `sf project retrieve start --metadata Agent:X` | Retrieve agent + components |
|
|
607
|
+
| `sf project deploy start --metadata Agent:X` | Deploy agent metadata |
|
|
608
|
+
| `sf project retrieve start --metadata Bot:X` | Retrieve bot definition only |
|
|
609
|
+
| `sf project retrieve start --metadata Bot:X --metadata BotVersion:X.vN` | Retrieve a specific BotVersion |
|
|
610
|
+
| `sf project retrieve start --metadata GenAiPlannerBundle:X` | Retrieve planner bundle |
|
|
611
|
+
| `sf project retrieve start --metadata GenAiPlugin` | Retrieve all plugins |
|
|
612
|
+
| `sf project retrieve start --metadata GenAiFunction` | Retrieve all functions |
|
|
613
|
+
|
|
614
|
+
### Management Commands
|
|
615
|
+
|
|
616
|
+
| Command | Description |
|
|
617
|
+
|---------|-------------|
|
|
618
|
+
| `sf org open agent --api-name X` | Open agent in Agentforce Builder |
|
|
619
|
+
| `sf org open authoring-bundle` | Open Agentforce Studio list view (v2.121.7+) |
|
|
620
|
+
| `sf org list metadata --metadata-type Bot` | List bots in org |
|
|
621
|
+
| `sf org list metadata --metadata-type GenAiPlannerBundle` | List planner bundles |
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
## Related Documentation
|
|
626
|
+
|
|
627
|
+
- [Agentforce Development Guide](../../developing-agentforce/SKILL.md)
|
|
628
|
+
- [Agentforce Testing Guide](../../testing-agentforce/SKILL.md)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Multi-Step Deployment Script
|
|
4
|
+
# Generated by deploying-metadata skill
|
|
5
|
+
#
|
|
6
|
+
# Usage: ./scripts/deploy.sh <target-org-alias>
|
|
7
|
+
|
|
8
|
+
set -e # Exit on error
|
|
9
|
+
|
|
10
|
+
TARGET_ORG=${1:-"myorg"}
|
|
11
|
+
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
12
|
+
|
|
13
|
+
echo "═══════════════════════════════════════════════════════════════════"
|
|
14
|
+
echo " DEPLOYMENT TO: $TARGET_ORG"
|
|
15
|
+
echo "═══════════════════════════════════════════════════════════════════"
|
|
16
|
+
|
|
17
|
+
# Step 0: Pre-flight checks
|
|
18
|
+
echo "📋 Pre-flight checks..."
|
|
19
|
+
sf --version || { echo "❌ sf CLI not found"; exit 1; }
|
|
20
|
+
sf org display --target-org "$TARGET_ORG" --json || { echo "❌ Cannot connect to org"; exit 1; }
|
|
21
|
+
|
|
22
|
+
# Step 0.5: Dry-run validation first
|
|
23
|
+
echo "🧪 Step 0.5: Running dry-run validation..."
|
|
24
|
+
sf project deploy start \
|
|
25
|
+
--dry-run \
|
|
26
|
+
--source-dir "$PROJECT_DIR/force-app/main/default" \
|
|
27
|
+
--target-org "$TARGET_ORG" \
|
|
28
|
+
--wait 30 \
|
|
29
|
+
--json
|
|
30
|
+
|
|
31
|
+
# Step 1: Deploy Custom Objects/Fields
|
|
32
|
+
echo "📦 Step 1: Deploying objects and fields..."
|
|
33
|
+
sf project deploy start \
|
|
34
|
+
--source-dir "$PROJECT_DIR/force-app/main/default/objects" \
|
|
35
|
+
--target-org "$TARGET_ORG" \
|
|
36
|
+
--wait 10 \
|
|
37
|
+
--json
|
|
38
|
+
|
|
39
|
+
# Step 2: Deploy Permission Sets
|
|
40
|
+
echo "📦 Step 2: Deploying permission sets..."
|
|
41
|
+
sf project deploy start \
|
|
42
|
+
--source-dir "$PROJECT_DIR/force-app/main/default/permissionsets" \
|
|
43
|
+
--target-org "$TARGET_ORG" \
|
|
44
|
+
--wait 10 \
|
|
45
|
+
--json
|
|
46
|
+
|
|
47
|
+
# Step 3: Deploy Apex (with tests)
|
|
48
|
+
echo "📦 Step 3: Deploying Apex..."
|
|
49
|
+
sf project deploy start \
|
|
50
|
+
--source-dir "$PROJECT_DIR/force-app/main/default/classes" \
|
|
51
|
+
--source-dir "$PROJECT_DIR/force-app/main/default/triggers" \
|
|
52
|
+
--target-org "$TARGET_ORG" \
|
|
53
|
+
--test-level RunLocalTests \
|
|
54
|
+
--wait 30 \
|
|
55
|
+
--json
|
|
56
|
+
|
|
57
|
+
# Step 4: Deploy Flows (Draft)
|
|
58
|
+
echo "📦 Step 4: Deploying flows..."
|
|
59
|
+
sf project deploy start \
|
|
60
|
+
--source-dir "$PROJECT_DIR/force-app/main/default/flows" \
|
|
61
|
+
--target-org "$TARGET_ORG" \
|
|
62
|
+
--wait 10 \
|
|
63
|
+
--json
|
|
64
|
+
|
|
65
|
+
echo "═══════════════════════════════════════════════════════════════════"
|
|
66
|
+
echo " ✅ DEPLOYMENT COMPLETE"
|
|
67
|
+
echo "═══════════════════════════════════════════════════════════════════"
|
|
68
|
+
echo ""
|
|
69
|
+
echo "Recommended Next Steps:"
|
|
70
|
+
echo " 1. Assign permission sets: sf org assign permset --name PermSetName --target-org $TARGET_ORG"
|
|
71
|
+
echo " 2. Activate flows after validation"
|
|
72
|
+
echo " 3. Create test data with handling-sf-data or describe-first sf data commands"
|
|
73
|
+
echo " 4. Run smoke tests / targeted verification"
|