@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.
Files changed (349) hide show
  1. package/package.json +1 -1
  2. package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +2 -23
  3. package/skills/field-service-data-capture-form-designer-configure/SKILL.md +3 -13
  4. package/skills/field-service-mobile-branding-configure/SKILL.md +3 -17
  5. package/skills/field-service-objective-designer-configure/SKILL.md +379 -72
  6. package/skills/field-service-prework-brief-deployer-configure/SKILL.md +537 -10
  7. package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1093 -65
  8. package/skills/field-service-sobject-create-configure/SKILL.md +213 -13
  9. package/skills/field-service-voice-to-form-configure/SKILL.md +11 -40
  10. package/skills/field-service-work-rule-designer-configure/SKILL.md +95 -121
  11. package/skills/agentforce-gpt-email-generation-configure/SKILL.md +0 -312
  12. package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +0 -64
  13. package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +0 -46
  14. package/skills/automation-company-profile-info-query/SKILL.md +0 -51
  15. package/skills/automation-digital-wallet-configure/SKILL.md +0 -689
  16. package/skills/automation-flow-coordinate/SKILL.md +0 -95
  17. package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +0 -1569
  18. package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +0 -96
  19. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +0 -23
  20. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +0 -31
  21. package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +0 -179
  22. package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +0 -13
  23. package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +0 -83
  24. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +0 -69
  25. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +0 -274
  26. package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +0 -192
  27. package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +0 -130
  28. package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +0 -92
  29. package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +0 -88
  30. package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +0 -152
  31. package/skills/automation-flow-coordinate/references/elements/start/start.md +0 -539
  32. package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +0 -152
  33. package/skills/automation-flow-coordinate/references/elements/wait/wait.md +0 -497
  34. package/skills/automation-flow-coordinate/references/recipes/author/author.md +0 -868
  35. package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +0 -300
  36. package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +0 -292
  37. package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +0 -323
  38. package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +0 -109
  39. package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +0 -219
  40. package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +0 -180
  41. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +0 -175
  42. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +0 -255
  43. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +0 -212
  44. package/skills/automation-flow-coordinate/references/resources/variable/variable.md +0 -171
  45. package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +0 -786
  46. package/skills/automation-flow-coordinate/references/shared/end/end.md +0 -267
  47. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +0 -69
  48. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +0 -80
  49. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +0 -116
  50. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +0 -321
  51. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +0 -320
  52. package/skills/automation-flow-coordinate/references/shared/server-functions.md +0 -597
  53. package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +0 -69
  54. package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +0 -78
  55. package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +0 -373
  56. package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +0 -273
  57. package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +0 -259
  58. package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +0 -369
  59. package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +0 -542
  60. package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  61. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +0 -349
  62. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +0 -505
  63. package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +0 -380
  64. package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +0 -567
  65. package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  66. package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +0 -360
  67. package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +0 -539
  68. package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +0 -358
  69. package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +0 -602
  70. package/skills/commerce-b2b-store-configure/SKILL.md +0 -251
  71. package/skills/commerce-credit-memo-create/SKILL.md +0 -139
  72. package/skills/commerce-delivery-business-hours-configure/SKILL.md +0 -277
  73. package/skills/commerce-delivery-estimation-apply/SKILL.md +0 -155
  74. package/skills/commerce-delivery-estimation-configure/SKILL.md +0 -377
  75. package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +0 -174
  76. package/skills/commerce-estimate-bopis-query/SKILL.md +0 -279
  77. package/skills/commerce-estimate-delivery-date-query/SKILL.md +0 -349
  78. package/skills/commerce-fees-apply/SKILL.md +0 -227
  79. package/skills/commerce-fulfillment-routing-analyze/SKILL.md +0 -200
  80. package/skills/commerce-guest-buyer-create/SKILL.md +0 -173
  81. package/skills/commerce-location-bopis-configure/SKILL.md +0 -378
  82. package/skills/commerce-location-business-hours-configure/SKILL.md +0 -235
  83. package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +0 -309
  84. package/skills/commerce-location-graph-integrate/SKILL.md +0 -131
  85. package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +0 -755
  86. package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +0 -331
  87. package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +0 -579
  88. package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +0 -626
  89. package/skills/commerce-merchant-catalog-configure/SKILL.md +0 -614
  90. package/skills/commerce-merchant-extension-provider-configure/SKILL.md +0 -368
  91. package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +0 -118
  92. package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +0 -65
  93. package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +0 -90
  94. package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +0 -72
  95. package/skills/commerce-merchant-insights-query/SKILL.md +0 -279
  96. package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +0 -656
  97. package/skills/commerce-order-summary-change-apply/SKILL.md +0 -375
  98. package/skills/commerce-product-details-get/SKILL.md +0 -363
  99. package/skills/commerce-product-search/SKILL.md +0 -563
  100. package/skills/commerce-react-storefront-create/SKILL.md +0 -350
  101. package/skills/commerce-return-order-summary-create/SKILL.md +0 -513
  102. package/skills/commerce-search-relevance-analyze/SKILL.md +0 -757
  103. package/skills/commerce-temporary-processing-time-override-create/SKILL.md +0 -274
  104. package/skills/communications-initial-setup-configure/SKILL.md +0 -630
  105. package/skills/communications-multisite-configure/SKILL.md +0 -571
  106. package/skills/communications-revenue-cloud-settings-configure/SKILL.md +0 -74
  107. package/skills/communications-smb-fiber-catalog-create/SKILL.md +0 -413
  108. package/skills/communications-tmf-integrate/SKILL.md +0 -1368
  109. package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +0 -448
  110. package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +0 -269
  111. package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +0 -271
  112. package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +0 -382
  113. package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +0 -373
  114. package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +0 -389
  115. package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +0 -338
  116. package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +0 -547
  117. package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +0 -346
  118. package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +0 -1110
  119. package/skills/crm-analytics-adoption-insights-configure/SKILL.md +0 -224
  120. package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +0 -418
  121. package/skills/crm-analytics-dashboards-configure/SKILL.md +0 -731
  122. package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +0 -233
  123. package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +0 -184
  124. package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +0 -167
  125. package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +0 -55
  126. package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +0 -1350
  127. package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +0 -1862
  128. package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +0 -83
  129. package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +0 -81
  130. package/skills/data360-activation-create/SKILL.md +0 -104
  131. package/skills/data360-activation-external-platform-get/SKILL.md +0 -49
  132. package/skills/data360-activation-target-create/SKILL.md +0 -93
  133. package/skills/data360-activation-v2-create/SKILL.md +0 -456
  134. package/skills/data360-audience-dmo-get/SKILL.md +0 -38
  135. package/skills/data360-calculated-affinity-create/SKILL.md +0 -82
  136. package/skills/data360-calculated-insight-create/SKILL.md +0 -148
  137. package/skills/data360-catalog-metadata-create/SKILL.md +0 -183
  138. package/skills/data360-code-extension-create/SKILL.md +0 -115
  139. package/skills/data360-communication-capping-create/SKILL.md +0 -227
  140. package/skills/data360-connection-create/SKILL.md +0 -491
  141. package/skills/data360-content-lens-create/SKILL.md +0 -181
  142. package/skills/data360-data-action-create/SKILL.md +0 -126
  143. package/skills/data360-data-action-target-create/SKILL.md +0 -181
  144. package/skills/data360-data-clean-room-create/SKILL.md +0 -238
  145. package/skills/data360-data-governance-create/SKILL.md +0 -746
  146. package/skills/data360-data-graph-create/SKILL.md +0 -82
  147. package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +0 -38
  148. package/skills/data360-data-lake-object-create/SKILL.md +0 -207
  149. package/skills/data360-data-model-object-catalog-get/SKILL.md +0 -49
  150. package/skills/data360-data-model-object-create/SKILL.md +0 -128
  151. package/skills/data360-data-model-object-mapping-create/SKILL.md +0 -106
  152. package/skills/data360-data-space-create/SKILL.md +0 -161
  153. package/skills/data360-data-streams-create/SKILL.md +0 -324
  154. package/skills/data360-engagement-signal-get/SKILL.md +0 -38
  155. package/skills/data360-experiment-create/SKILL.md +0 -82
  156. package/skills/data360-goal-based-campaign-create/SKILL.md +0 -192
  157. package/skills/data360-harmonization-process-history-get/SKILL.md +0 -38
  158. package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +0 -84
  159. package/skills/data360-identity-resolution-create/SKILL.md +0 -115
  160. package/skills/data360-intelligent-document-processing-create/SKILL.md +0 -148
  161. package/skills/data360-knowledge-graph-construction-create/SKILL.md +0 -93
  162. package/skills/data360-knowledge-graph-create/SKILL.md +0 -216
  163. package/skills/data360-knowledge-space-mcp-configure/SKILL.md +0 -475
  164. package/skills/data360-machine-learning-mcp-configure/SKILL.md +0 -697
  165. package/skills/data360-multi-org-mcp-configure/SKILL.md +0 -117
  166. package/skills/data360-secondary-index-mcp-configure/SKILL.md +0 -126
  167. package/skills/data360-segment-mcp-configure/SKILL.md +0 -159
  168. package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +0 -93
  169. package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +0 -93
  170. package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +0 -93
  171. package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +0 -38
  172. package/skills/data360-semantic-engine-mcp-configure/SKILL.md +0 -62
  173. package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +0 -38
  174. package/skills/data360-semantic-metric-mcp-configure/SKILL.md +0 -93
  175. package/skills/data360-semantic-model-mcp-configure/SKILL.md +0 -115
  176. package/skills/data360-standard-mapping-mcp-configure/SKILL.md +0 -38
  177. package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +0 -73
  178. package/skills/experience-afv-query/SKILL.md +0 -234
  179. package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +0 -63
  180. package/skills/experience-apex-components-configure/SKILL.md +0 -69
  181. package/skills/experience-apex-pages-configure/SKILL.md +0 -107
  182. package/skills/experience-app-home-configure/SKILL.md +0 -76
  183. package/skills/experience-aura-lightning-out-access-configure/SKILL.md +0 -58
  184. package/skills/experience-briefcase-configure/SKILL.md +0 -287
  185. package/skills/experience-community-flexi-page-list-create/SKILL.md +0 -74
  186. package/skills/experience-community-template-definition-list-query/SKILL.md +0 -48
  187. package/skills/experience-community-theme-definition-list-query/SKILL.md +0 -38
  188. package/skills/experience-content-assets-configure/SKILL.md +0 -86
  189. package/skills/experience-custom-domain-create/SKILL.md +0 -727
  190. package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +0 -41
  191. package/skills/experience-field-service-app-builder-configure/SKILL.md +0 -187
  192. package/skills/experience-flow-category-configure/SKILL.md +0 -117
  193. package/skills/experience-formula-configure/SKILL.md +0 -358
  194. package/skills/experience-global-actions-configure/SKILL.md +0 -69
  195. package/skills/experience-global-publisher-layouts-configure/SKILL.md +0 -79
  196. package/skills/experience-instrumentation-configure/SKILL.md +0 -64
  197. package/skills/experience-lex-engagement-configure/SKILL.md +0 -50
  198. package/skills/experience-lightning-bolt-open/SKILL.md +0 -12
  199. package/skills/experience-lightning-out-configure/SKILL.md +0 -129
  200. package/skills/experience-lightning-preview-configure/SKILL.md +0 -67
  201. package/skills/experience-lightning-types-query/SKILL.md +0 -98
  202. package/skills/experience-malware-scan-configure/SKILL.md +0 -71
  203. package/skills/experience-my-salesforce-configure/SKILL.md +0 -126
  204. package/skills/experience-navigation-menus-configure/SKILL.md +0 -235
  205. package/skills/experience-notification-types-configure/SKILL.md +0 -206
  206. package/skills/experience-notifications-configure/SKILL.md +0 -75
  207. package/skills/experience-record-discovery-query/SKILL.md +0 -227
  208. package/skills/experience-regenerate-previews-open/SKILL.md +0 -94
  209. package/skills/experience-sales-cloud-mab-configure/SKILL.md +0 -254
  210. package/skills/experience-schema-builder-open/SKILL.md +0 -38
  211. package/skills/experience-simple-record-home-configure/SKILL.md +0 -110
  212. package/skills/experience-static-resources-configure/SKILL.md +0 -74
  213. package/skills/field-service-setup-coordinate/SKILL.md +0 -62
  214. package/skills/field-service-work-plan-configure/SKILL.md +0 -253
  215. package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +0 -180
  216. package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +0 -196
  217. package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +0 -106
  218. package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +0 -96
  219. package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +0 -111
  220. package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +0 -250
  221. package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +0 -122
  222. package/skills/fsc-digital-origination-coordinate/SKILL.md +0 -653
  223. package/skills/fsc-digital-origination-demo-run/SKILL.md +0 -225
  224. package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +0 -112
  225. package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +0 -396
  226. package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +0 -336
  227. package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +0 -208
  228. package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +0 -375
  229. package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +0 -83
  230. package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +0 -248
  231. package/skills/fsc-digital-origination-sample-data-create/SKILL.md +0 -206
  232. package/skills/fsc-document-checklist-settings-configure/SKILL.md +0 -57
  233. package/skills/fsc-flexible-hierarchy-configure/SKILL.md +0 -148
  234. package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +0 -1430
  235. package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +0 -471
  236. package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +0 -429
  237. package/skills/fsc-pricing-product-configurator-configure/SKILL.md +0 -150
  238. package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +0 -123
  239. package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +0 -82
  240. package/skills/fsc-product-act3-attributes-create/SKILL.md +0 -249
  241. package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +0 -196
  242. package/skills/fsc-product-act5-considerations-get/SKILL.md +0 -44
  243. package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +0 -384
  244. package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +0 -144
  245. package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +0 -107
  246. package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +0 -189
  247. package/skills/fsc-stage-management-definition-create/SKILL.md +0 -108
  248. package/skills/fsc-stage-management-permissions-assign/SKILL.md +0 -143
  249. package/skills/fsc-stage-management-transitions-configure/SKILL.md +0 -139
  250. package/skills/health-cloud-appt-booking-config-configure/SKILL.md +0 -135
  251. package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +0 -134
  252. package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +0 -136
  253. package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +0 -134
  254. package/skills/health-cloud-care-requests-create/SKILL.md +0 -178
  255. package/skills/health-cloud-initial-configure/SKILL.md +0 -511
  256. package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +0 -1374
  257. package/skills/health-cloud-provider-search-settings-configure/SKILL.md +0 -924
  258. package/skills/health-cloud-referral-management-coordinate/SKILL.md +0 -513
  259. package/skills/health-cloud-timeline-configure/SKILL.md +0 -622
  260. package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +0 -135
  261. package/skills/industries-account-score-settings-query/SKILL.md +0 -78
  262. package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +0 -177
  263. package/skills/industries-ad-product-availability-search/SKILL.md +0 -399
  264. package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +0 -628
  265. package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +0 -73
  266. package/skills/industries-atm-settings-starter-configure/SKILL.md +0 -76
  267. package/skills/industries-batch-document-ai-configure/SKILL.md +0 -196
  268. package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +0 -71
  269. package/skills/industries-branch-management-settings-configure/SKILL.md +0 -89
  270. package/skills/industries-bre-decision-table-access-configure/SKILL.md +0 -367
  271. package/skills/industries-brokerage-settings-configure/SKILL.md +0 -41
  272. package/skills/industries-calendar-sync-settings-configure/SKILL.md +0 -89
  273. package/skills/industries-care-request-settings-configure/SKILL.md +0 -218
  274. package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +0 -54
  275. package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +0 -380
  276. package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +0 -216
  277. package/skills/industries-catalog-process-intake-configure/SKILL.md +0 -219
  278. package/skills/industries-catalog-process-knowledge-configure/SKILL.md +0 -153
  279. package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +0 -168
  280. package/skills/industries-cds-general-settings-configure/SKILL.md +0 -69
  281. package/skills/industries-claim-financial-settings-configure/SKILL.md +0 -169
  282. package/skills/industries-clinical-data-model-settings-configure/SKILL.md +0 -136
  283. package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +0 -105
  284. package/skills/industries-collection-plan-settings-configure/SKILL.md +0 -132
  285. package/skills/industries-comms-service-console-settings-configure/SKILL.md +0 -159
  286. package/skills/industries-compliance-configure/SKILL.md +0 -102
  287. package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +0 -76
  288. package/skills/industries-contact-center-app-layout-configure/SKILL.md +0 -88
  289. package/skills/industries-contact-center-components-configure/SKILL.md +0 -96
  290. package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +0 -95
  291. package/skills/industries-contact-center-user-access-assign/SKILL.md +0 -96
  292. package/skills/industries-course-waitlist-config-configure/SKILL.md +0 -162
  293. package/skills/industries-crisis-center-settings-configure/SKILL.md +0 -84
  294. package/skills/industries-custom-object-settings-configure/SKILL.md +0 -94
  295. package/skills/industries-data-cloud-integration-configure/SKILL.md +0 -88
  296. package/skills/industries-data-space-feature-mappings-configure/SKILL.md +0 -245
  297. package/skills/industries-decision-matrix-builder-configure/SKILL.md +0 -78
  298. package/skills/industries-decision-table-hbase-configure/SKILL.md +0 -87
  299. package/skills/industries-decision-table-version-configure/SKILL.md +0 -74
  300. package/skills/industries-decision-tables-builder-configure/SKILL.md +0 -253
  301. package/skills/industries-decision-tables-configure/SKILL.md +0 -439
  302. package/skills/industries-energy-utilities-configure/SKILL.md +0 -251
  303. package/skills/industries-eu-cloud-multisite-configure/SKILL.md +0 -1008
  304. package/skills/industries-eu-new-connections-configure/SKILL.md +0 -30
  305. package/skills/industries-explainability-msg-template-configure/SKILL.md +0 -135
  306. package/skills/industries-expression-set-message-token-configure/SKILL.md +0 -135
  307. package/skills/industries-field-service-settings-configure/SKILL.md +0 -82
  308. package/skills/industries-form-framework-settings-configure/SKILL.md +0 -30
  309. package/skills/industries-fsc-ai-settings-configure/SKILL.md +0 -57
  310. package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +0 -172
  311. package/skills/industries-fsc-b2b-settings-configure/SKILL.md +0 -61
  312. package/skills/industries-fsc-insurance-settings-configure/SKILL.md +0 -58
  313. package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +0 -103
  314. package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +0 -117
  315. package/skills/industries-fsc-wealth-settings-configure/SKILL.md +0 -99
  316. package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +0 -120
  317. package/skills/industries-fundraising-rfm-configure/SKILL.md +0 -128
  318. package/skills/industries-fundraising-settings-configure/SKILL.md +0 -145
  319. package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +0 -299
  320. package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +0 -87
  321. package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +0 -58
  322. package/skills/industries-hc-score-category-settings-configure/SKILL.md +0 -167
  323. package/skills/industries-health-engagement-settings-configure/SKILL.md +0 -218
  324. package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +0 -131
  325. package/skills/industries-home-health-bundling-policy-create/SKILL.md +0 -50
  326. package/skills/industries-home-health-entity-labels-configure/SKILL.md +0 -29
  327. package/skills/industries-home-health-fsl-package-deploy/SKILL.md +0 -71
  328. package/skills/industries-home-health-fsl-settings-validate/SKILL.md +0 -27
  329. package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +0 -80
  330. package/skills/industries-home-health-guided-setup-configure/SKILL.md +0 -836
  331. package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +0 -55
  332. package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +0 -61
  333. package/skills/industries-home-health-licenses-assign/SKILL.md +0 -27
  334. package/skills/industries-home-health-operating-hours-create/SKILL.md +0 -40
  335. package/skills/industries-home-health-scheduling-policy-create/SKILL.md +0 -41
  336. package/skills/industries-home-health-service-objective-create/SKILL.md +0 -22
  337. package/skills/industries-home-health-skills-create/SKILL.md +0 -31
  338. package/skills/industries-home-health-users-create/SKILL.md +0 -29
  339. package/skills/industries-icm-act3-toggles-configure/SKILL.md +0 -198
  340. package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +0 -361
  341. package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +0 -550
  342. package/skills/industries-integrated-care-management-configure/SKILL.md +0 -168
  343. package/skills/industries-object-enablement-configure/SKILL.md +0 -86
  344. package/skills/industries-tpm-system-processing-service-configure/SKILL.md +0 -64
  345. package/skills/integration-apex-settings-configure/SKILL.md +0 -61
  346. package/skills/marketing-e360-email-archiving-configure/SKILL.md +0 -73
  347. package/skills/platform-custom-permissions-configure/SKILL.md +0 -687
  348. package/skills/platform-label-workbench-import-create/SKILL.md +0 -67
  349. package/skills/platform-privacy-agent-settings-configure/SKILL.md +0 -752
@@ -1,378 +0,0 @@
1
- ---
2
- name: commerce-location-bopis-configure
3
- description: "Use this skill when users want to use this workflow when someone wants to turn a store location ON for in-store pickup / BOPIS — \"make my SF warehouse available for pickup\", \"enable BOPIS for these stores\", \"let customers collect orders from this location\". Trigger when users mention enable, location, bopis."
4
- metadata:
5
- version: "1.0"
6
- ---
7
-
8
- # Managing Enable Location Bopis
9
-
10
- ## When to Use This Skill
11
-
12
- Use this workflow when someone wants to turn a store location ON for in-store pickup / BOPIS — "make
13
- my SF warehouse available for pickup", "enable BOPIS for these stores", "let customers collect orders
14
- from this location". The indicator is Location.IsEligibleForPickup (Boolean); this skill sets it via
15
- the Data API. It can also DISABLE pickup (set it false) for a location, but enabling is the default.
16
-
17
- It can ALSO set (or clear) a per-location PICKUP TIME WINDOW — EarliestPickupTimeOffset /
18
- LatestPickupTimeOffset, minutes-based OFFSETS from the location's business-hours open/close (e.g.
19
- "pickup opens 15 minutes after we open and cuts off 30 minutes before we close"), NOT literal times.
20
- This is a SEPARATE PATCH from the eligibility change (the set-location-pickup-window step, which only
21
- runs for locations whose entry actually carries both window fields) — most eligibility toggles don't
22
- touch it. See that step's guidance for the validation contract (both-or-neither, must be positive
23
- when set, no ordering check).
24
-
25
- It guides the caller in plain language — do not ask for raw JSON or field API names: resolve the
26
- Delivery Estimation setup, list the stores in its LocationGroup each showing whether pickup is
27
- currently on (and its window, if set), let the caller choose which store(s) to enable, PATCH
28
- Location.IsEligibleForPickup — plus, for any location whose entry also carries a pickup window, a
29
- SEPARATE PATCH for those two fields — verify the change, then automatically publish the updated
30
- location graph downstream (no ask — this always runs now), then ONE optional follow-up gated by a
31
- choice_point:
32
- • RUN AN ESTIMATE (estimate-after-enable choice_point): since the location is now pickup-enabled,
33
- offer to run a BOPIS pickup estimate for it by delegating to the estimate-bopis skill (a
34
- delegates_to leaf). Skippable.
35
-
36
- This is the WRITE counterpart to the read-only estimate-bopis skill: this one turns pickup
37
- eligibility ON; estimate-bopis reads it to compute a pickup estimate.
38
-
39
- CUSTOMER-FACING WORDING: once the change is verified and the downstream publish completes, say
40
- "Your change has been saved and synced." Then a compact recap: Location Name + ExternalReference
41
- (ExternalReference is fine to show — it's typically the customer's own business key) and what
42
- changed. Never say "CDS", "Commerce Delivery Service", or otherwise imply two separate systems —
43
- this is one seamless save. Don't surface sObject/field API names, the Connect path, Ids, or raw
44
- HTTP codes.
45
-
46
- ## Workflow
47
-
48
- Turn a store location ON for in-store pickup / BOPIS (Location.IsEligibleForPickup), automatically
49
- sync the change downstream, and optionally run a pickup estimate. WRITE counterpart to the read-only
50
- estimate-bopis skill. Flow:
51
-
52
- ### Phase 1: resolve-delivery-estimation-setup -> by Name/ExternalReference -> LocationGroupId + Name...
53
-
54
- resolve-delivery-estimation-setup -> by Name/ExternalReference -> LocationGroupId + Name +
55
- ExternalReference.
56
-
57
- ### Phase 2: list-locations-in-group -> LocationGroupAssignment (junction) -> Location details; present...
58
-
59
- list-locations-in-group -> LocationGroupAssignment (junction) -> Location details; present each
60
- location's current pickup state ("ON"/"OFF") + capture ExternalReference + baseline. Caller picks
61
- which to enable (or disable).
62
-
63
- ### Phase 3: enable-location-bopis -> PATCH each chosen Location.IsEligibleForPickup (true =...
64
-
65
- enable-location-bopis -> PATCH each chosen Location.IsEligibleForPickup (true = enable, default;
66
- false = disable). Loop; in-group guard; rollback to baseline on failure; 204 each. This call's
67
- body is ALWAYS exactly this one field — the pickup window is a separate step (next).
68
-
69
- ### Phase 4: set-location-pickup-window -> for locations whose entry ALSO carries...
70
-
71
- set-location-pickup-window -> for locations whose entry ALSO carries a pickup time window
72
- (EarliestPickupTimeOffset / LatestPickupTimeOffset — both-or-neither, must be positive when set),
73
- a SEPARATE PATCH with just those two fields. Entries with neither key are skipped — no call is
74
- made for them, so the window fields are never emitted for a location whose window isn't being
75
- touched.
76
-
77
- ### Phase 5: verify-location-bopis -> re-read the changed locations; capture the...
78
-
79
- verify-location-bopis -> re-read the changed locations; capture the now-eligible ExternalReferences.
80
-
81
- ### Phase 6: sync-location-graph (ALWAYS runs automatically, immediately after verify —...
82
-
83
- sync-location-graph (ALWAYS runs automatically, immediately after verify — no ask, no choice)
84
- -> delegates_to the shared sync-location-graph SOR, which publishes the location graph
85
- (triggerFullLocationGraphSync) AND polls to terminal success before returning — this step,
86
- not the enqueue alone, is what actually confirms the eligibility takes effect.
87
-
88
- ### Phase 7: estimate-bopis (choice-gated by estimate-after-enable; default estimate) -> delegate...
89
-
90
- estimate-bopis (choice-gated by estimate-after-enable; default estimate) -> delegate to the
91
- estimate-bopis skill to run a pickup estimate for the just-enabled store(s).
92
-
93
- ## Critical Constraints
94
-
95
- **Preconditions:**
96
-
97
- - Commerce Order Management with Delivery Estimation must be enabled (the DeliveryEstimationSetup +
98
- Location objects exist and the group has LocationGroupAssignments). Location.IsEligibleForPickup is
99
- only meaningful/visible when Delivery Estimation is enabled for the org. (check: `Delivery Estimation enabled + LocationGroup populated`)
100
- - The running user must have Edit access on Location AND field-level Edit on
101
- Location.IsEligibleForPickup (and, if setting a pickup window, on EarliestPickupTimeOffset /
102
- LatestPickupTimeOffset too). Without it the PATCH returns 403, or the field is silently dropped. (check: `UserPermissions edit on Location + FLS on IsEligibleForPickup (+ the two offset fields if used)`)
103
- - A DeliveryEstimationSetup record (with a LocationGroup + LocationGroupAssignments) must exist. This
104
- workflow toggles pickup eligibility on locations within that group; it does not create records. (check: `DeliveryEstimationSetup + LocationGroupAssignments exist`)
105
-
106
- **Operational rules:**
107
-
108
- - ONE CHOICE_POINT:
109
- • estimate-after-enable (estimate | done): run a BOPIS estimate now via the delegates_to leaf, or
110
- stop. Default estimate. (The location-graph publish is NOT a choice anymore — it always runs
111
- automatically after the change is verified; never ask the admin about it.)
112
- - WHY THIS SOR ALWAYS PUBLISHES (internal rationale — not customer wording): Location.IsEligibleForPickup
113
- is one of the BOPIS fields synced downstream via the location graph, and the downstream system filters
114
- BOPIS estimates against ITS copy — so without a publish a freshly-enabled store may not appear in an
115
- estimate. This location-graph publish is functionally distinct from enable-and-push-delivery
116
- -estimation-setup (config push) and sync-delivery-routing-specs (routing specs), but the customer
117
- should never be told there are multiple systems involved — from their side, this is one save.
118
- - VERSION: pin v68.0 on every call to match the estimate-bopis family (Location.IsEligibleForPickup
119
- exists since API 258, but the family standardizes on v68.0). WIRE CONTRACT, live-validated
120
- end-to-end: PATCH returns 204 with read-back confirming the flag; the CDS publish returns 201; the
121
- delegated estimate returns 201.
122
- - PICKUP WINDOW CONTRACT (EarliestPickupTimeOffset / LatestPickupTimeOffset), applied by the SEPARATE
123
- set-location-pickup-window step (NOT part of enable-location-bopis's PATCH — that call is
124
- IsEligibleForPickup only, unconditionally). WIRE CONTRACT, live-validated end-to-end: both-or-neither
125
- is a HARD Core rule — one without the other -> 400
126
- FIELD_INTEGRITY_EXCEPTION "Either the earliest and latest pickup times must both be set or both be
127
- null.", confirmed symmetric on either field alone. set-location-pickup-window's inputs schema mirrors
128
- this with a dependentRequired constraint (each offset field requires the other), rejecting a one-sided
129
- entry before dispatch rather than relying on agent_guidance prose alone. Negative -> 400
130
- FIELD_INTEGRITY_EXCEPTION ("Specify a value for earliest pickup time that's greater than 0." — the
131
- message text says >0, and Core's own live boundary is actually >=0, but this step's schema now
132
- enforces `minimum: 1` on both fields when non-null — a caller-side 0 is rejected before the PATCH is
133
- ever sent, so this Core-side message should not normally be reachable in practice). NO
134
- earliest-vs-latest ordering check (100/30 PATCHed 204 despite earliest > latest). null/null clears an
135
- existing window (204, read-back
136
- null/null). Per Core/CDS source research (not live-tested): the downstream delivery system's
137
- validator for this same pair is STRICTER — it requires a value > 0 — and since sync-location-graph
138
- now ALWAYS publishes (never skippable), a 0/0 window would always eventually fail downstream even
139
- though Core itself would accept it; that's exactly why the schema now rejects 0 up front instead of
140
- leaving it as a "prefer avoiding" note.
141
- WHY TWO STEPS, NOT ONE PATCH WITH OPTIONAL FIELDS: enable-location-bopis and set-location-pickup-window
142
- read the SAME locationUpdates array but each emits a call with ZERO optional fields — the eligibility
143
- PATCH always sends just IsEligibleForPickup; the window PATCH is skipped entirely (not sent with
144
- omitted/null-placeholder keys) for any entry that doesn't carry both window fields, and sends both
145
- together whenever it does run. This makes the optionality a property of WHETHER a call happens, not of
146
- which keys appear inside an always-made call's static body.
147
- - CUSTOMER-FACING WORDING: the canonical closing line — "Your change has been saved and synced."
148
- verbatim — may ONLY be said after the delegated sync-location-graph's poll reaches TERMINAL
149
- SUCCESS, not merely after its enqueue POST returns. Enqueue succeeding is NOT synced yet.
150
- - TERMINAL FAILURE (the delegate's poll ended in Error/ServiceException, or success:false): the
151
- entity change (the earlier PATCH) DID succeed, but the downstream sync did not — do NOT say
152
- "saved and synced." IF the delegate's poll_status is 'Error' AND poll_error is non-empty: it
153
- carries a plain-enough, per-location explanation designed to be shown to end users (e.g.
154
- "Location 'X' has invalid country code"). COMPARE the location it names against the
155
- location(s) THIS flow just enabled/disabled: if DIFFERENT, make that clear so the customer
156
- doesn't think their own change caused it — "Your change was saved, but the sync couldn't
157
- complete because of an unrelated issue elsewhere — <what poll_error says>. It can be retried
158
- once that's fixed." (No link here — poll_error names that OTHER location by text only, not a
159
- record this flow read back, so there's nothing to link safely.) If it names one of the
160
- locations THIS flow just changed, do NOT say "elsewhere" — report the issue against that
161
- location, and this IS a case a link is possible: verify-location-bopis.verified already
162
- carries that location's Name AND Id, so match poll_error's location to its row there and
163
- link it rather than naming it in plain text — "Your change was saved, but the sync couldn't
164
- complete for [<Name>](<orgHost>/lightning/r/Location/<Id>/view): <issue from poll_error>. It
165
- can be retried once that's fixed." — keep the `]` and `(` adjacent with no space/break, or
166
- the Markdown link renders broken. If you CAN'T TELL which location poll_error means, use
167
- that same non-"elsewhere" wording (claiming "elsewhere" when it might not be is the more
168
- misleading error) but WITHOUT a link, naming it plainly instead: "Your change was saved, but
169
- the sync couldn't complete: this location <issue from poll_error>. It can be retried once
170
- that's fixed." — this skill changes several locations at once, so an unmatched guess could
171
- link the wrong record. IF poll_status is 'ServiceException', or poll_error is
172
- empty/absent: do NOT relay raw poll_error content (that status is a generic/transport
173
- failure path with no evidence its content is customer-safe) — fall back to the generic
174
- "saved but could not be synced; retry shortly" without inventing detail.
175
- - STILL IN PROGRESS (the delegate's bounded poll exhausted its attempts still New/InProgress):
176
- do NOT claim success or failure either way. Tell the customer the change was saved and is
177
- still taking effect, and not to worry if an estimate doesn't reflect it immediately.
178
- Never surface the raw job Id, status enum value, Connect path, or HTTP codes — this is all
179
- internal-mechanism detail; only the outcome (synced / not yet / failed) matters to the customer.
180
- Once terminal success is confirmed: the canonical line, then a compact recap: Name, ExternalReference
181
- (fine to show now — it's typically the customer's own business key), and what changed (pickup
182
- enabled/disabled; the pickup time window, if set) for EVERY changed Location — enabled or disabled.
183
- Source this from verify-location-bopis.verified (the full read-back), NOT enabled_external_references
184
- (that field is enabled-only, scoped for the estimate leaf — using it here would silently drop any
185
- disabled locations from the recap). If you have the
186
- Location Id, add a best-effort link:
187
- [<Name>](<orgHost>/lightning/r/Location/<Id>/view) — the standard record-link form used across the
188
- corpus; never speak the raw Id itself.
189
- RECAP LAYOUT — ONE location changed: a single plain sentence, e.g. "West Warehouse: pickup
190
- enabled." with the Name link-wrapped — if its ExternalReference is blank/null, just leave it out of
191
- the sentence (a sentence has no column alignment to preserve). MULTIPLE locations changed (this SOR
192
- loops over a caller-picked set, so this is common): use a compact markdown table instead of repeating
193
- sentences —
194
- | Location | Reference | Changed |
195
- |---|---|---|
196
- | [<Name>](<orgHost>/lightning/r/Location/<Id>/view) | <ExternalReference> | pickup enabled |
197
- One row per changed Location. In a TABLE, every row needs the same number of cells — if an
198
- individual Location's ExternalReference is blank/null, put "—" in that cell rather than dropping it
199
- (an empty/missing cell misaligns the row). Only drop the Reference COLUMN entirely (header + every
200
- row) when EVERY changed Location lacks an ExternalReference. Never say "CDS", "Commerce Delivery
201
- Service", "delivery service", or otherwise imply two separate systems — this is one seamless save from
202
- the customer's point of view. Keep the closing + recap under ~200 characters of VISIBLE text where
203
- possible for a single-location change (the link URL doesn't count against this — soft
204
- target, prioritize the recap content over strict truncation). Still don't surface sObject/field API
205
- names, the Connect path, Ids, or raw HTTP codes. This can be immediately followed by the separate
206
- estimate-after-enable follow-up question.
207
-
208
- ## Verification Checklist
209
-
210
- After every write operation, confirm the effect by re-reading state:
211
-
212
- - After `enable-location-bopis`, `set-location-pickup-window`: call `verify-location-bopis`
213
-
214
- ## Operations Reference
215
-
216
- Operations grouped by purpose. Use these as the building blocks for the workflows above.
217
-
218
- ### Summary
219
-
220
- | Operation | Purpose | Status | Call | Depends on |
221
- |-----------|---------|--------|------|------------|
222
- | `resolve-delivery-estimation-setup` | read | implemented | `querySoql` | — |
223
- | `list-locations-in-group` | read | implemented | `querySoql` | `resolve-delivery-estimation-setup` |
224
- | `enable-location-bopis` | write | implemented | `updateLocation` | `list-locations-in-group` |
225
- | `set-location-pickup-window` | write | implemented | `updateLocation` | `list-locations-in-group` |
226
- | `verify-location-bopis` | verify | implemented | `querySoql` | `enable-location-bopis`, `set-location-pickup-window` |
227
- | `sync-location-graph` | write | — | → `cc-om-fast-and-furious/sync-location-graph` | `verify-location-bopis` |
228
- | `estimate-bopis` | read | — | → `cc-om-fast-and-furious/estimate-bopis` | `verify-location-bopis`, `sync-location-graph` |
229
-
230
- ### Dependency graph
231
-
232
- ```mermaid
233
- graph TD
234
- resolve_delivery_estimation_setup["resolve-delivery-estimation-setup (read)"]
235
- list_locations_in_group["list-locations-in-group (read)"]
236
- enable_location_bopis["enable-location-bopis (write)"]
237
- set_location_pickup_window["set-location-pickup-window (write)"]
238
- verify_location_bopis["verify-location-bopis (verify)"]
239
- sync_location_graph["sync-location-graph (write)"]
240
- estimate_bopis["estimate-bopis (read)"]
241
- resolve_delivery_estimation_setup --> list_locations_in_group
242
- list_locations_in_group --> enable_location_bopis
243
- list_locations_in_group --> set_location_pickup_window
244
- enable_location_bopis --> verify_location_bopis
245
- set_location_pickup_window --> verify_location_bopis
246
- verify_location_bopis --> sync_location_graph
247
- verify_location_bopis --> estimate_bopis
248
- sync_location_graph --> estimate_bopis
249
- ```
250
-
251
- ### Read operations
252
-
253
- #### `resolve-delivery-estimation-setup`
254
-
255
- Resolve the parent DeliveryEstimationSetup by Name / ExternalReference and capture its
256
- LocationGroupId (to list the group's locations) and its Name + ExternalReference (used to hand off
257
- to the estimate-bopis leaf, which resolves the setup by name/reference). Skip if the caller already
258
- has the group id.
259
-
260
- **Call:** `querySoql` — status: `implemented`
261
-
262
- **Inputs:**
263
-
264
- - `name` *(`String`)* — The DeliveryEstimationSetup's Name OR ExternalReference (e.g. "west") — the query matches either
265
- field. Source: user_input.
266
-
267
- #### `list-locations-in-group`
268
-
269
- List the locations in the setup's LocationGroup with each one's current pickup eligibility (and, if
270
- set, pickup time window). Reads LocationGroupAssignment (the group->location junction) joined to its
271
- Location. Present each location as "pickup ON" or "pickup OFF" so the caller can choose which to
272
- enable (or disable). Also captures each location's ExternalReference (the value the estimate-bopis
273
- leaf keys locations by) and the pre-change IsEligibleForPickup + EarliestPickupTimeOffset /
274
- LatestPickupTimeOffset (the rollback baseline).
275
-
276
- **Call:** `querySoql` — status: `implemented`
277
-
278
- **Inputs:**
279
-
280
- - `locationGroupId` *(`String`)* — LocationGroup Id (0gh...) of the CHOSEN setup. Source: resolve-delivery-estimation-setup.location_group_ids (the one the customer picked when the lookup matched more than one).
281
-
282
- **Depends on:** `resolve-delivery-estimation-setup`
283
-
284
- #### `estimate-bopis`
285
-
286
- Since the location is now pickup-enabled, optionally run a BOPIS pickup estimate for it by
287
- delegating to the estimate-bopis skill. Choice-gated by the estimate-after-enable choice_point
288
- (skipped when the caller is done after enabling). The delegated skill owns the estimate + its
289
- result; nothing is read back here.
290
-
291
- **Delegates to:** `cc-om-fast-and-furious/estimate-bopis`
292
-
293
- **Depends on:** `verify-location-bopis`, `sync-location-graph`
294
-
295
- ### Write operations
296
-
297
- #### `enable-location-bopis`
298
-
299
- Apply the pickup-eligibility change. For EACH location the caller chose, PATCH
300
- Location.IsEligibleForPickup (true = enable BOPIS, the default; false = disable). Loop over the
301
- selected locations — one PATCH per Location record. This call's body carries ONLY
302
- IsEligibleForPickup, unconditionally, on every invocation — a caller-supplied pickup time window is
303
- a SEPARATE PATCH, applied by the sibling set-location-pickup-window step, not here.
304
-
305
- **Call:** `updateLocation` — status: `implemented`
306
-
307
- **Inputs:**
308
-
309
- - `locationUpdates` *(`Array`)* — One entry per location being changed. Each entry: the Location Id and the target
310
- isEligibleForPickup (true to enable pickup — the default; false to disable). An entry MAY also
311
- carry a pickup time window (earliestPickupTimeOffset / latestPickupTimeOffset) for the SAME
312
- location — this step does not read those two keys at all; the sibling set-location-pickup-window
313
- step reads them from this same array and issues its own PATCH. Include only locations that are
314
- actually changing eligibility. Source: user selection over list-locations-in-group.
315
- - schema: `{'type': 'array', 'minItems': 1, 'maxItems': 200, 'items': {'type': 'object', 'required': ['locationId'], 'properties': {'locationId': {'type': 'string', 'pattern': '^131[a-zA-Z0-9]{12,15}$', 'description': 'Location Id to update (from list-locations-in-group).'}, 'isEligibleForPickup': {'type': 'boolean', 'default': True, 'description': 'Target BOPIS pickup eligibility — true enables pickup (default), false disables it. Emit as an UNQUOTED JSON boolean (true / false), never a quoted string.'}}}}`
316
-
317
- **Depends on:** `list-locations-in-group`
318
-
319
- **Rollback:** {'operation': 'updateLocation', 'invocation': {'kind': 'rest', 'method': 'PATCH', 'path': '/services/data/v68.0/sobjects/Location/{locationId}', 'body': {'IsEligibleForPickup': '{list-locations-in-group.locations_before[?(@.LocationId==locationId)].Location.IsEligibleForPickup}'}}}
320
-
321
- #### `set-location-pickup-window`
322
-
323
- Set or clear a per-location pickup time window — Location.EarliestPickupTimeOffset /
324
- LatestPickupTimeOffset (minutes-based offsets from business hours, both required together). This is
325
- a SEPARATE PATCH from enable-location-bopis's eligibility change, over the SAME locationUpdates
326
- array: this step iterates ONLY the entries that carry BOTH earliestPickupTimeOffset AND
327
- latestPickupTimeOffset as explicit keys (including both-explicitly-null, to clear) — an entry
328
- carrying NEITHER key is skipped entirely, so no window PATCH is ever issued for it. Because the call
329
- itself is what's conditional (not a field inside an always-made call), this step's body always
330
- carries exactly these two keys together whenever it runs at all.
331
-
332
- **Call:** `updateLocation` — status: `implemented`
333
-
334
- **Inputs:**
335
-
336
- - `locationUpdates` *(`Array`)* — The SAME array passed to enable-location-bopis. This step reads only entries that carry BOTH
337
- earliestPickupTimeOffset AND latestPickupTimeOffset (both required together; both null clears an
338
- existing window) — entries carrying neither key are skipped by this step (no call is made for
339
- them; see SKIP-IF-ABSENT in agent_guidance). Source: user selection over list-locations-in-group.
340
- - schema: `{'type': 'array', 'minItems': 1, 'maxItems': 200, 'items': {'type': 'object', 'required': ['locationId'], 'dependentRequired': {'earliestPickupTimeOffset': ['latestPickupTimeOffset'], 'latestPickupTimeOffset': ['earliestPickupTimeOffset']}, 'properties': {'locationId': {'type': 'string', 'pattern': '^131[a-zA-Z0-9]{12,15}$', 'description': 'Location Id to update (from list-locations-in-group). Same value as the matching entry\npassed to enable-location-bopis.'}, 'earliestPickupTimeOffset': {'type': ['integer', 'null'], 'minimum': 1, 'description': "Minutes AFTER the location's business-hours opening that pickup becomes available — an OFFSET, not a literal time (don't confuse with Location.DefaultPickupTime, an unrelated literal time-of-day field). Required together with latestPickupTimeOffset — the dependentRequired constraint above rejects an entry carrying exactly one of the two keys before this step ever runs; Core's own FIELD_INTEGRITY_EXCEPTION (live-confirmed) is the second line of defense if a caller bypasses schema validation. An entry carrying NEITHER key is skipped by this step entirely (see SKIP-IF-ABSENT in agent_guidance) — to clear an existing window, send BOTH as null rather than omitting the entry. When non-null, MUST be >= 1 — Core itself accepts 0, but the location-graph publish this SOR always runs afterward rejects 0 (requires a strictly positive value), so 0 would write successfully here and then fail downstream. Reject a non-null 0 (or negative) before this step ever runs; null/null for clearing is unaffected. No upper bound and no earliest-vs-latest ordering check on the Core side — see PICKUP WINDOW in agent_guidance for the ordering sanity-check."}, 'latestPickupTimeOffset': {'type': ['integer', 'null'], 'minimum': 1, 'description': "Minutes BEFORE the location's business-hours closing that pickup cuts off — an OFFSET, not a literal time. Same both-or-neither / minimum-1-when-non-null / skip-if-absent rules as earliestPickupTimeOffset; see that field's description and PICKUP WINDOW in agent_guidance."}}}}`
341
-
342
- **Depends on:** `list-locations-in-group`
343
-
344
- **Rollback:** {'operation': 'updateLocation', 'invocation': {'kind': 'rest', 'method': 'PATCH', 'path': '/services/data/v68.0/sobjects/Location/{locationId}', 'body': {'EarliestPickupTimeOffset': '{list-locations-in-group.locations_before[?(@.LocationId==locationId)].Location.EarliestPickupTimeOffset}', 'LatestPickupTimeOffset': '{list-locations-in-group.locations_before[?(@.LocationId==locationId)].Location.LatestPickupTimeOffset}'}}}
345
-
346
- #### `sync-location-graph`
347
-
348
- Publish the updated location graph downstream so its copy of the locations — including the
349
- just-changed IsEligibleForPickup — is current, and poll to terminal success before anything is
350
- reported as synced. Runs automatically, unconditionally, immediately after verify-location-bopis
351
- succeeds — never gated on a customer choice. EXTRACTED (2026-08-22) into its own delegates_to
352
- target — update-location-shipping-carrier-method needs the identical mechanism (confirmed via
353
- Core source trace: the same location-graph sync serializes ShippingCarrierMethod /
354
- LocationShippingCarrierMethod fields too) — see sync-location-graph/sor.yaml for the full wire
355
- contract, poll_config, and WIRE GOTCHA reasoning (all carried forward unchanged from this SOR's
356
- own prior live validation).
357
-
358
- **Delegates to:** `cc-om-fast-and-furious/sync-location-graph`
359
-
360
- **Depends on:** `verify-location-bopis`
361
-
362
- ### Verify operations
363
-
364
- #### `verify-location-bopis`
365
-
366
- Re-read the changed Location records and confirm each now holds the requested pickup eligibility
367
- (from enable-location-bopis) and, for any location whose window was set/cleared by
368
- set-location-pickup-window, the requested window.
369
-
370
- **Call:** `querySoql` — status: `implemented`
371
-
372
- **Inputs:**
373
-
374
- - `locationIds` *(`Array`)* — Ids of the changed locations (from locationUpdates[].locationId). Source: enable-location-bopis.
375
- The query's {locationIdsInClause} is the SOQL-safe rendering of THIS input — a comma-separated
376
- list of single-quoted Ids (see agent_guidance) — not a separate input.
377
-
378
- **Depends on:** `enable-location-bopis`, `set-location-pickup-window`
@@ -1,235 +0,0 @@
1
- ---
2
- name: commerce-location-business-hours-configure
3
- description: "Use this skill when users want to use this workflow to change a SPECIFIC location's weekly business hours (not the group-wide default). Trigger when users mention update, location, business, hours."
4
- metadata:
5
- version: "1.0"
6
- ---
7
-
8
- # Managing Update Location Business Hours
9
-
10
- ## When to Use This Skill
11
-
12
- Use this workflow to change a SPECIFIC location's weekly business hours (not the group-wide
13
- default). Each Location optionally references its own BusinessHours via
14
- Location.FulfillingBusinessHoursId; when null, the location inherits the setup's default
15
- BusinessHours. This edits the flat weekly hours (Monday..Sunday start/end + TimeZoneSidKey)
16
- by a DIRECT sObject Data-API PATCH on that BusinessHours record. It does NOT touch holidays
17
- or operating-hours timeslots — those live on OperatingHours and go through the Connect API
18
- (see update-location-temporary-operating-hours).
19
-
20
- Flow: resolve the setup by Name/ExternalReference -> list the group's locations with each
21
- one's FulfillingBusinessHoursId -> present each location's current hours -> admin picks the
22
- location(s) -> PATCH each chosen location's BusinessHours record -> verify -> push.
23
-
24
- Key contract facts (details + wire format on the steps / in agent_guidance, kept off this card):
25
- - A PATCH is a partial MERGE — send only the day(s)/timezone you're changing; omitted fields
26
- keep their value.
27
- - A location with FulfillingBusinessHoursId = null inherits the setup default. To change THAT,
28
- use the setup-default path in update-delivery-business-hours; giving a location its OWN
29
- distinct schedule requires creating a BusinessHours record first (out of scope for this
30
- edit skill).
31
-
32
- ## Workflow
33
-
34
- Per-location flat BusinessHours (companion to update-delivery-business-hours). Flow: resolve
35
- the setup by Name/ExternalReference -> list locations (with FulfillingBusinessHoursId and
36
- ExternalReference) -> present each location's current hours -> admin picks location(s) -> PATCH
37
- each chosen location's BusinessHours record (partial merge, HH:mm:ss.SSSZ) -> verify -> push,
38
- AUTOMATICALLY, right after verify succeeds.
39
- MECHANISM: sObject Data-API PATCH on BusinessHours only — NO Connect API, NO holidays/timeslots
40
- (those are OperatingHours -> update-location-temporary-operating-hours). Times are HH:mm:ss.SSSZ.
41
- SHARED-RECORD CAVEAT: warn if the BusinessHours record is shared (setup default or multiple
42
- locations) — editing it affects all of them. A location with a null FulfillingBusinessHoursId
43
- inherits the setup default (change that via the front door's setup-default path).
44
- KNOWN LIMITATION — CROSS-SETUP SYNC GAP: check-shared-business-hours finds referencing Locations
45
- ORG-WIDE (not scoped to the current group), but enable-and-push-delivery-estimation below only
46
- pushes the ONE DeliveryEstimationSetup this flow entered through. If the shared BusinessHours
47
- record is also referenced by a Location in a DIFFERENT LocationGroup (a different setup —
48
- Location.FulfillingBusinessHoursId is a plain, freely-shareable reference field, so this is a
49
- realistic scenario, not a rare edge case), that OTHER setup's delivery-estimation copy goes stale
50
- until independently re-synced. Closing this needs enumerating every referencing Location's own
51
- LocationGroup/DeliveryEstimationSetup and pushing each distinct one — a materially bigger,
52
- separately-validated change, not a wording fix — so it's flagged here rather than silently
53
- claimed as covered. Do not imply in the closing message that OTHER setups were also synced.
54
- WIRE CONTRACT: BusinessHours PATCH -> 204 (read-back + restore supported). The
55
- enable-and-push-delivery-estimation step ALWAYS runs right after verify succeeds — never ask the
56
- admin whether to push; the customer should never be told this involves a separate sync/service,
57
- treat it as one seamless save.
58
- CUSTOMER-FACING WORDING: once verify + push both succeed, say exactly: "Your change has been
59
- saved and synced." Then give a compact recap: Name and ExternalReference (from
60
- list-locations-in-group), and the day/time(s) that changed (old -> new where known), per
61
- changed location. BusinessHours itself has no ExternalReference field — anchor the recap on the
62
- Location, not the BusinessHours record. If check-shared-business-hours found the target is
63
- SHARED (refCount > 1, or it's the setup default), add one line noting the OTHER locations also
64
- affected — name a few from referencing_locations_sample (excluding the one(s) just changed)
65
- when refCount is small, e.g. "Note: this schedule is shared with West Warehouse and East
66
- Warehouse, which were also affected"; fall back to a bare count for a large refCount, e.g.
67
- "Note: 12 other locations share this schedule and were also affected" — without naming the
68
- BusinessHours record itself. If the target equals the setup default, also fold in any
69
- null-FulfillingBusinessHoursId siblings from list-locations-in-group.locations_before (see
70
- NULL-FK GAP on check-shared-business-hours) into that same count/naming. If you have the
71
- Location's Id, add a best-effort
72
- link: [<Name>](<orgHost>/lightning/r/Location/<Id>/view) — the standard record-link form used
73
- across the corpus.
74
- RECAP LAYOUT — ONE location changed: a single plain sentence with the Name link-wrapped.
75
- MULTIPLE locations changed (an admin can pick more than one in list-locations-in-group): use a
76
- compact markdown table instead of repeating sentences —
77
- | Location | Reference | Changed |
78
- |---|---|---|
79
- | [<Name>](<orgHost>/lightning/r/Location/<Id>/view) | <ExternalReference> | Monday: 09:00-17:00 -> 09:00-18:00 |
80
- One row per changed location. In a table, every row needs the same number of cells — if a
81
- Location's ExternalReference is blank/null, put "—" in that cell rather than dropping it; only
82
- drop the Reference column entirely if EVERY row lacks one. Keep the whole response under ~200 characters where
83
- possible for a single-location change (soft target — prioritize the recap content over strict truncation). Never say "CDS",
84
- "Commerce Delivery Service", or "delivery estimation service" to the customer, and never surface
85
- sObject/field API names, raw Ids, the Connect path, or HTTP status codes.
86
-
87
- ## Critical Constraints
88
-
89
- **Preconditions:**
90
-
91
- - Delivery Estimation enabled; the setup's LocationGroup has LocationGroupAssignments. (check: `Delivery Estimation enabled + LocationGroup populated`)
92
- - Edit access on BusinessHours + field-level Edit on the per-day fields / TimeZoneSidKey.
93
- Without it the PATCH returns 403 or the fields are silently dropped. (check: `UserPermissions edit on BusinessHours + FLS on the fields`)
94
-
95
- ## Verification Checklist
96
-
97
- After every write operation, confirm the effect by re-reading state:
98
-
99
- - After `apply-location-business-hours`: call `verify-location-business-hours`
100
-
101
- ## Operations Reference
102
-
103
- Operations grouped by purpose. Use these as the building blocks for the workflows above.
104
-
105
- ### Summary
106
-
107
- | Operation | Purpose | Status | Call | Depends on |
108
- |-----------|---------|--------|------|------------|
109
- | `resolve-delivery-estimation-setup` | read | implemented | `querySoql` | — |
110
- | `list-locations-in-group` | read | implemented | `querySoql` | `resolve-delivery-estimation-setup` |
111
- | `present-location-business-hours` | read | implemented | `querySoql` | `list-locations-in-group` |
112
- | `check-shared-business-hours` | read | implemented | `querySoql` | `present-location-business-hours` |
113
- | `apply-location-business-hours` | write | implemented | `updateBusinessHours` | `present-location-business-hours`, `check-shared-business-hours` |
114
- | `verify-location-business-hours` | verify | implemented | `querySoql` | `apply-location-business-hours` |
115
- | `enable-and-push-delivery-estimation` | write | — | → `cc-om-fast-and-furious/enable-and-push-delivery-estimation-setup` | `verify-location-business-hours` |
116
-
117
- ### Dependency graph
118
-
119
- ```mermaid
120
- graph TD
121
- resolve_delivery_estimation_setup["resolve-delivery-estimation-setup (read)"]
122
- list_locations_in_group["list-locations-in-group (read)"]
123
- present_location_business_hours["present-location-business-hours (read)"]
124
- check_shared_business_hours["check-shared-business-hours (read)"]
125
- apply_location_business_hours["apply-location-business-hours (write)"]
126
- verify_location_business_hours["verify-location-business-hours (verify)"]
127
- enable_and_push_delivery_estimation["enable-and-push-delivery-estimation (write)"]
128
- resolve_delivery_estimation_setup --> list_locations_in_group
129
- list_locations_in_group --> present_location_business_hours
130
- present_location_business_hours --> check_shared_business_hours
131
- present_location_business_hours --> apply_location_business_hours
132
- check_shared_business_hours --> apply_location_business_hours
133
- apply_location_business_hours --> verify_location_business_hours
134
- verify_location_business_hours --> enable_and_push_delivery_estimation
135
- ```
136
-
137
- ### Read operations
138
-
139
- #### `resolve-delivery-estimation-setup`
140
-
141
- Resolve the DeliveryEstimationSetup by Name/ExternalReference; capture LocationGroupId (to
142
- list locations) and ExternalReference (for the push). Skip if the caller already has both.
143
-
144
- **Call:** `querySoql` — status: `implemented`
145
-
146
- **Inputs:**
147
-
148
- - `name` *(`String`)* — The DeliveryEstimationSetup's Name OR ExternalReference (e.g. "west"). Source: user_input.
149
-
150
- #### `list-locations-in-group`
151
-
152
- List the group's locations with each one's FulfillingBusinessHoursId (the per-location
153
- weekly-hours FK; null = inherits the setup default).
154
-
155
- **Call:** `querySoql` — status: `implemented`
156
-
157
- **Inputs:**
158
-
159
- - `locationGroupId` *(`String`)* — LocationGroup Id (0gh...) of the CHOSEN setup. Source: resolve-delivery-estimation-setup.location_group_ids (the one the customer picked when the lookup matched more than one).
160
-
161
- **Depends on:** `resolve-delivery-estimation-setup`
162
-
163
- #### `present-location-business-hours`
164
-
165
- Read + present each selected location's current BusinessHours (per-day open/close + timezone) so the admin sees what they're changing.
166
-
167
- **Call:** `querySoql` — status: `implemented`
168
-
169
- **Inputs:**
170
-
171
- - `businessHoursIds` *(`Array`)* — The non-null FulfillingBusinessHoursId values for the locations of interest. Source:
172
- list-locations-in-group.locations_before[*].Location.FulfillingBusinessHoursId.
173
-
174
- **Depends on:** `list-locations-in-group`
175
-
176
- #### `check-shared-business-hours`
177
-
178
- Before editing, detect whether each target BusinessHours is SHARED — an aggregate COUNT
179
- (pagination-safe by construction, so it can never undercount even if the record is
180
- referenced by hundreds of Locations org-wide) plus a SEPARATE, bounded follow-up query for
181
- a few representative Names, so the shared-record warning is backed by real data and the
182
- closing recap can name a handful of the other affected locations without requiring an
183
- unbounded org-wide fetch.
184
-
185
- **Call:** `querySoql` — status: `implemented`
186
-
187
- **Inputs:**
188
-
189
- - `businessHoursIds` *(`Array`)* — The target BusinessHours Ids (the chosen locations' non-null FulfillingBusinessHoursId).
190
- Source: present-location-business-hours.
191
-
192
- **Depends on:** `present-location-business-hours`
193
-
194
- ### Write operations
195
-
196
- #### `apply-location-business-hours`
197
-
198
- Apply the change: for each selected location, PATCH the BusinessHours record referenced by
199
- its FulfillingBusinessHoursId. Direct sObject Data-API write; partial merge (only the
200
- day(s)/timezone being changed). One PATCH per BusinessHours record.
201
-
202
- **Call:** `updateBusinessHours` — status: `implemented`
203
-
204
- **Inputs:**
205
-
206
- - `businessHoursUpdates` *(`Array`)* — One entry per BusinessHours record being changed. Each entry: the businessHoursId (the
207
- chosen location's FulfillingBusinessHoursId) plus the day/timezone fields to set (HH:mm:ss.SSSZ
208
- times). Include only fields actually changing (partial merge). Source: user selection over
209
- present-location-business-hours.
210
- - schema: `{'type': 'array', 'minItems': 1, 'maxItems': 200, 'items': {'type': 'object', 'required': ['businessHoursId', 'fields'], 'properties': {'businessHoursId': {'type': 'string', 'pattern': '^01m[a-zA-Z0-9]{12,15}$', 'description': "The location's BusinessHours Id (from FulfillingBusinessHoursId)."}, 'fields': {'type': 'object', 'minProperties': 1, 'additionalProperties': False, 'description': 'Allowlisted BusinessHours day/timezone fields to change (partial merge); only these keys\nare accepted. Times are HH:mm:ss.SSSZ; TimeZoneSidKey is an IANA id.', 'properties': {'MondayStartTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'MondayEndTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'TuesdayStartTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'TuesdayEndTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'WednesdayStartTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'WednesdayEndTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'ThursdayStartTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'ThursdayEndTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'FridayStartTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'FridayEndTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'SaturdayStartTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'SaturdayEndTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'SundayStartTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'SundayEndTime': {'type': 'string', 'pattern': '^\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$'}, 'TimeZoneSidKey': {'type': 'string', 'minLength': 1, 'maxLength': 40}}}}}}`
211
-
212
- **Depends on:** `present-location-business-hours`, `check-shared-business-hours`
213
-
214
- #### `enable-and-push-delivery-estimation`
215
-
216
- Propagate the per-location hours change to the delivery estimation service — ONE push keyed
217
- on the PARENT setup's ExternalReference. Delegates to enable-and-push-delivery-estimation-setup.
218
-
219
- **Delegates to:** `cc-om-fast-and-furious/enable-and-push-delivery-estimation-setup`
220
-
221
- **Depends on:** `verify-location-business-hours`
222
-
223
- ### Verify operations
224
-
225
- #### `verify-location-business-hours`
226
-
227
- Re-read the changed BusinessHours records and confirm the requested values.
228
-
229
- **Call:** `querySoql` — status: `implemented`
230
-
231
- **Inputs:**
232
-
233
- - `businessHoursIds` *(`Array`)* — Ids of the changed BusinessHours (from businessHoursUpdates[].businessHoursId).
234
-
235
- **Depends on:** `apply-location-business-hours`