@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,755 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commerce-location-shipping-carrier-method-configure
|
|
3
|
-
description: "Use this skill when users want to use this workflow when an admin wants to configure WHICH shipping carrier methods are available at a location (or a whole location group) and HOW LONG they take. Trigger when users mention update, location, shipping, carrier, method."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
accessCheck: "(CommerceDelivery.orgHasDeliveryEstimationEnabled) || (ShippingCarrier.exists)"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Managing Update Location Shipping Carrier Method
|
|
10
|
-
|
|
11
|
-
## When to Use This Skill
|
|
12
|
-
|
|
13
|
-
Use this workflow when an admin wants to configure WHICH shipping carrier methods are
|
|
14
|
-
available at a location (or a whole location group) and HOW LONG they take. Two
|
|
15
|
-
independent choices drive the flow:
|
|
16
|
-
|
|
17
|
-
method_action — CREATE a brand-new ShippingCarrierMethod under an existing
|
|
18
|
-
ShippingCarrier, or use/UPDATE an EXISTING one.
|
|
19
|
-
assign_to — assign to a single Location, or to a LocationGroup (every location
|
|
20
|
-
currently in the group inherits the assignment).
|
|
21
|
-
|
|
22
|
-
These two choices are independent but NOT optional to combine: this skill never
|
|
23
|
-
creates or updates a ShippingCarrierMethod without also creating/updating its
|
|
24
|
-
LocationShippingCarrierMethod assignment in the SAME run — a method with no
|
|
25
|
-
assignment (unreachable by any location) is not a supported end-state here.
|
|
26
|
-
method_action / assign_to decide HOW the method is created/updated and WHERE it's
|
|
27
|
-
assigned, never WHETHER it's assigned.
|
|
28
|
-
|
|
29
|
-
ENTITIES (all confirmed live against the platform's own entity definitions, NOT the
|
|
30
|
-
cached Data-API docs, which were found stale for this object):
|
|
31
|
-
- ShippingCarrierMethod (keyPrefix 2A1) — the reusable carrier+transit-time
|
|
32
|
-
definition. Name (REQUIRED — live-confirmed, not in any cached field
|
|
33
|
-
reference), ExternalReference (required, unique together with ShippingCarrierId),
|
|
34
|
-
ShippingCarrierId (required FK, keyPrefix 2A2), MinTransitTime (REQUIRED BY THIS
|
|
35
|
-
SKILL — platform itself treats it as an optional int; see RANGE below),
|
|
36
|
-
MaxTransitTime (REQUIRED int), TransitTimeUnit (REQUIRED enum
|
|
37
|
-
Hours|Days|Weeks), ProcessingTime (optional int), ProcessingTimeUnit (optional
|
|
38
|
-
enum Hours|Days|Weeks — same TimeUnitEnum as TransitTimeUnit). Treat
|
|
39
|
-
ProcessingTime and ProcessingTimeUnit as BOTH-OR-NEITHER — live-confirmed the
|
|
40
|
-
platform does NOT actually enforce this (a lone ProcessingTime saves fine with
|
|
41
|
-
ProcessingTimeUnit left null), but a processing time with no unit is
|
|
42
|
-
meaningless partial data, so this skill collects both together anyway. This is
|
|
43
|
-
the METHOD-level processing time —
|
|
44
|
-
shared across every location the method is assigned to — and NOT the same
|
|
45
|
-
field as either of the other "default processing time" fields the platform
|
|
46
|
-
also has (see SCOPE LEVELS below).
|
|
47
|
-
- LocationShippingCarrierMethod (keyPrefix 2A3) — the assignment/junction row
|
|
48
|
-
linking a method to a Location OR LocationGroup (LocationSourceId is a
|
|
49
|
-
polymorphic lookup over both, resolved by the Id's keyPrefix — no separate
|
|
50
|
-
discriminator field). PickupTime (optional Time) lives HERE, per location/group
|
|
51
|
-
PER METHOD — not on the method, and NOT the same field as either of the two
|
|
52
|
-
OTHER "default pickup time" fields the platform also has (see SCOPE
|
|
53
|
-
LEVELS below — confirm scope with the admin before setting it). DB-ENFORCED
|
|
54
|
-
UNIQUE INDEX on (LocationSourceId, ShippingCarrierMethodId) — a location/group can
|
|
55
|
-
have at most ONE assignment row per method; a duplicate POST hard-fails at the
|
|
56
|
-
platform level. Always resolve the existing row first (check-existing-assignment)
|
|
57
|
-
and POST vs PATCH accordingly.
|
|
58
|
-
|
|
59
|
-
SCOPE LEVELS — pickup time and processing time each exist at MULTIPLE levels on
|
|
60
|
-
the platform; only ONE level of each is this skill's field. An admin saying "set
|
|
61
|
-
the pickup/processing time" doesn't by itself say which level they mean — consult
|
|
62
|
-
this before setting either:
|
|
63
|
-
|
|
64
|
-
Pickup time (2 levels):
|
|
65
|
-
- SETUP — DeliveryEstimationSetup.DefaultPickupTime. Per-channel default
|
|
66
|
-
applying across the whole delivery estimation configuration. A DIFFERENT
|
|
67
|
-
skill (Delivery Estimation Setup) — NOT settable here.
|
|
68
|
-
- LOCATION-PER-METHOD — LocationShippingCarrierMethod.PickupTime. THIS skill's
|
|
69
|
-
field, and the correct entity for a location-level carrier pickup time.
|
|
70
|
-
Scoped to one (Location-or-LocationGroup × ShippingCarrierMethod) assignment;
|
|
71
|
-
set by create-assignment / update-assignment below.
|
|
72
|
-
Unrelated decoys (real fields, NOT either scope above, NOT settable by this
|
|
73
|
-
skill): Location.DefaultPickupTime (location-WIDE, not carrier- or
|
|
74
|
-
method-specific — applies regardless of which carrier method is used);
|
|
75
|
-
Location.EarliestPickupTimeOffset / LatestPickupTimeOffset (BOPIS
|
|
76
|
-
customer-pickup-window offsets, minutes before end of business hours — about
|
|
77
|
-
when a CUSTOMER picks up an order, not when a CARRIER picks one up from the
|
|
78
|
-
location — different concept and use case entirely).
|
|
79
|
-
|
|
80
|
-
Processing time (4 levels — live-org validation added the 4th; earlier authoring
|
|
81
|
-
incorrectly assumed the assignment row had none):
|
|
82
|
-
- SETUP — DeliveryEstimationSetup.DefaultProcessingTime / DefaultProcessingTimeUnit.
|
|
83
|
-
Per-channel default. A DIFFERENT skill — NOT settable here.
|
|
84
|
-
- LOCATION-WIDE — Location.DefaultProcessingTime / DefaultProcessingTimeUnit.
|
|
85
|
-
Location-wide, independent of any specific carrier method (requires Order
|
|
86
|
-
Management; hidden by field-level security by default). NOT settable by this
|
|
87
|
-
skill.
|
|
88
|
-
- METHOD — ShippingCarrierMethod.ProcessingTime / ProcessingTimeUnit. THIS
|
|
89
|
-
skill's field, set by create-shipping-carrier-method /
|
|
90
|
-
update-shipping-carrier-method above. Shared by every location/group the
|
|
91
|
-
method ends up assigned to — NOT per-location.
|
|
92
|
-
- ASSIGNMENT — LocationShippingCarrierMethod.ProcessingTime / ProcessingTimeUnit.
|
|
93
|
-
A per-(location-or-group × method) override, more specific than the
|
|
94
|
-
method-level field above. THIS skill's field too — set by create-assignment /
|
|
95
|
-
update-assignment below, independent of the method-level ProcessingTime.
|
|
96
|
-
Unrelated decoy: Location.PickupProcessingTime — the processing time for BOPIS
|
|
97
|
-
(customer pickup) orders at a location. Unrelated to a carrier method's
|
|
98
|
-
processing time. NOT settable by this skill.
|
|
99
|
-
|
|
100
|
-
DISAMBIGUATION BEHAVIOR — step 1, IN SCOPE OR NOT (pickup time and processing time
|
|
101
|
-
both work this way): if the admin's ask names a specific carrier or shipping
|
|
102
|
-
method ("pickup time for FedEx Ground at the downtown store", "processing time
|
|
103
|
-
for FedEx Ground"), that's in scope for this skill — proceed to step 2 below. If
|
|
104
|
-
it's ambiguous or reads as a store-wide/channel-wide setup default (no carrier or
|
|
105
|
-
method mentioned), ask which level they mean before setting anything; if they
|
|
106
|
-
mean a level this skill doesn't own (setup-level for either; location-wide for
|
|
107
|
-
processing time), tell them plainly and point them to a different skill.
|
|
108
|
-
|
|
109
|
-
DISAMBIGUATION BEHAVIOR — step 2, WHICH of this skill's levels (pickup time has
|
|
110
|
-
only ONE settable level here, so step 2 only applies to processing time):
|
|
111
|
-
pickup time is always assignment-level (LocationShippingCarrierMethod.PickupTime,
|
|
112
|
-
set by create-assignment / update-assignment) — there is no method-level pickup
|
|
113
|
-
time, so no further question once step 1 confirms it's in scope. Processing time
|
|
114
|
-
has TWO settable levels here, and an in-scope ask does NOT by itself say which:
|
|
115
|
-
if the admin wants the value to apply everywhere this method is assigned
|
|
116
|
-
(method-level — "set FedEx Ground's processing time to 2 days"), use
|
|
117
|
-
create-shipping-carrier-method / update-shipping-carrier-method. If they want it
|
|
118
|
-
to apply ONLY at one specific location or group (assignment-level override —
|
|
119
|
-
"for the downtown store's FedEx Ground assignment, use a 1-day processing time
|
|
120
|
-
instead"), use create-assignment / update-assignment's processingTime /
|
|
121
|
-
processingTimeUnit. If the ask doesn't make the scope clear ("set the processing
|
|
122
|
-
time for FedEx Ground" with no location/group context and no "for this location"
|
|
123
|
-
qualifier), ask the admin whether they mean the method everywhere it's used or
|
|
124
|
-
just this one assignment before calling either.
|
|
125
|
-
|
|
126
|
-
EXCLUDED BY DESIGN (confirmed to exist but out of scope for this skill):
|
|
127
|
-
- ShippingCarrierMethod.ShippingAreaType — platform-required but
|
|
128
|
-
apiAccess/createAccess/editAccess="isSfdcInternal": NOT settable via the public
|
|
129
|
-
API. Never attempt to set it; the platform applies its own default.
|
|
130
|
-
- ShippingCarrierMethod.ManagedShippingCarrierMethod and .ShippingScope —
|
|
131
|
-
optional enums for Salesforce-managed carrier integrations / shipping-scope
|
|
132
|
-
classification; the customer did not ask to set these here. Leave unset.
|
|
133
|
-
- Per-day pickup-time fields — BOTH ShippingCarrierMethod and
|
|
134
|
-
LocationShippingCarrierMethod additionally carry seven day-specific fields
|
|
135
|
-
(MondayPickUpTime..SundayPickUpTime, minApiVersion=262). This skill exposes only
|
|
136
|
-
the single generic LocationShippingCarrierMethod.PickupTime the customer asked
|
|
137
|
-
for ("a pickup time"). If an admin wants a per-day pickup schedule instead, that
|
|
138
|
-
is a natural follow-up enhancement to this skill, not covered here.
|
|
139
|
-
- Every non-settable field listed under SCOPE LEVELS above (the setup-level and
|
|
140
|
-
location-wide defaults, and both BOPIS decoys) — none of those are settable
|
|
141
|
-
by this skill; if the admin actually wants one of them, say so plainly instead
|
|
142
|
-
of silently setting this skill's own field in its place. (The
|
|
143
|
-
ASSIGNMENT-level processing-time override IS settable by this skill — see
|
|
144
|
-
SCOPE LEVELS above; it is not excluded.)
|
|
145
|
-
- Creating a new ShippingCarrier, or expanding a LocationGroup's membership — both
|
|
146
|
-
out of scope; the carrier and the target Location/LocationGroup must already
|
|
147
|
-
exist (see preconditions).
|
|
148
|
-
|
|
149
|
-
API VERSION: every call is pinned to /services/data/v68.0/ (release 264).
|
|
150
|
-
This is comfortably above the v67.0 minimum actually needed
|
|
151
|
-
for ProcessingTime/ProcessingTimeUnit (minApiVersion=262 → public API v67.0, derived
|
|
152
|
-
from the same file's ManagedShippingCarrierMethod/ShippingScope fields at
|
|
153
|
-
minApiVersion=258 → confirmed v65.0 in the cached Data-API doc, and
|
|
154
|
-
LocationShippingCarrierMethod.PickupTime at minApiVersion=260 → confirmed v66.0 in
|
|
155
|
-
the same doc — a consistent +2-release = +1-API-version step).
|
|
156
|
-
|
|
157
|
-
FEATURE GATES (from the entity definitions, more specific than "B2B/D2C Commerce
|
|
158
|
-
license"): ShippingCarrierMethod / ShippingCarrier require
|
|
159
|
-
CommerceDelivery.orgHasDeliveryEstimationEnabled OR
|
|
160
|
-
CommerceStore.orgHasCommerceStoreEnabledOrRepricingEnabled. LocationShippingCarrierMethod
|
|
161
|
-
requires the NARROWER CommerceDelivery.orgHasDeliveryEstimationEnabled only (no
|
|
162
|
-
CommerceStore fallback) — so the binding precondition for this whole skill is delivery
|
|
163
|
-
estimation being enabled.
|
|
164
|
-
|
|
165
|
-
ADMIN-FACING WORDING: name the carrier method / location / group in plain language;
|
|
166
|
-
don't surface sObject or field API names, Ids, or raw HTTP codes.
|
|
167
|
-
|
|
168
|
-
## Workflow
|
|
169
|
-
|
|
170
|
-
Flow:
|
|
171
|
-
|
|
172
|
-
### Phase 1: method_action (create vs existing) and assign_to (location vs...
|
|
173
|
-
|
|
174
|
-
method_action (create vs existing) and assign_to (location vs group) are
|
|
175
|
-
independent choices — ask both up front.
|
|
176
|
-
2a. CREATE path: resolve-shipping-carrier (validate the carrier exists) →
|
|
177
|
-
create-shipping-carrier-method (Name[required], ExternalReference[required],
|
|
178
|
-
MinTransitTime[required by this skill — platform itself treats it as
|
|
179
|
-
optional], MaxTransitTime[required], TransitTimeUnit[required],
|
|
180
|
-
ProcessingTime[optional],
|
|
181
|
-
ProcessingTimeUnit[optional, both-or-neither with ProcessingTime] — this is
|
|
182
|
-
the METHOD-level processing time, shared by every location the method ends up
|
|
183
|
-
assigned to, and not either of the two other "default processing time" fields
|
|
184
|
-
on Location / DeliveryEstimationSetup — see SCOPE LEVELS and
|
|
185
|
-
EXCLUDED BY DESIGN below; confirm scope with the admin first if their ask
|
|
186
|
-
doesn't clearly name a carrier/method).
|
|
187
|
-
2b. EXISTING path: resolve-shipping-carrier-method (by Id, captures baseline) →
|
|
188
|
-
update-shipping-carrier-method (partial-merge PATCH; skip the call entirely
|
|
189
|
-
if the admin wants no field changes on the method itself — UNLESS the
|
|
190
|
-
captured baseline's MinTransitTime is already null, which forces a
|
|
191
|
-
minTransitTime on this call regardless; see BASELINE MINIMUM in that step's
|
|
192
|
-
agent_guidance).
|
|
193
|
-
|
|
194
|
-
### Phase 2: verify-shipping-carrier-method — ALWAYS runs (regardless of method_action)
|
|
195
|
-
|
|
196
|
-
verify-shipping-carrier-method — ALWAYS runs (regardless of method_action).
|
|
197
|
-
Re-reads the method and confirms its transit/processing time fields.
|
|
198
|
-
4a. LOCATION path: resolve-location (by Id/ExternalReference/Name).
|
|
199
|
-
4b. GROUP path: resolve-location-group (by Id/Name) — every location currently in
|
|
200
|
-
the group inherits the assignment.
|
|
201
|
-
|
|
202
|
-
### Phase 3: check-existing-assignment — ALWAYS runs. LocationShippingCarrierMethod has a
|
|
203
|
-
|
|
204
|
-
check-existing-assignment — ALWAYS runs. LocationShippingCarrierMethod has a
|
|
205
|
-
DB-enforced unique index on (LocationSourceId, ShippingCarrierMethodId); this read
|
|
206
|
-
decides create-assignment (no existing row) vs update-assignment (existing
|
|
207
|
-
row) — never both.
|
|
208
|
-
|
|
209
|
-
### Phase 4: create-assignment OR update-assignment — sets PickupTime (the customer's...
|
|
210
|
-
|
|
211
|
-
create-assignment OR update-assignment — sets PickupTime (the customer's "a
|
|
212
|
-
pickup time" ask; the single generic LocationShippingCarrierMethod.PickupTime
|
|
213
|
-
field, not the separate day-of-week fields, and not either of the two other
|
|
214
|
-
"default pickup time" fields on Location / DeliveryEstimationSetup) and,
|
|
215
|
-
independently, an optional ASSIGNMENT-level ProcessingTime/ProcessingTimeUnit
|
|
216
|
-
override (more granular than the method-level field from step 2a; both-or
|
|
217
|
-
-neither, same convention) — see SCOPE LEVELS and EXCLUDED BY DESIGN below;
|
|
218
|
-
confirm scope with the admin first if their ask doesn't clearly name a
|
|
219
|
-
carrier/method.
|
|
220
|
-
|
|
221
|
-
### Phase 5: verify-assignment — re-read and confirm. INTERIM status, not...
|
|
222
|
-
|
|
223
|
-
verify-assignment — re-read and confirm. INTERIM status, not final — step 8 still has to run.
|
|
224
|
-
|
|
225
|
-
### Phase 6: sync-location-graph (ALWAYS runs automatically, immediately after BOTH verify...
|
|
226
|
-
|
|
227
|
-
sync-location-graph (ALWAYS runs automatically, immediately after BOTH verify steps succeed
|
|
228
|
-
— no ask, no choice) -> delegates_to the shared sync-location-graph SOR, which publishes
|
|
229
|
-
the location graph AND polls it to terminal success before returning. This carries
|
|
230
|
-
LOCATION-level data. It does NOT carry the transit/processing/pickup times this SOR writes
|
|
231
|
-
into delivery estimates — step 10 does. Necessary, not sufficient.
|
|
232
|
-
|
|
233
|
-
### Phase 7: resolve-estimation-setup-for-location (LOCATION path) OR resolve-estimation-setup-for-group
|
|
234
|
-
|
|
235
|
-
resolve-estimation-setup-for-location (LOCATION path) OR resolve-estimation-setup-for-group
|
|
236
|
-
(GROUP path) — read-only lookup of the DeliveryEstimationSetup(s) covering the target, so
|
|
237
|
-
step 10 knows which configuration to push. Zero results is a normal, non-error answer.
|
|
238
|
-
|
|
239
|
-
### Phase 8: push-delivery-estimation (ALWAYS runs automatically when a covering ENABLED...
|
|
240
|
-
|
|
241
|
-
push-delivery-estimation (ALWAYS runs automatically when a covering ENABLED setup was found
|
|
242
|
-
— no ask, no choice) -> delegates_to enable-and-push-delivery-estimation-setup, once per
|
|
243
|
-
enabled setup. THIS is the step that makes the change reach a delivery estimate; measured
|
|
244
|
-
on 2026-08-26, nothing this SOR writes shows up in an estimate until it runs. Skip
|
|
245
|
-
a setup whose IsEnabled is false rather than silently re-enabling it.
|
|
246
|
-
|
|
247
|
-
## Critical Constraints
|
|
248
|
-
|
|
249
|
-
**Preconditions:**
|
|
250
|
-
|
|
251
|
-
- Delivery Estimation must be enabled for LocationShippingCarrierMethod
|
|
252
|
-
(CommerceDelivery.orgHasDeliveryEstimationEnabled). ShippingCarrierMethod /
|
|
253
|
-
ShippingCarrier additionally allow a CommerceStore fallback gate, but the
|
|
254
|
-
assignment object does not — treat delivery estimation as the binding gate for
|
|
255
|
-
this whole skill. (check: `CommerceDelivery.orgHasDeliveryEstimationEnabled`)
|
|
256
|
-
- The running user needs Create/Edit access on ShippingCarrierMethod and
|
|
257
|
-
LocationShippingCarrierMethod, plus field-level Edit on the fields being set.
|
|
258
|
-
Without it, calls return 403 or the fields are silently dropped. (check: `UserPermissions create/edit on ShippingCarrierMethod + LocationShippingCarrierMethod`)
|
|
259
|
-
- The ShippingCarrier the new/existing method belongs to must already exist. This
|
|
260
|
-
skill does not create ShippingCarrier records — resolve-shipping-carrier stops
|
|
261
|
-
with a friendly message if the given carrier can't be found. (check: `ShippingCarrier.exists`)
|
|
262
|
-
- The target Location or LocationGroup must already exist. This skill does not
|
|
263
|
-
create locations or groups, or expand a group's membership. (check: `Location.exists OR LocationGroup.exists`)
|
|
264
|
-
|
|
265
|
-
**Operational rules:**
|
|
266
|
-
|
|
267
|
-
- EXCLUDED BY DESIGN: ShippingAreaType (internal-only, never settable via the public
|
|
268
|
-
API), ManagedShippingCarrierMethod / ShippingScope (optional, unrequested, left
|
|
269
|
-
unset), the seven day-of-week PickUpTime fields on both entities (customer asked
|
|
270
|
-
for a single generic pickup time — LocationShippingCarrierMethod.PickupTime — not a
|
|
271
|
-
per-day schedule; flag this as a possible future enhancement if the admin wants
|
|
272
|
-
more granularity), DeliveryEstimationSetup.DefaultPickupTime (the setup-level
|
|
273
|
-
carrier pickup time — a different skill's job), Location.DefaultPickupTime (a
|
|
274
|
-
location-wide, non-carrier-specific default), and Location.EarliestPickupTimeOffset
|
|
275
|
-
/ LatestPickupTimeOffset (BOPIS customer-pickup-window offsets — unrelated to
|
|
276
|
-
carrier pickup at all; see SCOPE LEVELS above),
|
|
277
|
-
DeliveryEstimationSetup.DefaultProcessingTime / DefaultProcessingTimeUnit (the
|
|
278
|
-
setup-level processing-time default — a different skill's job),
|
|
279
|
-
Location.DefaultProcessingTime / DefaultProcessingTimeUnit (a location-wide,
|
|
280
|
-
non-carrier-specific default), and Location.PickupProcessingTime (BOPIS
|
|
281
|
-
customer-pickup processing time — unrelated to carrier processing time; see
|
|
282
|
-
SCOPE LEVELS above), creating a ShippingCarrier, and expanding
|
|
283
|
-
LocationGroup membership.
|
|
284
|
-
- API VERSION: pinned to /services/data/v68.0/ (release 264) throughout — above the
|
|
285
|
-
v67.0 minimum actually required for ProcessingTime.
|
|
286
|
-
- CUSTOMER-FACING WORDING: the canonical closing line "Your change has been saved and synced."
|
|
287
|
-
requires ALL FOUR of verify-shipping-carrier-method, verify-assignment, sync-location-graph's
|
|
288
|
-
delegate reaching TERMINAL SUCCESS (not merely its enqueue returning), AND
|
|
289
|
-
push-delivery-estimation reporting success. The push is the one that determines whether the
|
|
290
|
-
change actually reaches a delivery estimate, so a graph sync that succeeded on its own does NOT
|
|
291
|
-
earn this line. The one exception is a target no delivery estimation configuration covers
|
|
292
|
-
(setup_count == 0): there the save and the graph sync ARE the whole of what can be done, so say
|
|
293
|
-
the canonical line and add that no delivery estimate is configured for this location/group yet.
|
|
294
|
-
Then a compact recap:
|
|
295
|
-
- The ShippingCarrierMethod's Name (+ ExternalReference if you have it) — CREATE path: echo
|
|
296
|
-
the exact name/externalReference values you sent (the create API doesn't echo them back);
|
|
297
|
-
EXISTING path: the resolved method's own Name and ExternalReference, already captured by
|
|
298
|
-
resolve-shipping-carrier-method. Either path has the Id (create-shipping-carrier-method.
|
|
299
|
-
method_id or resolve-shipping-carrier-method.matched[0].Id) — add a best-effort link:
|
|
300
|
-
[<Name>](<orgHost>/lightning/r/ShippingCarrierMethod/<Id>/view), where <orgHost> is
|
|
301
|
-
https://<instance>, the org host this request was issued against. Always absolute — never a
|
|
302
|
-
bare /lightning/r/... path. This flow holds the Id directly, so no reference-to-Id join is
|
|
303
|
-
needed here (unlike the estimate skills, whose responses carry references only); still, if
|
|
304
|
-
the Id is somehow absent, name the method plainly rather than inventing a URL.
|
|
305
|
-
- What it's assigned to: the target Location (resolve-location.location_names +
|
|
306
|
-
.location_external_references, at the index the admin chose when the lookup matched more
|
|
307
|
-
than one — if blank/null, just leave the reference out; best-effort
|
|
308
|
-
link [<Name>](<orgHost>/lightning/r/Location/<Id>/view)) or LocationGroup
|
|
309
|
-
(resolve-location-group.location_group_names + .location_group_external_references, at
|
|
310
|
-
the chosen index, if set — LocationGroup's ExternalReference is org-optional and often
|
|
311
|
-
blank, so leave it out rather than inventing one; no standard record page confirmed to
|
|
312
|
-
link here, so name it plainly).
|
|
313
|
-
- What changed, in plain language (e.g. "transit time: 2-5 Days", "pickup time: 2:30pm",
|
|
314
|
-
"processing time: 1 Day") — never the raw field names (MinTransitTime/MaxTransitTime/
|
|
315
|
-
ProcessingTime/PickupTime).
|
|
316
|
-
RECAP LAYOUT — ONE method/target changed (the common case): the sentence form above. If the
|
|
317
|
-
customer asked for the SAME method assigned to MULTIPLE Locations/Groups in this conversation
|
|
318
|
-
(this SOR runs once per target, so that's multiple invocations), give ONE consolidated table
|
|
319
|
-
at the end instead of a repeated sentence per target —
|
|
320
|
-
| Method | Target | Reference | Changed |
|
|
321
|
-
|---|---|---|---|
|
|
322
|
-
| [<Name>](<orgHost>/lightning/r/ShippingCarrierMethod/<Id>/view) | <target Location/Group name> | <target ExternalReference> | transit time: 2-5 Days |
|
|
323
|
-
One row per target; the Reference cell is the TARGET's ExternalReference, matching the sibling
|
|
324
|
-
per-location SORs' | ... | Reference | Changed | shape. In a table, every row needs the same
|
|
325
|
-
number of cells — use "—" for an individual row's missing value (e.g. a LocationGroup target,
|
|
326
|
-
whose ExternalReference is org-optional and often blank) rather than dropping the cell; only
|
|
327
|
-
drop the Reference column entirely if every row lacks it. Still say the canonical line
|
|
328
|
-
once, before the table, if every row synced successfully; if any row ended in TERMINAL
|
|
329
|
-
FAILURE (see below), that row's own failure wording goes in the table's Changed cell instead
|
|
330
|
-
of a plain "changed" description, and the canonical line is omitted (or only covers the rows
|
|
331
|
-
that actually succeeded, named separately from the failed ones).
|
|
332
|
-
If sync-location-graph's delegate ends in TERMINAL FAILURE, do NOT say "saved and synced". IF
|
|
333
|
-
the delegate's poll_status is 'Error' AND poll_error is non-empty: it carries a plain-enough,
|
|
334
|
-
per-location explanation already designed to be shown to end users (e.g. "Location 'X' has
|
|
335
|
-
invalid country code"). COMPARE the location it names against the Location/LocationGroup THIS
|
|
336
|
-
flow just assigned: if DIFFERENT, make that clear — "Your change was saved, but the sync
|
|
337
|
-
couldn't complete because of an unrelated issue elsewhere — <what poll_error says>. It can be
|
|
338
|
-
retried once that's fixed." (no link here — poll_error names that OTHER location by text/
|
|
339
|
-
message only, not an Id this flow resolved, so there's nothing to link safely). If it names the
|
|
340
|
-
SAME location this flow just assigned (or you can't tell — treat "can't tell" the same as
|
|
341
|
-
"same"), do NOT say "elsewhere" — report the issue against that location, and this IS a case a
|
|
342
|
-
link is possible: this flow already resolved that exact Location's Id for the recap above
|
|
343
|
-
(resolve-location), so reuse it instead of naming the location in plain text — "Your change was
|
|
344
|
-
saved, but the sync couldn't complete for [<Name>](<orgHost>/lightning/r/Location/<Id>/view):
|
|
345
|
-
<issue from poll_error>. It can be retried once that's fixed." — keep the `]` and `(` adjacent
|
|
346
|
-
with no space/break, or the Markdown link renders broken. If the target was a LocationGroup
|
|
347
|
-
instead (no confirmed record-page link for that entity — see the recap link guidance above),
|
|
348
|
-
fall back to naming it plainly rather than attempting a link. IF poll_status is
|
|
349
|
-
'ServiceException', poll_error is empty/absent, or the delegate exhausts its bounded poll
|
|
350
|
-
attempts still in progress: do NOT relay raw poll_error content — fall back to the generic
|
|
351
|
-
"saved but could not be synced (or still taking effect); retry shortly" without inventing
|
|
352
|
-
detail.
|
|
353
|
-
If push-delivery-estimation fails or is skipped, the wording differs by cause and must not be
|
|
354
|
-
collapsed into the graph-sync wording above — the record change succeeded in every one of these
|
|
355
|
-
cases, so never imply the save was lost. Push reported failure: "Your change was saved, but it
|
|
356
|
-
couldn't be published to delivery estimates yet — it can be retried shortly." Covering setup
|
|
357
|
-
DISABLED: "Your change was saved. Delivery estimates are currently turned off for this
|
|
358
|
-
location/group, so it won't appear in an estimate until they're turned back on." NO covering
|
|
359
|
-
setup: the canonical line plus "no delivery estimate is set up for this location/group yet."
|
|
360
|
-
In all three, keep the plain-language rule — no raw error text, codes, Ids, or field names.
|
|
361
|
-
Keep the closing + recap under ~200 characters of VISIBLE text where possible (soft target — the
|
|
362
|
-
link URL doesn't count; prioritize the recap content over strict truncation). Never say "CDS",
|
|
363
|
-
"Commerce Delivery Service", or otherwise imply two separate systems — this is one seamless
|
|
364
|
-
save. Still don't surface sObject/field API names, Ids, the Connect path, or raw HTTP codes.
|
|
365
|
-
Never echo this guidance's own internal vocabulary either: "Core", "SOR" and "corpus" are
|
|
366
|
-
reasoning terms for you ("Core" separates the platform's own records from the delivery service's
|
|
367
|
-
retained copy; "SOR" and "corpus" name this workflow and the catalog it lives in). Say
|
|
368
|
-
"Salesforce" or "your org" for the platform side, and "this workflow" for the recipe itself.
|
|
369
|
-
|
|
370
|
-
## Verification Checklist
|
|
371
|
-
|
|
372
|
-
After every write operation, confirm the effect by re-reading state:
|
|
373
|
-
|
|
374
|
-
- After `create-shipping-carrier-method`, `update-shipping-carrier-method`: call `verify-shipping-carrier-method`
|
|
375
|
-
- After `check-existing-assignment`, `create-assignment`, `update-assignment`: call `verify-assignment`
|
|
376
|
-
|
|
377
|
-
## Operations Reference
|
|
378
|
-
|
|
379
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
380
|
-
|
|
381
|
-
### Summary
|
|
382
|
-
|
|
383
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
384
|
-
|-----------|---------|--------|------|------------|
|
|
385
|
-
| `resolve-shipping-carrier` | read | implemented | `querySoql` | — |
|
|
386
|
-
| `create-shipping-carrier-method` | write | implemented | `createShippingCarrierMethod` | `resolve-shipping-carrier` |
|
|
387
|
-
| `resolve-shipping-carrier-method` | read | implemented | `querySoql` | — |
|
|
388
|
-
| `update-shipping-carrier-method` | write | implemented | `updateShippingCarrierMethod` | `resolve-shipping-carrier-method` |
|
|
389
|
-
| `verify-shipping-carrier-method` | verify | implemented | `querySoql` | `create-shipping-carrier-method`, `update-shipping-carrier-method` |
|
|
390
|
-
| `resolve-location` | read | implemented | `querySoql` | — |
|
|
391
|
-
| `resolve-location-group` | read | implemented | `querySoql` | — |
|
|
392
|
-
| `check-existing-assignment` | read | implemented | `querySoql` | — |
|
|
393
|
-
| `create-assignment` | write | implemented | `createLocationShippingCarrierMethod` | `check-existing-assignment` |
|
|
394
|
-
| `update-assignment` | write | implemented | `updateLocationShippingCarrierMethod` | `check-existing-assignment` |
|
|
395
|
-
| `verify-assignment` | verify | implemented | `querySoql` | `check-existing-assignment`, `create-assignment`, `update-assignment` |
|
|
396
|
-
| `sync-location-graph` | write | — | → `cc-om-fast-and-furious/sync-location-graph` | `verify-shipping-carrier-method`, `verify-assignment` |
|
|
397
|
-
| `resolve-estimation-setup-for-location` | read | implemented | `querySoql` | `resolve-location` |
|
|
398
|
-
| `resolve-estimation-setup-for-group` | read | implemented | `querySoql` | `resolve-location-group` |
|
|
399
|
-
| `push-delivery-estimation` | write | — | → `cc-om-fast-and-furious/enable-and-push-delivery-estimation-setup` | `sync-location-graph`, `resolve-estimation-setup-for-location`, `resolve-estimation-setup-for-group` |
|
|
400
|
-
|
|
401
|
-
### Dependency graph
|
|
402
|
-
|
|
403
|
-
```mermaid
|
|
404
|
-
graph TD
|
|
405
|
-
resolve_shipping_carrier["resolve-shipping-carrier (read)"]
|
|
406
|
-
create_shipping_carrier_method["create-shipping-carrier-method (write)"]
|
|
407
|
-
resolve_shipping_carrier_method["resolve-shipping-carrier-method (read)"]
|
|
408
|
-
update_shipping_carrier_method["update-shipping-carrier-method (write)"]
|
|
409
|
-
verify_shipping_carrier_method["verify-shipping-carrier-method (verify)"]
|
|
410
|
-
resolve_location["resolve-location (read)"]
|
|
411
|
-
resolve_location_group["resolve-location-group (read)"]
|
|
412
|
-
check_existing_assignment["check-existing-assignment (read)"]
|
|
413
|
-
create_assignment["create-assignment (write)"]
|
|
414
|
-
update_assignment["update-assignment (write)"]
|
|
415
|
-
verify_assignment["verify-assignment (verify)"]
|
|
416
|
-
sync_location_graph["sync-location-graph (write)"]
|
|
417
|
-
resolve_estimation_setup_for_location["resolve-estimation-setup-for-location (read)"]
|
|
418
|
-
resolve_estimation_setup_for_group["resolve-estimation-setup-for-group (read)"]
|
|
419
|
-
push_delivery_estimation["push-delivery-estimation (write)"]
|
|
420
|
-
resolve_shipping_carrier --> create_shipping_carrier_method
|
|
421
|
-
resolve_shipping_carrier_method --> update_shipping_carrier_method
|
|
422
|
-
create_shipping_carrier_method --> verify_shipping_carrier_method
|
|
423
|
-
update_shipping_carrier_method --> verify_shipping_carrier_method
|
|
424
|
-
check_existing_assignment --> create_assignment
|
|
425
|
-
check_existing_assignment --> update_assignment
|
|
426
|
-
check_existing_assignment --> verify_assignment
|
|
427
|
-
create_assignment --> verify_assignment
|
|
428
|
-
update_assignment --> verify_assignment
|
|
429
|
-
verify_shipping_carrier_method --> sync_location_graph
|
|
430
|
-
verify_assignment --> sync_location_graph
|
|
431
|
-
resolve_location --> resolve_estimation_setup_for_location
|
|
432
|
-
resolve_location_group --> resolve_estimation_setup_for_group
|
|
433
|
-
sync_location_graph --> push_delivery_estimation
|
|
434
|
-
resolve_estimation_setup_for_location --> push_delivery_estimation
|
|
435
|
-
resolve_estimation_setup_for_group --> push_delivery_estimation
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
### Read operations
|
|
439
|
-
|
|
440
|
-
#### `resolve-shipping-carrier`
|
|
441
|
-
|
|
442
|
-
Resolve the ShippingCarrier the new method will belong to, by Id or
|
|
443
|
-
ExternalReference. Runs only when creating a new method — an existing method
|
|
444
|
-
already has its carrier set.
|
|
445
|
-
|
|
446
|
-
**Call:** `querySoql` — status: `implemented`
|
|
447
|
-
|
|
448
|
-
**Inputs:**
|
|
449
|
-
|
|
450
|
-
- `carrierIdOrExternalReference` *(`String`)* — The ShippingCarrier's Id (2A2...) or ExternalReference. Source: user_input.
|
|
451
|
-
|
|
452
|
-
#### `resolve-shipping-carrier-method`
|
|
453
|
-
|
|
454
|
-
Resolve an existing ShippingCarrierMethod by Id and capture its current field
|
|
455
|
-
values as a baseline for a partial-merge PATCH and for rollback.
|
|
456
|
-
|
|
457
|
-
**Call:** `querySoql` — status: `implemented`
|
|
458
|
-
|
|
459
|
-
**Inputs:**
|
|
460
|
-
|
|
461
|
-
- `methodId` *(`String`)* — ShippingCarrierMethod Id (2A1...). Source: user_input.
|
|
462
|
-
|
|
463
|
-
#### `resolve-location`
|
|
464
|
-
|
|
465
|
-
Resolve the target Location by Id, ExternalReference, or Name.
|
|
466
|
-
|
|
467
|
-
**Call:** `querySoql` — status: `implemented`
|
|
468
|
-
|
|
469
|
-
**Inputs:**
|
|
470
|
-
|
|
471
|
-
- `locationIdOrRef` *(`String`)* — Location Id (131...), ExternalReference, or Name. Source: user_input.
|
|
472
|
-
|
|
473
|
-
#### `resolve-location-group`
|
|
474
|
-
|
|
475
|
-
Resolve the target LocationGroup by Id or LocationGroupName.
|
|
476
|
-
|
|
477
|
-
**Call:** `querySoql` — status: `implemented`
|
|
478
|
-
|
|
479
|
-
**Inputs:**
|
|
480
|
-
|
|
481
|
-
- `groupIdOrName` *(`String`)* — LocationGroup Id (0gh...) or LocationGroupName. Source: user_input.
|
|
482
|
-
|
|
483
|
-
#### `check-existing-assignment`
|
|
484
|
-
|
|
485
|
-
Check whether this Location/LocationGroup already has an assignment row for this
|
|
486
|
-
ShippingCarrierMethod. LocationShippingCarrierMethod has a DB-enforced unique
|
|
487
|
-
index on (LocationSourceId, ShippingCarrierMethodId) — a location/group can have at
|
|
488
|
-
most one assignment per method — so this determines whether the next step must
|
|
489
|
-
be a create or an update (a duplicate POST hard-fails at the platform level, not
|
|
490
|
-
merely creates redundant data).
|
|
491
|
-
|
|
492
|
-
**Call:** `querySoql` — status: `implemented`
|
|
493
|
-
|
|
494
|
-
**Inputs:**
|
|
495
|
-
|
|
496
|
-
- `locationSourceId` *(`String`)* — The Location or LocationGroup Id. Source: resolve-location.location_source_ids when
|
|
497
|
-
assign_to=location, or resolve-location-group.location_source_id (ID SHORTCUT path) or
|
|
498
|
-
.location_source_ids (query path) when assign_to=group — in every array case, at the
|
|
499
|
-
index the admin picked when the lookup matched more than one.
|
|
500
|
-
- `methodId` *(`String`)* — The ShippingCarrierMethod Id. Source: create-shipping-carrier-method.method_id
|
|
501
|
-
when method_action=create, or resolve-shipping-carrier-method.method_id when
|
|
502
|
-
method_action=existing.
|
|
503
|
-
|
|
504
|
-
#### `resolve-estimation-setup-for-location`
|
|
505
|
-
|
|
506
|
-
LOCATION path only. Find the DeliveryEstimationSetup(s) covering the target Location, so
|
|
507
|
-
push-delivery-estimation knows which configuration to push. A Location reaches a setup
|
|
508
|
-
indirectly: setup -> LocationGroup -> LocationGroupAssignment -> Location.
|
|
509
|
-
|
|
510
|
-
**Call:** `querySoql` — status: `implemented`
|
|
511
|
-
|
|
512
|
-
**Inputs:**
|
|
513
|
-
|
|
514
|
-
- `locationId` *(`String`)* — Source: resolve-location.matched[0].Id (the Location Id chosen by the admin when the lookup
|
|
515
|
-
matched more than one). The 131-prefixed Location Id, never an ExternalReference or Name.
|
|
516
|
-
|
|
517
|
-
**Depends on:** `resolve-location`
|
|
518
|
-
|
|
519
|
-
#### `resolve-estimation-setup-for-group`
|
|
520
|
-
|
|
521
|
-
GROUP path only. Find the DeliveryEstimationSetup(s) whose LocationGroup is the target group,
|
|
522
|
-
so push-delivery-estimation knows which configuration to push.
|
|
523
|
-
|
|
524
|
-
**Call:** `querySoql` — status: `implemented`
|
|
525
|
-
|
|
526
|
-
**Inputs:**
|
|
527
|
-
|
|
528
|
-
- `locationGroupId` *(`String`)* — Source: resolve-location-group.matched[0].Id (the LocationGroup Id chosen by the admin when
|
|
529
|
-
the lookup matched more than one). The 0gh-prefixed LocationGroup Id, never a name.
|
|
530
|
-
|
|
531
|
-
**Depends on:** `resolve-location-group`
|
|
532
|
-
|
|
533
|
-
### Write operations
|
|
534
|
-
|
|
535
|
-
#### `create-shipping-carrier-method`
|
|
536
|
-
|
|
537
|
-
Create the new ShippingCarrierMethod. Name, MaxTransitTime, and TransitTimeUnit
|
|
538
|
-
are platform-required; MinTransitTime is platform-optional but REQUIRED by this
|
|
539
|
-
skill (every method must carry a real transit-time range, not just a max).
|
|
540
|
-
ProcessingTime and ProcessingTimeUnit remain optional, treated as both-or-neither
|
|
541
|
-
by this skill (the platform itself does not enforce that pairing).
|
|
542
|
-
|
|
543
|
-
**Call:** `createShippingCarrierMethod` — status: `implemented`
|
|
544
|
-
|
|
545
|
-
**Inputs:**
|
|
546
|
-
|
|
547
|
-
- `shippingCarrierId` *(`String`)* — ShippingCarrier Id. Source: resolve-shipping-carrier.carrier_id (ID SHORTCUT path — the
|
|
548
|
-
input was already Id-shaped) or .carrier_ids at the chosen index (query path — the one the
|
|
549
|
-
admin picked when the lookup matched more than one).
|
|
550
|
-
- `name` *(`String`)* — Display name for this method (Name, distinct from externalReference — the
|
|
551
|
-
platform requires Name on every ShippingCarrierMethod insert; live-confirmed,
|
|
552
|
-
not documented in the cached field reference). If the admin has no preference,
|
|
553
|
-
default to the same value as externalReference. Source: user_input.
|
|
554
|
-
- `externalReference` *(`String`)* — A unique identifier for this method (unique together with shippingCarrierId —
|
|
555
|
-
a duplicate pair is rejected by the platform's own unique index, not merely
|
|
556
|
-
discouraged). Source: user_input.
|
|
557
|
-
- `minTransitTime` *(`Integer`)* — Minimum transit time (whole number of transitTimeUnit units). REQUIRED by this
|
|
558
|
-
skill — the platform itself treats MinTransitTime as optional, but this skill
|
|
559
|
-
always collects it alongside maxTransitTime so every method carries a real
|
|
560
|
-
transit-time range, not just an upper bound. Source: user_input.
|
|
561
|
-
- `maxTransitTime` *(`Integer`)* — Maximum transit time (whole number of transitTimeUnit units). REQUIRED by the
|
|
562
|
-
platform. Source: user_input.
|
|
563
|
-
- `transitTimeUnit` *(`String`)* — Unit for minTransitTime/maxTransitTime. REQUIRED by the platform. One of Hours,
|
|
564
|
-
Days, Weeks (Days is the platform default when a unit must be assumed, but this
|
|
565
|
-
field itself cannot be omitted here). Source: user_input.
|
|
566
|
-
- `processingTime` *(`Integer`)* — Optional processing time (whole number of processingTimeUnit units) — time the
|
|
567
|
-
carrier needs before transit starts. This is the METHOD-level processing time
|
|
568
|
-
(ShippingCarrierMethod.ProcessingTime), shared by every location this method
|
|
569
|
-
ends up assigned to — NOT Location's or DeliveryEstimationSetup's own
|
|
570
|
-
processing-time default (see SCOPE LEVELS in the top-level
|
|
571
|
-
agent_description if the admin's ask doesn't clearly name a carrier/method). Must
|
|
572
|
-
be given together with processingTimeUnit (both-or-neither); omit both if not
|
|
573
|
-
needed. Source: user_input.
|
|
574
|
-
- `processingTimeUnit` *(`String`)* — Unit for processingTime — Hours, Days, or Weeks. Required WHENEVER
|
|
575
|
-
processingTime is given (both-or-neither); omit both if not needed. Source:
|
|
576
|
-
user_input.
|
|
577
|
-
|
|
578
|
-
**Depends on:** `resolve-shipping-carrier`
|
|
579
|
-
|
|
580
|
-
#### `update-shipping-carrier-method`
|
|
581
|
-
|
|
582
|
-
PATCH the fields the admin wants changed on an existing ShippingCarrierMethod.
|
|
583
|
-
Partial merge — include only the fields being changed, with one exception:
|
|
584
|
-
MinTransitTime must be explicitly settled on every update (show the current
|
|
585
|
-
value, keep or change it) rather than silently skipped, and must be supplied
|
|
586
|
-
outright when the stored value is null. MaxTransitTime, TransitTimeUnit, and
|
|
587
|
-
(per this skill's own rule) MinTransitTime must never be nulled; ProcessingTime
|
|
588
|
-
and ProcessingTimeUnit may still be explicitly nulled to clear
|
|
589
|
-
(both-or-neither).
|
|
590
|
-
|
|
591
|
-
**Call:** `updateShippingCarrierMethod` — status: `implemented`
|
|
592
|
-
|
|
593
|
-
**Inputs:**
|
|
594
|
-
|
|
595
|
-
- `methodId` *(`String`)* — Source: resolve-shipping-carrier-method.method_id.
|
|
596
|
-
- `name` *(`String`)* — New display name (Name). Optional — omit to leave unchanged; Name itself is
|
|
597
|
-
platform-required so it can never be nulled. Source: user_input.
|
|
598
|
-
- `externalReference` *(`String`)* — New ExternalReference. Optional — omit to leave unchanged. Must stay unique
|
|
599
|
-
together with the method's ShippingCarrierId. Source: user_input.
|
|
600
|
-
- `minTransitTime` *(`Integer`)* — New minimum transit time. Not optional in the "may be left unspoken" sense —
|
|
601
|
-
it must be SETTLED on every update, but settled is not the same as retyped:
|
|
602
|
-
show the admin the current value from
|
|
603
|
-
resolve-shipping-carrier-method's method_before[MinTransitTime] and let them keep
|
|
604
|
-
it or replace it. Keeping it means OMITTING this input, which preserves the
|
|
605
|
-
stored value under partial merge; changing it means supplying the new number
|
|
606
|
-
(see SETTLE THE MINIMUM in this step's agent_guidance). When
|
|
607
|
-
method_before.MinTransitTime is null there is nothing to keep, so a value is
|
|
608
|
-
mandatory here even if the admin never mentioned transit time (see BASELINE
|
|
609
|
-
MINIMUM). Never send null for this field. The platform itself treats
|
|
610
|
-
MinTransitTime as nillable; this skill enforces it as always-set because every
|
|
611
|
-
method it manages must carry both a min and a max transit time, and because a
|
|
612
|
-
null minimum breaks the downstream delivery-estimation push. Source:
|
|
613
|
-
user_input.
|
|
614
|
-
- `maxTransitTime` *(`Integer`)* — New maximum transit time. Optional to CHANGE (omit to leave unchanged) but
|
|
615
|
-
platform-required overall — never send null for this field. Source:
|
|
616
|
-
user_input.
|
|
617
|
-
- `transitTimeUnit` *(`String`)* — New transit time unit. Optional to CHANGE (omit to leave unchanged) but
|
|
618
|
-
platform-required overall — never send null for this field. Source:
|
|
619
|
-
user_input.
|
|
620
|
-
- `processingTime` *(`Integer`)* — New processing time. This is the METHOD-level processing time
|
|
621
|
-
(ShippingCarrierMethod.ProcessingTime), shared by every location this method
|
|
622
|
-
ends up assigned to — NOT Location's or DeliveryEstimationSetup's own
|
|
623
|
-
processing-time default (see SCOPE LEVELS in the top-level
|
|
624
|
-
agent_description if the admin's ask doesn't clearly name a carrier/method).
|
|
625
|
-
Optional — omit to leave unchanged; send explicit JSON null (together with
|
|
626
|
-
processingTimeUnit null) to clear the override entirely. Source: user_input.
|
|
627
|
-
- `processingTimeUnit` *(`String`)* — New processing time unit. Optional — omit to leave unchanged; send explicit
|
|
628
|
-
JSON null (together with processingTime null) to clear. Source: user_input.
|
|
629
|
-
|
|
630
|
-
**Depends on:** `resolve-shipping-carrier-method`
|
|
631
|
-
|
|
632
|
-
**Rollback:** {'operation': 'updateShippingCarrierMethod', 'invocation': {'kind': 'rest', 'method': 'PATCH', 'path': '/services/data/v68.0/sobjects/ShippingCarrierMethod/{methodId}', 'body': {'Name': '{resolve-shipping-carrier-method.method_before[Name]}', 'ExternalReference': '{resolve-shipping-carrier-method.method_before[ExternalReference]}', 'MinTransitTime': '{resolve-shipping-carrier-method.method_before[MinTransitTime]}', 'MaxTransitTime': '{resolve-shipping-carrier-method.method_before[MaxTransitTime]}', 'TransitTimeUnit': '{resolve-shipping-carrier-method.method_before[TransitTimeUnit]}', 'ProcessingTime': '{resolve-shipping-carrier-method.method_before[ProcessingTime]}', 'ProcessingTimeUnit': '{resolve-shipping-carrier-method.method_before[ProcessingTimeUnit]}'}}}
|
|
633
|
-
|
|
634
|
-
#### `create-assignment`
|
|
635
|
-
|
|
636
|
-
Create the LocationShippingCarrierMethod assignment row. Run ONLY when
|
|
637
|
-
check-existing-assignment found no existing row (match_count == 0) — never run
|
|
638
|
-
both create-assignment and update-assignment in the same execution. PickupTime
|
|
639
|
-
and the ASSIGNMENT-level ProcessingTime/ProcessingTimeUnit override (see SCOPE
|
|
640
|
-
LEVELS in the top-level agent_description) are both optional and independent.
|
|
641
|
-
|
|
642
|
-
**Call:** `createLocationShippingCarrierMethod` — status: `implemented`
|
|
643
|
-
|
|
644
|
-
**Inputs:**
|
|
645
|
-
|
|
646
|
-
- `locationSourceId` *(`String`)* — Source: check-existing-assignment.locationSourceId (the resolved Location/LocationGroup Id).
|
|
647
|
-
- `methodId` *(`String`)* — Source: check-existing-assignment.methodId (the resolved ShippingCarrierMethod Id).
|
|
648
|
-
- `pickupTime` *(`String`)* — Pickup time for THIS location/group + THIS method
|
|
649
|
-
(LocationShippingCarrierMethod.PickupTime) — NOT the location's own default
|
|
650
|
-
pickup time, and NOT the delivery estimation setup's default (see SCOPE
|
|
651
|
-
LEVELS in the top-level agent_description if the admin's ask doesn't clearly
|
|
652
|
-
name a carrier/method). e.g. "14:30:00.000Z" (Salesforce Time wire format).
|
|
653
|
-
Optional — omit if the admin doesn't want to set one. Source: user_input.
|
|
654
|
-
- `processingTime` *(`Integer`)* — ASSIGNMENT-level processing-time override for THIS location/group + THIS
|
|
655
|
-
method (LocationShippingCarrierMethod.ProcessingTime) — more specific than
|
|
656
|
-
ShippingCarrierMethod's own method-level ProcessingTime (see SCOPE LEVELS in
|
|
657
|
-
the top-level agent_description). Only set this when the admin's ask is
|
|
658
|
-
scoped to this one location/group assignment, not the method as a whole.
|
|
659
|
-
Both-or-neither with processingTimeUnit; omit both if the admin doesn't want
|
|
660
|
-
an assignment-level override. Source: user_input.
|
|
661
|
-
- `processingTimeUnit` *(`String`)* — Unit for the ASSIGNMENT-level processingTime override — Hours, Days, or
|
|
662
|
-
Weeks. Required WHENEVER processingTime is given (both-or-neither); omit both
|
|
663
|
-
if not needed. Source: user_input.
|
|
664
|
-
|
|
665
|
-
**Depends on:** `check-existing-assignment`
|
|
666
|
-
|
|
667
|
-
#### `update-assignment`
|
|
668
|
-
|
|
669
|
-
Update the existing LocationShippingCarrierMethod assignment row's PickupTime
|
|
670
|
-
and/or its ASSIGNMENT-level ProcessingTime/ProcessingTimeUnit override. Partial
|
|
671
|
-
merge — include only the fields being changed. Run ONLY when
|
|
672
|
-
check-existing-assignment found an existing row (match_count > 0) — never run
|
|
673
|
-
both create-assignment and update-assignment in the same execution.
|
|
674
|
-
|
|
675
|
-
**Call:** `updateLocationShippingCarrierMethod` — status: `implemented`
|
|
676
|
-
|
|
677
|
-
**Inputs:**
|
|
678
|
-
|
|
679
|
-
- `assignmentId` *(`String`)* — Source: check-existing-assignment.existing_assignment_id.
|
|
680
|
-
- `pickupTime` *(`String`)* — New pickup time for THIS assignment row (LocationShippingCarrierMethod.
|
|
681
|
-
PickupTime) — NOT the location's own default pickup time, and NOT the delivery
|
|
682
|
-
estimation setup's default (see SCOPE LEVELS in the top-level
|
|
683
|
-
agent_description if the admin's ask doesn't clearly name a carrier/method). e.g.
|
|
684
|
-
"14:30:00.000Z" (Salesforce Time wire format). Optional — omit to leave
|
|
685
|
-
unchanged; send explicit JSON null to clear an existing pickup time.
|
|
686
|
-
Source: user_input.
|
|
687
|
-
- `processingTime` *(`Integer`)* — New ASSIGNMENT-level processing-time override for THIS assignment row
|
|
688
|
-
(LocationShippingCarrierMethod.ProcessingTime) — more specific than
|
|
689
|
-
ShippingCarrierMethod's own method-level ProcessingTime (see SCOPE LEVELS in
|
|
690
|
-
the top-level agent_description). Optional — omit to leave unchanged; send
|
|
691
|
-
explicit JSON null (together with processingTimeUnit null) to clear the
|
|
692
|
-
override entirely. Source: user_input.
|
|
693
|
-
- `processingTimeUnit` *(`String`)* — New unit for the ASSIGNMENT-level processingTime override. Optional — omit to
|
|
694
|
-
leave unchanged; send explicit JSON null (together with processingTime null)
|
|
695
|
-
to clear. Source: user_input.
|
|
696
|
-
|
|
697
|
-
**Depends on:** `check-existing-assignment`
|
|
698
|
-
|
|
699
|
-
**Rollback:** {'operation': 'updateLocationShippingCarrierMethod', 'invocation': {'kind': 'rest', 'method': 'PATCH', 'path': '/services/data/v68.0/sobjects/LocationShippingCarrierMethod/{assignmentId}', 'body': {'PickupTime': '{check-existing-assignment.assignment_before[PickupTime]}', 'ProcessingTime': '{check-existing-assignment.assignment_before[ProcessingTime]}', 'ProcessingTimeUnit': '{check-existing-assignment.assignment_before[ProcessingTimeUnit]}'}}}
|
|
700
|
-
|
|
701
|
-
#### `sync-location-graph`
|
|
702
|
-
|
|
703
|
-
Publish the location graph, which carries LOCATION-level data (pickup eligibility, business
|
|
704
|
-
hours, addresses) to the downstream services. It does NOT carry the ShippingCarrierMethod /
|
|
705
|
-
LocationShippingCarrierMethod fields this SOR writes into delivery estimates — that is
|
|
706
|
-
push-delivery-estimation's job, two steps later. Runs automatically, unconditionally, after
|
|
707
|
-
both verify steps succeed — never gated on a customer choice.
|
|
708
|
-
|
|
709
|
-
**Delegates to:** `cc-om-fast-and-furious/sync-location-graph`
|
|
710
|
-
|
|
711
|
-
**Depends on:** `verify-shipping-carrier-method`, `verify-assignment`
|
|
712
|
-
|
|
713
|
-
#### `push-delivery-estimation`
|
|
714
|
-
|
|
715
|
-
Push the covering delivery estimation configuration so the transit / processing / pickup times
|
|
716
|
-
this SOR just wrote actually reach delivery estimates. This — not sync-location-graph — is the
|
|
717
|
-
step that makes the change visible to an estimate. Runs automatically after the graph sync,
|
|
718
|
-
for each ENABLED covering setup.
|
|
719
|
-
|
|
720
|
-
**Delegates to:** `cc-om-fast-and-furious/enable-and-push-delivery-estimation-setup`
|
|
721
|
-
|
|
722
|
-
**Depends on:** `sync-location-graph`, `resolve-estimation-setup-for-location`, `resolve-estimation-setup-for-group`
|
|
723
|
-
|
|
724
|
-
### Verify operations
|
|
725
|
-
|
|
726
|
-
#### `verify-shipping-carrier-method`
|
|
727
|
-
|
|
728
|
-
Re-read the ShippingCarrierMethod and confirm its transit/processing time
|
|
729
|
-
fields reflect what was requested — whether it was just created or just
|
|
730
|
-
updated (or left unchanged). Always runs, regardless of method_action.
|
|
731
|
-
|
|
732
|
-
**Call:** `querySoql` — status: `implemented`
|
|
733
|
-
|
|
734
|
-
**Inputs:**
|
|
735
|
-
|
|
736
|
-
- `methodId` *(`String`)* — Source: create-shipping-carrier-method.method_id when method_action=create,
|
|
737
|
-
or resolve-shipping-carrier-method.method_id when method_action=existing.
|
|
738
|
-
|
|
739
|
-
**Depends on:** `create-shipping-carrier-method`, `update-shipping-carrier-method`
|
|
740
|
-
|
|
741
|
-
#### `verify-assignment`
|
|
742
|
-
|
|
743
|
-
Re-read the assignment row and confirm it links the intended
|
|
744
|
-
Location/LocationGroup to the intended ShippingCarrierMethod with the requested
|
|
745
|
-
pickup time and/or assignment-level processing-time override.
|
|
746
|
-
|
|
747
|
-
**Call:** `querySoql` — status: `implemented`
|
|
748
|
-
|
|
749
|
-
**Inputs:**
|
|
750
|
-
|
|
751
|
-
- `assignmentId` *(`String`)* — Source: create-assignment.assignment_id when a new row was created, or
|
|
752
|
-
check-existing-assignment.existing_assignment_id /
|
|
753
|
-
update-assignment.assignmentId when an existing row was updated.
|
|
754
|
-
|
|
755
|
-
**Depends on:** `check-existing-assignment`, `create-assignment`, `update-assignment`
|