omniscript-flow-design-requirements

Use this skill to gather, document, and validate OmniScript flow design requirements before development begins — covering screen layout requirements, branching logic, data source requirements, and user journey mapping. Trigger keywords: OmniScript requirements, OmniScript BA, OmniScript screen design, OmniScript user journey, OmniScript branching requirements. NOT for OmniScript development implementation, DataRaptor mapping, Integration Procedure design, or standard Screen Flow requirements.

Best use case

omniscript-flow-design-requirements is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use this skill to gather, document, and validate OmniScript flow design requirements before development begins — covering screen layout requirements, branching logic, data source requirements, and user journey mapping. Trigger keywords: OmniScript requirements, OmniScript BA, OmniScript screen design, OmniScript user journey, OmniScript branching requirements. NOT for OmniScript development implementation, DataRaptor mapping, Integration Procedure design, or standard Screen Flow requirements.

Teams using omniscript-flow-design-requirements 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

$curl -o ~/.claude/skills/omniscript-flow-design-requirements/SKILL.md --create-dirs "https://raw.githubusercontent.com/PranavNagrecha/AwesomeSalesforceSkills/main/skills/admin/omniscript-flow-design-requirements/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/omniscript-flow-design-requirements/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How omniscript-flow-design-requirements Compares

Feature / Agentomniscript-flow-design-requirementsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use this skill to gather, document, and validate OmniScript flow design requirements before development begins — covering screen layout requirements, branching logic, data source requirements, and user journey mapping. Trigger keywords: OmniScript requirements, OmniScript BA, OmniScript screen design, OmniScript user journey, OmniScript branching requirements. NOT for OmniScript development implementation, DataRaptor mapping, Integration Procedure design, or standard Screen Flow requirements.

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

# OmniScript Flow Design Requirements

This skill activates when a business analyst or product owner needs to gather and document OmniScript requirements before the developer begins building. It produces structured requirements artifacts — journey maps, branching logic docs, and data requirement matrices — that translate stakeholder intent into buildable OmniScript specifications.

---

## Before Starting

Gather this context before working on anything in this domain:

- Confirm the org has an OmniStudio license (included with Health Cloud, FSC, Manufacturing Cloud, Nonprofit Cloud, Education Cloud, Communications Cloud, Energy & Utilities Cloud) — OmniScript is not available in core Sales/Service Cloud without an additional license.
- Determine whether the org runs Standard Runtime (OmniStudio on Core, Spring '25+) or Package Runtime (managed package VBT/OmniStudio) — this affects Design Assistant availability and component HTML structure but does not change requirements artifact format.
- The most common wrong assumption: practitioners treat OmniScript requirements as interchangeable with Screen Flow requirements. OmniScript has mandatory structural rules (at least one Step, two data sources, one Navigate Action) that must be reflected in requirements artifacts.
- Every OmniScript must have: at least one Step element, at least two data source integrations (pre/post Step actions or embedded DataRaptors), and a Navigate Action to close or redirect after completion. Missing any of these blocks activation.

---

## Core Concepts

### OmniScript Structural Requirements

OmniScript has hard structural rules enforced at activation:
- At minimum one Step element is required — the Step is the container for all screen elements and controls the wizard navigation bar
- At least two data source bindings are required — typically a Pre-Step Load action (Read DataRaptor or Integration Procedure) and a Post-Step Save action (Transform DataRaptor or IP)
- A Navigate Action is required to complete the flow — without it the OmniScript hangs on the final step
- Branching lives inside Conditional View properties on Block container elements, triggered by Radio Button or Checkbox values — not on Step elements themselves

Requirements documents that omit data binding or the Navigate Action will produce incomplete developer specs that cause activation failures.

### Branching and Conditional Logic

OmniScript branching is declarative, not code-driven:
- Conditional Views are set on Block containers using the Condition property in JSON notation — e.g., `%RadioField:value% == 'Yes'`
- Radio Button elements in a separate Block from the conditional Block are the primary branching trigger
- Pre-Step and Post-Step action sequencing is mandatory for data flow — requirements must specify whether a data load fires before the user sees the screen (Pre-Step) or after they submit (Post-Step)
- Spring '25+ Standard Designer includes a Design Assistant that flags soft-limit warnings (too many elements per step, deep nesting) — requirements should note expected complexity levels

### Data Source Requirements

Each OmniScript step typically needs one or more data sources:
- Read DataRaptor — retrieves data to pre-populate fields (Pre-Step action)
- Transform DataRaptor — saves or transforms submitted data (Post-Step action)
- Integration Procedure — orchestrates multi-object reads/writes or calls external APIs
- SOQL-based DataRaptor — direct SOQL retrieval for simple lookups
- Remote Actions — Apex class methods for complex logic

Requirements must specify: what data is needed per step, whether it is read-only or read-write, what object/API it comes from, and whether it needs to be pre-populated before the user sees the screen.

---

## Common Patterns

### Pattern: Step-by-Step Journey Map

**When to use:** When the OmniScript has 3 or more steps or any conditional branching — before the developer opens the Designer.

**How it works:**
1. List all process steps in order (Step 1: Contact Info, Step 2: Service Selection, etc.)
2. For each step: document all screen elements (Text fields, Radio Buttons, Lookup, Selects), pre-population data source, and save action
3. For each Radio Button or Checkbox that drives branching: document the condition expression and which Blocks show/hide
4. Mark the Navigate Action destination (record page, Experience Cloud page, or custom URL)

**Why not the alternative:** Skipping the journey map leads to mid-build discovery of missing data sources or branching logic, requiring complete re-work of Step structure.

### Pattern: Data Requirements Matrix

**When to use:** When the OmniScript reads from or writes to 3 or more objects, or when an Integration Procedure orchestrates multiple API calls.

**How it works:**
1. Create a matrix with rows = OmniScript steps, columns = Object/API, Action (Read/Write), DataRaptor or IP name, Timing (Pre/Post)
2. For each cell: specify the field-level mapping (source field → OmniScript element name)
3. Flag any fields that require validation at requirements time (required, format, SOQL-validated)
4. Identify data that requires an Integration Procedure (multi-object write, external API) vs a simple DataRaptor (single-object CRUD)

---

## Decision Guidance

| Situation | Recommended Approach | Reason |
|---|---|---|
| Single-object form with no branching | Consider Screen Flow instead of OmniScript | OmniScript requires a license and adds complexity; Screen Flow covers single-object use cases natively |
| Multi-step guided journey with conditional branching | OmniScript is appropriate | Conditional Views and Step navigation are OmniScript strengths |
| External API call required mid-flow | Integration Procedure (document in requirements) | DataRaptors cannot call external APIs; IP must be specified as the data source type |
| Embedded in Experience Cloud for community users | Confirm guest user profile permissions in requirements | Community guest users cannot access all Salesforce objects; flag required sharing/CRUD/FLS |
| Complex validation rules at each step | Integration Procedure Post-Step action | Apex validation inside an IP provides server-side validation with structured error messages returned to the OmniScript |

---

## Recommended Workflow

Step-by-step instructions for an AI agent or practitioner working on this task:

1. Confirm OmniStudio license availability and org runtime type (Standard vs Package Runtime) — this context must appear in the requirements document header.
2. Conduct requirements gathering session: capture all process steps, screen elements per step, branching triggers and conditions, and final action (what happens when the user completes the last step).
3. Build the user journey map: list Steps in sequence, document conditional branching paths with condition expressions in OmniScript notation (`%FieldName:value% == 'X'`), and mark the Navigate Action destination.
4. Build the data requirements matrix: for each step, specify data source type (Read DataRaptor, Transform DataRaptor, Integration Procedure, Remote Action), timing (Pre-Step or Post-Step), source object/API, and field-level mappings.
5. Validate structural completeness: confirm at least one Step, at least two data source bindings, and one Navigate Action are documented — flag any gaps before handing off to the developer.
6. Document action requirements: list every action type needed (Navigation, OmniScript Launch, Apex, DataRaptor, Custom LWC), the triggering element, and the expected outcome.
7. Review with stakeholders and developer to confirm requirements are buildable within OmniScript constraints before development starts.

---

## Review Checklist

Run through these before marking work in this area complete:

- [ ] OmniStudio license confirmed and org runtime type documented
- [ ] At least one Step element documented per requirements
- [ ] At least two data source bindings specified (read and write)
- [ ] All branching conditions documented in OmniScript Conditional View notation
- [ ] Navigate Action destination specified
- [ ] Data requirements matrix complete with field-level mappings
- [ ] External API requirements flagged as Integration Procedure (not DataRaptor)
- [ ] Experience Cloud / guest user permissions noted if applicable

---

## Salesforce-Specific Gotchas

Non-obvious platform behaviors that cause real production problems:

1. **Activation failure without Navigate Action** — An OmniScript without a Navigate Action cannot be activated. Requirements that omit the final step action will produce a skill package that fails at the developer's first activation attempt. Always document the Navigate Action in requirements.
2. **Pre-Step action timing confusion** — Data loaded in a Post-Step action is NOT available on the current step — it only fires after the user clicks Next. If a data load must pre-populate fields before the user sees the screen, it must be specified as a Pre-Step action. Requirements must explicitly note Pre vs Post timing.
3. **Conditional Views require Block containers** — Branching is set on a Block container element, not on individual field elements or Step elements. A common requirements gap is specifying "show field X if condition Y" without noting the Block grouping requirement. Requirements must group elements that share a condition into named Block containers.

---

## Output Artifacts

| Artifact | Description |
|---|---|
| OmniScript requirements document | Step inventory with screen elements, data sources, and actions per step |
| User journey map | Visual or tabular map of Steps, branching conditions, and Navigate Action destination |
| Data requirements matrix | Per-step table of data source type, object/API, field mappings, and Pre/Post timing |
| Action requirements register | List of all action types needed with triggering element and expected outcome |

---

## Related Skills

- `omnistudio/omniscript-design-patterns` — use after requirements are complete to implement the OmniScript in the Designer
- `omnistudio/integration-procedures` — use when requirements identify multi-object or external API data needs
- `admin/omnistudio-vs-standard-decision` — use before requirements gathering to confirm OmniScript is the right tool
- `admin/flexcard-requirements` — companion skill for FlexCard requirements that may embed or launch OmniScripts

Related Skills

ip-range-and-login-flow-strategy

8
from PranavNagrecha/AwesomeSalesforceSkills

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

8
from PranavNagrecha/AwesomeSalesforceSkills

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

8
from PranavNagrecha/AwesomeSalesforceSkills

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-lwc-omniscript-migration

8
from PranavNagrecha/AwesomeSalesforceSkills

Migrate classic Visualforce-based OmniScripts to LWC-based runtime with feature parity and regression testing. NOT for new OmniScript design.

omniscript-versioning

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when managing OmniScript versions: activating new versions, deactivating prior versions, testing a specific version before activation, rolling back to a previous version, or understanding version identity (Type/Subtype/Language triplet). NOT for OmniStudio deployment or DataPack migration (use omnistudio/omnistudio-deployment-datapacks).

omniscript-session-state

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when an OmniScript must persist mid-flow state across refresh, navigation, multi-device resume, or abandonment recovery. Covers session objects, staging data, OmniScript tracking, and resume URLs. Does NOT cover OmniScript UI step layout (see omniscript-design) or general Flow pause/resume (see flow-transaction-finalizer-patterns).

omniscript-design-patterns

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when designing or reviewing OmniScripts for guided experiences, step structure, branching, save/resume, and the boundary between OmniScript, Integration Procedures, DataRaptors, and custom LWCs. Triggers: 'omniscript design', 'too many steps in omniscript', 'save and resume omniscript', 'branching in omniscript', 'when should this be an integration procedure'. NOT for deep Integration Procedure or DataRaptor design when the guided interaction layer is not the main concern.

flexcard-design-patterns

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when designing, building, or reviewing OmniStudio FlexCards — including data source selection, card states, actions, conditional visibility, flyout configuration, and child card iteration. Triggers: 'FlexCard', 'card template', 'flyout', 'card action', 'card state', 'data source', 'child card', 'conditional visibility'. NOT for OmniScript design, standalone LWC development, or Apex controller architecture outside the FlexCard context.

calculation-procedure-design

8
from PranavNagrecha/AwesomeSalesforceSkills

Design OmniStudio Calculation Procedures and Calculation Matrices for pricing, rating, and rules-heavy scoring. Trigger keywords: calculation procedure, calculation matrix, rating engine, pricing matrix, expression set, decision matrix, OmniStudio rules. Does NOT cover: generic Apex-only pricing code, Salesforce CPQ price rules (different product), or Flow-based decision logic.

lwc-in-flow-screens

8
from PranavNagrecha/AwesomeSalesforceSkills

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.

custom-property-editor-for-flow

8
from PranavNagrecha/AwesomeSalesforceSkills

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.

slack-workflow-builder

8
from PranavNagrecha/AwesomeSalesforceSkills

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.