@salesforce/afv-skills 1.51.0 → 1.53.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.
- package/package.json +3 -3
- package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +1 -1
- package/skills/field-service-data-capture-form-deployer-configure/references/flow-metadata-json.md +1 -1
- package/skills/field-service-data-capture-form-editor-configure/SKILL.md +1 -1
- package/skills/field-service-data-capture-reference-configure/SKILL.md +28 -15
- package/skills/field-service-foundation-setup-designer-get/SKILL.md +1 -1
- package/skills/field-service-mobile-branding-configure/SKILL.md +1 -1
- package/skills/field-service-objective-designer-configure/SKILL.md +381 -64
- package/skills/field-service-prework-brief-deployer-configure/SKILL.md +566 -3
- package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1097 -57
- package/skills/field-service-sobject-create-configure/SKILL.md +222 -7
- package/skills/field-service-voice-to-form-configure/SKILL.md +11 -11
- package/skills/field-service-work-rule-designer-configure/SKILL.md +92 -107
- package/skills/experience-content-media-search/SKILL.md +0 -353
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/afv-skills",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.53.0",
|
|
4
4
|
"description": "Salesforce skills for Agentforce Vibes",
|
|
5
5
|
"license": "CC-BY-NC-4.0",
|
|
6
6
|
"files": [
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"registry": "https://registry.npmjs.org"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@salesforce/ui-bundle-template-app-react-sample-b2e": "^
|
|
15
|
-
"@salesforce/ui-bundle-template-app-react-sample-b2x": "^
|
|
14
|
+
"@salesforce/ui-bundle-template-app-react-sample-b2e": "^12.4.4",
|
|
15
|
+
"@salesforce/ui-bundle-template-app-react-sample-b2x": "^12.4.4",
|
|
16
16
|
"@salesforce/webapp-template-app-react-sample-b2e-experimental": "^1.117.1",
|
|
17
17
|
"@salesforce/webapp-template-app-react-sample-b2x-experimental": "^1.117.1"
|
|
18
18
|
},
|
|
@@ -12,7 +12,7 @@ metadata:
|
|
|
12
12
|
This skill takes an intermediate JSON spec and produces a deployed Salesforce Flow with `processType=DataCaptureFlow`. It assumes the spec is already correct and approved — confirmation with the user happens upstream in the design skills.
|
|
13
13
|
|
|
14
14
|
> **Runtime contract:** every org interaction in this skill is a REST call
|
|
15
|
-
> dispatched through the Codey runtime (`
|
|
15
|
+
> dispatched through the Codey runtime (`dispatch` locally / the hosted
|
|
16
16
|
> Headless 360 MCP in shared surfaces). This skill has **no dependency on the
|
|
17
17
|
> execution environment** — no `sf` CLI, no shell scripts, no local Python, no
|
|
18
18
|
> temp files. Auth probes, record reads, and record writes are single REST
|
|
@@ -12,7 +12,7 @@ metadata:
|
|
|
12
12
|
This skill patches a flow that already exists in a connected org. The source of truth is the deployed flow's `Metadata` JSON, retrieved live from the Tooling `Flow` sObject — there is no spec file, no `.flow-meta.xml`, no zip, no SFDX project. The skill retrieves the JSON, edits it in memory, and PATCHes it back.
|
|
13
13
|
|
|
14
14
|
> **Runtime contract:** every org interaction in this skill is a REST call
|
|
15
|
-
> dispatched through the Codey runtime (`
|
|
15
|
+
> dispatched through the Codey runtime (`dispatch` locally / the hosted
|
|
16
16
|
> Headless 360 MCP in shared surfaces). This skill has **no dependency on the
|
|
17
17
|
> execution environment** — no `sf` CLI, no local Python, no temp files, no
|
|
18
18
|
> scratch SFDX project. Auth probes, the flow retrieve, and the redeploy are
|
|
@@ -12,6 +12,14 @@ metadata:
|
|
|
12
12
|
semver: ">=2.0.0"
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
# Querying Fs Data Capture Reference
|
|
16
|
+
|
|
17
|
+
## When to Use This Skill
|
|
18
|
+
|
|
19
|
+
Build, edit, and deploy Salesforce Data Capture Flows (processType DataCaptureFlow) — Field Service mobile / offline forms. Use when authoring flow-meta.xml with runtime_service_fieldservice:dc* components, Repeater loops (.AllItems), master-detail child record persistence, visual polish (gradient banners, progress bars, callouts), supporting objects with FLS/permsets, debugging DataCaptureFlow deploy errors, or troubleshooting why a deployed form doesn't appear on the FSL Mobile Forms tab (DDC/WorkPlan OWD + AssignedResource sharing prerequisites).
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
15
23
|
# Salesforce Data Capture Flow Skill
|
|
16
24
|
|
|
17
25
|
Build, edit, and deploy Salesforce Flows with `processType: DataCaptureFlow` (Field Service mobile / offline forms).
|
|
@@ -38,13 +46,6 @@ Optional `IsLlmTargetable` custom property — if you include it, it must be a J
|
|
|
38
46
|
|
|
39
47
|
The `<booleanValue>false</booleanValue>` form deploys but blocks activation — error: `The value of the IsLlmTargetable custom property's value field must be a string in JSON format`. Omitting the property entirely is also fine.
|
|
40
48
|
|
|
41
|
-
Required input variables:
|
|
42
|
-
```xml
|
|
43
|
-
<variables><name>recordId</name><dataType>String</dataType><isInput>true</isInput><isOutput>false</isOutput><isCollection>false</isCollection></variables>
|
|
44
|
-
<variables><name>parentRecordId</name><dataType>String</dataType><isInput>true</isInput><isOutput>false</isOutput><isCollection>false</isCollection></variables>
|
|
45
|
-
<variables><name>parentObjectType</name><dataType>String</dataType><isInput>true</isInput><isOutput>false</isOutput><isCollection>false</isCollection></variables>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
49
|
---
|
|
49
50
|
|
|
50
51
|
## XML structure rules
|
|
@@ -430,8 +431,6 @@ The same accessors are also used inside `recordCreates` / `recordUpdates` `input
|
|
|
430
431
|
|
|
431
432
|
### Conditionally-hidden required fields — use `validationRule`, not `isRequired`
|
|
432
433
|
|
|
433
|
-
Never mark a field `isRequired=true` if it's behind a `visibilityRule`. The required check still fires while the field is hidden, so users can't proceed. Instead, set the field `isRequired=false` and wrap the rule:
|
|
434
|
-
|
|
435
434
|
```text
|
|
436
435
|
IF(TriggerField.selectedChoiceValues = "Yes",
|
|
437
436
|
AND(NOT(ISBLANK(value)), value >= 0, value <= 100000),
|
|
@@ -672,8 +671,6 @@ APEX
|
|
|
672
671
|
|
|
673
672
|
### 4. Tech must sign out and sign back in
|
|
674
673
|
|
|
675
|
-
FSL Mobile caches the sharing snapshot at login. Pull-to-refresh does not pick up new sharing — only a fresh auth token will. Tell the user to **sign out completely** of the FSL Mobile app, then sign back in. After that, the Forms tab fetch succeeds and DDC records render.
|
|
676
|
-
|
|
677
674
|
### What is NOT the cause (don't waste time on these)
|
|
678
675
|
|
|
679
676
|
- **Layout related-list naming** — `<relatedList>DynamicDataCapture</relatedList>` (singular) is the correct XML form. The UI API uses plural `DynamicDataCaptures` separately. Don't try to align them.
|
|
@@ -754,9 +751,25 @@ for f in r.get('details', {}).get('componentFailures', []):
|
|
|
754
751
|
|
|
755
752
|
## Reference examples
|
|
756
753
|
|
|
757
|
-
Bundled alongside this skill at `examples/`
|
|
754
|
+
Bundled alongside this skill at `examples/` (in this skill):
|
|
758
755
|
|
|
759
756
|
- `Data_Capture_All_Components.flow-meta.xml` — every component in deployment-ready XML
|
|
760
|
-
- `DataCapture_Showcase.flow-meta.xml` — full end-to-end flow: multi-screen form, continue-editing recordLookup, Repeater → Loop → child records via `.AllItems`, Create-or-Update CUD chain driven by a Decision, visual polish (banner, progress, callouts, review cards).
|
|
761
|
-
- `Repeater_with_prepopulation.flow-meta.xml` —
|
|
762
|
-
- `DataCapture_Repeater_with_data_showcase.flow` (in the org, not committed) — `.AllItems` loop spike; also documents non-working cross-row validation formula syntaxes
|
|
757
|
+
- `DataCapture_Showcase.flow-meta.xml` — full end-to-end flow: multi-screen form, continue-editing recordLookup, Repeater → Loop → child records via `.AllItems`, Create-or-Update CUD chain driven by a Decision, visual polish (banner, progress, callouts, review cards). **This is the canonical "truth" for XML format — when skill rules conflict with this file, the file wins.**
|
|
758
|
+
- `Repeater_with_prepopulation.flow-meta.xml` — canonical prepopulated-Repeater pattern: `recordLookups` (ServiceResource) → Repeater bound via `collection` inputParameter with nested field `value` defaults using `SourceCollection[$EachItem].FieldApiName` → post-Repeater Loop over `.AllItems` feeding a display screen that reads `{!LoopName.nestedField.value}` and `{!LoopName.UniqueField__Id}`. **Validated example — treat as ground truth for prepopulation and post-Repeater display XML.**
|
|
759
|
+
- `DataCapture_Repeater_with_data_showcase.flow` (in the org, not committed) — canonical `.AllItems` loop spike; also documents non-working cross-row validation formula syntaxes
|
|
760
|
+
|
|
761
|
+
─────
|
|
762
|
+
**Runtime context (Headless 360 / agentic):** When this skill runs in the Headless 360 / agentic context, prefer the platform dispatch tool (``dispatch`` in the hosted Headless 360 MCP; ``dispatch`` in the local-dev MCP) 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. Call the dispatch tool against the canonical paths. CLI fallback is acceptable only when no API path exists for a given capability.
|
|
763
|
+
|
|
764
|
+
## Critical Constraints
|
|
765
|
+
|
|
766
|
+
**Operational rules:**
|
|
767
|
+
|
|
768
|
+
- Required input variables:
|
|
769
|
+
```xml
|
|
770
|
+
<variables><name>recordId</name><dataType>String</dataType><isInput>true</isInput><isOutput>false</isOutput><isCollection>false</isCollection></variables>
|
|
771
|
+
<variables><name>parentRecordId</name><dataType>String</dataType><isInput>true</isInput><isOutput>false</isOutput><isCollection>false</isCollection></variables>
|
|
772
|
+
<variables><name>parentObjectType</name><dataType>String</dataType><isInput>true</isInput><isOutput>false</isOutput><isCollection>false</isCollection></variables>
|
|
773
|
+
```
|
|
774
|
+
- Never mark a field `isRequired=true` if it's behind a `visibilityRule`. The required check still fires while the field is hidden, so users can't proceed. Instead, set the field `isRequired=false` and wrap the rule:
|
|
775
|
+
- FSL Mobile caches the sharing snapshot at login. Pull-to-refresh does not pick up new sharing — only a fresh auth token will. Tell the user to **sign out completely** of the FSL Mobile app, then sign back in. After that, the Forms tab fetch succeeds and DDC records render.
|
|
@@ -51,7 +51,7 @@ Never expose internal skill names, SOR IDs, or tool references to the user.
|
|
|
51
51
|
- If not covered + no context: exact structured question
|
|
52
52
|
|
|
53
53
|
4. **Question format** (three or four parts):
|
|
54
|
-
```
|
|
54
|
+
```text
|
|
55
55
|
**Recommendation:** [Only include when context is sufficient. Lead with the best-fit option given what's known, then briefly note alternatives with the condition under which they'd apply instead — not a flat menu of equal choices, but a ranked steer. Omit entirely when confidence is low.]
|
|
56
56
|
|
|
57
57
|
**Question:** [The actual question — or a lighter "does this fit?" when a Recommendation is present]
|
|
@@ -16,7 +16,7 @@ This skill ingests a brand source and produces a 14-field color scheme that gets
|
|
|
16
16
|
> Methodology, color tables, and contrast checks are unchanged from upstream — refresh from upstream when content changes there.
|
|
17
17
|
|
|
18
18
|
> **Runtime contract:** every org interaction in this skill is a single REST
|
|
19
|
-
> call dispatched through the Codey runtime (`
|
|
19
|
+
> call dispatched through the Codey runtime (`dispatch` locally / the hosted
|
|
20
20
|
> Headless 360 MCP in shared surfaces). This skill has **no dependency on the
|
|
21
21
|
> execution environment** — no `sf` CLI, no shell scripts, no local Python, no
|
|
22
22
|
> temp files. Colors are derived and validated by the agent inline, then
|