Skip to content
AI & Agents
Skill

/field-service-data-capture-reference-configure

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,

From plugin
forcedotcom-sf-skills
997200 skills2 agents14 commands3 MCP
Install
$ npx -y skills add forcedotcom/afv-library --skill field-service-data-capture-reference-configure --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/field-service-data-capture-reference-configure

Context preview

The summary Claude sees to decide when to auto-load this skill.

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,

SKILL.md

field-service-data-capture-reference-configure.SKILL.md
name: field-service-data-capture-reference-configure
description: "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)."
user-invocable: false
metadata:
  version: "1.0"
  domains: ["Field Service"]
  cliTools:
    - tool: ["python3"]
      semver: ">=3.9.0"
    - tool: ["sf"]
      semver: ">=2.0.0"

Querying Fs Data Capture Reference

When to Use This Skill

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).

Workflow

Salesforce Data Capture Flow Skill

Build, edit, and deploy Salesforce Flows with `processType: DataCaptureFlow` (Field Service mobile / offline forms).

---

Required metadata (every flow)

<processType>DataCaptureFlow</processType>
<areMetricsLoggedToDataCloud>false</areMetricsLoggedToDataCloud>
<environments>Offline</environments>
<!-- NO <apiVersion> tag -->

Optional `IsLlmTargetable` custom property — if you include it, it must be a JSON string, not a boolean:

<customProperties>
    <name>IsLlmTargetable</name>
    <value><stringValue>{&quot;value&quot;:&quot;false&quot;}</stringValue></value>
</customProperties>

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.

---

XML structure rules

Salesforce's Flow schema enforces grouping — all elements of the same type must appear in a single contiguous block. Deploy fails with `Element X is duplicated at this location` when violated.

Group order doesn't matter, but within each group elements must be adjacent:

  • all `<choices>` together
  • all `<dynamicChoiceSets>` together
  • all `<screens>` together
  • all `<decisions>` together
  • all `<recordLookups>` together
  • all `<recordCreates>` together
  • all `<recordUpdates>` together
  • all `<loops>` together
  • all `<assignments>` together
  • all `<variables>` together

Connector references determine execution order, not XML order.

---

Component reference

All extensions: prefix `runtime_service_fieldservice:`

| Component | Extension | fieldType | |-----------|-----------|-----------| | Short Text | `dcTextInput` | `ComponentInstance` | | Long Text | `dcLongText` | `ComponentInstance` | | Email | `dcEmail` | `ComponentInstance` | | Phone | `dcPhone` | `ComponentInstance` | | Name | `dcName` | `ComponentInstance` | | Numeric | `dcNumeric` | `ComponentInstance` | | Counter | `dcCounter` | `ComponentInstance` | | Date | `dcDate` | `ComponentInstance` | | Date & Time | `dcDateTime` | `ComponentInstance` | | Checkbox | `dcCheckbox` | `ComponentInstance` | | Toggle | `dcToggle` | `ComponentInstance` | | Address / GPS | `dcAddress` | `ComponentInstance` | | Lookup | `dcLookup` | `ComponentInstance` | | Static image | `dcFileView` | `ComponentInstance` | | Upload image (mobile) | `dcUpImage` | `ComponentInstance` | | Upload file (mobile) | `dcUpFile` | `ComponentInstance` | | Signature (mobile) | `dcSignature` | `ComponentInstance` | | Picklist single | `dcPicklist` | `ComponentChoice` | | Picklist multi | `dcPicklist` | `ComponentMultiChoice` | | Radio buttons | `dcRbGroup` | `ComponentChoice` | | Checkbox group | `dcCbGroup` | `ComponentMultiChoice` | | Matrix | `dcMatrix` | `ComponentMultiChoice` | | Display text | *(none)* | `DisplayText` | | Section | *(none)* | `RegionContainer` + `Region` | | Repeater | *(none)* | `Repeater` |

Note: `<fieldType>Range</fieldType>` is NOT a valid slider fieldType in DataCaptureFlow (despite "Range/Slider" appearing in Builder UI lists). Sliders aren't available as pure metadata in this process type — use `dcNumeric` or `dcCounter`. `forceContent:repeater` (Lightning generic) ≠ `<fieldType>Repeater</fieldType>` (FSL offline). They share a concept, not XML.

Setting the label

| fieldType | How | |-----------|-----| | `ComponentInstance` | `<inputParameters><name>label</name><value><stringValue>…</stringValue></value></inputParameters>` | | `ComponentChoice` / `ComponentMultiChoice` | `<fieldText>Label</fieldText>` | | `DisplayText` | `<fieldText>HTML</fieldText>` |

All ComponentInstance extensions (including `dcAddress` and `dcToggle`) accept the `label` inputParameter — no wrapping DisplayText needed.

Required flag

Every input field needs `<isRequired>true/false</isRequired>` at field level. That single flag is sufficient for every `dc*` component — no extra `required` / `isRequired` inputParameter is needed.

`dcLookup` additionally accepts an `isRequired` inputParameter (boolean), but the field-level `<isRequired>` drives enforcement.

`dcCheckbox` and `dcToggle` accept `<isRequired>true</isRequired>` syntactically but don't enforce it at runtime.

Every input field must also have

<inputsOnNextNavToAssocScrn>UseStoredValues</inputsOnNextNavToAssocScrn>
<storeOutputAutomatically>true</storeOutputAutomatically>
<styleProperties>
    <verticalAlignment><stringValue>top</stringValue></verticalAlignment>
    <width
Read more
Ships withforcedotcom-sf-skills

This repository provides a curated collection of Salesforce agent skills for building applications.

Get the whole plugin

Other skills on forcedotcom-sf-skills.