custom-property-editor-for-flow
Use when building or reviewing an LWC Custom Property Editor for Flow screen or action configuration, including the `configurationEditor` metadata hook, builder-side APIs, validation, and value-change events. Triggers: 'custom property editor', 'Flow configuration editor', 'builderContext', 'inputVariables', 'configurationEditor'. NOT for ordinary runtime screen-component behavior when no Flow Builder design-time customization is involved.
Best use case
custom-property-editor-for-flow is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when building or reviewing an LWC Custom Property Editor for Flow screen or action configuration, including the `configurationEditor` metadata hook, builder-side APIs, validation, and value-change events. Triggers: 'custom property editor', 'Flow configuration editor', 'builderContext', 'inputVariables', 'configurationEditor'. NOT for ordinary runtime screen-component behavior when no Flow Builder design-time customization is involved.
Teams using custom-property-editor-for-flow should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/custom-property-editor-for-flow/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How custom-property-editor-for-flow Compares
| Feature / Agent | custom-property-editor-for-flow | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when building or reviewing an LWC Custom Property Editor for Flow screen or action configuration, including the `configurationEditor` metadata hook, builder-side APIs, validation, and value-change events. Triggers: 'custom property editor', 'Flow configuration editor', 'builderContext', 'inputVariables', 'configurationEditor'. NOT for ordinary runtime screen-component behavior when no Flow Builder design-time customization is involved.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Custom Property Editor For Flow Use this skill when a Flow-exposed component needs a better design-time editing experience inside Flow Builder than the default property pane can provide. The key distinction is between the runtime component and the builder-only editor component. They are related, but they are not the same thing and should not be designed as if they run in the same context. --- ## Before Starting Gather this context before working on anything in this domain: - Is the component a Flow screen component, another Flow-exposed action, or a packaged surface with builder customization needs? - Which fields truly need a custom editing experience instead of default Flow property inputs? - What validation, object-awareness, or builder-context data must the editor use? --- ## Core Concepts ### Runtime Component And Editor Component Are Separate The screen component that runs in Flow and the custom property editor that runs in Flow Builder are distinct LWCs. Keep that boundary clear so runtime assumptions do not leak into the builder experience. ### Metadata Registration Drives The Builder Hook The component metadata must point Flow Builder to the custom property editor through the `configurationEditor` relationship. If that registration is wrong, the editor never becomes part of the design-time experience. ### Builder APIs Are Design-Time Contracts Custom property editors work with Flow Builder-facing APIs such as `inputVariables`, `builderContext`, `elementInfo`, and `validate()`. These are builder contracts, not general-purpose runtime APIs. ### Editor Events Are How Values Change The editor communicates changes back to Flow Builder through the documented configuration-editor event pattern. A visually correct editor that never dispatches the right event is still broken. --- ## Common Patterns ### Scalar Design-Time Editor **When to use:** A component needs better labels, validation, or UX for a few configuration fields. **How it works:** Expose a focused editor LWC that reads `inputVariables`, updates fields through the configuration-editor event, and implements `validate()` when builder-side validation matters. **Why not the alternative:** For simple cases, default Flow property inputs are cheaper and clearer. ### Builder-Context-Aware Editor **When to use:** The design-time experience depends on Flow metadata or available resources. **How it works:** Read `builderContext` or related builder APIs and shape the editor UI around what Flow Builder already knows. ### Runtime And Editor Contract Pairing **When to use:** A screen component has multiple configurable inputs and is meant to be reused by admins. **How it works:** Keep the runtime component API and editor field names aligned so the editor is simply a safer builder for the same contract. --- ## Decision Guidance | Situation | Recommended Approach | Reason | |---|---|---| | Default Flow property pane is sufficient | Use default editor | Lower complexity | | Admins need guided design-time UX or validation | Custom Property Editor | Better builder experience | | Editor needs Flow metadata context | Use builder-side APIs such as `inputVariables` and `builderContext` | Design-time context belongs in the editor | | Runtime logic is being copied into the editor | Split responsibilities again | Builder and runtime concerns are different | --- ## Recommended Workflow Step-by-step instructions for an AI agent or practitioner activating this skill: 1. Gather context — confirm the org edition, relevant objects, and current configuration state 2. Review official sources — check the references in this skill's well-architected.md before making changes 3. Implement or advise — apply the patterns from Core Concepts and Common Patterns sections above 4. Validate — run the skill's checker script and verify against the Review Checklist below 5. Document — record any deviations from standard patterns and update the template if needed --- ## Review Checklist Run through these before marking work in this area complete: - [ ] The runtime component and editor component are treated as separate LWCs. - [ ] Metadata registration points Flow Builder to the custom editor correctly. - [ ] The editor reads and writes the intended builder-side contract. - [ ] Configuration-change events are dispatched intentionally. - [ ] `validate()` exists where builder-side validation matters. - [ ] The team rejected default Flow property inputs for a real UX reason. --- ## Salesforce-Specific Gotchas Non-obvious platform behaviors that cause real production problems: 1. **A valid runtime component can still have a broken builder experience** - the editor is a separate surface with separate failure modes. 2. **`configurationEditor` metadata is not optional once you choose a custom editor** - a missing link leaves the builder unaware of the LWC. 3. **Builder contracts are not generic runtime APIs** - `inputVariables` and `builderContext` belong to the editor context. 4. **An editor that never fires the change event is functionally inert** - visual polish does not matter if Flow Builder never receives the update. --- ## Output Artifacts | Artifact | Description | |---|---| | Editor design review | Findings on metadata hookup, builder APIs, and validation | | Builder contract pattern | LWC design-time event and API guidance | | Runtime/editor pairing plan | Mapping between runtime component inputs and editor controls | --- ## Related Skills - `flow/flow-custom-property-editors` - use when the Flow-side extensibility model is the main focus rather than the LWC implementation details. - `lwc/lifecycle-hooks` - use when the editor or runtime component has general LWC lifecycle issues. - `admin/flow-for-admins` - use when the better answer may be a simpler declarative Flow design with no custom LWC.
Related Skills
ip-range-and-login-flow-strategy
Design and implement Salesforce Login Flows (Screen Flows assigned to profiles or Experience Cloud sites) that run post-authentication to enforce conditional MFA, IP-based branching, terms-of-service acceptance, or user data collection. Covers Login Flow creation in Flow Builder, profile/site assignment, IP-aware decision logic, and ConnectedAppPlugin extension points. NOT for static IP allowlisting or profile Login IP Ranges (see network-security-and-trusted-ips), org-wide session policies, or SSO/SAML IdP configuration.
customer-data-request-workflow
Implement GDPR/CCPA data subject rights (access, deletion, rectification) using Salesforce Privacy Center and/or custom workflow. NOT for general backup or org-level data retention policy.
omnistudio-vs-flow-decision
Use when choosing between OmniStudio (OmniScript / Integration Procedure / FlexCard / DataRaptor) and Flow / Screen Flow / Apex for a given capability. Triggers: 'omnistudio or flow', 'omniscript vs screen flow', 'integration procedure vs subflow', 'flexcard vs lightning page'. NOT for general automation selection across Workflow/Process Builder/Apex (see automation-selection tree).
omnistudio-custom-lwc-elements
Creating and integrating custom Lightning Web Components within OmniScripts: LWC override patterns, pubsub event handling, custom validation, OmniStudio data passing conventions. Use when a standard OmniScript element cannot meet a UX requirement. NOT for standalone LWC development (use lwc/* skills). NOT for Integration Procedures (use integration-procedures). NOT for embedding an OmniScript inside an LWC (use omnistudio-lwc-integration).
lwc-in-flow-screens
Use when building, reviewing, or troubleshooting a custom Lightning Web Component that runs inside a Flow screen element, covering @api props exposed to Flow, FlowAttributeChangeEvent for output, validate() for user input validation, and flow navigation events. Triggers: 'lwc in flow screen', 'FlowAttributeChangeEvent', 'flow screen component not updating', 'flow validate method', 'flow navigation from lwc'. NOT for custom property editors (use custom-property-editor-for-flow), NOT for embedding a flow inside an LWC (use flow/screen-flows), NOT for auto-launched flows.
lwc-custom-lookup
Custom lookup component in LWC — typeahead/autocomplete that searches records via Apex SOSL/SOQL, shows pills, supports keyboard navigation, and manages open/close state. Use when lightning-input-field or lightning-record-picker won't work (cross-org search, computed filters, custom result rendering). NOT for in-form lookups inside lightning-record-edit-form (use lightning-input-field) or lookup filters (use admin lookup filter config).
lwc-custom-event-patterns
When and how to design CustomEvent traffic out of an LWC — bubbles / composed / cancelable flag choices, detail payload shape, naming rules, and propagation control. Trigger keywords: 'event not reaching parent', 'composed shadow DOM', 'CustomEvent detail mutation', 'stopPropagation vs stopImmediatePropagation'. NOT for parent-to-child communication (use `@api` — see `lwc/component-communication`), NOT for sibling fan-out (use Lightning Message Service — see `lwc/lightning-message-service`), NOT for wire-service data plumbing.
lwc-custom-datatable-types
Use when you need to extend `lightning-datatable` with custom cell renderings: status pills, progress bars, image thumbnails, action cells, editable pickliststo, rich-text, or any column that `lightning-datatable` does not ship out of the box. Triggers: 'custom cell type lightning datatable', 'progress bar column', 'image column', 'inline edit picklist in datatable', 'rich text column'. NOT for basic datatable usage (see `lwc-data-table`) and NOT for tree-grid or large-dataset virtualization (see `virtualized-lists`).
experience-cloud-search-customization
Use this skill when configuring or extending search on an Experience Cloud site — covering Search Manager scope configuration, LWR vs Aura search component selection, federated search setup, guest user search access, and custom search result components. NOT for SOSL/SOQL query development. NOT for internal Salesforce global search or Einstein Search for agents.
slack-workflow-builder
Use this skill when designing or troubleshooting Slack Workflow Builder workflows that call Salesforce — especially the Salesforce connector step Run a Flow, mapping inputs/outputs, handling failures, and understanding limits. Triggers on: Slack Workflow Builder Salesforce, Run a Flow from Slack, autolaunched flow from Slack, Slack automation calling Salesforce. NOT for Salesforce Flow Builder tutorials unrelated to Slack (use flow skills), not for Flow Core Actions that send Slack messages from Salesforce (use flow-for-slack), not for initial org-to-workspace connection (use slack-salesforce-integration-setup), and not for building custom Slack apps outside Workflow Builder.
oauth-flows-and-connected-apps
Use when choosing or reviewing Salesforce OAuth flows and connected-app policy for integrations, including client credentials, JWT bearer, authorization code, device flow, scopes, and token lifecycle controls. Triggers: 'OAuth flow', 'connected app', 'client credentials', 'JWT bearer', 'refresh token', 'integration user'. NOT for record-level sharing design or for simple Named Credential usage when the auth-flow decision is already settled.
workflow-rule-to-flow-migration
Migrate Workflow Rules to record-triggered Flows: field update mapping, email alert migration, outbound message alternatives using Flow Core Actions, time-based workflow replacement with Scheduled Paths. NOT for Process Builder migration (use process-builder-to-flow-migration), NOT for building new flows from scratch.