@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,174 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commerce-delivery-routing-specs-integrate
|
|
3
|
-
description: "Use this skill when users want to use this workflow to propagate FulfmtRoutgSpec changes — most commonly a ProcessingTimeSpec temporary override just created by create-temporary-processing-time-override — to the external Commerce Delivery Service (CDS). Also use when you created/changed one spec and want only it to go live. Trigger when users mention sync, delivery, routing, specs."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
accessCheck: "CommerceDelivery.orgHasDeliveryRoutingEngineFeatureEnabled"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Managing Sync Delivery Routing Specs
|
|
10
|
-
|
|
11
|
-
## When to Use This Skill
|
|
12
|
-
|
|
13
|
-
Use this workflow to propagate FulfmtRoutgSpec changes — most commonly a ProcessingTimeSpec
|
|
14
|
-
temporary override just created by create-temporary-processing-time-override — to the external
|
|
15
|
-
Commerce Delivery Service (CDS). A spec created/edited in Core is NOT live in the CDS until it
|
|
16
|
-
is synced. Two modes, chosen via the sync-scope choice_point:
|
|
17
|
-
|
|
18
|
-
1. SINGLE (targeted): syncSingleFulfmtRoutgSpec — POST
|
|
19
|
-
/commerce/delivery/fulfillment-routing-specs/sync/{specId} — pushes just ONE spec, by its
|
|
20
|
-
1fH... Id. Use when you created/changed one spec and want only it to go live. Smaller blast
|
|
21
|
-
radius. Verified live on bopis (2026-08-05): 201 {success:true, errors:[]}.
|
|
22
|
-
2. ALL (org-wide bulk): syncAllFulfmtRoutgSpecs — POST
|
|
23
|
-
/commerce/delivery/fulfillment-routing-specs/sync (no body) — loads and pushes EVERY
|
|
24
|
-
FulfmtRoutgSpec in the org. Full reconcile; also re-pushes any other pending specs.
|
|
25
|
-
Verified live on bopis (2026-08-04): 201.
|
|
26
|
-
|
|
27
|
-
Both are owned by CC OM Not Hotdog and gated by "Delivery Routing Engine enabled". NOTE: the
|
|
28
|
-
single-spec endpoint is live in Core but currently MISSING from the generated OAS/corpus (a
|
|
29
|
-
generation-staleness gap — the raw Core source spec lists it), so it's authored here against the
|
|
30
|
-
verified live Core contract (minVersion 262 = API v62+, path {specId}, no request body, 201).
|
|
31
|
-
|
|
32
|
-
## Workflow
|
|
33
|
-
|
|
34
|
-
Propagate FulfmtRoutgSpec changes to the external Commerce Delivery Service. TWO modes via the
|
|
35
|
-
sync-scope choice_point:
|
|
36
|
-
- single -> sync-single-fulfillment-routing-spec: POST
|
|
37
|
-
/commerce/delivery/fulfillment-routing-specs/sync/{specId} (spec Id in path, no body) —
|
|
38
|
-
pushes ONLY that spec. Verified live 2026-08-05 (201). Requires a 1fH... spec Id.
|
|
39
|
-
- all -> sync-all-fulfillment-routing-specs: POST
|
|
40
|
-
/commerce/delivery/fulfillment-routing-specs/sync (no body, or an optional
|
|
41
|
-
fulfmtRoutgSpecSyncInput.type filter — ProcessingTime | Markdown) — bulk sync of every spec,
|
|
42
|
-
or every spec of one type. Verified live 2026-08-04 (201, unscoped).
|
|
43
|
-
|
|
44
|
-
Prefer SINGLE right after creating/editing one spec (e.g. a holiday ProcessingTimeSpec):
|
|
45
|
-
pass that spec's id. Use ALL for a full reconcile, or when no single id is in hand (single
|
|
46
|
-
requires the spec Id); when the caller knows the spec's Type, pass it on the ALL branch too
|
|
47
|
-
(type=ProcessingTime / type=Markdown) so an org-wide reconcile can't be failed by a malformed,
|
|
48
|
-
unrelated spec of the other type sharing the same bulk batch.
|
|
49
|
-
|
|
50
|
-
This is the propagation step a ProcessingTimeSpec needs to go live — a created spec exists in
|
|
51
|
-
Core but isn't fully in effect until synced. It's the delegation target of
|
|
52
|
-
create-temporary-processing-time-override — a deterministic caller (see the EXCEPTION above):
|
|
53
|
-
it only ever creates ONE spec per run, so it hardcodes sync-scope: single and passes the new
|
|
54
|
-
spec id, without asking. Can also run standalone after any FulfmtRoutgSpec create/edit.
|
|
55
|
-
|
|
56
|
-
## Critical Constraints
|
|
57
|
-
|
|
58
|
-
**Preconditions:**
|
|
59
|
-
|
|
60
|
-
- The Delivery Routing Engine feature must be enabled in the org (Connect org-access-check
|
|
61
|
-
"Delivery Routing Engine enabled"), or the sync is rejected. (check: `Delivery Routing Engine enabled`)
|
|
62
|
-
|
|
63
|
-
**Operational rules:**
|
|
64
|
-
|
|
65
|
-
- ASK which scope the customer wants (default single — smaller blast radius) — this MUST be an
|
|
66
|
-
explicit customer choice, never a silently-guessed default, even when this SOR is reached via
|
|
67
|
-
delegates_to: a delegating SOR must surface the question, not guess on the customer's behalf.
|
|
68
|
-
- EXCEPTION — deterministic callers may hardcode instead of asking: the "always ask" rule exists
|
|
69
|
-
to stop an AMBIGUOUS scope being silently guessed wrong (that was the actual 2026-08-17
|
|
70
|
-
incident — an agent defaulted to a scope it wasn't sure about). It does NOT apply when the
|
|
71
|
-
calling SOR's own flow makes the correct scope a certainty rather than a guess. The bar for
|
|
72
|
-
this is a STRUCTURAL invariant in the caller's OWN steps, provable by reading them — not a
|
|
73
|
-
feeling that a scope is "probably" right. e.g. create-temporary-processing-time-override only
|
|
74
|
-
ever creates exactly ONE spec per run (its create step has no fan-out, no loop, no batch input),
|
|
75
|
-
so "single" is the only correct answer there; asking would just be friction over a question with
|
|
76
|
-
one possible answer, not a real choice. That caller hardcodes sync-scope: single unconditionally.
|
|
77
|
-
A future caller claiming this exception must be able to point to the equivalent structural
|
|
78
|
-
guarantee in its own flow (e.g. "this step processes exactly one record because X"), not just
|
|
79
|
-
assert confidence — when a caller's own scope IS genuinely ambiguous (it doesn't know in
|
|
80
|
-
advance whether the customer wants one spec or a full reconcile), it must still ask.
|
|
81
|
-
- CORPUS NOTE: the single-spec sync is live in Core but missing from the generated OAS (staleness
|
|
82
|
-
gap; the raw Core source spec lists it) — authored against the verified live contract.
|
|
83
|
-
- DELEGATED vs STANDALONE: when invoked via delegates_to from another SOR, stay silent on
|
|
84
|
-
completion — the delegating SOR owns the single closing message to the customer. Only when
|
|
85
|
-
invoked STANDALONE (directly, not via delegation) should this SOR itself say the canonical
|
|
86
|
-
closing line below.
|
|
87
|
-
- CUSTOMER-FACING WORDING (standalone only): this SOR never writes/saves anything itself — it
|
|
88
|
-
only pushes whatever already exists in Core (same reasoning as the sibling sync-location-graph)
|
|
89
|
-
— NOT the "saved and synced" canonical line, which implies a write just happened here; that
|
|
90
|
-
write, if any, belongs to whichever caller created/edited the spec before reaching this SOR.
|
|
91
|
-
Say which spec(s) were synced, not just "synced" generically:
|
|
92
|
-
- SINGLE: "Your routing spec has been synced." — this SOR only ever receives the raw specId
|
|
93
|
-
(1fH...) as input — no Name or ExternalReference. Never speak that raw Id in prose. Instead
|
|
94
|
-
give a best-effort link with NEUTRAL anchor text (you don't have a friendly name to use):
|
|
95
|
-
[view routing spec](<orgHost>/lightning/r/FulfmtRoutgSpec/<specId>/view) — keep the `]` and
|
|
96
|
-
`(` on the same line with no space/break between them, or the Markdown link renders broken.
|
|
97
|
-
If the caller (a delegating SOR) already named the spec by its own Name/ExternalReference in
|
|
98
|
-
ITS recap, this branch is DELEGATED, not standalone, so you're silent anyway (see above) —
|
|
99
|
-
this wording only fires when an admin invoked sync-delivery-routing-specs directly with a
|
|
100
|
-
bare Id and no other SOR is speaking for them.
|
|
101
|
-
- ALL: no single entity to name or link. If a type filter (ProcessingTime/Markdown) was
|
|
102
|
-
sent, say "Your <type> routing specs have been synced." (e.g. "Your processing-time
|
|
103
|
-
routing specs have been synced.") — NOT the unqualified "all routing specs," which
|
|
104
|
-
overclaims scope when only one type was actually touched. Only say "Your routing specs
|
|
105
|
-
have been synced." (unqualified) when NO type filter was sent — a genuinely unscoped,
|
|
106
|
-
every-type sync.
|
|
107
|
-
RECAP LAYOUT — MULTIPLE syncs standalone in one conversation (e.g. "sync spec A and spec B" —
|
|
108
|
-
two sync-scope: single calls with different spec Ids — or "sync all processing-time specs,
|
|
109
|
-
then all markdown specs" — two sync-scope: all calls with different type filters): give ONE
|
|
110
|
-
consolidated table instead of repeating the sentence form per sync —
|
|
111
|
-
| Spec / Scope | Outcome |
|
|
112
|
-
|---|---|
|
|
113
|
-
| [view routing spec](<orgHost>/lightning/r/FulfmtRoutgSpec/<specId>/view) | synced |
|
|
114
|
-
| all processing-time specs | synced |
|
|
115
|
-
One row per sync performed in this conversation. For a SINGLE-mode row, reuse the same
|
|
116
|
-
best-effort NEUTRAL-anchor-text link as above (still no friendly name to show — the anchor
|
|
117
|
-
text is identical across rows, only the link target differs). For an ALL-mode row, name the
|
|
118
|
-
type filter if one was sent (e.g. "all processing-time specs"), or "all routing specs" if
|
|
119
|
-
unscoped. Use whichever outcome word applies (synced / could not be synced — see the SINGLE/ALL
|
|
120
|
-
guidance above for what failure looks like). Say the canonical opening line once, before the
|
|
121
|
-
table, if every row synced — e.g. "Your routing specs have been synced." Omit it only when a
|
|
122
|
-
row could not be synced, since that's the one outcome it would misstate; in that case name the
|
|
123
|
-
failed rows separately from the succeeded ones.
|
|
124
|
-
Keep it under ~200 characters of VISIBLE text where possible (soft target — the link URL
|
|
125
|
-
doesn't count). Never say "CDS",
|
|
126
|
-
"Commerce Delivery Service", or "delivery service" as something distinct from the setup change
|
|
127
|
-
— describe it as one seamless save. Don't surface the Connect path, sObject names, or
|
|
128
|
-
raw HTTP codes.
|
|
129
|
-
|
|
130
|
-
## Operations Reference
|
|
131
|
-
|
|
132
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
133
|
-
|
|
134
|
-
### Summary
|
|
135
|
-
|
|
136
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
137
|
-
|-----------|---------|--------|------|------------|
|
|
138
|
-
| `sync-single-fulfillment-routing-spec` | write | implemented | `syncSingleFulfmtRoutgSpec` | — |
|
|
139
|
-
| `sync-all-fulfillment-routing-specs` | write | implemented | `syncAllFulfmtRoutgSpecs` | — |
|
|
140
|
-
|
|
141
|
-
### Write operations
|
|
142
|
-
|
|
143
|
-
#### `sync-single-fulfillment-routing-spec`
|
|
144
|
-
|
|
145
|
-
Targeted sync — push a SINGLE FulfmtRoutgSpec (e.g. the ProcessingTimeSpec just created) to
|
|
146
|
-
the Commerce Delivery Service by its Id, so only that spec goes live in the CDS.
|
|
147
|
-
|
|
148
|
-
**Call:** `syncSingleFulfmtRoutgSpec` — status: `implemented`
|
|
149
|
-
|
|
150
|
-
**Inputs:**
|
|
151
|
-
|
|
152
|
-
- `specId` *(`String`)* — The FulfmtRoutgSpec / ProcessingTimeSpec Id to sync (1fH...). Provided by the caller at
|
|
153
|
-
invocation: a delegating SOR passes it (e.g. create-temporary-processing-time-override's
|
|
154
|
-
create-temporary-override.spec_id), or a standalone admin supplies it directly (e.g.
|
|
155
|
-
DeliveryEstimationSetup.ProcessingTimeSpecId).
|
|
156
|
-
|
|
157
|
-
#### `sync-all-fulfillment-routing-specs`
|
|
158
|
-
|
|
159
|
-
Org-wide bulk sync — load every FulfmtRoutgSpec for the org (optionally scoped to one Type)
|
|
160
|
-
and push the bulk payload to the Commerce Delivery Service, making all Core-side spec changes
|
|
161
|
-
live at once.
|
|
162
|
-
|
|
163
|
-
**Call:** `syncAllFulfmtRoutgSpecs` — status: `implemented`
|
|
164
|
-
|
|
165
|
-
**Inputs:**
|
|
166
|
-
|
|
167
|
-
- `type` *(`String`)* — Optional FulfmtRoutgSpec.Type to scope the bulk sync to (ProcessingTime | Markdown). Omit
|
|
168
|
-
to sync every FulfmtRoutgSpec regardless of type — verified server-side
|
|
169
|
-
(CDSFulfmtRoutgSpecSyncRequestMapper): no body, or a blank type, is explicitly
|
|
170
|
-
backward-compatible and syncs all types. SET THIS whenever the caller only cares about one
|
|
171
|
-
type (e.g. delegated from a ProcessingTime-only flow): the bulk endpoint loads + PUTs every
|
|
172
|
-
matching spec in ONE call, so one malformed/incompatible spec of the OTHER type elsewhere in
|
|
173
|
-
the org can fail the entire batch even though the spec you care about is fine. An
|
|
174
|
-
unrecognized value 400s (INVALID_INPUT).
|
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commerce-estimate-bopis-query
|
|
3
|
-
description: "Use this skill when users want to use this workflow when someone wants a real-time BUY-ONLINE-PICKUP-IN-STORE (BOPIS) estimate — \"which stores can I pick this up from?\", \"when can I collect these items in store?\", \"find pickup locations near <address>\". Trigger when users mention estimate, bopis."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Querying Estimate Bopis
|
|
9
|
-
|
|
10
|
-
## When to Use This Skill
|
|
11
|
-
|
|
12
|
-
Use this workflow when someone wants a real-time BUY-ONLINE-PICKUP-IN-STORE (BOPIS) estimate — "which
|
|
13
|
-
stores can I pick this up from?", "when can I collect these items in store?", "find pickup locations
|
|
14
|
-
near <address>". It does NOT change any configuration; it is a read-only estimate over the current
|
|
15
|
-
DeliveryEstimationSetup and its pickup-eligible locations. To turn a location's pickup eligibility
|
|
16
|
-
ON, use the sibling enable-location-bopis skill instead.
|
|
17
|
-
|
|
18
|
-
It guides the caller through building the request one piece at a time — do not ask for raw JSON:
|
|
19
|
-
pick the DeliveryEstimationSetup, then EITHER name the specific store(s) to check (each must be
|
|
20
|
-
BOPIS/pickup-eligible — this skill verifies that first) OR ask the service to find nearby
|
|
21
|
-
pickup-eligible stores within a radius of an address, choose products + quantities, collect the
|
|
22
|
-
address — then calls EstimateBopis (at API v68.0) and reads back, per store, the earliest pickup
|
|
23
|
-
time, order cutoff, distance, and available inventory.
|
|
24
|
-
|
|
25
|
-
TWO WAYS TO CHOOSE STORES (the location-selection choice_point): (1) SPECIFIC — the customer names
|
|
26
|
-
the store(s); each named store must be pickup-eligible (the skill checks and, if one isn't, says so
|
|
27
|
-
and offers enable-location-bopis); an address is optional. (2) NEARBY — the customer gives an
|
|
28
|
-
address + a radius and the service returns the closest pickup-eligible stores; here the address,
|
|
29
|
-
radius, and a max-store count are all required.
|
|
30
|
-
|
|
31
|
-
TWO WAYS TO IDENTIFY THE SETUP (the setup-selection choice_point): (1) FILTER — the default when a
|
|
32
|
-
person runs this skill directly; an optional Name/ExternalReference substring narrows the setup
|
|
33
|
-
list, and the customer picks one. (2) PIN — used when another skill (e.g. enable-location-bopis) has
|
|
34
|
-
already resolved and chosen the setup for you; it hands off the exact record Id and no further
|
|
35
|
-
customer-facing selection happens on this path.
|
|
36
|
-
|
|
37
|
-
ADMIN/CUSTOMER-FACING WORDING: answer in plain language — e.g. "2 units of SKU-1042 can be picked
|
|
38
|
-
up at Downtown Store (2.8 mi away) from Aug 8, 6:20 PM Pacific; order by Aug 8, 9:59 AM
|
|
39
|
-
Pacific." ALWAYS NAME THE ZONE: the response's times carry an explicit "Z" and are UTC, so quoting
|
|
40
|
-
the raw clock face can be off by a full calendar day (see the estimate step's TIMES ARRIVE AS UTC
|
|
41
|
-
guidance). Multi-store answers go in complete table(s), not a sentence per store — see that step's
|
|
42
|
-
RECAP LAYOUT. Don't surface the Connect path, sObject/field API names, external-reference strings, or raw
|
|
43
|
-
HTTP codes.
|
|
44
|
-
|
|
45
|
-
## Workflow
|
|
46
|
-
|
|
47
|
-
Guided real-time BUY-ONLINE-PICKUP-IN-STORE (BOPIS) estimate. Read-only: builds an EstimateBopis
|
|
48
|
-
request with the customer, one piece at a time, and returns each store's pickup estimate. Changes
|
|
49
|
-
nothing. To turn a location's pickup eligibility ON, use enable-location-bopis (this skill only
|
|
50
|
-
reads it).
|
|
51
|
-
|
|
52
|
-
Flow:
|
|
53
|
-
|
|
54
|
-
### Phase 1: resolve-delivery-estimation-setup (FILTER) or resolve-setup-by-id (PIN) -> exactly one...
|
|
55
|
-
|
|
56
|
-
resolve-delivery-estimation-setup (FILTER) or resolve-setup-by-id (PIN) -> exactly one runs, per
|
|
57
|
-
the setup-selection choice; either way it captures the setup's Id and Name for the recap,
|
|
58
|
-
ExternalReference (the URL PATH segment), and LocationGroupId. FILTER lists setups for the customer
|
|
59
|
-
to pick from; PIN resolves the one exact Id a delegating skill already chose — no customer-facing
|
|
60
|
-
selection on that path.
|
|
61
|
-
|
|
62
|
-
### Phase 2: list-bopis-eligible-locations -> show the group's stores + pickup...
|
|
63
|
-
|
|
64
|
-
list-bopis-eligible-locations -> show the group's stores + pickup eligibility. SPECIFIC mode:
|
|
65
|
-
verify each named store is pickup-eligible (match on ExternalReference); NEARBY mode:
|
|
66
|
-
informational. If none are eligible, suggest enable-location-bopis and STOP.
|
|
67
|
-
|
|
68
|
-
### Phase 3: list-products -> present SKU'd products; customer picks products...
|
|
69
|
-
|
|
70
|
-
list-products -> present SKU'd products; customer picks products + a positive whole-number
|
|
71
|
-
quantity each.
|
|
72
|
-
|
|
73
|
-
### Phase 4: estimate-bopis -> build the body per the location-selection...
|
|
74
|
-
|
|
75
|
-
estimate-bopis -> build the body per the location-selection choice and POST; read back the
|
|
76
|
-
per-store pickup estimate.
|
|
77
|
-
|
|
78
|
-
## Critical Constraints
|
|
79
|
-
|
|
80
|
-
**Preconditions:**
|
|
81
|
-
|
|
82
|
-
- The Delivery Estimation Service must be enabled/provisioned in the org. Without it the estimate
|
|
83
|
-
call is rejected. (check: `Delivery Estimation Service enabled`)
|
|
84
|
-
- At least one DeliveryEstimationSetup record (with its ExternalReference) must exist — this skill
|
|
85
|
-
estimates against an existing setup; it does not create one. (check: `DeliveryEstimationSetup record exists`)
|
|
86
|
-
- At least one Location in the setup's LocationGroup must be pickup-eligible
|
|
87
|
-
(Location.IsEligibleForPickup = true). BOPIS estimates only against pickup-eligible stores; if
|
|
88
|
-
none are eligible, enable one first with the enable-location-bopis skill. (check: `A pickup-eligible Location exists in the setup's group`)
|
|
89
|
-
- The products being estimated must exist as Product2 records with a StockKeepingUnit (the request
|
|
90
|
-
keys products by SKU). (check: `Product2 records with StockKeepingUnit exist`)
|
|
91
|
-
|
|
92
|
-
**Operational rules:**
|
|
93
|
-
|
|
94
|
-
- SETUP-SELECTION choice_point (FILTER vs PIN) decides how step 1 resolves the setup:
|
|
95
|
-
• FILTER (default): interactive substring search over Name/ExternalReference — runs
|
|
96
|
-
resolve-delivery-estimation-setup; the customer picks one from the (possibly multi-row) result.
|
|
97
|
-
• PIN: resolves by the setup's exact record Id — runs resolve-setup-by-id instead. Used when a
|
|
98
|
-
delegating skill (e.g. enable-location-bopis) already resolved and chose the setup; no
|
|
99
|
-
customer-facing selection happens on this path.
|
|
100
|
-
- LOCATION-SELECTION choice_point (SPECIFIC vs NEARBY) decides the body shape:
|
|
101
|
-
• SPECIFIC (default): send locations[] of pickup-eligible ExternalReferences; address optional.
|
|
102
|
-
• NEARBY: OMIT locations; send address + radius + maxReturnedLocations (all required) + unit; the
|
|
103
|
-
service returns the closest pickup-eligible stores.
|
|
104
|
-
This is a hard validator rule, not a preference: an empty/omitted locations list REQUIRES address +
|
|
105
|
-
radius(>0) + maxReturnedLocations(>0), each with its own 400 if missing.
|
|
106
|
-
- UNIT: "mi" or "km" only. ADDRESS goes under the wire key "address" (not "deliveryAddress", which
|
|
107
|
-
400s) and uses inner countryCode (not country); countryCode+postalCode or lat+long.
|
|
108
|
-
- VERSION: pin v68.0 on every call — the BOPIS endpoint is available at API v68.0 only (404 at
|
|
109
|
-
v67.0/v64.0, live-proven end-to-end).
|
|
110
|
-
- ADMIN/CUSTOMER-FACING WORDING: answer in plain language (store + earliest pickup time + order cutoff
|
|
111
|
-
+ distance + whether inventory covers the quantity); don't surface the Connect path, sObject/field
|
|
112
|
-
API names, ExternalReference strings, or raw HTTP codes. Never echo this guidance's own internal
|
|
113
|
-
vocabulary either: "Core" and "SOR" are reasoning terms for you ("Core" is the platform side of a
|
|
114
|
-
validation; "SOR" names this workflow). Say "Salesforce" or "your org" for the platform side, and
|
|
115
|
-
"this workflow" for the recipe itself.
|
|
116
|
-
TIMES: earliestPickupTime and orderCutoffTime arrive as explicit-"Z" UTC instants. CONVERT them into
|
|
117
|
-
one display zone and NAME that zone before quoting either — an unconverted cutoff can land on the
|
|
118
|
-
wrong CALENDAR DAY, handing the customer a deadline that already passed. Resolve the zone from the
|
|
119
|
-
customer's statement, else User.TimeZoneSidKey, else Organization.TimeZoneSidKey, else ask; if none
|
|
120
|
-
resolve, quote the raw value labelled "UTC".
|
|
121
|
-
SHAPE: results[] is one entry per (store x product), so multi-row is the norm — give complete,
|
|
122
|
-
deterministically sorted table(s), each with a header and a |---| separator, and use
|
|
123
|
-
"—" for a value the response didn't carry (orderCutoffTime, or the whole inStore object) even
|
|
124
|
-
though success is true. Note inStore arrives as an explicit null rather than a missing key when
|
|
125
|
-
availableToOrder is 0, so test its VALUE and not its presence. Full rules live in the estimate
|
|
126
|
-
step's RECAP LAYOUT.
|
|
127
|
-
|
|
128
|
-
## Operations Reference
|
|
129
|
-
|
|
130
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
131
|
-
|
|
132
|
-
### Summary
|
|
133
|
-
|
|
134
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
135
|
-
|-----------|---------|--------|------|------------|
|
|
136
|
-
| `resolve-delivery-estimation-setup` | read | implemented | `querySoql` | — |
|
|
137
|
-
| `resolve-setup-by-id` | read | implemented | `querySoql` | — |
|
|
138
|
-
| `list-bopis-eligible-locations` | read | implemented | `querySoql` | `resolve-delivery-estimation-setup`, `resolve-setup-by-id` |
|
|
139
|
-
| `list-products` | read | implemented | `querySoql` | `resolve-delivery-estimation-setup`, `resolve-setup-by-id` |
|
|
140
|
-
| `estimate-bopis` | read | implemented | `EstimateBopis` | `resolve-delivery-estimation-setup`, `resolve-setup-by-id`, `list-bopis-eligible-locations`, `list-products` |
|
|
141
|
-
|
|
142
|
-
### Dependency graph
|
|
143
|
-
|
|
144
|
-
```mermaid
|
|
145
|
-
graph TD
|
|
146
|
-
resolve_delivery_estimation_setup["resolve-delivery-estimation-setup (read)"]
|
|
147
|
-
resolve_setup_by_id["resolve-setup-by-id (read)"]
|
|
148
|
-
list_bopis_eligible_locations["list-bopis-eligible-locations (read)"]
|
|
149
|
-
list_products["list-products (read)"]
|
|
150
|
-
estimate_bopis["estimate-bopis (read)"]
|
|
151
|
-
resolve_delivery_estimation_setup --> list_bopis_eligible_locations
|
|
152
|
-
resolve_setup_by_id --> list_bopis_eligible_locations
|
|
153
|
-
resolve_delivery_estimation_setup --> list_products
|
|
154
|
-
resolve_setup_by_id --> list_products
|
|
155
|
-
resolve_delivery_estimation_setup --> estimate_bopis
|
|
156
|
-
resolve_setup_by_id --> estimate_bopis
|
|
157
|
-
list_bopis_eligible_locations --> estimate_bopis
|
|
158
|
-
list_products --> estimate_bopis
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Read operations
|
|
162
|
-
|
|
163
|
-
#### `resolve-delivery-estimation-setup`
|
|
164
|
-
|
|
165
|
-
List / resolve the DeliveryEstimationSetup and capture its ExternalReference (the URL path
|
|
166
|
-
segment for the estimate call) and its LocationGroupId (used next to list the group's
|
|
167
|
-
pickup-eligible stores). Optionally filter by a Name/ExternalReference substring.
|
|
168
|
-
|
|
169
|
-
**Call:** `querySoql` — status: `implemented`
|
|
170
|
-
|
|
171
|
-
**Inputs:**
|
|
172
|
-
|
|
173
|
-
- `nameFilter` *(`String`)* — OPTIONAL Name or ExternalReference filter (e.g. "west"). When provided the query matches either
|
|
174
|
-
field with a LIKE; when omitted, all setups are listed. Source: user_input.
|
|
175
|
-
|
|
176
|
-
#### `resolve-setup-by-id`
|
|
177
|
-
|
|
178
|
-
Resolve the ONE DeliveryEstimationSetup whose exact record Id was handed in (the delegated / pinned
|
|
179
|
-
path). Captures the SAME fields as the substring resolve step — Id and Name for recap, plus
|
|
180
|
-
ExternalReference (the estimate URL path segment) and LocationGroupId (the group to list) — so
|
|
181
|
-
every downstream step binds identically regardless of which resolve branch ran.
|
|
182
|
-
|
|
183
|
-
**Call:** `querySoql` — status: `implemented`
|
|
184
|
-
|
|
185
|
-
**Inputs:**
|
|
186
|
-
|
|
187
|
-
- `setupId` *(`String`)* — The exact DeliveryEstimationSetup record Id (2A0...) to resolve. Source: a delegating skill that
|
|
188
|
-
already resolved AND chose the setup (e.g. enable-location-bopis.resolve-delivery-estimation-setup.setup_ids[chosen]).
|
|
189
|
-
An Id is exact + unique, so this pins the exact setup with no re-search and no Name/ExternalReference
|
|
190
|
-
collision.
|
|
191
|
-
|
|
192
|
-
#### `list-bopis-eligible-locations`
|
|
193
|
-
|
|
194
|
-
List the stores in the resolved setup's LocationGroup together with each one's pickup eligibility
|
|
195
|
-
(Location.IsEligibleForPickup), so the caller can (in SPECIFIC mode) confirm the store(s) they
|
|
196
|
-
name are pickup-eligible, or (in NEARBY mode) see which stores are eligible for context. The BOPIS
|
|
197
|
-
request keys locations by Location.ExternalReference, so this step surfaces exactly those
|
|
198
|
-
references.
|
|
199
|
-
|
|
200
|
-
**Call:** `querySoql` — status: `implemented`
|
|
201
|
-
|
|
202
|
-
**Inputs:**
|
|
203
|
-
|
|
204
|
-
- `locationGroupId` *(`String`)* — LocationGroup Id (0gh...) of the chosen setup. Source: whichever resolve branch ran — resolve-delivery-estimation-setup.location_group_ids[chosen] (filter) or resolve-setup-by-id.location_group_ids[0] (pin).
|
|
205
|
-
|
|
206
|
-
**Depends on:** `resolve-delivery-estimation-setup`, `resolve-setup-by-id`
|
|
207
|
-
|
|
208
|
-
#### `list-products`
|
|
209
|
-
|
|
210
|
-
List Product2 records that have a StockKeepingUnit so the customer can choose which products to
|
|
211
|
-
estimate and enter a quantity for each. Products are keyed by SKU in the request. Optionally filter
|
|
212
|
-
by a Name/SKU substring.
|
|
213
|
-
|
|
214
|
-
**Call:** `querySoql` — status: `implemented`
|
|
215
|
-
|
|
216
|
-
**Inputs:**
|
|
217
|
-
|
|
218
|
-
- `productFilter` *(`String`)* — OPTIONAL Name or StockKeepingUnit filter. When provided the query matches either with a LIKE;
|
|
219
|
-
when omitted, active products with a SKU are listed. Source: user_input.
|
|
220
|
-
|
|
221
|
-
**Depends on:** `resolve-delivery-estimation-setup`, `resolve-setup-by-id`
|
|
222
|
-
|
|
223
|
-
#### `estimate-bopis`
|
|
224
|
-
|
|
225
|
-
Call EstimateBopis with the assembled request — the resolved setup ExternalReference in the URL
|
|
226
|
-
path, EITHER the chosen pickup-eligible store references (SPECIFIC mode) OR a radius + max store
|
|
227
|
-
count (NEARBY mode), the chosen products + quantities, and the address — and read back, per store,
|
|
228
|
-
the earliest pickup time, order cutoff, distance, and inventory. Read-only: computes an estimate,
|
|
229
|
-
changes nothing.
|
|
230
|
-
|
|
231
|
-
**Call:** `EstimateBopis` — status: `implemented`
|
|
232
|
-
|
|
233
|
-
**Inputs:**
|
|
234
|
-
|
|
235
|
-
- `externalReference` *(`String`)* — The chosen DeliveryEstimationSetup's ExternalReference — the URL PATH segment (NOT a body field,
|
|
236
|
-
NOT the 2A0 Id). Source: whichever resolve branch ran —
|
|
237
|
-
resolve-delivery-estimation-setup.setup_external_references[chosen] (filter) or
|
|
238
|
-
resolve-setup-by-id.setup_external_references[0] (pin).
|
|
239
|
-
- `locations` *(`Array`)* — SPECIFIC mode only: the pickup-eligible store(s) to estimate, each entry a Location
|
|
240
|
-
ExternalReference (NOT a Name — a Name is rejected 400 "Location reference '<x>' not found in
|
|
241
|
-
delivery estimation setup"). Every entry MUST be one of
|
|
242
|
-
list-bopis-eligible-locations.eligible_location_external_references. OMIT this field entirely in
|
|
243
|
-
NEARBY mode (see the location-selection choice_point): an empty/absent locations list switches
|
|
244
|
-
the service into radius discovery, which then REQUIRES address + radius + maxReturnedLocations.
|
|
245
|
-
Source: customer selection over list-bopis-eligible-locations.
|
|
246
|
-
- schema: `{'type': 'array', 'minItems': 1, 'maxItems': 100, 'items': {'type': 'string', 'pattern': '^[^\\x00-\\x1F\\x7F]{1,255}$', 'description': "A pickup-eligible Location's ExternalReference (from list-bopis-eligible-locations)."}}`
|
|
247
|
-
- `products` *(`Array`)* — The products to estimate, each a (SKU, quantity) pair. Source: customer selection over
|
|
248
|
-
list-products. quantity must be a positive whole number.
|
|
249
|
-
- schema: `{'type': 'array', 'minItems': 1, 'maxItems': 2000, 'items': {'type': 'object', 'required': ['stockKeepingUnit', 'quantity'], 'properties': {'stockKeepingUnit': {'type': 'string', 'minLength': 1, 'description': 'Product StockKeepingUnit (non-blank; Core 400s INVALID_API_INPUT on a blank SKU).'}, 'quantity': {'type': 'integer', 'minimum': 1, 'maximum': 2147483647, 'description': 'Positive whole-number quantity in [1, 2147483647] (fractional values are rejected).'}}}}`
|
|
250
|
-
- `address` *(`Object`)* — The destination/search address. The WIRE KEY IS "address" — NOT "deliveryAddress", which the
|
|
251
|
-
endpoint rejects with 400 JSON_PARSER_ERROR 'Unrecognized field "deliveryAddress"' in both
|
|
252
|
-
modes (measured on 2026-08-25). NOTE the inner field name is countryCode (NOT country
|
|
253
|
-
as in the delivery-date estimate) — the outer key differs from delivery-date too, so do not
|
|
254
|
-
pattern-match either name off that sibling. REQUIRED in NEARBY mode (locations omitted) — 400
|
|
255
|
-
"Address is required when locations list is empty" otherwise; OPTIONAL in SPECIFIC mode.
|
|
256
|
-
Provide countryCode+postalCode and/or latitude+longitude (both forms live-proven 201;
|
|
257
|
-
lat/long alone is accepted and drives the distance). Sending BOTH is also accepted (201),
|
|
258
|
-
and when both are present THE COORDINATES WIN: they do not supplement the postal code, they
|
|
259
|
-
replace it as the distance origin. Measured on 2026-08-26 — postalCode 94105 (San
|
|
260
|
-
Francisco) sent together with Miami coordinates returned distances byte-identical to
|
|
261
|
-
Miami-coordinates-alone at all 5 stores over 5 calls each, and identical to the 94105 control
|
|
262
|
-
at none of them. Source: customer input.
|
|
263
|
-
- schema: `{'type': 'object', 'properties': {'countryCode': {'type': ['string', 'null'], 'description': 'ISO 3166-1 alpha-2 country code (e.g. "US"). Pair with postalCode.'}, 'postalCode': {'type': ['string', 'null'], 'description': 'Postal code. Pair with countryCode.'}, 'latitude': {'type': ['number', 'null'], 'minimum': -90, 'maximum': 90, 'description': 'Optional latitude in [-90,90]; latitude+longitude alone is an accepted address form and drives the distance. TAKES PRECEDENCE over countryCode+postalCode when both are supplied — send it only if you want the coordinates, not the postal code, to be the distance origin.'}, 'longitude': {'type': ['number', 'null'], 'minimum': -180, 'maximum': 180, 'description': 'Optional longitude in [-180,180]; pair with latitude. Same precedence over countryCode+postalCode as latitude.'}}}`
|
|
264
|
-
- `unit` *(`String`)* — Distance unit for the radius and the returned distance. EXACTLY "mi" or "km" (any other value ->
|
|
265
|
-
400 "Unit must be either 'mi' or 'km'"). Defaults to mi when omitted. Source: user_input.
|
|
266
|
-
- `radius` *(`Number`)* — NEARBY mode only: the search radius (in `unit`) within which to find pickup-eligible stores.
|
|
267
|
-
REQUIRED and > 0 when locations is omitted (400 "Radius must be greater than 0 when locations
|
|
268
|
-
list is empty" otherwise). Ignored/omit in SPECIFIC mode. Source: user_input.
|
|
269
|
-
- schema: `{'type': 'number', 'exclusiveMinimum': 0}`
|
|
270
|
-
- `maxReturnedLocations` *(`Integer`)* — NEARBY mode only: the maximum number of nearby pickup-eligible stores to return. REQUIRED and > 0
|
|
271
|
-
when locations is omitted (400 "Max returned locations must be greater than 0 when locations list
|
|
272
|
-
is empty" otherwise). Ignored/omit in SPECIFIC mode. Source: user_input.
|
|
273
|
-
- schema: `{'type': 'integer', 'minimum': 1, 'maximum': 1000}`
|
|
274
|
-
- `orderDate` *(`String`)* — OPTIONAL simulated "now" for the estimate — an ISO-8601 UTC timestamp passed through to the
|
|
275
|
-
delivery service so pickup times / order cutoffs are computed relative to it instead of the
|
|
276
|
-
actual current time (useful for "if I ordered at <time>, when could I pick up?"). Omit to use the
|
|
277
|
-
real current time. Source: user_input.
|
|
278
|
-
|
|
279
|
-
**Depends on:** `resolve-delivery-estimation-setup`, `resolve-setup-by-id`, `list-bopis-eligible-locations`, `list-products`
|