@salesforce/afv-skills 1.65.0 → 1.65.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +2 -23
- package/skills/field-service-data-capture-form-designer-configure/SKILL.md +3 -13
- package/skills/field-service-mobile-branding-configure/SKILL.md +3 -17
- package/skills/field-service-objective-designer-configure/SKILL.md +379 -72
- package/skills/field-service-prework-brief-deployer-configure/SKILL.md +537 -10
- package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1093 -65
- package/skills/field-service-sobject-create-configure/SKILL.md +213 -13
- package/skills/field-service-voice-to-form-configure/SKILL.md +11 -40
- package/skills/field-service-work-rule-designer-configure/SKILL.md +95 -121
- package/skills/agentforce-gpt-email-generation-configure/SKILL.md +0 -312
- package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +0 -64
- package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +0 -46
- package/skills/automation-company-profile-info-query/SKILL.md +0 -51
- package/skills/automation-digital-wallet-configure/SKILL.md +0 -689
- package/skills/automation-flow-coordinate/SKILL.md +0 -95
- package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +0 -1569
- package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +0 -96
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +0 -23
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +0 -31
- package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +0 -179
- package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +0 -13
- package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +0 -83
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +0 -69
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +0 -274
- package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +0 -192
- package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +0 -130
- package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +0 -92
- package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +0 -88
- package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +0 -152
- package/skills/automation-flow-coordinate/references/elements/start/start.md +0 -539
- package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +0 -152
- package/skills/automation-flow-coordinate/references/elements/wait/wait.md +0 -497
- package/skills/automation-flow-coordinate/references/recipes/author/author.md +0 -868
- package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +0 -300
- package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +0 -292
- package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +0 -323
- package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +0 -109
- package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +0 -219
- package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +0 -180
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +0 -175
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +0 -255
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +0 -212
- package/skills/automation-flow-coordinate/references/resources/variable/variable.md +0 -171
- package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +0 -786
- package/skills/automation-flow-coordinate/references/shared/end/end.md +0 -267
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +0 -69
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +0 -80
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +0 -116
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +0 -321
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +0 -320
- package/skills/automation-flow-coordinate/references/shared/server-functions.md +0 -597
- package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +0 -69
- package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +0 -78
- package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +0 -373
- package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +0 -273
- package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +0 -259
- package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +0 -369
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +0 -542
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +0 -159
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +0 -349
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +0 -505
- package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +0 -380
- package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +0 -567
- package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +0 -159
- package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +0 -360
- package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +0 -539
- package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +0 -358
- package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +0 -602
- package/skills/commerce-b2b-store-configure/SKILL.md +0 -251
- package/skills/commerce-credit-memo-create/SKILL.md +0 -139
- package/skills/commerce-delivery-business-hours-configure/SKILL.md +0 -277
- package/skills/commerce-delivery-estimation-apply/SKILL.md +0 -155
- package/skills/commerce-delivery-estimation-configure/SKILL.md +0 -377
- package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +0 -174
- package/skills/commerce-estimate-bopis-query/SKILL.md +0 -279
- package/skills/commerce-estimate-delivery-date-query/SKILL.md +0 -349
- package/skills/commerce-fees-apply/SKILL.md +0 -227
- package/skills/commerce-fulfillment-routing-analyze/SKILL.md +0 -200
- package/skills/commerce-guest-buyer-create/SKILL.md +0 -173
- package/skills/commerce-location-bopis-configure/SKILL.md +0 -378
- package/skills/commerce-location-business-hours-configure/SKILL.md +0 -235
- package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +0 -309
- package/skills/commerce-location-graph-integrate/SKILL.md +0 -131
- package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +0 -755
- package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +0 -331
- package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +0 -579
- package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +0 -626
- package/skills/commerce-merchant-catalog-configure/SKILL.md +0 -614
- package/skills/commerce-merchant-extension-provider-configure/SKILL.md +0 -368
- package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +0 -118
- package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +0 -65
- package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +0 -90
- package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +0 -72
- package/skills/commerce-merchant-insights-query/SKILL.md +0 -279
- package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +0 -656
- package/skills/commerce-order-summary-change-apply/SKILL.md +0 -375
- package/skills/commerce-product-details-get/SKILL.md +0 -363
- package/skills/commerce-product-search/SKILL.md +0 -563
- package/skills/commerce-react-storefront-create/SKILL.md +0 -350
- package/skills/commerce-return-order-summary-create/SKILL.md +0 -513
- package/skills/commerce-search-relevance-analyze/SKILL.md +0 -757
- package/skills/commerce-temporary-processing-time-override-create/SKILL.md +0 -274
- package/skills/communications-initial-setup-configure/SKILL.md +0 -630
- package/skills/communications-multisite-configure/SKILL.md +0 -571
- package/skills/communications-revenue-cloud-settings-configure/SKILL.md +0 -74
- package/skills/communications-smb-fiber-catalog-create/SKILL.md +0 -413
- package/skills/communications-tmf-integrate/SKILL.md +0 -1368
- package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +0 -448
- package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +0 -269
- package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +0 -271
- package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +0 -382
- package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +0 -373
- package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +0 -389
- package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +0 -338
- package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +0 -547
- package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +0 -346
- package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +0 -1110
- package/skills/crm-analytics-adoption-insights-configure/SKILL.md +0 -224
- package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +0 -418
- package/skills/crm-analytics-dashboards-configure/SKILL.md +0 -731
- package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +0 -233
- package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +0 -184
- package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +0 -167
- package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +0 -55
- package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +0 -1350
- package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +0 -1862
- package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +0 -83
- package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +0 -81
- package/skills/data360-activation-create/SKILL.md +0 -104
- package/skills/data360-activation-external-platform-get/SKILL.md +0 -49
- package/skills/data360-activation-target-create/SKILL.md +0 -93
- package/skills/data360-activation-v2-create/SKILL.md +0 -456
- package/skills/data360-audience-dmo-get/SKILL.md +0 -38
- package/skills/data360-calculated-affinity-create/SKILL.md +0 -82
- package/skills/data360-calculated-insight-create/SKILL.md +0 -148
- package/skills/data360-catalog-metadata-create/SKILL.md +0 -183
- package/skills/data360-code-extension-create/SKILL.md +0 -115
- package/skills/data360-communication-capping-create/SKILL.md +0 -227
- package/skills/data360-connection-create/SKILL.md +0 -491
- package/skills/data360-content-lens-create/SKILL.md +0 -181
- package/skills/data360-data-action-create/SKILL.md +0 -126
- package/skills/data360-data-action-target-create/SKILL.md +0 -181
- package/skills/data360-data-clean-room-create/SKILL.md +0 -238
- package/skills/data360-data-governance-create/SKILL.md +0 -746
- package/skills/data360-data-graph-create/SKILL.md +0 -82
- package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +0 -38
- package/skills/data360-data-lake-object-create/SKILL.md +0 -207
- package/skills/data360-data-model-object-catalog-get/SKILL.md +0 -49
- package/skills/data360-data-model-object-create/SKILL.md +0 -128
- package/skills/data360-data-model-object-mapping-create/SKILL.md +0 -106
- package/skills/data360-data-space-create/SKILL.md +0 -161
- package/skills/data360-data-streams-create/SKILL.md +0 -324
- package/skills/data360-engagement-signal-get/SKILL.md +0 -38
- package/skills/data360-experiment-create/SKILL.md +0 -82
- package/skills/data360-goal-based-campaign-create/SKILL.md +0 -192
- package/skills/data360-harmonization-process-history-get/SKILL.md +0 -38
- package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +0 -84
- package/skills/data360-identity-resolution-create/SKILL.md +0 -115
- package/skills/data360-intelligent-document-processing-create/SKILL.md +0 -148
- package/skills/data360-knowledge-graph-construction-create/SKILL.md +0 -93
- package/skills/data360-knowledge-graph-create/SKILL.md +0 -216
- package/skills/data360-knowledge-space-mcp-configure/SKILL.md +0 -475
- package/skills/data360-machine-learning-mcp-configure/SKILL.md +0 -697
- package/skills/data360-multi-org-mcp-configure/SKILL.md +0 -117
- package/skills/data360-secondary-index-mcp-configure/SKILL.md +0 -126
- package/skills/data360-segment-mcp-configure/SKILL.md +0 -159
- package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +0 -38
- package/skills/data360-semantic-engine-mcp-configure/SKILL.md +0 -62
- package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +0 -38
- package/skills/data360-semantic-metric-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-model-mcp-configure/SKILL.md +0 -115
- package/skills/data360-standard-mapping-mcp-configure/SKILL.md +0 -38
- package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +0 -73
- package/skills/experience-afv-query/SKILL.md +0 -234
- package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +0 -63
- package/skills/experience-apex-components-configure/SKILL.md +0 -69
- package/skills/experience-apex-pages-configure/SKILL.md +0 -107
- package/skills/experience-app-home-configure/SKILL.md +0 -76
- package/skills/experience-aura-lightning-out-access-configure/SKILL.md +0 -58
- package/skills/experience-briefcase-configure/SKILL.md +0 -287
- package/skills/experience-community-flexi-page-list-create/SKILL.md +0 -74
- package/skills/experience-community-template-definition-list-query/SKILL.md +0 -48
- package/skills/experience-community-theme-definition-list-query/SKILL.md +0 -38
- package/skills/experience-content-assets-configure/SKILL.md +0 -86
- package/skills/experience-custom-domain-create/SKILL.md +0 -727
- package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +0 -41
- package/skills/experience-field-service-app-builder-configure/SKILL.md +0 -187
- package/skills/experience-flow-category-configure/SKILL.md +0 -117
- package/skills/experience-formula-configure/SKILL.md +0 -358
- package/skills/experience-global-actions-configure/SKILL.md +0 -69
- package/skills/experience-global-publisher-layouts-configure/SKILL.md +0 -79
- package/skills/experience-instrumentation-configure/SKILL.md +0 -64
- package/skills/experience-lex-engagement-configure/SKILL.md +0 -50
- package/skills/experience-lightning-bolt-open/SKILL.md +0 -12
- package/skills/experience-lightning-out-configure/SKILL.md +0 -129
- package/skills/experience-lightning-preview-configure/SKILL.md +0 -67
- package/skills/experience-lightning-types-query/SKILL.md +0 -98
- package/skills/experience-malware-scan-configure/SKILL.md +0 -71
- package/skills/experience-my-salesforce-configure/SKILL.md +0 -126
- package/skills/experience-navigation-menus-configure/SKILL.md +0 -235
- package/skills/experience-notification-types-configure/SKILL.md +0 -206
- package/skills/experience-notifications-configure/SKILL.md +0 -75
- package/skills/experience-record-discovery-query/SKILL.md +0 -227
- package/skills/experience-regenerate-previews-open/SKILL.md +0 -94
- package/skills/experience-sales-cloud-mab-configure/SKILL.md +0 -254
- package/skills/experience-schema-builder-open/SKILL.md +0 -38
- package/skills/experience-simple-record-home-configure/SKILL.md +0 -110
- package/skills/experience-static-resources-configure/SKILL.md +0 -74
- package/skills/field-service-setup-coordinate/SKILL.md +0 -62
- package/skills/field-service-work-plan-configure/SKILL.md +0 -253
- package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +0 -180
- package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +0 -196
- package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +0 -106
- package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +0 -96
- package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +0 -111
- package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +0 -250
- package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +0 -122
- package/skills/fsc-digital-origination-coordinate/SKILL.md +0 -653
- package/skills/fsc-digital-origination-demo-run/SKILL.md +0 -225
- package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +0 -112
- package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +0 -396
- package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +0 -336
- package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +0 -208
- package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +0 -375
- package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +0 -83
- package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +0 -248
- package/skills/fsc-digital-origination-sample-data-create/SKILL.md +0 -206
- package/skills/fsc-document-checklist-settings-configure/SKILL.md +0 -57
- package/skills/fsc-flexible-hierarchy-configure/SKILL.md +0 -148
- package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +0 -1430
- package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +0 -471
- package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +0 -429
- package/skills/fsc-pricing-product-configurator-configure/SKILL.md +0 -150
- package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +0 -123
- package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +0 -82
- package/skills/fsc-product-act3-attributes-create/SKILL.md +0 -249
- package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +0 -196
- package/skills/fsc-product-act5-considerations-get/SKILL.md +0 -44
- package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +0 -384
- package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +0 -144
- package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +0 -107
- package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +0 -189
- package/skills/fsc-stage-management-definition-create/SKILL.md +0 -108
- package/skills/fsc-stage-management-permissions-assign/SKILL.md +0 -143
- package/skills/fsc-stage-management-transitions-configure/SKILL.md +0 -139
- package/skills/health-cloud-appt-booking-config-configure/SKILL.md +0 -135
- package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +0 -134
- package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +0 -136
- package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +0 -134
- package/skills/health-cloud-care-requests-create/SKILL.md +0 -178
- package/skills/health-cloud-initial-configure/SKILL.md +0 -511
- package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +0 -1374
- package/skills/health-cloud-provider-search-settings-configure/SKILL.md +0 -924
- package/skills/health-cloud-referral-management-coordinate/SKILL.md +0 -513
- package/skills/health-cloud-timeline-configure/SKILL.md +0 -622
- package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +0 -135
- package/skills/industries-account-score-settings-query/SKILL.md +0 -78
- package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +0 -177
- package/skills/industries-ad-product-availability-search/SKILL.md +0 -399
- package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +0 -628
- package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +0 -73
- package/skills/industries-atm-settings-starter-configure/SKILL.md +0 -76
- package/skills/industries-batch-document-ai-configure/SKILL.md +0 -196
- package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +0 -71
- package/skills/industries-branch-management-settings-configure/SKILL.md +0 -89
- package/skills/industries-bre-decision-table-access-configure/SKILL.md +0 -367
- package/skills/industries-brokerage-settings-configure/SKILL.md +0 -41
- package/skills/industries-calendar-sync-settings-configure/SKILL.md +0 -89
- package/skills/industries-care-request-settings-configure/SKILL.md +0 -218
- package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +0 -54
- package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +0 -380
- package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +0 -216
- package/skills/industries-catalog-process-intake-configure/SKILL.md +0 -219
- package/skills/industries-catalog-process-knowledge-configure/SKILL.md +0 -153
- package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +0 -168
- package/skills/industries-cds-general-settings-configure/SKILL.md +0 -69
- package/skills/industries-claim-financial-settings-configure/SKILL.md +0 -169
- package/skills/industries-clinical-data-model-settings-configure/SKILL.md +0 -136
- package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +0 -105
- package/skills/industries-collection-plan-settings-configure/SKILL.md +0 -132
- package/skills/industries-comms-service-console-settings-configure/SKILL.md +0 -159
- package/skills/industries-compliance-configure/SKILL.md +0 -102
- package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +0 -76
- package/skills/industries-contact-center-app-layout-configure/SKILL.md +0 -88
- package/skills/industries-contact-center-components-configure/SKILL.md +0 -96
- package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +0 -95
- package/skills/industries-contact-center-user-access-assign/SKILL.md +0 -96
- package/skills/industries-course-waitlist-config-configure/SKILL.md +0 -162
- package/skills/industries-crisis-center-settings-configure/SKILL.md +0 -84
- package/skills/industries-custom-object-settings-configure/SKILL.md +0 -94
- package/skills/industries-data-cloud-integration-configure/SKILL.md +0 -88
- package/skills/industries-data-space-feature-mappings-configure/SKILL.md +0 -245
- package/skills/industries-decision-matrix-builder-configure/SKILL.md +0 -78
- package/skills/industries-decision-table-hbase-configure/SKILL.md +0 -87
- package/skills/industries-decision-table-version-configure/SKILL.md +0 -74
- package/skills/industries-decision-tables-builder-configure/SKILL.md +0 -253
- package/skills/industries-decision-tables-configure/SKILL.md +0 -439
- package/skills/industries-energy-utilities-configure/SKILL.md +0 -251
- package/skills/industries-eu-cloud-multisite-configure/SKILL.md +0 -1008
- package/skills/industries-eu-new-connections-configure/SKILL.md +0 -30
- package/skills/industries-explainability-msg-template-configure/SKILL.md +0 -135
- package/skills/industries-expression-set-message-token-configure/SKILL.md +0 -135
- package/skills/industries-field-service-settings-configure/SKILL.md +0 -82
- package/skills/industries-form-framework-settings-configure/SKILL.md +0 -30
- package/skills/industries-fsc-ai-settings-configure/SKILL.md +0 -57
- package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +0 -172
- package/skills/industries-fsc-b2b-settings-configure/SKILL.md +0 -61
- package/skills/industries-fsc-insurance-settings-configure/SKILL.md +0 -58
- package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +0 -103
- package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +0 -117
- package/skills/industries-fsc-wealth-settings-configure/SKILL.md +0 -99
- package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +0 -120
- package/skills/industries-fundraising-rfm-configure/SKILL.md +0 -128
- package/skills/industries-fundraising-settings-configure/SKILL.md +0 -145
- package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +0 -299
- package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +0 -87
- package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +0 -58
- package/skills/industries-hc-score-category-settings-configure/SKILL.md +0 -167
- package/skills/industries-health-engagement-settings-configure/SKILL.md +0 -218
- package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +0 -131
- package/skills/industries-home-health-bundling-policy-create/SKILL.md +0 -50
- package/skills/industries-home-health-entity-labels-configure/SKILL.md +0 -29
- package/skills/industries-home-health-fsl-package-deploy/SKILL.md +0 -71
- package/skills/industries-home-health-fsl-settings-validate/SKILL.md +0 -27
- package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +0 -80
- package/skills/industries-home-health-guided-setup-configure/SKILL.md +0 -836
- package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +0 -55
- package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +0 -61
- package/skills/industries-home-health-licenses-assign/SKILL.md +0 -27
- package/skills/industries-home-health-operating-hours-create/SKILL.md +0 -40
- package/skills/industries-home-health-scheduling-policy-create/SKILL.md +0 -41
- package/skills/industries-home-health-service-objective-create/SKILL.md +0 -22
- package/skills/industries-home-health-skills-create/SKILL.md +0 -31
- package/skills/industries-home-health-users-create/SKILL.md +0 -29
- package/skills/industries-icm-act3-toggles-configure/SKILL.md +0 -198
- package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +0 -361
- package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +0 -550
- package/skills/industries-integrated-care-management-configure/SKILL.md +0 -168
- package/skills/industries-object-enablement-configure/SKILL.md +0 -86
- package/skills/industries-tpm-system-processing-service-configure/SKILL.md +0 -64
- package/skills/integration-apex-settings-configure/SKILL.md +0 -61
- package/skills/marketing-e360-email-archiving-configure/SKILL.md +0 -73
- package/skills/platform-custom-permissions-configure/SKILL.md +0 -687
- package/skills/platform-label-workbench-import-create/SKILL.md +0 -67
- package/skills/platform-privacy-agent-settings-configure/SKILL.md +0 -752
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commerce-merchant-insights-product-performance-analyze
|
|
3
|
-
parent: "commerce-merchant-insights"
|
|
4
|
-
purpose: "Generate and run Commerce Data Cloud SQL for product performance — top/bottom sellers, product revenue and unit trends, and growth vs a prior period."
|
|
5
|
-
description: "Answer a B2B Commerce merchant's questions about product performance from Commerce Data Cloud: best- and worst-selling products, product revenue and unit trends over time, and period-over-period growth. Adapts the top_performers_product and product_trend anchor queries (swap the ranked column, the metric, the window, add a category filter), self-checks against the executor dialect, and runs the generated read-only SQL via the data360-query-mcp SOR. Use for \"top sellers\", \"what's declining\", \"product trend for X\", \"fastest-growing products this quarter\". Product/bundle *configuration* status (active, published, bundle membership) is NOT in Data Cloud — source it from LIVE CRM (Product2, ProductCategoryProduct, ProductRelatedComponent). Never fabricate config from the fact table."
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.0"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Product performance insights
|
|
11
|
-
|
|
12
|
-
Answer product-level questions. Follow the parent
|
|
13
|
-
`commerce-merchant-insights` generation contract and grounding pack.
|
|
14
|
-
|
|
15
|
-
## Use cases and anchors
|
|
16
|
-
|
|
17
|
-
| Question shape | Anchor (`queries/…`) | Adapt by |
|
|
18
|
-
|---|---|---|
|
|
19
|
-
| "top / bottom N products", "best sellers", "fastest growing" | `top_performers_product.sql` | `ORDER BY` col (cur_revenue / cur_units / growth_percent) + `ASC`/`DESC` + `LIMIT`; category clause; period |
|
|
20
|
-
| "product trend", "units vs revenue over months for X" | `product_trend.sql` | product name AND-clause (`AND "ssot__Goo_Name__c" = '…'`); metric; bucket grain |
|
|
21
|
-
| ABC / Pareto ("which products drive 80% of revenue") | `top_performers_product.sql` | add cumulative-revenue window (`sql-patterns.md` ABC formula: A80/B15/C5) |
|
|
22
|
-
| **"is product X active / published", "product status"** | **Live CRM** (not Data Cloud) | SOQL `Product2.IsActive` (active) + `ProductCategoryProduct` for the store's catalog (published). **In stock**: real-time via Commerce Inventory Availability API (no live-CRM stock sObject); lagging snapshot in Data Cloud `LocationInventoryChangeDMO__dlm` (the `inventory-returns` path). Report separately, don't infer from sales. See `crm-hybrid-sources.md` "Product / bundle status" |
|
|
23
|
-
| **"is X in a bundle / which bundle", "bundle status"** | **Live CRM** (not Data Cloud) | SOQL `ProductRelatedComponent` (`ParentProductId` = bundle, `ChildProductId` = component). Filter `ChildProductId = <product>` to find the bundle(s) it belongs to. Promotion membership is a separate Commerce Promotions source (the close-the-loop promotion path) — say so |
|
|
24
|
-
|
|
25
|
-
## Key grounding for this use case
|
|
26
|
-
|
|
27
|
-
- Product name = `"ssot__Goo_Name__c"`; category = `"ssot__Name__c"`; product revenue =
|
|
28
|
-
`SUM("ssot__ProductAmount__c")`; units = `SUM("ssot__OrderQuantity__c")`. Filter
|
|
29
|
-
`"ssot__Goo_Name__c" IS NOT NULL` when ranking products.
|
|
30
|
-
- `top_performers_product` does current-vs-prior in a **single scan** via conditional
|
|
31
|
-
aggregation over a 2×period window — reuse that shape rather than two round-trips.
|
|
32
|
-
- Product/bundle **configuration** (active flags, bundle membership, catalog setup) is
|
|
33
|
-
NOT in the fact table — it's current-state config, so read it from **live CRM**:
|
|
34
|
-
- **Active** → `Product2.IsActive` (SOQL).
|
|
35
|
-
- **Published to store** → `ProductCategoryProduct` (catalog/category membership for the
|
|
36
|
-
resolved store).
|
|
37
|
-
- **Bundle membership** → `ProductRelatedComponent` (`ParentProductId`=bundle,
|
|
38
|
-
`ChildProductId`=component); resolve product Ids by name via `Product2` first.
|
|
39
|
-
- **In stock** → real-time via the Commerce **Inventory Availability API** (no live-CRM
|
|
40
|
-
stock sObject; `WebStoreInventorySource` is config only). A **lagging** approximate qty is
|
|
41
|
-
in Data Cloud `LocationInventoryChangeDMO__dlm.ssot__AvailableToOrderQuantity__c` (the
|
|
42
|
-
`inventory-returns` path). Never infer stock from sales.
|
|
43
|
-
- **Promotion membership** → Commerce Promotions (the close-the-loop promotion path) — out of
|
|
44
|
-
scope for this skill.
|
|
45
|
-
Data Cloud answers *performance* (revenue/units/trend); live CRM answers *config/status*.
|
|
46
|
-
Combine when the user asks both (e.g. "trend + status") into one merchant-facing answer —
|
|
47
|
-
don't name which system each part came from (parent Format rule); note recency only if it
|
|
48
|
-
affects a decision ("status as of today" vs "trend over 6 months").
|
|
49
|
-
|
|
50
|
-
## Execute
|
|
51
|
-
|
|
52
|
-
Per parent contract: `describe(execute_query-sql)` → double-encoded `paramsJson`
|
|
53
|
-
(`input.sql`) → `dispatch` `query-sql` on `data360/query` → format. Resolve store first;
|
|
54
|
-
use pinned date form.
|
|
55
|
-
|
|
56
|
-
When a question mixes performance (Data Cloud) with product/bundle status (live CRM) —
|
|
57
|
-
"top sellers + which are active", "trend for X + is it published" — fan out the Data Cloud
|
|
58
|
-
and live-CRM slices in parallel subagents and merge per the parent "Parallel hybrid
|
|
59
|
-
execution" rule (complementary compose — do NOT sum or dedupe rows across sources).
|
|
60
|
-
|
|
61
|
-
## Guardrail
|
|
62
|
-
|
|
63
|
-
Read-only single `SELECT`; store filter present + escaped; whitelisted `ssot__*` columns
|
|
64
|
-
only in dynamic sort/filter positions; bounded `LIMIT` (cap top-N at a sane max, e.g. 20).
|
|
65
|
-
|
|
66
|
-
## Definition of done
|
|
67
|
-
|
|
68
|
-
Returned ranked or trended product rows (Data Cloud) for the resolved store/window with the
|
|
69
|
-
requested metric correctly labeled. For a product/bundle **status** question, returned the
|
|
70
|
-
current config from **live CRM** (`Product2.IsActive`, `ProductCategoryProduct`,
|
|
71
|
-
`ProductRelatedComponent`), labeled as CRM — and where a datum has no source (in-stock →
|
|
72
|
-
Inventory API; promotion → the close-the-loop promotion path), said so rather than inferring it from sales.
|
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commerce-merchant-insights-query
|
|
3
|
-
description: "Answer a B2B Commerce merchant's natural-language questions about store health, product performance, inventory and returns, customer segments, and account health/churn by generating and running Commerce Data Cloud SQL — no admin-screen navigation. Routes an unqualified \"show me how the store is doing / what's selling / what's dead stock / which accounts are at risk\" request to the matching sub-skill. Each sub-skill teaches the agent the Commerce Data Cloud data model plus one canonical anchor query per use case, and the agent ADAPTS the anchor to author read-only SQL for the specific question, executing it via the data360-query-mcp SOR. Use a sibling directly for a narrowed request (e.g. \"top-selling products this quarter\" → product-performance)."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Merchant Insights
|
|
9
|
-
|
|
10
|
-
Give a B2B Commerce admin store, product, inventory, segment, and
|
|
11
|
-
account-health insights from Commerce Data Cloud, in reply to plain-language questions
|
|
12
|
-
asked on a conversational assistant. Insight generation is **read-only** — it authors and
|
|
13
|
-
runs `SELECT`s, and never writes. The agent may also **close the loop**: turn an insight
|
|
14
|
-
into an action by recommending a promotion, showing the merchant a draft, and creating it
|
|
15
|
-
in the live CRM org **only on explicit merchant confirmation** — by delegating to the
|
|
16
|
-
existing promotion skill (see "Closing the loop — creating a promotion" below). That
|
|
17
|
-
confirmed hand-off is the sole write path.
|
|
18
|
-
|
|
19
|
-
This skill does **not** ship a locked query per question. It teaches the agent the data
|
|
20
|
-
model and gives one canonical **anchor** query per major use case; the agent adapts the
|
|
21
|
-
anchor to the specific utterance, self-checks, and runs it. Coverage therefore includes
|
|
22
|
-
both the enumerated catalog and open-ended "ask anything" — subject to what the org's
|
|
23
|
-
DMOs actually hold.
|
|
24
|
-
|
|
25
|
-
## Read the grounding pack first (shared by all sub-skills)
|
|
26
|
-
|
|
27
|
-
Before generating any SQL, load the shared references (served with this skill's
|
|
28
|
-
artifacts; read them via `describe(ref:...)` or from `source/references/`):
|
|
29
|
-
|
|
30
|
-
- `dialect-d360-query-sql.md` — **AUTHORITATIVE** executor dialect + runtime wire shape.
|
|
31
|
-
Overrides the pattern file where they conflict. Read it every time.
|
|
32
|
-
- `dmo-reference.md` — which DMOs exist, which fields *matter* + what they *mean* (gotchas,
|
|
33
|
-
money-vs-time, stale precomputed). Not an exhaustive authoritative field list — resolve exact
|
|
34
|
-
names/types/table-suffix at runtime via the `SELECT * LIMIT 1` probe (see contract step 5).
|
|
35
|
-
- `data-transforms.md` — how the derived fact table is built (precomputed fields).
|
|
36
|
-
- `sql-patterns.md` — business-logic formulas (attrition, CLV, ABC, days-of-supply,
|
|
37
|
-
period-over-period). Its *syntax* section is superseded by `dialect-d360-query-sql.md`.
|
|
38
|
-
- `queries/*.sql` — the ~8 canonical anchor templates (Commerce analytics reference SQL;
|
|
39
|
-
adapt each one to the executor dialect before dispatch).
|
|
40
|
-
- `crm-hybrid-sources.md` — when to use **live CRM** vs Data Cloud, the CRM sources
|
|
41
|
-
(recent orders via `search-order-summaries`; goals via the Business Objectives Connect
|
|
42
|
-
API), the recent-data merge rule, and the **Data-Cloud-optional** degradation path.
|
|
43
|
-
Read it for any recent/current/goal question or when Data Cloud may be absent.
|
|
44
|
-
|
|
45
|
-
## The one runtime SOR (reuse — do not build)
|
|
46
|
-
|
|
47
|
-
All execution goes through the existing **`data360/query`** SOR,
|
|
48
|
-
step **`query-sql`**, tool `d360_query_sql`:
|
|
49
|
-
|
|
50
|
-
1. `describe(execute_query-sql)` FIRST — get the param schema + worked example.
|
|
51
|
-
2. `dispatch` the `query-sql` step with a single input `paramsJson`, a **double-encoded**
|
|
52
|
-
JSON string whose value is `{"input":{"sql":"<your SELECT>"}}` (inner key `input.sql`).
|
|
53
|
-
3. Small queries return synchronously (`result.data` + `result.metadata` inline). Only
|
|
54
|
-
large sets need `d360_query_sql_status` → `d360_query_sql_rows`.
|
|
55
|
-
|
|
56
|
-
The `paramsJson` double-encoding and the `input.sql` inner key are the two most common
|
|
57
|
-
mistakes — see `dialect-d360-query-sql.md`.
|
|
58
|
-
|
|
59
|
-
## Generation contract (every sub-skill follows this)
|
|
60
|
-
|
|
61
|
-
1. **Understand** the utterance: which use case, what window, what grouping/sort, which
|
|
62
|
-
store, any product/category/account filter.
|
|
63
|
-
2. **Resolve the store scope — confirm when ambiguous.** Enumerate distinct stores on the
|
|
64
|
-
org. Then:
|
|
65
|
-
- Merchant named a store → use it.
|
|
66
|
-
- Merchant said "all stores" / "across stores" / "the whole org" → span all stores
|
|
67
|
-
(aggregate, or `GROUP BY` store so each store's line is visible). This is a valid scope.
|
|
68
|
-
- Org has exactly one store → use it.
|
|
69
|
-
- **Org has multiple stores and the merchant didn't specify → ASK** which store, a subset,
|
|
70
|
-
or all of them. Do NOT silently pick one, and do NOT silently assume all. A single-store
|
|
71
|
-
answer when they meant the whole org (or vice-versa) is wrong and misleading.
|
|
72
|
-
**Prefer `ssot__WebStoreId__c` = the store id** — it's the canonical FK the raw DMOs
|
|
73
|
-
(`ssot__SalesOrder__dlm`, `ssot__ReturnOrder__dlm`, `ssot__Account__dlm`, etc.) all carry, so
|
|
74
|
-
the same filter works on the derived fact **and** on every raw-DMO join. Resolve the id once
|
|
75
|
-
(probe `SalesOrderCategoryAddressDMO__dlm` or list `ssot__WebStore__dlm`) and reuse it. The
|
|
76
|
-
name-based column `ssot__SalesStoreId__c` **only exists on the derived fact
|
|
77
|
-
`SalesOrderCategoryAddressDMO__dlm`** — using it silently breaks any query that joins to a
|
|
78
|
-
raw DMO (the join column is missing) and can collide across stores that share a name. Never
|
|
79
|
-
guess. See `dialect-d360-query-sql.md` "Store filter".
|
|
80
|
-
3. **Pick the matching anchor** template for the use case (table below).
|
|
81
|
-
4. **Adapt** it — window, `GROUP BY`, filter, JOIN, sort — using the grounding pack.
|
|
82
|
-
Use the org's **pinned** date form (not `INTERVAL … DAY`).
|
|
83
|
-
5. **Self-check** (see the checklist in `dialect-d360-query-sql.md`): identifiers exist;
|
|
84
|
-
dialect-legal; store filter present + escaped; single read-only `SELECT`; bounded.
|
|
85
|
-
**Resolve field names + table name at runtime, don't trust the catalog blindly** — the
|
|
86
|
-
catalog teaches which fields *matter* and what they *mean*; the exact names, types, and
|
|
87
|
-
the per-org table suffix come from a cheap probe: `SELECT * FROM <dmo> LIMIT 1` returns
|
|
88
|
-
`result.metadata` (every column + type). Use it to confirm a field exists / find the
|
|
89
|
-
suffixed table name / detect a DMO that isn't present in this org (query fails → report
|
|
90
|
-
"not in Data Cloud", don't fabricate). No metadata API is available — `ssot/metadata/objects`
|
|
91
|
-
is NOT_FOUND and there is no `d360_metadata_search` tool; the `LIMIT 1` probe is the resolver.
|
|
92
|
-
6. **Dispatch** via `execute_query-sql`; on a `sqlState` error, read it, correct the one
|
|
93
|
-
named thing, retry **once**, else report the error + SQL.
|
|
94
|
-
7. **Format** rows for the user; label money as money and time as time (never present
|
|
95
|
-
`ssot__LifeSpanValue__c` as dollars). **Merchant-facing register — hide the plumbing:**
|
|
96
|
-
- Never name the underlying system or mechanics (no "Data Cloud", "CRM", "Account DMO",
|
|
97
|
-
"the join", DMO/column names, `sqlState`, "unseeded record"). The merchant asked a
|
|
98
|
-
business question; answer it in business terms.
|
|
99
|
-
- **Resolve identifiers to names silently.** If an account/product name doesn't resolve
|
|
100
|
-
from the primary source, fall back to live CRM by Id **automatically** (`Account.Name`,
|
|
101
|
-
`Product2.Name`) — don't surface a raw `001…`/`01t…` Id or explain why. If a name truly
|
|
102
|
-
can't be found, show "(name unavailable)", not the reason.
|
|
103
|
-
- **Source only as plain recency, and only when it changes a decision** — say "as of today"
|
|
104
|
-
vs "historical / last 90 days", never *which system* it came from. Freshness can matter
|
|
105
|
-
to the merchant; provenance does not.
|
|
106
|
-
- Data quality gaps are stated in business terms ("we don't track account type yet"), not
|
|
107
|
-
as source/seeding mechanics.
|
|
108
|
-
|
|
109
|
-
If no anchor fits the use case, generate from the fact table + grounding.
|
|
110
|
-
|
|
111
|
-
**Data Cloud is required for insights; live CRM grounds and supplements it.** Every insight
|
|
112
|
-
analytic (revenue, trends, segments, dead-stock, returns analysis, account health) comes from
|
|
113
|
-
Data Cloud — it's a hard precondition (see Preconditions). Live CRM is used alongside it, per
|
|
114
|
-
`crm-hybrid-sources.md`:
|
|
115
|
-
- **Recent / current orders** ("last 24h", "latest orders", order #X) → live CRM via the
|
|
116
|
-
`search-order-summaries` SOR — used to **freshen** the recent window on top of the Data Cloud
|
|
117
|
-
result when the CRM→Data Cloud sync lags. Not a standalone substitute for DC.
|
|
118
|
-
- **Business objectives / goals / KPI targets** ("% to goal", "AOV target") → the Business
|
|
119
|
-
Objectives Connect API (`get-business-objectives`) — CRM/Connect-native, never in Data Cloud.
|
|
120
|
-
- **Recent-data questions** → query Data Cloud (trend/context) **and** CRM (current slice) and
|
|
121
|
-
merge: CRM wins the current window (freshens DC), Data Cloud supplies the trend.
|
|
122
|
-
- **No Data Cloud on the org** → the insight **cannot be produced** (the Preconditions gate
|
|
123
|
-
this). Say so plainly; do NOT substitute a CRM-only aggregate for the insight. Point lookups
|
|
124
|
-
(a specific order's state, a store's delegated accounts, tracked goals) still answer via
|
|
125
|
-
CRM/OMS/Connect — they never used Data Cloud.
|
|
126
|
-
|
|
127
|
-
Only when a datum is in **neither** CRM nor Data Cloud (e.g. product/bundle *configuration*,
|
|
128
|
-
or conversion when no traffic/KPI source exists) do you say so plainly — never fabricate.
|
|
129
|
-
|
|
130
|
-
**Two cross-source invariants (every sub-skill):**
|
|
131
|
-
- **Scope everything to the confirmed store scope.** Once the scope is settled (step 2 — one
|
|
132
|
-
store, a subset, or all, confirming with the merchant when ambiguous), apply it to *every*
|
|
133
|
-
query — Data Cloud SQL *and* every CRM read. One store → filter `"ssot__WebStoreId__c" =
|
|
134
|
-
'<id>'` (CRM: `search-order-summaries` per store, buyer groups via `WebStoreBuyerGroup`,
|
|
135
|
-
catalog via `WebStoreCatalog`). Subset/all → `IN (…)` or `GROUP BY` store so each store's
|
|
136
|
-
line shows. Never mix stores the merchant didn't ask for into a single-store answer, and never
|
|
137
|
-
collapse an all-stores request down to one store.
|
|
138
|
-
- **Data Cloud may be ingested from a *different* org than this CRM.** The DC customer/account
|
|
139
|
-
may have **no matching record in the CRM you're querying**, so a CRM enrichment (contact
|
|
140
|
-
last-login, buyer group, order summary) can legitimately come back **empty even though the DC
|
|
141
|
-
row exists**. Treat CRM extras as **best-effort**: match on a stable key (account id / name),
|
|
142
|
-
and if there's no local CRM match, report that piece as unavailable (business terms) — do NOT
|
|
143
|
-
assume CRM mirrors Data Cloud, and never fabricate the missing piece.
|
|
144
|
-
|
|
145
|
-
## Parallel hybrid execution — fan out, then aggregate + dedupe
|
|
146
|
-
|
|
147
|
-
Whenever a question needs **both** Data Cloud and live CRM (`store-health` recent-orders +
|
|
148
|
-
revenue/pipeline; `product-performance` performance + status; `account-health-churn` profile core
|
|
149
|
-
+ CRM extras; `order-shopper-lookups` OMS order + entitlement; any
|
|
150
|
-
"recent-data" merge), **fan out parallel subagents — one per source — instead of querying them
|
|
151
|
-
one after another.** Steps:
|
|
152
|
-
|
|
153
|
-
1. **Decide the source set for the confirmed store scope.** Data Cloud path *only if DC is
|
|
154
|
-
provisioned* (fact-table probe succeeds); live CRM path for the recent/current/config/entitlement
|
|
155
|
-
slice. A purely-DC or purely-CRM question uses a single path — **no fan-out** (don't spawn a
|
|
156
|
-
subagent that has nothing to do).
|
|
157
|
-
2. **Dispatch the source queries concurrently** — e.g. one subagent runs the Data Cloud
|
|
158
|
-
`execute_query-sql`, another runs the CRM read (`search-order-summaries` / Connect API /
|
|
159
|
-
`delegated-account` / SOQL). They are independent, so run them in parallel, not in sequence.
|
|
160
|
-
3. **Barrier: wait for all source subagents**, then **merge — pick the mode by how the two
|
|
161
|
-
results relate** (they rarely combine the same way):
|
|
162
|
-
- **(a) Complementary — different fields → compose, do NOT dedupe.** The two sides are
|
|
163
|
-
different sections of the answer (DC revenue/trend + CRM recent-orders/goals/status). Just
|
|
164
|
-
assemble the sections. No key-matching, no summing — matching complementary rows is a bug.
|
|
165
|
-
- **(b) Same entity in both → dedupe by a normalized key, one source wins.** Only when both
|
|
166
|
-
return the *same* entity (order pipeline: DC `FulfillmentOrder` DMO + CRM `FulfillmentOrder`).
|
|
167
|
-
Normalize the join key first (`FulfillmentOrderNumber`/`OrderNumber` for orders, account id
|
|
168
|
-
for accounts, product id/SKU for products), **CRM wins for the current window** (DC fills only
|
|
169
|
-
rows CRM lacks). Count the entity **once**, sum its value **once**. Never add DC + CRM counts
|
|
170
|
-
or union across different status/segment scales.
|
|
171
|
-
- **(c) Same metric, different window → reconcile, do NOT add.** DC historical/trend vs CRM
|
|
172
|
-
current slice measure overlapping things (e.g. revenue). Present CRM as "current," DC as
|
|
173
|
-
"trend"; where windows overlap, CRM wins the recent slice. Summing them double-counts.
|
|
174
|
-
Cross-cutting: normalize keys before any match (store name↔id per step 2); for an all-stores
|
|
175
|
-
scope aggregate **per store** (`GROUP BY` store) then total, never blend stores; if a shared
|
|
176
|
-
key's value differs materially between sources, **flag it** (stale DC sync) rather than
|
|
177
|
-
silently choosing.
|
|
178
|
-
4. **Return one merged, merchant-facing answer** (Format rule — no system names; recency in plain
|
|
179
|
-
words). If a **CRM-native supplement** (recent orders, goals, config) is absent, present the
|
|
180
|
-
Data Cloud insight without it and note the reduced depth in business terms. If **Data Cloud**
|
|
181
|
-
is absent, the insight itself is unavailable — report that plainly (don't substitute a CRM-only
|
|
182
|
-
aggregate).
|
|
183
|
-
|
|
184
|
-
Degenerate cases: **DC absent → insights unavailable** (Preconditions fail; report plainly — do
|
|
185
|
-
not fan out a CRM-only substitute), while point lookups (order state, delegated accounts, goals)
|
|
186
|
-
still answer via CRM/OMS/Connect; single-source question → single path. Fan out only when there
|
|
187
|
-
is genuinely parallel work across sources.
|
|
188
|
-
|
|
189
|
-
## Routing → sub-skills
|
|
190
|
-
|
|
191
|
-
| The user is asking about… | Route to | Anchor(s) / sources |
|
|
192
|
-
|---|---|---|
|
|
193
|
-
| store snapshot, revenue, order pipeline/status, recent orders, goals/% to goal | `store-health` | revenue_summary, order_pipeline, product_trend (Data Cloud) + live CRM: `search-order-summaries` (recent orders), Business Objectives Connect API (goals). Hybrid: Data Cloud insights + live-CRM freshness grounding |
|
|
194
|
-
| product trends, top/bottom sellers, product/bundle status | `product-performance` | product_trend, top_performers_product |
|
|
195
|
-
| dead stock, inventory levels, returns (summary/reasons/trend/top) | `inventory-returns` | dead_stock_inventory, returns_summary |
|
|
196
|
-
| customer/RFM segments, segment revenue, at-risk vs active mix | `segment` | segment_performance |
|
|
197
|
-
| at-risk accounts, account revenue trend, category churn, customer profile | `account-health-churn` | at_risk_accounts, top_performers_product (customer mode) |
|
|
198
|
-
| look up a specific order / shopper's effective accounts | `order-shopper-lookups` | **live OMS** `search-order-summaries` (order status/total/line items) + `BuyerAccount`/buyer-group (effective accounts). NOT Data Cloud |
|
|
199
|
-
|
|
200
|
-
Route to one sibling at a time. Run whichever the user asked for. Each sibling owns its
|
|
201
|
-
own generation contract, template citations, and guardrails.
|
|
202
|
-
|
|
203
|
-
## Closing the loop — creating a promotion
|
|
204
|
-
|
|
205
|
-
An insight often implies an action: dead stock → a clearance offer; a declining top product
|
|
206
|
-
→ a targeted discount; a fast-moving anchor product → a buy-X-get-Y (BOGO) bonus offer; an
|
|
207
|
-
at-risk account → a win-back offer. When the merchant asks the
|
|
208
|
-
agent to act on such a signal ("set up a promotion for that", "what should I do — just do
|
|
209
|
-
it"), the agent **recommends and creates a Commerce promotion** — it does **not** build its
|
|
210
|
-
own create logic.
|
|
211
|
-
|
|
212
|
-
**Reuse — do not build.** All promotion creation delegates to the existing
|
|
213
|
-
**`merchant-promotion-management`** SOR. It resolves the
|
|
214
|
-
target webstore + currency, optionally seeds from a quick-start template / existing promotion /
|
|
215
|
-
AI prompt, then persists via the composite-promotions Connect resource and reads the promotion
|
|
216
|
-
back to verify. It supports percentage / fixed-amount / fixed-price / bonus-product discounts,
|
|
217
|
-
buy-X-get-Y **qualifier**-gated offers (BOGO), scoped by webstore and/or buyer group, at
|
|
218
|
-
transaction, shipping, or product/category level. **The promo skill owns all body mechanics**
|
|
219
|
-
(target shape, `qualifierType`, per-type required fields) — recommend the *offer*, not the
|
|
220
|
-
payload. `describe(merchant-promotion-management)` for the full param schema before invoking.
|
|
221
|
-
|
|
222
|
-
**Mandatory draft-then-confirm gate — this is a live CRM write, not an insight.** The agent
|
|
223
|
-
MUST:
|
|
224
|
-
|
|
225
|
-
1. **Ground the recommendation** in the insight just shown (which product/account/segment, why,
|
|
226
|
-
the proposed discount + duration + audience).
|
|
227
|
-
2. **Show the merchant the full draft** — discount, target (order / product / category),
|
|
228
|
-
any qualifier (buy-X-get-Y), audience (webstore / buyer group), dates — in plain business
|
|
229
|
-
terms, and **wait**.
|
|
230
|
-
3. **Create only after explicit confirmation, editing the draft on request first.** No
|
|
231
|
-
confirmation → no write. The merchant may revise any draft dimension before it's created —
|
|
232
|
-
discount type/amount, target, qualifier ("only if they buy 2"), audience ("Loyal Customers
|
|
233
|
-
only"), dates. Apply each edit and **re-show**, looping until they confirm; only then create.
|
|
234
|
-
This is edit-before-create — the draft isn't persisted until confirmed.
|
|
235
|
-
4. **Delegate the create** to `merchant-promotion-management` (which enforces the
|
|
236
|
-
server's hard rules: ≥1 target + ≥1 segment; every qualifier carries a `qualifierType`),
|
|
237
|
-
then confirm back what was created (name, discount, audience, live/inactive) — never the
|
|
238
|
-
underlying resource or payload mechanics.
|
|
239
|
-
|
|
240
|
-
Default a freshly created promotion to **inactive** unless the merchant explicitly says to make
|
|
241
|
-
it live now; state which it is. Rollback (if asked): the delegated skill deletes the `Promotion`
|
|
242
|
-
record or sets it inactive.
|
|
243
|
-
|
|
244
|
-
## Security guardrail (applies to every insight and the promotion hand-off)
|
|
245
|
-
|
|
246
|
-
The agent authors SQL, so this skill owns injection defense:
|
|
247
|
-
|
|
248
|
-
- Store name/ids and any interpolated value are validated and single-quote-escaped.
|
|
249
|
-
- Only whitelisted `ssot__*` columns from the catalog may appear in dynamic
|
|
250
|
-
segment/sort/filter positions — never a raw user string.
|
|
251
|
-
- Read-only: emit a single `SELECT` (or `WITH … SELECT`); reject any DML/DDL.
|
|
252
|
-
- Bound every query: store filter + a sane period and/or `LIMIT`.
|
|
253
|
-
|
|
254
|
-
## Definition of done
|
|
255
|
-
|
|
256
|
-
The agent resolved the store, generated a dialect-legal read-only query by adapting the
|
|
257
|
-
right anchor, ran it through `execute_query-sql`, and returned correctly-labeled rows —
|
|
258
|
-
or reported plainly that the datum is not available in Data Cloud.
|
|
259
|
-
|
|
260
|
-
<!-- skill-validate: ignore-start -->
|
|
261
|
-
<!-- codey:operations start -->
|
|
262
|
-
## Operations Reference
|
|
263
|
-
|
|
264
|
-
Operations this skill uses — routing and dependency reference.
|
|
265
|
-
|
|
266
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
267
|
-
|-----------|---------|--------|------|------------|
|
|
268
|
-
| `pay-zen-commerce-merchant-insights-enumerate-stores` | read | — | `POST /services/data/v67.0/ssot/mcp/execute` | — |
|
|
269
|
-
| `data360-query-mcp-query-sql` | read | — | `POST /services/data/v67.0/ssot/mcp/execute` | `pay-zen-commerce-merchant-insights-enumerate-stores` |
|
|
270
|
-
| `data360-query-mcp-query-sql-status` | read | — | `POST /services/data/v67.0/ssot/mcp/execute` | `data360-query-mcp-query-sql` |
|
|
271
|
-
| `data360-query-mcp-query-sql-rows` | read | — | `POST /services/data/v67.0/ssot/mcp/execute` | `data360-query-mcp-query-sql-status` |
|
|
272
|
-
| `delegate-commerce-merchant-insights-account-health-churn` | delegate | — | → `pay-zen/commerce-merchant-insights-account-health-churn` | — |
|
|
273
|
-
| `delegate-commerce-merchant-insights-inventory-returns` | delegate | — | → `pay-zen/commerce-merchant-insights-inventory-returns` | — |
|
|
274
|
-
| `delegate-commerce-merchant-insights-order-shopper-lookups` | delegate | — | → `pay-zen/commerce-merchant-insights-order-shopper-lookups` | — |
|
|
275
|
-
| `delegate-commerce-merchant-insights-product-performance` | delegate | — | → `pay-zen/commerce-merchant-insights-product-performance` | — |
|
|
276
|
-
| `delegate-commerce-merchant-insights-segment` | delegate | — | → `pay-zen/commerce-merchant-insights-segment` | — |
|
|
277
|
-
| `delegate-commerce-merchant-insights-store-health` | delegate | — | → `pay-zen/commerce-merchant-insights-store-health` | — |
|
|
278
|
-
<!-- codey:operations end -->
|
|
279
|
-
<!-- skill-validate: ignore-end -->
|