@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,602 +0,0 @@
1
- ---
2
- name: commerce-b2b-merchant-quote-configure
3
- description: "Use this skill when users want to b2B Commerce merchant quote management — sales rep / sales ops / commerce admin working buyer-submitted RFQs. Trigger when users mention b2b, merchant, quote, management."
4
- metadata:
5
- version: "1.0"
6
- accessCheck: "(BuyerAccount.hasEntitledProductsInQuotePricebook) || (ExperienceCloud.externalFileSharingEnabled) || (Org.noCPQOrStandardQuoteInUse) || (Quote.noActiveApprovalProcessLock) || (RecordLevelAccess.Quote) || (User.hasContentNoteCreateAccess) || (User.hasQuoteEditAccess) || (User.hasQuoteLineItemEditAccess)"
7
- ---
8
-
9
- # Managing B2b Merchant Quote Management
10
-
11
- ## When to Use This Skill
12
-
13
- B2B Commerce merchant quote management — sales rep / sales ops / commerce admin working buyer-submitted RFQs. Reviews pending quotes for a customer Account, edits line-item pricing (UnitPrice, Discount), adds line items from the buyer's entitled catalog (including free promotional items via Discount=100), adds buyer-visible notes, approves/rejects. Trigger phrases: "approve a quote for a customer", "review pending B2B quotes", "discount a quote", "add a free product to a customer quote", "process an RFQ", "sales rep quote approval", "merchant quote review", "quote negotiation", "reject a customer quote", "adjust quote pricing", "give a buyer a goodwill discount". Two entry modes: (1) know the account name → resolve-account-by-name first; (2) have the AccountId → skip resolve, start at list-pending-quotes-for-account. Notes take plain title + plain text; the skill handles HTML wrap + base64 on write. Always call get-valid-quote-statuses before update-quote-status (orgs customize the picklist heavily). Status semantics matter — see update-quote-status for the merchant-column vs buyer-column refuse-then-confirm guardrail.
14
-
15
- ## Workflow
16
-
17
- Flows (drop resolve-account-by-name if the merchant already has an AccountId; start at list-pending-quotes-for-account):
18
- - Happy path (approve with adjustments):
19
- resolve-account-by-name → list-pending-quotes-for-account → (pick)
20
- → get-quote-detail → list-quote-line-items → update-quote-line-item
21
- → verify-update-quote-line-item → add-buyer-visible-note →
22
- verify-add-buyer-visible-note → get-valid-quote-statuses →
23
- update-quote-status(newStatus="Approved") →
24
- verify-update-quote-status.
25
-
26
- - Goodwill / free-giveaway (add free promo, then approve):
27
- resolve-account-by-name → list-pending-quotes-for-account →
28
- get-quote-detail (capture Pricebook2Id + AccountId/QuoteAccountId)
29
- → list-storefronts-for-buyer-account → list-entitlement-policies-
30
- for-buyer → list-eligible-products-for-storefront (uses Quote's
31
- Pricebook2Id, NOT WebStore's) → add-quote-line-item(Discount=100,
32
- description="Promotional item") → verify-add-quote-line-item →
33
- add-buyer-visible-note → get-valid-quote-statuses →
34
- update-quote-status("Approved") → verify-update-quote-status.
35
-
36
- - Rejection: resolve-account-by-name →
37
- list-pending-quotes-for-account → get-quote-detail →
38
- list-quote-line-items → add-buyer-visible-note(reason) →
39
- get-valid-quote-statuses → update-quote-status("Rejected") →
40
- verify-update-quote-status.
41
-
42
- - Fast approval: resolve-account-by-name →
43
- list-pending-quotes-for-account → get-quote-detail →
44
- get-valid-quote-statuses → update-quote-status("Approved") →
45
- verify-update-quote-status.
46
-
47
- Session tips: always call get-valid-quote-statuses before update-quote-status (org-specific picklist). Buyer visibility on notes requires org-level Experience Cloud external file sharing — composite succeeds either way but the buyer won't see the note if it's off; confirm once per environment. update-quote-line-item is field-level merge (omit=unchanged, null=clear). list-all-quotes-for-account is for historical review, off the primary path.
48
- # Pagination contract (uniform across all list steps — agent-first, NOT UI-scroll-first)
49
- Defaults: `pageSize=20` on every list step (10 on resolve-account-by-name — LIKE search is noisy, top matches only). Never pass pageSize > 50 unless the merchant explicitly asks for exhaustive results.
50
- Page-1-then-wait (CRITICAL): after page 1, the agent MUST STOP and hand back to the merchant even when the page is saturated (`len(records) == pageSize`). Do NOT auto-walk pages 2+ in the same turn. Correct behavior:
51
-
52
- ### Phase 1: Fetch page 1 with the step's default pageSize
53
-
54
- Fetch page 1 with the step's default pageSize.
55
-
56
- ### Phase 2: Render the rows
57
-
58
- Render the rows.
59
-
60
- ### Phase 3: If len(records) == pageSize, tell the merchant
61
-
62
- "showing first
63
- {pageSize} — say 'more' / 'next' to load the next page, or
64
- narrow with a filter (nameFilter, status) if you're looking
65
- for something specific." Then WAIT.
66
- Only fetch subsequent pages on explicit merchant reaction ("more", "next", "keep going", "show the rest"). Agentic clients (Slack, Teams, Claude Desktop) don't want a wall-of-text dump. One page per merchant turn.
67
- Cursor keying (why fields differ across steps):
68
- - Account, Quote, Product steps → cursor on `afterId` with
69
- `Id < 'lastIdFromPreviousPage'` and `ORDER BY Id DESC`. Id is
70
- unique; wall-clock cursors DROP rows on bulk-load orgs
71
- (verified 2026-07-27: 4 Accounts sharing
72
- CreatedDate=2026-07-01T10:02:10.000 were skipped by a
73
- CreatedDate cursor).
74
- - list-quote-line-items → cursor on `afterLineNumber` (LineNumber
75
- is Salesforce-issued per-Quote monotonic + unique — the one
76
- case where a non-Id cursor is provably safe). String-quoted:
77
- `LineNumber > '00000005'`.
78
- - list-all-storefronts, list-storefronts-for-buyer-account,
79
- list-buyer-groups-for-storefront, list-notes-on-quote → NO
80
- cursor; natural universe is bounded — expand pageSize instead.
81
-
82
- Cursor SOQL shape (CRITICAL): the `q:` template on each cursor step is the PAGE-1 shape (no cursor clause). Page 2+ requires the agent to REBUILD the SOQL by injecting the cursor predicate before `ORDER BY`. Example (list-all-accessible-accounts):
83
- Page 1: `SELECT ... WHERE IsBuyer = true ORDER BY Id DESC LIMIT 20`
84
- Page 2: `SELECT ... WHERE IsBuyer = true AND Id <
85
- 'lastIdFromPage1' ORDER BY Id DESC LIMIT 20`
86
- Do NOT try `OR afterId = null` — SOQL rejects `null = null` and `'X' = null` (verified 2026-07-27). Conditional injection is the only working shape.
87
- Stop-when-tail: if a step returns fewer rows than pageSize, that's the tail — do NOT invoke again with a cursor.
88
- Hard ceilings (safety net, NOT the default; page-1-then-wait means reaching page 5 requires the merchant to have said "more" 5 times): Accounts 5 pages · Quotes 5 · Products 5 (push toward nameFilter before walking >250 SKUs) · Quote line items 10 (Cart→Quote max 2000) · Notes 3. At ceiling with a still-saturated page: warn the merchant + suggest a narrower filter.
89
- # Auto-refresh after every mutation (no confirmation needed)
90
- Every write step is paired with a verify-* step. The agent MUST invoke the paired verify AUTOMATICALLY after the write succeeds — do NOT ask permission. The verify is part of the write's contract. After verify, ALSO refresh + DISPLAY the affected Quote state:
91
- - After update-quote-line-item or add-quote-line-item: run
92
- list-quote-line-items (page 1) AND re-fetch get-quote-detail
93
- for Subtotal / Discount / GrandTotal / LineItemCount. Show
94
- before/after on both the mutated line and Quote rollups.
95
- - After add-buyer-visible-note: run list-notes-on-quote so the
96
- merchant sees the new note in the full list.
97
- - After update-quote-status: run get-quote-detail for the
98
- Status transition + LastModifiedDate; if Status moved to
99
- Approved / Rejected / Presented, ALSO re-run
100
- list-quote-line-items so the merchant captures the buyer-facing
101
- snapshot.
102
- Merchant should never have to ask "what does the quote look like now?" Skip auto-refresh only on explicit "just do the update, don't re-fetch".
103
-
104
- ## Critical Constraints
105
-
106
- **Preconditions:**
107
-
108
- - Caller is an INTERNAL Salesforce user (User.UserType='Standard'). NOT for portal / community buyer users — they use the buyer-facing commerce-quotes-connect-api skill. Internal identity unlocks cross-Account visibility, QuoteLineItem edit access, and the ability to create ContentDocumentLink with Visibility=AllUsers. (check: `User.UserType == 'Standard'`)
109
- - Read + Edit CRUD on Quote sObject with editable FLS on Status. Without it, update-quote-status returns HTTP 400 INSUFFICIENT_ACCESS / INVALID_FIELD_FOR_INSERT_UPDATE. (check: `User.hasQuoteEditAccess`)
110
- - Read + Edit CRUD on QuoteLineItem with editable FLS on UnitPrice and Discount. Standard Sales User profiles have this; custom sales-ops profiles may not. Without it, update-quote-line-item returns HTTP 400 INSUFFICIENT_ACCESS. (check: `User.hasQuoteLineItemEditAccess`)
111
- - Record-level access to the target Quote / QuoteLineItem via ownership, role hierarchy, sharing rules, or manual shares. In B2B Commerce orgs, buyer-created quotes are typically owned by the buyer's community user and shared with merchants via Account ownership or account-team rules. Without access, SOQL returns zero rows (silent) and GET returns 404 — org config issue, not fixable in the skill. (check: `RecordLevelAccess.Quote`)
112
- - Create on ContentNote and ContentDocumentLink (standard users have this by default). Without it, add-buyer-visible-note composite returns HTTP 403 on the first sub-call. (check: `User.hasContentNoteCreateAccess`)
113
- - Org does NOT have Salesforce CPQ installed, OR (if installed) the target Quotes are standard Quote records, not SBQQ__Quote__c. This skill targets standard Quote / QuoteLineItem; CPQ orgs working exclusively with SBQQ objects need a CPQ-specific variant (QLI edits may be blocked by CPQ triggers). (check: `Org.noCPQOrStandardQuoteInUse`)
114
- - No active Approval Process locking Quote.Status. If the Quote is mid-approval, PATCH returns HTTP 400 UNABLE_TO_LOCK_ROW / ENTITY_IS_LOCKED — that flow needs a separate skill built around ProcessInstanceWorkitem + /process/approvals. (check: `Quote.noActiveApprovalProcessLock`)
115
- - For add-quote-line-item ONLY — Quote.Pricebook2Id must be set, the buyer Account must be in a BuyerGroup with an active CommerceEntitlementPolicy + at least one CommerceEntitlementProduct, and at least one of those products must have an active PricebookEntry in the Quote's pricebook. Misalignment → empty eligible-products query or INVALID_CROSS_REFERENCE_KEY on POST. (check: `BuyerAccount.hasEntitledProductsInQuotePricebook`)
116
- - For buyer-visible notes ONLY — Experience Cloud external file sharing must be enabled at the org level (Setup → Sharing Settings → File Sharing = "Set by Record"). If off, the note is created + linked successfully but NOT visible to buyers in Experience Cloud (silent — the 2xx response doesn't indicate buyer visibility). (check: `ExperienceCloud.externalFileSharingEnabled`)
117
-
118
- ## Verification Checklist
119
-
120
- After every write operation, confirm the effect by re-reading state:
121
-
122
- - After `update-quote-line-item`: call `verify-update-quote-line-item`
123
- - After `add-quote-line-item`: call `verify-add-quote-line-item`
124
- - After `add-buyer-visible-note`: call `verify-add-buyer-visible-note`
125
- - After `update-quote-status`: call `verify-update-quote-status`
126
-
127
- ## Operations Reference
128
-
129
- Operations grouped by purpose. Use these as the building blocks for the workflows above.
130
-
131
- ### Summary
132
-
133
- | Operation | Purpose | Status | Call | Depends on |
134
- |-----------|---------|--------|------|------------|
135
- | `resolve-account-by-name` | read | — | `queryAccounts` | — |
136
- | `list-all-storefronts` | read | — | `queryAllStorefronts` | — |
137
- | `list-buyer-groups-for-storefront` | read | — | `queryBuyerGroupsForStorefront` | `list-all-storefronts` |
138
- | `list-accounts-for-buyer-groups` | read | — | `queryAccountsForBuyerGroups` | `list-buyer-groups-for-storefront` |
139
- | `list-all-accessible-accounts` | read | — | `queryAllAccessibleAccounts` | — |
140
- | `list-pending-quotes-for-account` | read | — | `queryQuotesPendingReview` | `resolve-account-by-name` |
141
- | `list-all-quotes-for-account` | read | — | `queryAllQuotesForAccount` | `resolve-account-by-name` |
142
- | `get-quote-detail` | read | — | `getQuoteDetail` | `list-pending-quotes-for-account` |
143
- | `list-quote-line-items` | read | — | `queryQuoteLineItems` | `get-quote-detail` |
144
- | `list-storefronts-for-buyer-account` | read | — | `queryStorefrontsForBuyerAccount` | `get-quote-detail` |
145
- | `list-entitlement-policies-for-buyer` | read | — | `queryEntitlementPoliciesForBuyer` | `list-storefronts-for-buyer-account` |
146
- | `list-eligible-products-for-storefront` | read | — | `queryEligibleProductsForStorefront` | `list-entitlement-policies-for-buyer` |
147
- | `update-quote-line-item` | write | — | `updateQuoteLineItem` | `list-quote-line-items` |
148
- | `verify-update-quote-line-item` | verify | — | `getQuoteLineItem` | `update-quote-line-item` |
149
- | `add-quote-line-item` | write | — | `createQuoteLineItem` | `list-eligible-products-for-storefront` |
150
- | `verify-add-quote-line-item` | verify | — | `getQuoteLineItem` | `add-quote-line-item` |
151
- | `list-notes-on-quote` | read | — | `queryQuoteContentDocumentLinks` | `get-quote-detail` |
152
- | `get-note-full` | read | — | `getContentNote` | `list-notes-on-quote` |
153
- | `get-note-body` | read | — | `getContentNoteBody` | `get-note-full` |
154
- | `add-buyer-visible-note` | write | — | `addBuyerVisibleQuoteNote` | `get-quote-detail` |
155
- | `verify-add-buyer-visible-note` | verify | — | `queryQuoteContentDocumentLinks` | `add-buyer-visible-note` |
156
- | `get-valid-quote-statuses` | validate | — | `getQuoteStatusPicklistValues` | — |
157
- | `update-quote-status` | write | — | `updateQuoteStatus` | `get-quote-detail`, `get-valid-quote-statuses` |
158
- | `verify-update-quote-status` | verify | — | `getQuoteDetail` | `update-quote-status` |
159
-
160
- ### Dependency graph
161
-
162
- ```mermaid
163
- graph TD
164
- resolve_account_by_name["resolve-account-by-name (read)"]
165
- list_all_storefronts["list-all-storefronts (read)"]
166
- list_buyer_groups_for_storefront["list-buyer-groups-for-storefront (read)"]
167
- list_accounts_for_buyer_groups["list-accounts-for-buyer-groups (read)"]
168
- list_all_accessible_accounts["list-all-accessible-accounts (read)"]
169
- list_pending_quotes_for_account["list-pending-quotes-for-account (read)"]
170
- list_all_quotes_for_account["list-all-quotes-for-account (read)"]
171
- get_quote_detail["get-quote-detail (read)"]
172
- list_quote_line_items["list-quote-line-items (read)"]
173
- list_storefronts_for_buyer_account["list-storefronts-for-buyer-account (read)"]
174
- list_entitlement_policies_for_buyer["list-entitlement-policies-for-buyer (read)"]
175
- list_eligible_products_for_storefront["list-eligible-products-for-storefront (read)"]
176
- update_quote_line_item["update-quote-line-item (write)"]
177
- verify_update_quote_line_item["verify-update-quote-line-item (verify)"]
178
- add_quote_line_item["add-quote-line-item (write)"]
179
- verify_add_quote_line_item["verify-add-quote-line-item (verify)"]
180
- list_notes_on_quote["list-notes-on-quote (read)"]
181
- get_note_full["get-note-full (read)"]
182
- get_note_body["get-note-body (read)"]
183
- add_buyer_visible_note["add-buyer-visible-note (write)"]
184
- verify_add_buyer_visible_note["verify-add-buyer-visible-note (verify)"]
185
- get_valid_quote_statuses["get-valid-quote-statuses (validate)"]
186
- update_quote_status["update-quote-status (write)"]
187
- verify_update_quote_status["verify-update-quote-status (verify)"]
188
- list_all_storefronts --> list_buyer_groups_for_storefront
189
- list_buyer_groups_for_storefront --> list_accounts_for_buyer_groups
190
- resolve_account_by_name --> list_pending_quotes_for_account
191
- resolve_account_by_name --> list_all_quotes_for_account
192
- list_pending_quotes_for_account --> get_quote_detail
193
- get_quote_detail --> list_quote_line_items
194
- get_quote_detail --> list_storefronts_for_buyer_account
195
- list_storefronts_for_buyer_account --> list_entitlement_policies_for_buyer
196
- list_entitlement_policies_for_buyer --> list_eligible_products_for_storefront
197
- list_quote_line_items --> update_quote_line_item
198
- update_quote_line_item --> verify_update_quote_line_item
199
- list_eligible_products_for_storefront --> add_quote_line_item
200
- add_quote_line_item --> verify_add_quote_line_item
201
- get_quote_detail --> list_notes_on_quote
202
- list_notes_on_quote --> get_note_full
203
- get_note_full --> get_note_body
204
- get_quote_detail --> add_buyer_visible_note
205
- add_buyer_visible_note --> verify_add_buyer_visible_note
206
- get_quote_detail --> update_quote_status
207
- get_valid_quote_statuses --> update_quote_status
208
- update_quote_status --> verify_update_quote_status
209
- ```
210
-
211
- ### Read operations
212
-
213
- #### `resolve-account-by-name`
214
-
215
- Resolve an AccountId from a merchant-supplied account name or partial name. Use SOQL LIKE to match on Account.Name; return the top matches so the merchant can disambiguate. If the merchant already has an AccountId, skip this step and pass the id directly to list-pending-quotes-for-account.
216
-
217
-
218
- **Call:** `queryAccounts`
219
-
220
- **Inputs:**
221
-
222
- - `accountNameQuery` *(`String`)* — Merchant-supplied account name or fragment. Use SOQL LIKE semantics — %fragment% for substring match, or an exact name for exact match. Case-insensitive.
223
-
224
- - `pageSize` *(`Integer`)* — Rows to return. Defaults to 10 (agent-first UX). Bump up to 50 only if the merchant explicitly asks for more matches. See the top-level "Pagination contract" section.
225
-
226
- #### `list-all-storefronts`
227
-
228
- List B2B Commerce storefronts (WebStore Type='B2B'). Entry point for browsing buyer accounts by storefront. Followed by list-buyer-groups-for-storefront then list-accounts-for-buyer-groups.
229
-
230
-
231
- **Call:** `queryAllStorefronts`
232
-
233
- **Inputs:**
234
-
235
- - `includeAllStorefrontTypes` *(`Boolean`)* — Default false → filter WHERE Type='B2B' (B2C / D2C storefronts don't have merchant quote review). Pass true only when the merchant explicitly wants all storefronts on the org (rare, e.g. org-wide inventory review) — the agent drops the WHERE entirely (see agent_guidance).
236
-
237
- - `pageSize` *(`Integer`)* — Rows to return. Defaults to 20 — the merchant is picking one storefront so seeing the full spread at once beats paginating. Bump to 50 only if the merchant explicitly asks. No cursor on this step — storefronts are org-bounded (≤100/org), so if the first page hits the ceiling, expand pageSize rather than paginating. See the top-level "Pagination contract".
238
-
239
- #### `list-buyer-groups-for-storefront`
240
-
241
- List BuyerGroups mapped to a storefront. Step 1 of the 2-hop "browse buyer accounts by storefront" flow (feeds list-accounts-for-buyer-groups). Split to stay under SOQL's 2-level semi-join limit.
242
-
243
-
244
- **Call:** `queryBuyerGroupsForStorefront`
245
-
246
- **Inputs:**
247
-
248
- - `webStoreId` *(`String`)* — Id of the target WebStore, from list-all-storefronts or supplied directly by the merchant.
249
-
250
- - **Source:** output of `list-all-storefronts`
251
- - `pageSize` *(`Integer`)* — Rows to return. Defaults to 20 — buyer groups per storefront are typically <20 so the first page captures the full mapping in one call, letting the merchant pick without paginating. Expand to 50 only for the rare storefront with more buyer groups than that. No cursor — the natural universe is bounded per storefront. See top-level "Pagination contract".
252
-
253
-
254
- **Depends on:** `list-all-storefronts`
255
-
256
- #### `list-accounts-for-buyer-groups`
257
-
258
- List the buyer Accounts that are members of a set of BuyerGroups, ordered by Account.Id DESC and paged via Id cursor. Step 2 of the 2-hop "browse buyer accounts by storefront" flow — takes BuyerGroupIds from list-buyer-groups-for-storefront and returns the reachable Accounts.
259
-
260
-
261
- **Call:** `queryAccountsForBuyerGroups`
262
-
263
- **Inputs:**
264
-
265
- - `buyerGroupIds` *(`List<String>`)* — Array of BuyerGroupIds from list-buyer-groups-for-storefront.buyer_groups[*].BuyerGroupId. Rendered into a SOQL IN clause.
266
-
267
- - **Source:** output of `list-buyer-groups-for-storefront`
268
- - `pageSize` *(`Integer`)* — Rows to return. Default 20; bump to 50 on merchant request. See top-level "Pagination contract".
269
-
270
- - `afterId` *(`String`)* — Cursor. Omit on page 1. On saturated pages, pass the LAST record's Id. See top-level "Pagination contract".
271
-
272
-
273
- **Depends on:** `list-buyer-groups-for-storefront`
274
-
275
- #### `list-all-accessible-accounts`
276
-
277
- List every buyer Account visible to the merchant (across all storefronts), paged via Id cursor. Filtered on IsBuyer = true so partner / internal / non-commerce Accounts do not clutter the list. Use when the merchant does not know the account name or storefront and wants to browse.
278
-
279
-
280
- **Call:** `queryAllAccessibleAccounts`
281
-
282
- **Inputs:**
283
-
284
- - `pageSize` *(`Integer`)* — Rows to return. Default 20; bump to 50 on merchant request. See top-level "Pagination contract".
285
-
286
- - `afterId` *(`String`)* — Cursor. Omit on page 1. On saturated pages, pass the LAST record's Id. See top-level "Pagination contract".
287
-
288
- #### `list-pending-quotes-for-account`
289
-
290
- List all quotes for a specific Account that still need merchant review — i.e., Status is neither Approved nor Rejected. Returns the fields commonly needed to triage which quote to drill into.
291
-
292
-
293
- **Call:** `queryQuotesPendingReview`
294
-
295
- **Inputs:**
296
-
297
- - `accountId` *(`String`)* — Id of the Account whose pending quotes are being listed. Comes from resolve-account-by-name.accounts[*].Id, or supplied directly by the merchant.
298
-
299
- - **Source:** output of `resolve-account-by-name`
300
- - `pageSize` *(`Integer`)* — Rows to return. Default 20; bump to 50 on merchant request. See top-level "Pagination contract".
301
-
302
- - `afterId` *(`String`)* — Cursor. Omit on page 1. On saturated pages, pass the LAST record's Id. See top-level "Pagination contract".
303
-
304
-
305
- **Depends on:** `resolve-account-by-name`
306
-
307
- #### `list-all-quotes-for-account`
308
-
309
- List all quotes for an Account regardless of Status — for when the merchant wants to see historical / already-decided quotes too. Same shape as list-pending-quotes-for-account but without the Status filter.
310
-
311
-
312
- **Call:** `queryAllQuotesForAccount`
313
-
314
- **Inputs:**
315
-
316
- - `accountId` *(`String`)*
317
- - `pageSize` *(`Integer`)* — Rows to return. Default 20; bump to 50 on merchant request. See top-level "Pagination contract".
318
-
319
- - `afterId` *(`String`)* — Cursor. Omit on page 1. On saturated pages, pass the LAST record's Id. See top-level "Pagination contract".
320
-
321
-
322
- **Depends on:** `resolve-account-by-name`
323
-
324
- #### `get-quote-detail`
325
-
326
- Retrieve full field detail for a single Quote by Id. Returns all accessible fields on the Quote sObject subject to FLS — including pricing rollups, addresses, contact, opportunity linkage, status, description, and any org-defined custom fields.
327
-
328
-
329
- **Call:** `getQuoteDetail`
330
-
331
- **Inputs:**
332
-
333
- - `quoteId` *(`String`)* — Id of the target Quote. Comes from a prior list step's records[*].Id.
334
-
335
-
336
- **Depends on:** `list-pending-quotes-for-account`
337
-
338
- #### `list-quote-line-items`
339
-
340
- List line items on a specific Quote with their pricing and product references, paged by LineNumber ASC with a small agent-first default. This is the surface the merchant reviews before deciding to adjust price / discount, add a note, or approve / reject.
341
-
342
-
343
- **Call:** `queryQuoteLineItems`
344
-
345
- **Inputs:**
346
-
347
- - `quoteId` *(`String`)*
348
- - `pageSize` *(`Integer`)* — Rows to return. Default 20; bump to 50 on merchant request (Cart→Quote conversions can reach 2000 lines). See top-level "Pagination contract".
349
-
350
- - `afterLineNumber` *(`String`)* — Cursor. Omit on page 1. On saturated pages, pass the LAST record's LineNumber as a zero-padded string (e.g. "00000005"). See top-level "Pagination contract" for the string-quoting requirement.
351
-
352
-
353
- **Depends on:** `get-quote-detail`
354
-
355
- #### `list-storefronts-for-buyer-account`
356
-
357
- List B2B storefronts (WebStore) a buyer Account is entitled to. Runs before list-eligible-products-for-storefront: an Account can belong to multiple BuyerGroups across WebStores — merchant picks one. Walks Account → BuyerGroupMember → BuyerGroup → WebStoreBuyerGroup → WebStore.
358
-
359
-
360
- **Call:** `queryStorefrontsForBuyerAccount`
361
-
362
- **Inputs:**
363
-
364
- - `accountId` *(`String`)* — Id of the buyer Account (Quote.AccountId OR Quote.QuoteAccountId — buyer-created quotes populate the latter; use whichever is non-null).
365
-
366
- - `pageSize` *(`Integer`)* — Rows to return. Default 20; bump to 50 on merchant request. No cursor — storefront entitlements per Account are naturally bounded.
367
-
368
-
369
- **Depends on:** `get-quote-detail`
370
-
371
- #### `list-entitlement-policies-for-buyer`
372
-
373
- Resolve CommerceEntitlementPolicy Ids a buyer Account is entitled under (BuyerGroupMember → CommerceEntitlementBuyerGroup). Preliminary step for list-eligible-products-for-storefront — SOQL forbids nested semi-joins, so the full entitlement walk is split into TWO queries (this one produces PolicyIds; the next inlines them into a PricebookEntry query).
374
-
375
-
376
- **Call:** `queryEntitlementPoliciesForBuyer`
377
-
378
- **Inputs:**
379
-
380
- - `accountId` *(`String`)* — Id of the buyer Account (from Quote.AccountId or Quote.QuoteAccountId). Passed to BuyerGroupMember.BuyerId.
381
-
382
-
383
- **Depends on:** `list-storefronts-for-buyer-account`
384
-
385
- #### `list-eligible-products-for-storefront`
386
-
387
- List products a buyer Account is entitled to buy from a storefront, joined with the Quote's Pricebook so each carries a resolvable PricebookEntryId + UnitPrice. Used before add-quote-line-item so the merchant picks from a genuinely eligible catalog. Consumes PolicyIds from list-entitlement-policies-for-buyer (SOQL single-semi-join limit — the walk is split into two steps).
388
-
389
-
390
- **Call:** `queryEligibleProductsForStorefront`
391
-
392
- **Inputs:**
393
-
394
- - `policyIds` *(`String`)* — Comma-separated, single-quoted PolicyId list from list-entitlement-policies-for-buyer.records[*].PolicyId (inlined into a SOQL IN(...) clause). Example: `'1Ce000000000001AAA','1Ce000000000002AAA'`. If the policies list is empty, DO NOT call this step; surface "buyer has no entitlements".
395
-
396
- - **Source:** output of `list-entitlement-policies-for-buyer`
397
- - `quotePricebookId` *(`String`)* — Pricebook2Id from Quote.Pricebook2Id (via get-quote-detail). NOT WebStore's default pricebook — the two can differ, and QuoteLineItem.PricebookEntryId must resolve against the Quote's pricebook. See agent_guidance for the trap.
398
-
399
- - `nameFilter` *(`String`)* — Optional SOQL LIKE fragment on Product2.Name. Omit → all eligible products (paged). Pass "Alpine" → "%Alpine%". Recommended for catalogs >50 SKUs.
400
-
401
- - `pageSize` *(`Integer`)* — Rows to return. Default 20; bump to 50 on merchant request. Prefer nameFilter over walking a large catalog. See top-level "Pagination contract".
402
-
403
- - `afterId` *(`String`)* — Cursor. Omit on page 1. On saturated pages, pass the LAST PricebookEntry.Id. See top-level "Pagination contract".
404
-
405
-
406
- **Depends on:** `list-entitlement-policies-for-buyer`
407
-
408
- #### `list-notes-on-quote`
409
-
410
- List notes attached to a Quote via ContentDocumentLink, filtered to notes only (ContentDocument.FileType='SNOTE'). Returns metadata + TextPreview snippet (~255 chars) — not the full body. Use to show note history without pulling full content per note.
411
-
412
-
413
- **Call:** `queryQuoteContentDocumentLinks`
414
-
415
- **Inputs:**
416
-
417
- - `quoteId` *(`String`)*
418
- - `pageSize` *(`Integer`)* — Rows to return. Defaults to 20 — a Quote typically has ≤20 notes so the first page usually captures the entire history in one call, avoiding the paginate/expand round-trip. Bump to 50 only for pathological Quotes. See top-level "Pagination contract".
419
-
420
-
421
- **Depends on:** `get-quote-detail`
422
-
423
- #### `get-note-full`
424
-
425
- Metadata + TextPreview for a single ContentNote by Id. Content is a URL reference (relative /Content path), NOT the inline body — the real note body is base64 HTML served by a separate binary GET (see get-note-body). TextPreview is plain-text and usually enough for display.
426
-
427
-
428
- **Call:** `getContentNote`
429
-
430
- **Inputs:**
431
-
432
- - `contentDocumentId` *(`String`)* — The ContentDocumentId returned by list-notes-on-quote — it is the Id of the underlying ContentNote (ContentNote inherits its Id from ContentDocument at storage time).
433
-
434
-
435
- **Depends on:** `list-notes-on-quote`
436
-
437
- #### `get-note-body`
438
-
439
- Fetch the full HTML body of a ContentNote from its /Content binary endpoint. Only needed when TextPreview is insufficient (note longer than ~255 chars or full formatting required). Response is the raw HTML string, not a JSON envelope.
440
-
441
-
442
- **Call:** `getContentNoteBody`
443
-
444
- **Inputs:**
445
-
446
- - `contentDocumentId` *(`String`)*
447
-
448
- **Depends on:** `get-note-full`
449
-
450
- ### Write operations
451
-
452
- #### `update-quote-line-item`
453
-
454
- Update UnitPrice, Discount, and/or Description on one QuoteLineItem. UnitPrice and Discount are independent (updating one doesn't clear the other). TotalPrice + Quote rollups (Subtotal, GrandTotal) recompute automatically. Discount is a percentage 0-100, NOT a fraction.
455
-
456
-
457
- **Call:** `updateQuoteLineItem`
458
-
459
- **Inputs:**
460
-
461
- - `quoteLineItemId` *(`String`)*
462
- - `unitPrice` *(`Number`)* — New per-unit price for the line, in the Quote's currency. Omit to leave UnitPrice unchanged. Cannot be negative.
463
-
464
- - `discount` *(`Number`)* — Discount percentage 0-100 (NOT 0-1). Omit to leave Discount unchanged. Zero clears any existing discount.
465
-
466
- - `description` *(`String`)* — Line-item description / notes visible to buyer in the storefront.
467
-
468
-
469
- **Depends on:** `list-quote-line-items`
470
-
471
- **Rollback:** {'description': 'Re-PATCH the line item with the ORIGINAL UnitPrice / Discount / Description values captured from list-quote-line-items before the write. sObject PATCH does not track history; the merchant (or agent) is responsible for capturing prior values if rollback is needed.\n', 'operation': 'updateQuoteLineItem', 'invocation': {'kind': 'rest', 'method': 'PATCH', 'path': '/sobjects/QuoteLineItem/{quoteLineItemId}', 'body': {'UnitPrice': '{originalUnitPrice}', 'Discount': '{originalDiscount}', 'Description': '{originalDescription}'}}}
472
-
473
- #### `add-quote-line-item`
474
-
475
- Add a NEW line item to a Quote — used for goodwill operations like a free promotional product (Discount=100). Product MUST come from list-eligible-products-for-storefront so entitlement is honored and PricebookEntry resolves against the Quote's pricebook. TotalPrice + Quote rollups recompute via triggers.
476
-
477
-
478
- **Call:** `createQuoteLineItem`
479
-
480
- **Inputs:**
481
-
482
- - `quoteId` *(`String`)*
483
- - `product2Id` *(`String`)* — Product2Id of the entitled product. Comes from list-eligible-products-for-storefront.eligible_products[*].Product2Id.
484
-
485
- - **Source:** output of `list-eligible-products-for-storefront`
486
- - `pricebookEntryId` *(`String`)* — PricebookEntry Id for the (product, pricebook) pair. Comes from list-eligible-products-for-storefront.eligible_products[*].Id. MUST resolve against the Quote's pricebook — using a PricebookEntry from a different pricebook fails with INVALID_CROSS_REFERENCE_KEY.
487
-
488
- - **Source:** output of `list-eligible-products-for-storefront`
489
- - `quantity` *(`Number`)* — Quantity of the product to add. Must be >= 1.
490
-
491
- - `unitPrice` *(`Number`)* — Per-unit price to stamp on the line. REQUIRED on the sObject REST POST — Salesforce does NOT auto-default from PricebookEntry.UnitPrice on this endpoint (verified 2026-07-24: POST with PricebookEntryId only + Quantity but no UnitPrice returns HTTP 400 REQUIRED_FIELD_MISSING: [UnitPrice]). Fetch the pricebook's list price from list-eligible-products-for-storefront.eligible_products[*].UnitPrice and pass it through explicitly (or pass a merchant-negotiated value). Cannot be negative.
492
-
493
- - **Source:** output of `list-eligible-products-for-storefront`
494
- - `discount` *(`Number`)* — Discount percentage 0-100. Use 100 to give the item free (TotalPrice = 0). Omit for no discount.
495
-
496
- - `description` *(`String`)* — Line-item description / notes visible to buyer in the storefront. Recommended to fill this in for goodwill / promotional lines so the buyer sees why the free item was added (e.g., "Promotional item — thank you for your business").
497
-
498
-
499
- **Depends on:** `list-eligible-products-for-storefront`
500
-
501
- **Rollback:** {'description': 'DELETE the QuoteLineItem. Quote-level rollups (Subtotal, GrandTotal) auto-recalculate down after the delete via standard triggers.\n', 'operation': 'deleteQuoteLineItem', 'invocation': {'kind': 'rest', 'method': 'DELETE', 'path': '/sobjects/QuoteLineItem/{quote_line_item_id}'}}
502
-
503
- #### `add-buyer-visible-note`
504
-
505
- Create a buyer-visible note on a Quote. Composite two-record op: (1) INSERT ContentNote (title + base64 HTML body); (2) INSERT ContentDocumentLink linking that note to the Quote with ShareType='V' + Visibility='AllUsers' (visible to external buyer users). Both commit atomically in one /composite/ call.
506
-
507
-
508
- **Call:** `addBuyerVisibleQuoteNote`
509
-
510
- **Inputs:**
511
-
512
- - `quoteId` *(`String`)* — Id of the Quote to attach the note to.
513
- - `title` *(`String`)* — Note title. Max 200 chars. Shown to buyer in note list.
514
-
515
- - `bodyText` *(`String`)* — Plain-text body of the note. THE AGENT MUST base64-encode the HTML-wrapped body before dispatch — see agent_guidance below for the exact transformation. Max ~500 KB decoded.
516
-
517
-
518
- **Depends on:** `get-quote-detail`
519
-
520
- **Rollback:** {'description': 'Delete both records: DELETE the ContentDocumentLink first, then DELETE the ContentNote. If the ContentNote is deleted while links still exist, Salesforce cascades but leaves orphan entries in some audit tables — clean up the link first.\n', 'operation': 'deleteBuyerVisibleQuoteNote', 'invocation': {'kind': 'rest', 'method': 'POST', 'path': '/composite', 'body': {'compositeRequest': [{'method': 'DELETE', 'url': '/sobjects/ContentDocumentLink/{content_document_link_id}', 'referenceId': 'dropLink'}, {'method': 'DELETE', 'url': '/sobjects/ContentNote/{content_note_id}', 'referenceId': 'dropNote'}]}}}
521
-
522
- #### `update-quote-status`
523
-
524
- Approve or reject a quote by flipping Quote.Status to a specific picklist value. This is a direct field PATCH — no Approval Process is invoked. The merchant is responsible for picking a valid value (typically "Approved" or "Rejected") based on get-valid-quote-statuses output.
525
-
526
-
527
- **Call:** `updateQuoteStatus`
528
-
529
- **Inputs:**
530
-
531
- - `quoteId` *(`String`)*
532
- - `newStatus` *(`String`)* — Target Quote.Status value. Must be an active value from get-valid-quote-statuses. Typical values: "Approved", "Rejected". Some orgs use "Denied" or "Accepted" instead.
533
-
534
- - **Source:** output of `get-valid-quote-statuses`
535
-
536
- **Depends on:** `get-quote-detail`, `get-valid-quote-statuses`
537
-
538
- **Rollback:** {'description': 'PATCH Quote.Status back to its prior value (captured from get-quote-detail before the update). Salesforce does not track prior-status automatically for direct PATCHes.\n', 'operation': 'updateQuoteStatus', 'invocation': {'kind': 'rest', 'method': 'PATCH', 'path': '/sobjects/Quote/{quoteId}', 'body': {'Status': '{priorStatus}'}}}
539
-
540
- ### Verify operations
541
-
542
- #### `verify-update-quote-line-item`
543
-
544
- Re-read the QuoteLineItem after update to confirm UnitPrice / Discount / Description landed.
545
-
546
-
547
- **Call:** `getQuoteLineItem`
548
-
549
- **Inputs:**
550
-
551
- - `quoteLineItemId` *(`String`)*
552
-
553
- **Depends on:** `update-quote-line-item`
554
-
555
- #### `verify-add-quote-line-item`
556
-
557
- Re-read the newly created QuoteLineItem to confirm the Quantity, UnitPrice, Discount, and TotalPrice landed correctly — especially useful for the Discount=100 free-giveaway pattern (asserts TotalPrice == 0).
558
-
559
-
560
- **Call:** `getQuoteLineItem`
561
-
562
- **Inputs:**
563
-
564
- - `quoteLineItemId` *(`String`)*
565
-
566
- **Depends on:** `add-quote-line-item`
567
-
568
- #### `verify-add-buyer-visible-note`
569
-
570
- Re-list ContentDocumentLinks on the quote (filtered to FileType='SNOTE') and confirm the newly added note appears with the expected title and correct share/visibility settings.
571
-
572
-
573
- **Call:** `queryQuoteContentDocumentLinks`
574
-
575
- **Inputs:**
576
-
577
- - `quoteId` *(`String`)*
578
- - `expectedTitle` *(`String`)*
579
-
580
- **Depends on:** `add-buyer-visible-note`
581
-
582
- #### `verify-update-quote-status`
583
-
584
- Re-read the Quote after status update to confirm the new Status persisted.
585
-
586
-
587
- **Call:** `getQuoteDetail`
588
-
589
- **Inputs:**
590
-
591
- - `quoteId` *(`String`)*
592
-
593
- **Depends on:** `update-quote-status`
594
-
595
- ### Other operations
596
-
597
- #### `get-valid-quote-statuses`
598
-
599
- Fetch valid Quote.Status picklist values via the UI-API picklist-values endpoint (master record type 012000000000000AAA — the standard record type used when Quote has no custom types). Status is customizable; call before update-quote-status so the agent picks a value the org accepts. Returns just active values (~1KB) — NOT the full sObject describe (~800KB), which trips result-truncation gates.
600
-
601
-
602
- **Call:** `getQuoteStatusPicklistValues`