A Singapore Government Agency Website

How to build workflows

What this feature does

The Workflow Editor is a drag-and-drop interface for automating processes across systems. You connect nodes (triggers, AI, API, decisions, notifications) to define how data flows through your automation. The workflow engine manages execution, retries, and state tracking.

Scope: This guide covers creating a workflow, configuring triggers, and adding nodes. It does not cover testing (refer to How to test and run workflows) or publishing (refer to How to publish and release).

Who this applies to

  • Audience: Developers and editors building workflow automations in Opus
  • Access required: Editor or Administrator role on a project
  • Assumed knowledge: You have an Opus workspace and project. Refer to Get started with Opus for initial setup.

Steps

Step 1: Create a workflow

You can start from a template or from scratch.

From a template:

  1. Select Use Template from the project view.
  2. Browse templates tagged with Workflow and select one that matches your use case.
  3. Select Use Template to create the workflow with a pre-configured blueprint.

From scratch:

  1. From the project view, select Add New File.
  2. Select Workflow as the artifact type.
  3. Enter a descriptive name (e.g., “Customer Onboarding”, “Invoice Processing”).
  4. Select Add, then open the new workflow.

Step 2: Configure the trigger

The trigger node defines the starting point — where instructions first enter the workflow.

Trigger type When to use
Input (default) Custom integrations via authenticated API calls
ApplySG Form submissions from ApplySG
CFT File transfer events from Cloud File Transfer
FormSG Secure form submissions from FormSG
Ownself Gather Events from the Case Management system
GovRewards Event notifications from GovRewards
  1. Select Select Input on the trigger node.
  2. Choose the trigger type.
  3. Open the trigger node settings and copy the webhook endpoint URL.
  4. Configure the receiving system to send data to this URL (if applicable).

Triggering workflows via API requires an access token. Refer to How to execute via API for details.

Step 3: Add and configure nodes

Drag nodes from the node palette onto the canvas and connect them to define your automation steps. Each node performs a specific action — API calls, AI processing, file handling, notifications, or branching logic.

  1. Drag a node from the palette onto the canvas.
  2. Connect the node to the trigger (or a preceding node) by dragging from one node’s output to another’s input.
  3. Select the node and configure its settings in the side panel.
  4. Repeat for each step in your workflow.

For the full list of available nodes and their configuration, refer to Node reference.

Step 4: Configure advanced settings (optional)

Advanced settings are available on non-trigger nodes for fine-tuning behaviour.

Setting What it does
Additional input Reference data from upstream nodes that are not directly connected
Execution mode (loop) Execute the node once per item in an array instead of once for the full input
Output path Customise where the node’s output is stored in the data context
Schema validation Define a JSON schema to validate the node’s output — fails execution if validation fails

Step 5: Preview your workflow

Before testing, review the workflow graph to confirm:

  • The trigger node is connected to the first processing node
  • All nodes are connected in the correct sequence
  • Node settings are complete (nodes with validation errors display an indicator)

Constraints and limitations

Constraint Limit
Nodes per workflow 50
Payload size (per node) 10 MB
Child workflow depth 5 levels
Loop iterations 10 items
Function node timeout 5 seconds

For the full limits table, refer to Limits and constraints.

Chat with me!
Bot Launcher