@salesforce/afv-skills 1.65.0 → 1.66.0

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 (379) hide show
  1. package/package.json +1 -1
  2. package/skills/agentforce-offline-experimentation-run/SKILL.md +16 -15
  3. package/skills/agentforce-offline-experimentation-run/scripts/sfap_replay.py +3 -245
  4. package/skills/dx-devops-work-item-manage/SKILL.md +34 -17
  5. package/skills/dx-devops-work-item-manage/examples/common-workflows.md +49 -0
  6. package/skills/dx-devops-work-item-manage/references/commit-api.md +116 -0
  7. package/skills/experience-lwc-widget-assess/SKILL.md +79 -0
  8. package/skills/experience-lwc-widget-migrate/SKILL.md +50 -0
  9. package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +2 -23
  10. package/skills/field-service-data-capture-form-designer-configure/SKILL.md +3 -13
  11. package/skills/field-service-mobile-branding-configure/SKILL.md +3 -17
  12. package/skills/field-service-objective-designer-configure/SKILL.md +379 -72
  13. package/skills/field-service-prework-brief-deployer-configure/SKILL.md +537 -10
  14. package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1093 -65
  15. package/skills/field-service-sobject-create-configure/SKILL.md +213 -13
  16. package/skills/field-service-voice-to-form-configure/SKILL.md +11 -40
  17. package/skills/field-service-work-rule-designer-configure/SKILL.md +95 -121
  18. package/skills/platform-role-hierarchy-apply/SKILL.md +177 -0
  19. package/skills/platform-widget-generate/SKILL.md +58 -41
  20. package/skills/platform-widget-generate/references/widget-bundle-validation.md +14 -0
  21. package/skills/service-agentforce-contact-center-coordinate/SKILL.md +1 -1
  22. package/skills/service-agentforce-contact-center-coordinate/references/number_management_api.md +11 -1
  23. package/skills/service-agentforce-contact-center-coordinate/scripts/fetch-numbers.sh +12 -6
  24. package/skills/service-agentforce-contact-center-coordinate/scripts/lib.sh +16 -0
  25. package/skills/service-agentforce-contact-center-coordinate/scripts/procure-number.sh +2 -1
  26. package/skills/service-concierge-portal-generate/references/portal-deploy-runbook.md +24 -11
  27. package/skills/service-digital-engagement-channel-configure/SKILL.md +25 -14
  28. package/skills/service-digital-engagement-channel-configure/references/onboarding_contract.md +143 -0
  29. package/skills/service-digital-engagement-deployment-configure/SKILL.md +61 -12
  30. package/skills/service-digital-engagement-deployment-configure/references/connect_api_creation.md +14 -5
  31. package/skills/service-digital-engagement-deployment-configure/references/onboarding_contract.md +146 -0
  32. package/skills/service-itsm-agentic-setup-incident-management/SKILL.md +23 -13
  33. package/skills/service-itsm-agentic-setup-incident-management/references/incident-persona-psg.md +7 -6
  34. package/skills/service-itsm-agentic-setup-incident-management/references/incident-preferences.md +9 -10
  35. package/skills/service-itsm-agentic-setup-incident-management/references/major-incident-management.md +6 -6
  36. package/skills/service-itsm-agentic-setup-incident-management/references/service-mgmt-privilege.md +1 -1
  37. package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +34 -25
  38. package/skills/service-itsm-agentic-setup-incident-sla-configure/examples/milestone-patterns.md +1 -1
  39. package/skills/service-itsm-agentic-setup-incident-sla-configure/references/mcp-invocation.md +90 -86
  40. package/skills/service-itsm-agentic-setup-incident-sla-configure/references/workflow.md +63 -38
  41. package/skills/agentforce-gpt-email-generation-configure/SKILL.md +0 -312
  42. package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +0 -64
  43. package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +0 -46
  44. package/skills/automation-company-profile-info-query/SKILL.md +0 -51
  45. package/skills/automation-digital-wallet-configure/SKILL.md +0 -689
  46. package/skills/automation-flow-coordinate/SKILL.md +0 -95
  47. package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +0 -1569
  48. package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +0 -96
  49. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +0 -23
  50. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +0 -31
  51. package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +0 -179
  52. package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +0 -13
  53. package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +0 -83
  54. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +0 -69
  55. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +0 -274
  56. package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +0 -192
  57. package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +0 -130
  58. package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +0 -92
  59. package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +0 -88
  60. package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +0 -152
  61. package/skills/automation-flow-coordinate/references/elements/start/start.md +0 -539
  62. package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +0 -152
  63. package/skills/automation-flow-coordinate/references/elements/wait/wait.md +0 -497
  64. package/skills/automation-flow-coordinate/references/recipes/author/author.md +0 -868
  65. package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +0 -300
  66. package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +0 -292
  67. package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +0 -323
  68. package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +0 -109
  69. package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +0 -219
  70. package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +0 -180
  71. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +0 -175
  72. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +0 -255
  73. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +0 -212
  74. package/skills/automation-flow-coordinate/references/resources/variable/variable.md +0 -171
  75. package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +0 -786
  76. package/skills/automation-flow-coordinate/references/shared/end/end.md +0 -267
  77. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +0 -69
  78. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +0 -80
  79. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +0 -116
  80. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +0 -321
  81. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +0 -320
  82. package/skills/automation-flow-coordinate/references/shared/server-functions.md +0 -597
  83. package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +0 -69
  84. package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +0 -78
  85. package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +0 -373
  86. package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +0 -273
  87. package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +0 -259
  88. package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +0 -369
  89. package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +0 -542
  90. package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  91. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +0 -349
  92. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +0 -505
  93. package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +0 -380
  94. package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +0 -567
  95. package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +0 -159
  96. package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +0 -360
  97. package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +0 -539
  98. package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +0 -358
  99. package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +0 -602
  100. package/skills/commerce-b2b-store-configure/SKILL.md +0 -251
  101. package/skills/commerce-credit-memo-create/SKILL.md +0 -139
  102. package/skills/commerce-delivery-business-hours-configure/SKILL.md +0 -277
  103. package/skills/commerce-delivery-estimation-apply/SKILL.md +0 -155
  104. package/skills/commerce-delivery-estimation-configure/SKILL.md +0 -377
  105. package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +0 -174
  106. package/skills/commerce-estimate-bopis-query/SKILL.md +0 -279
  107. package/skills/commerce-estimate-delivery-date-query/SKILL.md +0 -349
  108. package/skills/commerce-fees-apply/SKILL.md +0 -227
  109. package/skills/commerce-fulfillment-routing-analyze/SKILL.md +0 -200
  110. package/skills/commerce-guest-buyer-create/SKILL.md +0 -173
  111. package/skills/commerce-location-bopis-configure/SKILL.md +0 -378
  112. package/skills/commerce-location-business-hours-configure/SKILL.md +0 -235
  113. package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +0 -309
  114. package/skills/commerce-location-graph-integrate/SKILL.md +0 -131
  115. package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +0 -755
  116. package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +0 -331
  117. package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +0 -579
  118. package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +0 -626
  119. package/skills/commerce-merchant-catalog-configure/SKILL.md +0 -614
  120. package/skills/commerce-merchant-extension-provider-configure/SKILL.md +0 -368
  121. package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +0 -118
  122. package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +0 -65
  123. package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +0 -90
  124. package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +0 -72
  125. package/skills/commerce-merchant-insights-query/SKILL.md +0 -279
  126. package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +0 -656
  127. package/skills/commerce-order-summary-change-apply/SKILL.md +0 -375
  128. package/skills/commerce-product-details-get/SKILL.md +0 -363
  129. package/skills/commerce-product-search/SKILL.md +0 -563
  130. package/skills/commerce-react-storefront-create/SKILL.md +0 -350
  131. package/skills/commerce-return-order-summary-create/SKILL.md +0 -513
  132. package/skills/commerce-search-relevance-analyze/SKILL.md +0 -757
  133. package/skills/commerce-temporary-processing-time-override-create/SKILL.md +0 -274
  134. package/skills/communications-initial-setup-configure/SKILL.md +0 -630
  135. package/skills/communications-multisite-configure/SKILL.md +0 -571
  136. package/skills/communications-revenue-cloud-settings-configure/SKILL.md +0 -74
  137. package/skills/communications-smb-fiber-catalog-create/SKILL.md +0 -413
  138. package/skills/communications-tmf-integrate/SKILL.md +0 -1368
  139. package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +0 -448
  140. package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +0 -269
  141. package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +0 -271
  142. package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +0 -382
  143. package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +0 -373
  144. package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +0 -389
  145. package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +0 -338
  146. package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +0 -547
  147. package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +0 -346
  148. package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +0 -1110
  149. package/skills/crm-analytics-adoption-insights-configure/SKILL.md +0 -224
  150. package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +0 -418
  151. package/skills/crm-analytics-dashboards-configure/SKILL.md +0 -731
  152. package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +0 -233
  153. package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +0 -184
  154. package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +0 -167
  155. package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +0 -55
  156. package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +0 -1350
  157. package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +0 -1862
  158. package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +0 -83
  159. package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +0 -81
  160. package/skills/data360-activation-create/SKILL.md +0 -104
  161. package/skills/data360-activation-external-platform-get/SKILL.md +0 -49
  162. package/skills/data360-activation-target-create/SKILL.md +0 -93
  163. package/skills/data360-activation-v2-create/SKILL.md +0 -456
  164. package/skills/data360-audience-dmo-get/SKILL.md +0 -38
  165. package/skills/data360-calculated-affinity-create/SKILL.md +0 -82
  166. package/skills/data360-calculated-insight-create/SKILL.md +0 -148
  167. package/skills/data360-catalog-metadata-create/SKILL.md +0 -183
  168. package/skills/data360-code-extension-create/SKILL.md +0 -115
  169. package/skills/data360-communication-capping-create/SKILL.md +0 -227
  170. package/skills/data360-connection-create/SKILL.md +0 -491
  171. package/skills/data360-content-lens-create/SKILL.md +0 -181
  172. package/skills/data360-data-action-create/SKILL.md +0 -126
  173. package/skills/data360-data-action-target-create/SKILL.md +0 -181
  174. package/skills/data360-data-clean-room-create/SKILL.md +0 -238
  175. package/skills/data360-data-governance-create/SKILL.md +0 -746
  176. package/skills/data360-data-graph-create/SKILL.md +0 -82
  177. package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +0 -38
  178. package/skills/data360-data-lake-object-create/SKILL.md +0 -207
  179. package/skills/data360-data-model-object-catalog-get/SKILL.md +0 -49
  180. package/skills/data360-data-model-object-create/SKILL.md +0 -128
  181. package/skills/data360-data-model-object-mapping-create/SKILL.md +0 -106
  182. package/skills/data360-data-space-create/SKILL.md +0 -161
  183. package/skills/data360-data-streams-create/SKILL.md +0 -324
  184. package/skills/data360-engagement-signal-get/SKILL.md +0 -38
  185. package/skills/data360-experiment-create/SKILL.md +0 -82
  186. package/skills/data360-goal-based-campaign-create/SKILL.md +0 -192
  187. package/skills/data360-harmonization-process-history-get/SKILL.md +0 -38
  188. package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +0 -84
  189. package/skills/data360-identity-resolution-create/SKILL.md +0 -115
  190. package/skills/data360-intelligent-document-processing-create/SKILL.md +0 -148
  191. package/skills/data360-knowledge-graph-construction-create/SKILL.md +0 -93
  192. package/skills/data360-knowledge-graph-create/SKILL.md +0 -216
  193. package/skills/data360-knowledge-space-mcp-configure/SKILL.md +0 -475
  194. package/skills/data360-machine-learning-mcp-configure/SKILL.md +0 -697
  195. package/skills/data360-multi-org-mcp-configure/SKILL.md +0 -117
  196. package/skills/data360-secondary-index-mcp-configure/SKILL.md +0 -126
  197. package/skills/data360-segment-mcp-configure/SKILL.md +0 -159
  198. package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +0 -93
  199. package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +0 -93
  200. package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +0 -93
  201. package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +0 -38
  202. package/skills/data360-semantic-engine-mcp-configure/SKILL.md +0 -62
  203. package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +0 -38
  204. package/skills/data360-semantic-metric-mcp-configure/SKILL.md +0 -93
  205. package/skills/data360-semantic-model-mcp-configure/SKILL.md +0 -115
  206. package/skills/data360-standard-mapping-mcp-configure/SKILL.md +0 -38
  207. package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +0 -73
  208. package/skills/experience-afv-query/SKILL.md +0 -234
  209. package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +0 -63
  210. package/skills/experience-apex-components-configure/SKILL.md +0 -69
  211. package/skills/experience-apex-pages-configure/SKILL.md +0 -107
  212. package/skills/experience-app-home-configure/SKILL.md +0 -76
  213. package/skills/experience-aura-lightning-out-access-configure/SKILL.md +0 -58
  214. package/skills/experience-briefcase-configure/SKILL.md +0 -287
  215. package/skills/experience-community-flexi-page-list-create/SKILL.md +0 -74
  216. package/skills/experience-community-template-definition-list-query/SKILL.md +0 -48
  217. package/skills/experience-community-theme-definition-list-query/SKILL.md +0 -38
  218. package/skills/experience-content-assets-configure/SKILL.md +0 -86
  219. package/skills/experience-custom-domain-create/SKILL.md +0 -727
  220. package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +0 -41
  221. package/skills/experience-field-service-app-builder-configure/SKILL.md +0 -187
  222. package/skills/experience-flow-category-configure/SKILL.md +0 -117
  223. package/skills/experience-formula-configure/SKILL.md +0 -358
  224. package/skills/experience-global-actions-configure/SKILL.md +0 -69
  225. package/skills/experience-global-publisher-layouts-configure/SKILL.md +0 -79
  226. package/skills/experience-instrumentation-configure/SKILL.md +0 -64
  227. package/skills/experience-lex-engagement-configure/SKILL.md +0 -50
  228. package/skills/experience-lightning-bolt-open/SKILL.md +0 -12
  229. package/skills/experience-lightning-out-configure/SKILL.md +0 -129
  230. package/skills/experience-lightning-preview-configure/SKILL.md +0 -67
  231. package/skills/experience-lightning-types-query/SKILL.md +0 -98
  232. package/skills/experience-malware-scan-configure/SKILL.md +0 -71
  233. package/skills/experience-my-salesforce-configure/SKILL.md +0 -126
  234. package/skills/experience-navigation-menus-configure/SKILL.md +0 -235
  235. package/skills/experience-notification-types-configure/SKILL.md +0 -206
  236. package/skills/experience-notifications-configure/SKILL.md +0 -75
  237. package/skills/experience-record-discovery-query/SKILL.md +0 -227
  238. package/skills/experience-regenerate-previews-open/SKILL.md +0 -94
  239. package/skills/experience-sales-cloud-mab-configure/SKILL.md +0 -254
  240. package/skills/experience-schema-builder-open/SKILL.md +0 -38
  241. package/skills/experience-simple-record-home-configure/SKILL.md +0 -110
  242. package/skills/experience-static-resources-configure/SKILL.md +0 -74
  243. package/skills/field-service-setup-coordinate/SKILL.md +0 -62
  244. package/skills/field-service-work-plan-configure/SKILL.md +0 -253
  245. package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +0 -180
  246. package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +0 -196
  247. package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +0 -106
  248. package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +0 -96
  249. package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +0 -111
  250. package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +0 -250
  251. package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +0 -122
  252. package/skills/fsc-digital-origination-coordinate/SKILL.md +0 -653
  253. package/skills/fsc-digital-origination-demo-run/SKILL.md +0 -225
  254. package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +0 -112
  255. package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +0 -396
  256. package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +0 -336
  257. package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +0 -208
  258. package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +0 -375
  259. package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +0 -83
  260. package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +0 -248
  261. package/skills/fsc-digital-origination-sample-data-create/SKILL.md +0 -206
  262. package/skills/fsc-document-checklist-settings-configure/SKILL.md +0 -57
  263. package/skills/fsc-flexible-hierarchy-configure/SKILL.md +0 -148
  264. package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +0 -1430
  265. package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +0 -471
  266. package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +0 -429
  267. package/skills/fsc-pricing-product-configurator-configure/SKILL.md +0 -150
  268. package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +0 -123
  269. package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +0 -82
  270. package/skills/fsc-product-act3-attributes-create/SKILL.md +0 -249
  271. package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +0 -196
  272. package/skills/fsc-product-act5-considerations-get/SKILL.md +0 -44
  273. package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +0 -384
  274. package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +0 -144
  275. package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +0 -107
  276. package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +0 -189
  277. package/skills/fsc-stage-management-definition-create/SKILL.md +0 -108
  278. package/skills/fsc-stage-management-permissions-assign/SKILL.md +0 -143
  279. package/skills/fsc-stage-management-transitions-configure/SKILL.md +0 -139
  280. package/skills/health-cloud-appt-booking-config-configure/SKILL.md +0 -135
  281. package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +0 -134
  282. package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +0 -136
  283. package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +0 -134
  284. package/skills/health-cloud-care-requests-create/SKILL.md +0 -178
  285. package/skills/health-cloud-initial-configure/SKILL.md +0 -511
  286. package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +0 -1374
  287. package/skills/health-cloud-provider-search-settings-configure/SKILL.md +0 -924
  288. package/skills/health-cloud-referral-management-coordinate/SKILL.md +0 -513
  289. package/skills/health-cloud-timeline-configure/SKILL.md +0 -622
  290. package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +0 -135
  291. package/skills/industries-account-score-settings-query/SKILL.md +0 -78
  292. package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +0 -177
  293. package/skills/industries-ad-product-availability-search/SKILL.md +0 -399
  294. package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +0 -628
  295. package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +0 -73
  296. package/skills/industries-atm-settings-starter-configure/SKILL.md +0 -76
  297. package/skills/industries-batch-document-ai-configure/SKILL.md +0 -196
  298. package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +0 -71
  299. package/skills/industries-branch-management-settings-configure/SKILL.md +0 -89
  300. package/skills/industries-bre-decision-table-access-configure/SKILL.md +0 -367
  301. package/skills/industries-brokerage-settings-configure/SKILL.md +0 -41
  302. package/skills/industries-calendar-sync-settings-configure/SKILL.md +0 -89
  303. package/skills/industries-care-request-settings-configure/SKILL.md +0 -218
  304. package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +0 -54
  305. package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +0 -380
  306. package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +0 -216
  307. package/skills/industries-catalog-process-intake-configure/SKILL.md +0 -219
  308. package/skills/industries-catalog-process-knowledge-configure/SKILL.md +0 -153
  309. package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +0 -168
  310. package/skills/industries-cds-general-settings-configure/SKILL.md +0 -69
  311. package/skills/industries-claim-financial-settings-configure/SKILL.md +0 -169
  312. package/skills/industries-clinical-data-model-settings-configure/SKILL.md +0 -136
  313. package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +0 -105
  314. package/skills/industries-collection-plan-settings-configure/SKILL.md +0 -132
  315. package/skills/industries-comms-service-console-settings-configure/SKILL.md +0 -159
  316. package/skills/industries-compliance-configure/SKILL.md +0 -102
  317. package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +0 -76
  318. package/skills/industries-contact-center-app-layout-configure/SKILL.md +0 -88
  319. package/skills/industries-contact-center-components-configure/SKILL.md +0 -96
  320. package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +0 -95
  321. package/skills/industries-contact-center-user-access-assign/SKILL.md +0 -96
  322. package/skills/industries-course-waitlist-config-configure/SKILL.md +0 -162
  323. package/skills/industries-crisis-center-settings-configure/SKILL.md +0 -84
  324. package/skills/industries-custom-object-settings-configure/SKILL.md +0 -94
  325. package/skills/industries-data-cloud-integration-configure/SKILL.md +0 -88
  326. package/skills/industries-data-space-feature-mappings-configure/SKILL.md +0 -245
  327. package/skills/industries-decision-matrix-builder-configure/SKILL.md +0 -78
  328. package/skills/industries-decision-table-hbase-configure/SKILL.md +0 -87
  329. package/skills/industries-decision-table-version-configure/SKILL.md +0 -74
  330. package/skills/industries-decision-tables-builder-configure/SKILL.md +0 -253
  331. package/skills/industries-decision-tables-configure/SKILL.md +0 -439
  332. package/skills/industries-energy-utilities-configure/SKILL.md +0 -251
  333. package/skills/industries-eu-cloud-multisite-configure/SKILL.md +0 -1008
  334. package/skills/industries-eu-new-connections-configure/SKILL.md +0 -30
  335. package/skills/industries-explainability-msg-template-configure/SKILL.md +0 -135
  336. package/skills/industries-expression-set-message-token-configure/SKILL.md +0 -135
  337. package/skills/industries-field-service-settings-configure/SKILL.md +0 -82
  338. package/skills/industries-form-framework-settings-configure/SKILL.md +0 -30
  339. package/skills/industries-fsc-ai-settings-configure/SKILL.md +0 -57
  340. package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +0 -172
  341. package/skills/industries-fsc-b2b-settings-configure/SKILL.md +0 -61
  342. package/skills/industries-fsc-insurance-settings-configure/SKILL.md +0 -58
  343. package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +0 -103
  344. package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +0 -117
  345. package/skills/industries-fsc-wealth-settings-configure/SKILL.md +0 -99
  346. package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +0 -120
  347. package/skills/industries-fundraising-rfm-configure/SKILL.md +0 -128
  348. package/skills/industries-fundraising-settings-configure/SKILL.md +0 -145
  349. package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +0 -299
  350. package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +0 -87
  351. package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +0 -58
  352. package/skills/industries-hc-score-category-settings-configure/SKILL.md +0 -167
  353. package/skills/industries-health-engagement-settings-configure/SKILL.md +0 -218
  354. package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +0 -131
  355. package/skills/industries-home-health-bundling-policy-create/SKILL.md +0 -50
  356. package/skills/industries-home-health-entity-labels-configure/SKILL.md +0 -29
  357. package/skills/industries-home-health-fsl-package-deploy/SKILL.md +0 -71
  358. package/skills/industries-home-health-fsl-settings-validate/SKILL.md +0 -27
  359. package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +0 -80
  360. package/skills/industries-home-health-guided-setup-configure/SKILL.md +0 -836
  361. package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +0 -55
  362. package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +0 -61
  363. package/skills/industries-home-health-licenses-assign/SKILL.md +0 -27
  364. package/skills/industries-home-health-operating-hours-create/SKILL.md +0 -40
  365. package/skills/industries-home-health-scheduling-policy-create/SKILL.md +0 -41
  366. package/skills/industries-home-health-service-objective-create/SKILL.md +0 -22
  367. package/skills/industries-home-health-skills-create/SKILL.md +0 -31
  368. package/skills/industries-home-health-users-create/SKILL.md +0 -29
  369. package/skills/industries-icm-act3-toggles-configure/SKILL.md +0 -198
  370. package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +0 -361
  371. package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +0 -550
  372. package/skills/industries-integrated-care-management-configure/SKILL.md +0 -168
  373. package/skills/industries-object-enablement-configure/SKILL.md +0 -86
  374. package/skills/industries-tpm-system-processing-service-configure/SKILL.md +0 -64
  375. package/skills/integration-apex-settings-configure/SKILL.md +0 -61
  376. package/skills/marketing-e360-email-archiving-configure/SKILL.md +0 -73
  377. package/skills/platform-custom-permissions-configure/SKILL.md +0 -687
  378. package/skills/platform-label-workbench-import-create/SKILL.md +0 -67
  379. package/skills/platform-privacy-agent-settings-configure/SKILL.md +0 -752
@@ -1,14 +1,23 @@
1
1
  ---
2
2
  name: field-service-prework-brief-deployer-configure
3
- description: "Deploy the deterministic half of Einstein Pre-Work Brief on Field Service Mobile to a target org via dispatch — prompt template, Lightning Data Service, licenses and permission sets, the Work Order layout field, and a scheduled test Work Order."
3
+ description: "Deploy the deterministic half of Einstein Pre-Work Brief on Field Service Mobile to a target org — prompt template, Lightning Data Service, licenses and permission sets, the Work Order layout field, and a scheduled test Work Order. Use this skill when a user asks to deploy, set up, enable, or configure Einstein Pre-Work Brief on Field Service Mobile."
4
+ user-invocable: false
4
5
  metadata:
5
6
  version: "1.0"
7
+ domains: ["Field Service"]
6
8
  cliTools:
7
- - tool:
8
- - "sf"
9
- semver: ">=2.0.0"
9
+ - tool: ["sf"]
10
+ semver: ">=2.0.0"
10
11
  ---
11
12
 
13
+ # Managing Fs Prework Brief Deployer
14
+
15
+ ## When to Use This Skill
16
+
17
+ Deploy the deterministic half of Einstein Pre-Work Brief on Field Service Mobile to a target org via dispatch — prompt template, Lightning Data Service, licenses and permission sets, the Work Order layout field, and a scheduled test Work Order.
18
+
19
+ ## Workflow
20
+
12
21
  # Field Service Pre-Work Brief Deployer
13
22
 
14
23
  **Deploy the deterministic half of Einstein Pre-Work Brief on Field Service Mobile via `dispatch`.**
@@ -81,11 +90,37 @@ On-device verification (the technician opening the Field Service mobile app and
81
90
 
82
91
  Authored from the sf-skills-internal coordinating skill `field-service-prework-brief-configure` (+ its `references/` files) and Salesforce Help for Einstein Pre-Work Brief. Live-validated against a dispatcher org. The harness derives the ordered, typed SOR from this skill on each run.
83
92
 
84
- <!-- skill-validate: ignore-start -->
85
- <!-- codey:operations start -->
93
+ ─────
94
+ **Runtime context (Headless 360 / agentic):** When this skill runs in the Headless 360 / agentic context, prefer the ``dispatch`` tool over CLI tools (``sf project deploy``, ``sfdx``, shell commands) when possible. The operations available to you are listed below in ``steps:``; each has been verified against the live org. Use ``dispatch`` against the canonical paths. CLI fallback is acceptable only when no API path exists for a given capability.
95
+
96
+ ## Critical Constraints
97
+
98
+ **Preconditions:**
99
+
100
+ - EinsteinFieldServicePsl provisioned (check: `GET /services/data/v67.0/query?q=SELECT Id FROM PermissionSetLicense WHERE DeveloperName='EinsteinFieldServicePsl' returns totalSize>=1`)
101
+ - Admin holds Customize Application + Manage Profiles and Permission Sets (check: `session user is a Setup admin`)
102
+ - Einstein generative AI base setup complete (incl. Data 360 grounding) (check: `org-level Einstein Pref enabled; grounding sources reachable`)
103
+ - Pilot technician selected with an active ServiceResource (check: `GET /services/data/v67.0/query?q=SELECT Id, RelatedRecordId FROM ServiceResource WHERE IsActive=true AND RelatedRecordId='<pilot-user-id>' returns totalSize=1`)
104
+
105
+ ## Verification Checklist
106
+
107
+ After every write operation, confirm the effect by re-reading state:
108
+
109
+ - After (write): call `verify-provisioning` (`GET /services/data/v67.0/query`)
110
+ - After `assign-perms-admin`: call `verify-permset-admin` (`GET /services/data/v67.0/query`)
111
+ - After `verify-showpreworkbrief-perm`: call `detect-existing-template` (`GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}`)
112
+ - After `deploy-prompt-template-header`: call `verify-template-deployed` (`GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}`)
113
+ - After `deploy-lds-setting`: call `verify-lds-enabled` (`GET /headless/invoke/platform/document-builder`)
114
+ - After `add-field-to-layout`: call `verify-field-on-layout` (`GET /services/data/v67.0/sobjects/WorkOrder/describe/layouts`)
115
+ - After `assign-resource`: call `verify-workorder-scheduled` (`GET /services/data/v67.0/query`)
116
+ - After `activate-prompt-template`: call `verify-activation` (`GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}`)
117
+ - After `assign-fs-einstein-user-admin`: call `verify-showpreworkbrief-perm` (`GET /services/data/v67.0/query`)
118
+
86
119
  ## Operations Reference
87
120
 
88
- Operations this skill uses — routing and dependency reference.
121
+ Operations grouped by purpose. Use these as the building blocks for the workflows above.
122
+
123
+ ### Summary
89
124
 
90
125
  | Operation | Purpose | Status | Call | Depends on |
91
126
  |-----------|---------|--------|------|------------|
@@ -109,11 +144,503 @@ Operations this skill uses — routing and dependency reference.
109
144
  | `verify-workorder-scheduled` | verify | — | `GET /services/data/v67.0/query` | `assign-resource` |
110
145
  | `point-existing-workorder` | write | — | `PATCH /services/data/v67.0/sobjects/WorkOrder/{Id}` | `verify-field-on-layout` |
111
146
  | `resolve-template-version` | read | — | `GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}` | `verify-workorder-scheduled`, `point-existing-workorder` |
112
- | `activate-prompt-template` | write | — | `PUT /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}/versions/{versionId}/status` | `resolve-template-version` |
147
+ | `activate-prompt-template` | write | — | `PUT /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}/versions/{versionId}/status?action=activate&ignoreWarnings=false` | `resolve-template-version` |
113
148
  | `verify-activation` | verify | — | `GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}` | `activate-prompt-template` |
114
149
  | `assign-fs-einstein-psl-admin` | write | — | `POST /services/data/v67.0/sobjects/PermissionSetLicenseAssign` | `verify-permset-admin` |
115
150
  | `assign-fs-einstein-user-admin` | write | — | `POST /services/data/v67.0/sobjects/PermissionSetAssignment` | `assign-fs-einstein-psl-admin` |
116
151
  | `verify-showpreworkbrief-perm` | verify | — | `GET /services/data/v67.0/query` | `assign-fs-einstein-user-admin` |
117
152
  | `add-field-to-layout` | write | — | `PATCH /services/data/v67.0/tooling/sobjects/Layout/{layoutId}` | `read-workorder-layout` |
118
- <!-- codey:operations end -->
119
- <!-- skill-validate: ignore-end -->
153
+
154
+ ### Dependency graph
155
+
156
+ ```mermaid
157
+ graph TD
158
+ verify_provisioning["verify-provisioning (verify)"]
159
+ assign_psl_admin["assign-psl-admin (write)"]
160
+ assign_perms_admin["assign-perms-admin (write)"]
161
+ verify_permset_admin["verify-permset-admin (verify)"]
162
+ detect_existing_template["detect-existing-template (verify)"]
163
+ deploy_prompt_template_header["deploy-prompt-template-header (write)"]
164
+ verify_template_deployed["verify-template-deployed (verify)"]
165
+ read_fieldservice_settings["read-fieldservice-settings (read)"]
166
+ deploy_lds_setting["deploy-lds-setting (write)"]
167
+ verify_lds_enabled["verify-lds-enabled (verify)"]
168
+ deploy_field_access_permset["deploy-field-access-permset (write)"]
169
+ assign_perms_technician["assign-perms-technician (write)"]
170
+ read_workorder_layout["read-workorder-layout (read)"]
171
+ verify_field_on_layout["verify-field-on-layout (verify)"]
172
+ create_test_workorder["create-test-workorder (write)"]
173
+ create_service_appointment["create-service-appointment (write)"]
174
+ assign_resource["assign-resource (write)"]
175
+ verify_workorder_scheduled["verify-workorder-scheduled (verify)"]
176
+ point_existing_workorder["point-existing-workorder (write)"]
177
+ resolve_template_version["resolve-template-version (read)"]
178
+ activate_prompt_template["activate-prompt-template (write)"]
179
+ verify_activation["verify-activation (verify)"]
180
+ assign_fs_einstein_psl_admin["assign-fs-einstein-psl-admin (write)"]
181
+ assign_fs_einstein_user_admin["assign-fs-einstein-user-admin (write)"]
182
+ verify_showpreworkbrief_perm["verify-showpreworkbrief-perm (verify)"]
183
+ add_field_to_layout["add-field-to-layout (write)"]
184
+ verify_provisioning --> assign_psl_admin
185
+ assign_psl_admin --> assign_perms_admin
186
+ assign_perms_admin --> verify_permset_admin
187
+ verify_showpreworkbrief_perm --> detect_existing_template
188
+ detect_existing_template --> deploy_prompt_template_header
189
+ deploy_prompt_template_header --> verify_template_deployed
190
+ verify_template_deployed --> read_fieldservice_settings
191
+ read_fieldservice_settings --> deploy_lds_setting
192
+ deploy_lds_setting --> verify_lds_enabled
193
+ verify_lds_enabled --> deploy_field_access_permset
194
+ deploy_field_access_permset --> assign_perms_technician
195
+ assign_perms_technician --> read_workorder_layout
196
+ add_field_to_layout --> verify_field_on_layout
197
+ verify_field_on_layout --> create_test_workorder
198
+ create_test_workorder --> create_service_appointment
199
+ create_service_appointment --> assign_resource
200
+ assign_resource --> verify_workorder_scheduled
201
+ verify_field_on_layout --> point_existing_workorder
202
+ verify_workorder_scheduled --> resolve_template_version
203
+ point_existing_workorder --> resolve_template_version
204
+ resolve_template_version --> activate_prompt_template
205
+ activate_prompt_template --> verify_activation
206
+ verify_permset_admin --> assign_fs_einstein_psl_admin
207
+ assign_fs_einstein_psl_admin --> assign_fs_einstein_user_admin
208
+ assign_fs_einstein_user_admin --> verify_showpreworkbrief_perm
209
+ read_workorder_layout --> add_field_to_layout
210
+ ```
211
+
212
+ ### Read operations
213
+
214
+ #### `read-fieldservice-settings`
215
+
216
+ Read the Field Service settings singleton (userSettings map — lsdkForFieldServiceMobilePref for LDS on mobile, other prefs). Result is the pre-write snapshot for deploy-lds-setting's read-back contract in verify-lds-enabled. Reused from FieldServiceSettings SOR.
217
+
218
+ **Call:** `GET /headless/invoke/platform/document-builder`
219
+
220
+ **Depends on:** `verify-template-deployed`
221
+
222
+ **Output:** FieldServiceSettingsSerializer map at body.body. Load-bearing key: lsdkForFieldServiceMobilePref (Lightning Data Service for Field Service Mobile — without it, Pre-Work Brief renders blank on device). This step is a snapshot for verify-lds-enabled; deploy-lds-setting does NOT consume the full map (see its inputs — the controller uses isChanged<Field> partial-patch semantics).
223
+
224
+ #### `read-workorder-layout`
225
+
226
+ Enumerate WorkOrder page layouts + record types. Result feeds add-field-to-layout / verify-field-on-layout. Response is large (~200KB).
227
+
228
+ **Call:** `GET /services/data/v67.0/sobjects/WorkOrder/describe/layouts`
229
+
230
+ **Depends on:** `assign-perms-technician`
231
+
232
+ **Output:** layouts[] array with layoutSections/detailLayoutSections and buttonLayoutSection; recordTypeMappings[] mapping recordTypeId -> layoutId. Scan detailLayoutSections[].layoutRows[].layoutItems[].layoutComponents[].value for the technician's layout to check whether 'PreWorkBriefPromptTemplate' is present.
233
+
234
+ #### `resolve-template-version`
235
+
236
+ Extract the 3vN-prefix version Id from the deployed Pre_Work_Brief template. Same GET as detect-existing-template / verify-template-deployed — this step re-reads under a distinct id because activation consumes the version Id specifically. Read childRelationships.GenAiPromptTemplateVersions[].fields.Id.value; pick the entry whose fields.Status.value == 'Published' (the pre-active version).
237
+
238
+ **Call:** `GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}`
239
+
240
+ **Inputs:**
241
+
242
+ - `promptTemplateDevName` *(`String`)* — Fixed 'Pre_Work_Brief' for this workflow.
243
+
244
+ **Depends on:** `verify-workorder-scheduled`, `point-existing-workorder`
245
+
246
+ **Output:** childRelationships.GenAiPromptTemplateVersions[].fields.Id.value — the 3vN-prefix version Id activate-prompt-template consumes. The GET works even while the template is inactive/absent from the runtime catalog.
247
+
248
+ **Notes:** branch_join: Join point for both test-data branches. verify-workorder-scheduled is the fresh-branch tail; point-existing-workorder is the existing-branch tail. The two are mutex, so exactly one predecessor runs — activation fires in either mode. Treat depends_on here as an OR-join, not a barrier.
249
+
250
+ ### Write operations
251
+
252
+ #### `assign-psl-admin`
253
+
254
+ Grant the Einstein-for-Field-Service PSL to the admin user via PermissionSetLicenseAssign create. Idempotent: swallow DUPLICATE_VALUE (STATUSCODE) as already-assigned success.
255
+
256
+ **Call:** `POST /services/data/v67.0/sobjects/PermissionSetLicenseAssign`
257
+
258
+ **Inputs:**
259
+
260
+ - `AssigneeId` *(`String`)* — 18-char User Id (005-prefixed).
261
+ - `PermissionSetLicenseId` *(`String`)* — 0PL-prefixed PSL Id from verify-provisioning.
262
+ - **Source:** output of `verify-provisioning`
263
+
264
+ **Depends on:** `verify-provisioning`
265
+
266
+ **Rollback:** DELETE /sobjects/PermissionSetLicenseAssign/{id}
267
+
268
+ **Notes:** idempotency: DUPLICATE_VALUE -> success (already assigned)
269
+
270
+ #### `assign-perms-admin`
271
+
272
+ Grant EinsteinGPTPromptTemplateManager to the admin — this provides Prompt Studio authoring access. NOTE (corrected 2026-08-25): this permset does NOT make the Pre-Work Brief template TYPE visible; the type is gated by UserPermission ShowPreWorkBriefGA (see assign-fs-einstein-user-admin). On a full FS eval org ShowPreWorkBriefGA is ambient so this permset alone appeared sufficient, but on a fresh org it is not. Idempotent: swallow DUPLICATE_VALUE as already-assigned.
273
+
274
+ **Call:** `POST /services/data/v67.0/sobjects/PermissionSetAssignment`
275
+
276
+ **Inputs:**
277
+
278
+ - `AssigneeId` *(`String`)*
279
+ - `PermissionSetId` *(`String`)* — 0PS-prefixed PermissionSet Id. Resolve via SELECT Id FROM PermissionSet WHERE Name='EinsteinGPTPromptTemplateManager'.
280
+
281
+ **Depends on:** `assign-psl-admin`
282
+
283
+ **Rollback:** DELETE /sobjects/PermissionSetAssignment/{id}
284
+
285
+ **Notes:** idempotency: DUPLICATE_VALUE -> success; skill_gotcha: Skipping this before deploy-prompt-template-header produces silent failure (missing dropdown option, no error).
286
+
287
+ #### `deploy-prompt-template-header`
288
+
289
+ Create the Pre_Work_Brief GenAiPromptTemplate (type einstein_gpt__fieldServicePreWorkBrief) in ONE insertPromptTemplate call that carries the version + WorkOrder input + Flow DataProvider inline via childRelationships. insertPromptTemplate rejects a bare header ("Prompt Template[null] has no versions"), and createPromptTemplateVersion only adds versions to an already-existing template, so header + version + input + provider are created together in a single transaction. Skipped when detect-existing-template returned 200. Adjusted-from the skill's MDAPI-deploy assumption: /headless/metadata is not routed on this dispatcher; einstein-prompt-studio is the canonical replacement.
290
+
291
+ **Call:** `PATCH /headless/invoke/platform/einstein-prompt-studio/insert-prompt-template`
292
+
293
+ **Inputs:**
294
+
295
+ - `promptTemplate` *(`object`)* — Complete GenAiPromptTemplate as a single-call insert, sent as a JSON object (NOT a
296
+ serialized string). Exact nested shape (each node uses the wrapper form
297
+ {apiName, id:null, isStandard:false, isOverridable:false, additionalFields:{}, fields:{...}, childRelationships:{...}}).
298
+ apiName MUST be the node's ENTITY TYPE NAME (NOT null): 'GenAiPromptTemplate' for the top
299
+ node, then 'GenAiPromptTemplateVersion', 'GenAiPromptTemplateInput',
300
+ 'GenAiPromptTemplateDataProvider', 'GenAiPromptTemplateDataProviderParam' on the nested
301
+ nodes. A null apiName throws CONTROLLER_ERROR ("Cannot invoke String.equals ...
302
+ getApiName() is null"). The Flow reference (DataProvider Definition/ReferenceName and the
303
+ version Content merge field) MUST use the fully-qualified namespaced flow name
304
+ sfdc_fieldservice__ModifyPWB — the bare FlowDefinitionView.ApiName (ModifyPWB)
305
+ fails flow-accessibility ("ModifyPWB is not accessible"):
306
+
307
+ promptTemplate.fields:
308
+ DeveloperName='Pre_Work_Brief', MasterLabel='Pre-Work Brief',
309
+ Type='einstein_gpt__fieldServicePreWorkBrief', Visibility='Global'
310
+
311
+ promptTemplate.childRelationships.GenAiPromptTemplateVersions[0]:
312
+ .fields: Content='{!$Flow:sfdc_fieldservice__ModifyPWB.Prompt}',
313
+ PrimaryModel='sfdc_ai__DefaultOpenAIGPT4OmniMini'
314
+ .childRelationships.GenAiPromptTemplateInputs[0].fields:
315
+ ApiName='WorkOrder' (MUST equal the template type's schema input name),
316
+ ReferenceName='Input:WorkOrder', MasterLabel='Work Order',
317
+ Definition='SOBJECT://WorkOrder', IsRequired=true
318
+ .childRelationships.GenAiPromptTemplateDataProviders[0]:
319
+ .fields: Definition='flow://sfdc_fieldservice__ModifyPWB',
320
+ ReferenceName='Flow:sfdc_fieldservice__ModifyPWB'
321
+ .childRelationships.GenAiPromptTemplateDataProviderParams[0].fields:
322
+ Definition='SOBJECT://WorkOrder', ParameterName='WorkOrder',
323
+ IsRequired=true, ValueExpression='{!$Input:WorkOrder}'
324
+
325
+ The Flow DataProvider MUST be supplied explicitly: when the configured-action gate is
326
+ enabled only DataGraph providers auto-derive; Flow providers are client-managed. Prereq:
327
+ the target org must have the sfdc_fieldservice__ModifyPWB flow (ProcessType=PromptFlow,
328
+ active) with a WorkOrder input variable, else MissingTemplateInputs / provider validation
329
+ recurs.
330
+
331
+ **Depends on:** `detect-existing-template`
332
+
333
+ **Output:** Created template record with 0hf-prefixed Id, DeveloperName, MasterLabel, IsActive=false, plus the inline version (LastCreatedVersionId 3vN-prefixed, LastUsedVersionNumber=1).
334
+
335
+ #### `deploy-lds-setting`
336
+
337
+ Enable Lightning Data Service for Field Service Mobile via saveFieldServiceSettingsConfig. REQUEST SHAPE (load-bearing): the PATCH body MUST wrap the deltas under a top-level "userSettings" key — {"userSettings": {"lsdkForFieldServiceMobilePref": true, "isChangedLsdkForFieldServiceMobilePref": true}}. A flat body (fields at the top level) throws 500 CONTROLLER_ERROR NullPointerException ("userSettings is null"). Inside userSettings the controller uses isChanged<Field> partial-patch semantics: pass lsdkForFieldServiceMobilePref=true AND isChangedLsdkForFieldServiceMobilePref=true together — omitting the isChanged flag returns 200 with body:true but silently persists NOTHING. Send only the deltas plus their paired isChanged flags inside userSettings, NOT the whole read-back map. A 200 with body:true does NOT by itself prove persistence — always verify via read-back on getFieldServiceSettingsConfig.
338
+
339
+ **Call:** `PATCH /headless/invoke/platform/document-builder-rlm/save-field-service-settings-config`
340
+
341
+ **Inputs:**
342
+
343
+ - `lsdkForFieldServiceMobilePref` *(`boolean`)* — Target value for the Lightning-SDK-for-Field-Service-Mobile org preference (true to enable). Backed by ORG_PREFERENCE_LSDK_FOR_FIELD_SERVICE_MOBILE.
344
+ - `isChangedLsdkForFieldServiceMobilePref` *(`boolean`)* — MUST be true for lsdkForFieldServiceMobilePref to be persisted. The controller's per-field isChanged<Field> gate silently skips any field whose paired flag is absent or false — a 200 response body of {body:true} does NOT confirm the value landed. Always verify via read-back on getFieldServiceSettingsConfig.
345
+
346
+ **Depends on:** `read-fieldservice-settings`
347
+
348
+ **Rollback:** Re-PATCH with lsdkForFieldServiceMobilePref=<pre-write snapshot value> AND isChangedLsdkForFieldServiceMobilePref=true.
349
+
350
+ **Notes:** partial_patch_semantics: Per-field isChanged<Field> gate. 200 with body:true does not confirm the write; always read-back.
351
+
352
+ #### `deploy-field-access-permset`
353
+
354
+ Create PermissionSet 'PreWorkBrief_Field_Access' + FieldPermissions row for WorkOrder.PreWorkBriefPromptTemplate (grant Read). Native CRUD replaces the skill's assumed MDAPI-deploy path. Idempotent: DUPLICATE_DEVELOPER_NAME on the PermissionSet insert is swallowed and existing permset is reused.
355
+
356
+ **Call:** `POST /services/data/v67.0/sobjects/PermissionSet`
357
+
358
+ **Inputs:**
359
+
360
+ - `Name` *(`String`)* — 'PreWorkBrief_Field_Access'
361
+ - `Label` *(`String`)* — 'Pre-Work Brief Field Access'
362
+
363
+ **Depends on:** `verify-lds-enabled`
364
+
365
+ **Output:** Created PermissionSet Id (0PS-prefixed); use as ParentId for the follow-up POST /sobjects/FieldPermissions with SobjectType='WorkOrder', Field='WorkOrder.PreWorkBriefPromptTemplate', PermissionsRead=true.
366
+
367
+ **Rollback:** DELETE /sobjects/PermissionSet/{id}
368
+
369
+ **Notes:** composite: Follow-up: POST /sobjects/FieldPermissions with ParentId=<permset>, SobjectType='WorkOrder', Field='WorkOrder.PreWorkBriefPromptTemplate', PermissionsRead=true.
370
+
371
+ #### `assign-perms-technician`
372
+
373
+ Grant PSL + FieldServiceMobileStandardPermSet + PreWorkBrief_Field_Access to the pilot technician. Three writes (PermissionSetLicenseAssign + two PermissionSetAssignment). Idempotent: DUPLICATE_VALUE swallowed per row.
374
+
375
+ **Call:** `POST /services/data/v67.0/sobjects/PermissionSetAssignment`
376
+
377
+ **Inputs:**
378
+
379
+ - `AssigneeId` *(`String`)* — Pilot technician User Id.
380
+ - `PermissionSetId` *(`String`)* — Repeat call once per permset. PSL is granted via POST /sobjects/PermissionSetLicenseAssign with PermissionSetLicenseId.
381
+
382
+ **Depends on:** `deploy-field-access-permset`
383
+
384
+ **Rollback:** DELETE /sobjects/PermissionSetAssignment/{id} for each row (and DELETE /sobjects/PermissionSetLicenseAssign/{id} for the PSL).
385
+
386
+ **Notes:** idempotency: DUPLICATE_VALUE -> success per row
387
+
388
+ #### `create-test-workorder`
389
+
390
+ Create a test WorkOrder pointed at Pre_Work_Brief via PreWorkBriefPromptTemplate. Skipped in test-data-mode=existing (point-existing-workorder branch takes over). Idempotency tag Subject with 'B4Expertise_<run_id>_create-test-workorder' for post-run cleanup.
391
+
392
+ **Call:** `POST /services/data/v67.0/sobjects/WorkOrder`
393
+
394
+ **Inputs:**
395
+
396
+ - `Subject` *(`String`)* — Tag with 'B4Expertise_<run_id>_create-test-workorder' for post-run cleanup.
397
+ - `Status` *(`String`)* — e.g. 'New'
398
+ - `PreWorkBriefPromptTemplate` *(`String`)* — WorkOrder.PreWorkBriefPromptTemplate is a lookup to GenAiPromptTemplate — pass the 0hf-prefix template Id, NOT the DeveloperName. Resolve the Id from the verify-template-deployed response body (GET /einstein/prompt-templates/Pre_Work_Brief): read the top-level "id", or the "Id" value under the "fields" object. Passing DeveloperName 'Pre_Work_Brief' returns 400 INVALID_INPUT "Enter a valid Pre-Work Brief prompt template ID".
399
+
400
+ **Depends on:** `verify-field-on-layout`
401
+
402
+ **Rollback:** DELETE /sobjects/WorkOrder/{id}
403
+
404
+ #### `create-service-appointment`
405
+
406
+ Create the ServiceAppointment for the test WorkOrder with SchedStartTime/SchedEndTime inside today's window (so the technician can pull it up on device today).
407
+
408
+ **Call:** `POST /services/data/v67.0/sobjects/ServiceAppointment`
409
+
410
+ **Inputs:**
411
+
412
+ - `ParentRecordId` *(`String`)* — WorkOrder Id from create-test-workorder.
413
+ - **Source:** output of `create-test-workorder`
414
+ - `SchedStartTime` *(`String`)* — ISO datetime inside today's window.
415
+ - `SchedEndTime` *(`String`)*
416
+
417
+ **Depends on:** `create-test-workorder`
418
+
419
+ **Rollback:** DELETE /sobjects/ServiceAppointment/{id}
420
+
421
+ #### `assign-resource`
422
+
423
+ Create AssignedResource linking the pilot technician's ServiceResource to the test ServiceAppointment. Resolve ServiceResource via SELECT Id FROM ServiceResource WHERE RelatedRecordId='<pilot-user-id>' AND IsActive=true.
424
+
425
+ **Call:** `POST /services/data/v67.0/sobjects/AssignedResource`
426
+
427
+ **Inputs:**
428
+
429
+ - `ServiceAppointmentId` *(`String`)*
430
+ - `ServiceResourceId` *(`String`)*
431
+
432
+ **Depends on:** `create-service-appointment`
433
+
434
+ **Rollback:** DELETE /sobjects/AssignedResource/{id}
435
+
436
+ #### `point-existing-workorder`
437
+
438
+ Existing-test-data branch: PATCH an EXISTING real WorkOrder's PreWorkBriefPromptTemplate to the Pre_Work_Brief template Id AND PATCH its ServiceAppointment's SchedStartTime/SchedEndTime into today's window. Replaces create-test-workorder -> create-service-appointment -> assign-resource when test-data-mode=existing.
439
+
440
+ **Call:** `PATCH /services/data/v67.0/sobjects/WorkOrder/{Id}`
441
+
442
+ **Inputs:**
443
+
444
+ - `Id` *(`String`)* — Path — WorkOrder Id supplied by coordinating skill.
445
+ - `PreWorkBriefPromptTemplate` *(`String`)* — 0hf-prefix GenAiPromptTemplate Id (NOT DeveloperName). Resolve via verify-template-deployed's response body. DeveloperName 'Pre_Work_Brief' returns 400 INVALID_INPUT on PATCH.
446
+
447
+ **Depends on:** `verify-field-on-layout`
448
+
449
+ **Rollback:** Snapshot prior PreWorkBriefPromptTemplate + SA SchedStart/End before PATCH; PATCH back on rollback.
450
+
451
+ **Notes:** composite: Follow-up: PATCH /sobjects/ServiceAppointment/{SA-Id} with SchedStartTime + SchedEndTime inside today's window.; branch: Executes only when test-data-mode=='existing'. Mutex with create-test-workorder / create-service-appointment / assign-resource.
452
+
453
+ #### `activate-prompt-template`
454
+
455
+ Flip Pre_Work_Brief from Published to Active via the einstein-gpt-connect-api version-status endpoint. Empty request body. On success the response is isSuccessful:true, statusCode:"200", additionalData.wrappedMap.summary.overallSeverity:"SAFE"; template-level IsActive flips to true and ActiveVersionId is populated (the version's own Status stays Published — "Published" at the version level *is* "Active" at the template level). Idempotent: re-activating an already-Active version returns 200 SAFE. Endpoint is @ConnectHidden(from=Apex) — call via dispatch / native REST, not ConnectApi.
456
+
457
+ **Call:** `PUT /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}/versions/{versionId}/status?action=activate&ignoreWarnings=false`
458
+
459
+ **Inputs:**
460
+
461
+ - `promptTemplateDevName` *(`String`)* — Path parameter. Fixed 'Pre_Work_Brief' for this workflow.
462
+ - `versionId` *(`String`)* — Path parameter. 3vN-prefix version Id from resolve-template-version.
463
+ - **Source:** output of `resolve-template-version`
464
+ - `action` *(`String`)* — Query parameter. 'activate' (this step) or 'deactivate' (rollback). No default.
465
+ - `ignoreWarnings` *(`boolean`)* — Query parameter. Default false. Set true to accept a WARNING-severity safe-change evaluation and force activation anyway; leave false when you want the platform's safe-change rules to block risky activations.
466
+
467
+ **Depends on:** `resolve-template-version`
468
+
469
+ **Output:** isSuccessful:true, statusCode:"200", errorMessages:[], hasWarning:false, warningMessages:[], templateId echoed, templateType:"einstein_gpt__fieldServicePreWorkBrief", versionId echoed, additionalData.wrappedMap.summary.overallSeverity:"SAFE" (or "WARNING"/"ERROR"). Post-write side-effects: fields.IsActive flips false→true; fields.ActiveVersionId populated with the passed versionId.
470
+
471
+ **Rollback:** PUT /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}/versions/{versionId}/status?action=deactivate
472
+
473
+ **Notes:** empty_body: The request body is empty ({}). No fields.; apex_hidden: Endpoint is @ConnectHidden(from=Apex) — NOT callable from ConnectApi.EinsteinLLM. Call via dispatch / `sf api request rest --method PUT` / any native REST client.; access_check: x-sfdc.org-access-check: EinsteinGPT.orgHasEinsteinGPTEnabled — Einstein GPT must be enabled on the org.; idempotency: Re-activating an already-Active version returns 200 SAFE without error. Safe to re-run.; api_version: Available since v65.0 (API 258 onward). Earlier versions (v62-v66 partial) or the wrong URL shape (/activate rather than /versions/{id}/status?action=activate) return non-2xx.
474
+
475
+ #### `assign-fs-einstein-psl-admin`
476
+
477
+ Grant the EinsteinFieldServicePsl PSL ("Einstein for Field Service") to the admin. This PSL licenses UserPermission ShowPreWorkBriefGA, the gate for the fieldServicePreWorkBrief template type. Idempotent: swallow DUPLICATE_VALUE as already-assigned success.
478
+
479
+ **Call:** `POST /services/data/v67.0/sobjects/PermissionSetLicenseAssign`
480
+
481
+ **Inputs:**
482
+
483
+ - `AssigneeId` *(`String`)* — 18-char admin User Id (005-prefixed).
484
+ - `PermissionSetLicenseId` *(`String`)* — 0PL-prefixed PSL Id. Resolve via SELECT Id FROM PermissionSetLicense WHERE DeveloperName='EinsteinFieldServicePsl'.
485
+
486
+ **Depends on:** `verify-permset-admin`
487
+
488
+ **Rollback:** DELETE /sobjects/PermissionSetLicenseAssign/{id}
489
+
490
+ **Notes:** idempotency: DUPLICATE_VALUE -> success (already assigned)
491
+
492
+ #### `assign-fs-einstein-user-admin`
493
+
494
+ Grant the EinsteinFieldServiceUser permset (PermissionsShowPreWorkBriefGA=true) to the admin. This grants UserPermission ShowPreWorkBriefGA which makes the fieldServicePreWorkBrief template type valid in getPromptTemplateTypes / insertPromptTemplate. LOAD-BEARING: must land BEFORE deploy-prompt-template-header or the type is "not valid". Idempotent.
495
+
496
+ **Call:** `POST /services/data/v67.0/sobjects/PermissionSetAssignment`
497
+
498
+ **Inputs:**
499
+
500
+ - `AssigneeId` *(`String`)*
501
+ - `PermissionSetId` *(`String`)* — 0PS-prefixed PermissionSet Id. Resolve via SELECT Id FROM PermissionSet WHERE Name='EinsteinFieldServiceUser'.
502
+
503
+ **Depends on:** `assign-fs-einstein-psl-admin`
504
+
505
+ **Rollback:** DELETE /sobjects/PermissionSetAssignment/{id}
506
+
507
+ **Notes:** idempotency: DUPLICATE_VALUE -> success; skill_gotcha: Without this the deploy fails "Prompt Template Type is not valid" (silent on a full FS eval org where the perm is ambient).
508
+
509
+ #### `add-field-to-layout`
510
+
511
+ Add WorkOrder.PreWorkBriefPromptTemplate to the technician's Work Order page layout via a Tooling API Layout.Metadata round-trip (NOT a gap — the earlier "no whole-layout write API" note was wrong for the dispatch surface; /headless/metadata is unrouted but Tooling REST passes through, and this is NOT SOAP MDAPI). Round-trip: (1) resolve the layout Id — GET /tooling/query?q=SELECT Id, Name, TableEnumOrId FROM Layout WHERE TableEnumOrId='WorkOrder' (00h-prefixed Id); (2) read full metadata — GET /tooling/sobjects/Layout/{id}, keep the Metadata object; (3) insert a layoutItem {behavior:'Edit', field:'PreWorkBriefPromptTemplate'} into a layoutSections[].layoutColumns[].layoutItems[] (e.g. the "Information" section); (4) PATCH /tooling/sobjects/Layout/{id} with {"Metadata": <full round-tripped object>} — HTTP 204 = success. A Tooling Metadata write is FULL-REPLACE, so round-trip the ENTIRE Metadata object and change only the added item. TWO write-time footguns (each makes the PATCH 400): (a) feedLayout.rightComponents[].componentType reads back as a string but the writer rejects it ("Cannot deserialize instance of complexvalue from VALUE_STRING") — set feedLayout:null for the write (resets the Chatter feed VIEW layout to default); (b) the ServiceReportRelatedList related list fails write validation ("Mass quick actions don't support ServiceReport") — drop that one relatedLists entry. Both are full-replace side effects (feed view reset; Service Reports related list removed), acceptable for surfacing the field and reversible in the Layout Editor. Field-level security is granted separately by deploy-field-access-permset (FieldPermissions) — this step is layout placement only.
512
+
513
+ **Call:** `PATCH /services/data/v67.0/tooling/sobjects/Layout/{layoutId}`
514
+
515
+ **Inputs:**
516
+
517
+ - `layoutId` *(`String`)* — 00h-prefixed Layout Id. Resolve via GET /tooling/query?q=SELECT Id FROM Layout WHERE TableEnumOrId='WorkOrder'.
518
+ - `Metadata` *(`object`)* — Full Layout Metadata object round-tripped from GET /tooling/sobjects/Layout/{id}, with one added layoutItem {behavior:'Edit', field:'PreWorkBriefPromptTemplate'} in a layoutSections column. Set feedLayout:null and drop the ServiceReportRelatedList relatedLists entry (see description footguns). Full-replace semantics — omitted keys reset to default.
519
+
520
+ **Depends on:** `read-workorder-layout`
521
+
522
+ **Output:** HTTP 204 No Content = layout updated. Confirm via verify-field-on-layout (describe/layouts scan).
523
+
524
+ **Rollback:** Re-PATCH /tooling/sobjects/Layout/{id} with the pre-write Metadata snapshot captured in step (2).
525
+
526
+ **Notes:** transport: Tooling REST via native passthrough on dispatch — NOT Metadata API SOAP. /headless/metadata remains unrouted.; full_replace: A Tooling Metadata write replaces the whole layout; round-trip the entire Metadata object, changing only the added item.; write_footguns: feedLayout must be nulled (writer rejects the round-tripped componentType string); ServiceReportRelatedList must be dropped ("Mass quick actions don't support ServiceReport"). Both are full-replace side effects.
527
+
528
+ ### Verify operations
529
+
530
+ #### `verify-provisioning`
531
+
532
+ Read PermissionSetLicense for EinsteinFieldServicePsl. Zero rows means the org is unprovisioned; coordinating skill routes to STOP. Idempotent read.
533
+
534
+ **Call:** `GET /services/data/v67.0/query`
535
+
536
+ **Inputs:**
537
+
538
+ - `q` *(`String`)* — SOQL: SELECT Id, DeveloperName FROM PermissionSetLicense WHERE DeveloperName='EinsteinFieldServicePsl'
539
+
540
+ **Output:** records[0].Id = the 0PL-prefixed PSL Id used by assign-psl-admin / assign-perms-technician.
541
+
542
+ #### `verify-permset-admin`
543
+
544
+ SOQL confirm the admin holds EinsteinGPTPromptTemplateManager before the prompt-template deploy. Guard against the silent-dropdown-missing failure mode.
545
+
546
+ **Call:** `GET /services/data/v67.0/query`
547
+
548
+ **Inputs:**
549
+
550
+ - `q` *(`String`)* — SELECT Id FROM PermissionSetAssignment WHERE AssigneeId='<admin>' AND PermissionSet.Name='EinsteinGPTPromptTemplateManager'
551
+
552
+ **Depends on:** `assign-perms-admin`
553
+
554
+ **Output:** totalSize>=1 -> gate cleared.
555
+
556
+ #### `detect-existing-template`
557
+
558
+ Read Pre_Work_Brief via the runtime catalog. Two roles: (1) idempotency gate — 200 with fields.DeveloperName='Pre_Work_Brief' -> skip deploy-prompt-template-header / -version; 404 -> proceed; (2) pre-activation pre-read — captures fields.IsActive + fields.ActiveVersionId. GenAiPromptTemplate is NOT SOQL/Tooling queryable; this Connect API is the canonical read path.
559
+
560
+ **Call:** `GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}`
561
+
562
+ **Inputs:**
563
+
564
+ - `promptTemplateDevName` *(`String`)* — Fixed 'Pre_Work_Brief' for this workflow.
565
+
566
+ **Depends on:** `verify-showpreworkbrief-perm`
567
+
568
+ **Output:** fields.Id = 0hf-prefixed template Id; fields.IsActive boolean; fields.ActiveVersionId (populated when Active, else null); childRelationships.GenAiPromptTemplateVersions[].fields.Id.value = 3vN-prefix version Ids (Published even when template Inactive).
569
+
570
+ **Notes:** skill_gotcha: SOQL/Tooling on GenAiPromptTemplate returns INVALID_TYPE 400. This Connect API is the ONLY read path.
571
+
572
+ #### `verify-template-deployed`
573
+
574
+ Post-deploy read-back on Pre_Work_Brief. Confirm fields.Id populated and childRelationships.GenAiPromptTemplateVersions carries the deployed version with Status='Published'. Same endpoint as detect-existing-template — the pre/post-deploy contract. Emits the 0hf-prefix template Id downstream steps need (create-test-workorder / point-existing-workorder read fields.Id from this response).
575
+
576
+ **Call:** `GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}`
577
+
578
+ **Inputs:**
579
+
580
+ - `promptTemplateDevName` *(`String`)*
581
+
582
+ **Depends on:** `deploy-prompt-template-header`
583
+
584
+ **Output:** fields.Id present (0hf-prefix — downstream WorkOrder.PreWorkBriefPromptTemplate lookup consumes this); childRelationships.GenAiPromptTemplateVersions[].fields.Status == 'Published'; fields.IsActive == false pre-activation (flip happens in activate-prompt-template).
585
+
586
+ #### `verify-lds-enabled`
587
+
588
+ Read-back on Field Service settings; confirm body.body.lsdkForFieldServiceMobilePref==true after the write. Same endpoint as read-fieldservice-settings — the pre/post-write contract. Required because deploy-lds-setting returns 200 whether or not its paired isChanged flag was set.
589
+
590
+ **Call:** `GET /headless/invoke/platform/document-builder`
591
+
592
+ **Depends on:** `deploy-lds-setting`
593
+
594
+ **Output:** body.body.lsdkForFieldServiceMobilePref == true after the write. Drift here proves deploy-lds-setting was missing the paired isChangedLsdkForFieldServiceMobilePref flag.
595
+
596
+ #### `verify-field-on-layout`
597
+
598
+ Scan WorkOrder layouts describe (GET /sobjects/WorkOrder/describe/layouts) for a layoutComponent with value='PreWorkBriefPromptTemplate' in the technician's layout sections. Present -> add-field-to-layout landed; absent -> the Tooling Metadata PATCH did not take (re-check the round-trip and the two write footguns).
599
+
600
+ **Call:** `GET /services/data/v67.0/sobjects/WorkOrder/describe/layouts`
601
+
602
+ **Depends on:** `add-field-to-layout`
603
+
604
+ **Output:** Boolean: is PreWorkBriefPromptTemplate present on the technician's layout? If false and add-field-to-layout is unresolved, surface the layout-editor deep-link to the human instead of hard-failing.
605
+
606
+ #### `verify-workorder-scheduled`
607
+
608
+ SOQL smoke: SELECT Id, SchedStartTime FROM ServiceAppointment WHERE WorkOrderId='<test-wo>' AND SchedStartTime = TODAY. Idempotency + landed-in-today's-window contract.
609
+
610
+ **Call:** `GET /services/data/v67.0/query`
611
+
612
+ **Inputs:**
613
+
614
+ - `q` *(`String`)*
615
+
616
+ **Depends on:** `assign-resource`
617
+
618
+ **Output:** totalSize==1 -> chain landed today. Zero -> SA outside today's window or missing.
619
+
620
+ #### `verify-activation`
621
+
622
+ Read the runtime prompt-template catalog to confirm activation landed. Two equivalent reads — pick either. (a) Detail read GET /einstein/prompt-templates/{devName}, confirm fields.IsActive.value==true AND fields.ActiveVersionId.value is populated. (b) Catalog list GET /einstein/prompt-templates?pageSize=200, confirm promptRecords[] contains an entry with fields.DeveloperName.value=='Pre_Work_Brief' AND fields.IsActive.value==true. The catalog-list variant proves the template appears in the runtime catalog (agents / mobile clients can now see it).
623
+
624
+ **Call:** `GET /services/data/v67.0/einstein/prompt-templates/{promptTemplateDevName}`
625
+
626
+ **Inputs:**
627
+
628
+ - `promptTemplateDevName` *(`String`)*
629
+
630
+ **Depends on:** `activate-prompt-template`
631
+
632
+ **Output:** fields.IsActive.value==true AND fields.ActiveVersionId.value populated -> activation landed. Optional catalog-list fallback GET /einstein/prompt-templates?pageSize=200 -> promptRecords[?fields.DeveloperName.value=='Pre_Work_Brief'].fields.IsActive.value==true confirms runtime-catalog visibility.
633
+
634
+ #### `verify-showpreworkbrief-perm`
635
+
636
+ Confirm the admin effectively holds UserPermission ShowPreWorkBriefGA before the prompt-template deploy — the true gate for the fieldServicePreWorkBrief type. Guards against the "Prompt Template Type is not valid" failure.
637
+
638
+ **Call:** `GET /services/data/v67.0/query`
639
+
640
+ **Inputs:**
641
+
642
+ - `q` *(`String`)* — SELECT Id FROM PermissionSetAssignment WHERE AssigneeId='<admin>' AND PermissionSet.Name='EinsteinFieldServiceUser'
643
+
644
+ **Depends on:** `assign-fs-einstein-user-admin`
645
+
646
+ **Output:** totalSize>=1 -> gate cleared (ShowPreWorkBriefGA granted).