@servicenow/sdk
Version:
ServiceNow SDK
51 lines (43 loc) • 2.69 kB
Markdown
---
tags: [wfa, workflow, workflow automation, flow, automation, action, trigger, dataPill, subflow, doInParallel, tryCatch, appendToFlowVariables]
---
# wfa
The `wfa` (Workflow Automation) namespace provides the core building blocks for defining Flows and Subflows. Use `wfa.trigger()` to start a flow, `wfa.action()` to execute built-in actions, and `wfa.flowLogic` for control flow (if/elseIf/else, forEach, doInParallel, tryCatch, appendToFlowVariables).
```typescript fluent
import { wfa } from '@servicenow/sdk/automation'
```
## Members
| Member | Description |
|--------|-------------|
| `flowLogic` | Control flow operators for branching, looping, and flow control (`if`, `elseIf`, `else`, `forEach`, `setFlowVariables`, `assignSubflowOutputs`, `endFlow`, `exitLoop`, `skipIteration`, `doInParallel`, `tryCatch`, `appendToFlowVariables`). |
| `action` | Execute a built-in action step and capture its typed outputs. Pass an action definition from the `action` built-ins. |
| `approvalDueDate` | Define a due-date policy for an `action.core.askForApproval` step. |
| `approvalRules` | Build a structured approval rules configuration for `action.core.askForApproval`. |
| `dataPill` | Create a typed data pill reference to a prior step's output or trigger data. |
| `inlineScript` | Define a server-side script inline as an action or subflow input. |
| `subflow` | Invoke a defined Subflow from inside a Flow or another Subflow. Pass an exported subflow constant and its inputs. |
| `actionStep` | Embed an OOB step inside a custom Action body. Pass a step definition from the `actionStep` built-ins. |
| `assignActionOutputs` | Assign output values inside a custom action body. Maps declared outputs to actual values or datapill references. |
| `errorEvaluation` | Define error evaluation conditions for a custom action. Conditions are evaluated in order; the first match sets the action's status. |
| `stage` | Activate a declared stage in the flow body. Pass a stage from `params.stages.<key>`. See `FlowStage` for stage declaration. |
| `trigger` | Register the trigger that starts the flow. Pass a trigger definition from the `trigger` built-ins. |
## Examples
### Basic Flow
```typescript fluent
import { Flow, wfa, trigger, action } from '@servicenow/sdk/automation'
export default Flow(
{ $id: Now.ID['my-flow'], name: 'My Flow' },
wfa.trigger(
trigger.record.created,
{ $id: Now.ID['my-flow-trigger'] },
{ table: 'incident' }
),
(params) => [
wfa.action(
action.core.log,
{ $id: Now.ID['my-flow-log'] },
{ log_level: 'info', log_message: 'New incident created' }
),
]
);
```