Product documentation
Updated July 6, 2026

Creating and Running Workflows

Open Workflows, manage the Integration tests list, then build flows in the editor with Test details, Test library, and Node types—extract variables, add assertions, and launch.

Overview

This guide walks the Workflows page and the visual flow editor exactly as they appear in Shift Left Studio: the Integration Tests list (search, bulk run/delete, Add Test) and the builder (Test Details, Test Library, Node Types, canvas, Save, and Launch Workflow). Explore the capability at integration test workflows.

For concepts and terminology, see Understanding Workflows.

Before you begin

  • Select Workflows in the top navigation. The page header reads Workflows with the subtitle "Create and manage end-to-end workflows/Integration tests," and the table below is titled Integration Tests.
  • You need at least one project containing tests — the Test Library in the editor lists tests from your projects to drop on the canvas.

Step 1 — Manage the Integration Tests list

The top-right buttons above the table are:

ButtonWhat it does
Select All / Deselect AllToggle selection of every workflow in view.
Run SelectedRuns the checked workflows (a toast confirms "Started execution for N workflow(s)").
Delete SelectedDeletes the checked workflows after a Delete Workflow Tests confirmation.
Add TestCreates a new workflow and opens the flow editor.

Use the Search Integration tests… box to filter by name, description, or status; a "Showing N of M tests" count sits beside it. Columns are Test Name, Status (last run: Passed / Failed / Error / Running / Not Run), Last Run, and Description, each sortable. Per-row action icons are Run Test, View Test Result, Edit Test, Copy workflow, and Delete Test.

Step 2 — Open the editor and set Test Details

Click Add Test (or a row's Edit Test). The flow editor opens with a left sidebar; the header shows the workflow name (New Integration Test for a new one).

Select the Test Details tab and fill:

FieldWhat it does
**Name ***Required. Placeholder "Enter integration test name." Saving is blocked with "Name is required to save" until set.
DescriptionPlaceholder "Describe what this integration test does…"
TagsComma-separated labels, placeholder "e.g. smoke, billing (comma-separated)." Saved when the field loses focus.

Use Collapse Sidebar / Expand Sidebar to reclaim canvas space.

Step 3 — Add API test nodes from the Test Library

  1. Open the Test Library tab. It shows a Search tests… box and a tree: Project → Feature → Endpoint → Test. Endpoints display an HTTP method badge (GET/POST/PUT/DELETE/PATCH); use 🔄 Refresh to reload.
  2. Drag a test onto the canvas or click to add it — the tip box reads "Drag tests onto the canvas or click to add them to your flow." Each becomes an API test node.
  3. A workflow may chain tests from multiple projects; the library lists each project separately. If the tree is empty you'll see "No projects found — Create a project first to see tests here."

Step 4 — Add system and logic nodes

  1. Open the Node Types tab (System Blocks). Nodes are grouped under Variables & State, Data Operations, Advanced Control Flow, Assertions & Validation, Execution Control, Utilities, and Workflow-Level Gates.
  2. Every start point needs a + Start node and every flow needs a + Stop node (both under Execution Control). Add logic nodes as needed, e.g. + IF/ELSE, + FOR EACH, + Wait/Delay, + Script, + Log/Debug.
  3. Click a node (adds it at the current view center with slight jitter) or drag it onto the canvas.

Step 5 — Connect nodes

  1. Drag from a node's output handle to the next node's input handle. Nodes expose typed handles — a green success path, a blue data path, and a red Fail path where applicable.
  2. Invalid connections are rejected with an Invalid connection popup. Adding a test with a missing ID shows Cannot add test"Test ID is missing. Please select a valid test from the sidebar."
  3. Use the canvas controls to zoom and to Align all nodes in a straight line or Align all nodes to grid; a minimap helps navigate large flows.

Step 6 — Extract variables to pass data downstream

  1. Double-click an API test node to open its inspector, then find Variable Outputs. The help text reads "Define variables to extract from this test's response. These variables can be used in subsequent tests."
  2. Click Add Output Variable and set:
FieldWhat it does
**Variable Name ***The name later nodes reference.
**Source Type ***Where to read from: Response Body, Response Header, Status Code, or Status Text.
**Path ***The path/key within the source (e.g. a JSON path or header name).
Array StrategyFor arrays: First Item, Last Item, All Items, or By Index (then set Array Index).
Transform (Optional)An optional value transform.
Required (test fails if extraction fails)Fail the step when the value can't be extracted.

Step 7 — Add assertions

  • For per-step checks, add an + Assertion node (✓ Assertion, with actual/expected inputs and a result/Fail output) or a + Data Compare node (⚖ Compare, with left/right inputs; "Returns true/false"). Operators include equals, not-equals, contains, greater/less than, schema match, exists, and matches.
  • For run-wide SLA checks, open Workflow-Level Gates → Post-Run SLA Gate. Its description reads "Evaluates aggregate metrics (throughput, error rate, latency percentiles) across all API calls in the run. Not added to the canvas — it runs after the flow finishes." This opens the Workflow Assertions editor.

Workflow Assertions editor

Click Add workflow assertion, then for each item (Assertion #N) choose a Type and enter a Value:

  • Performance: Response Time Less Than / Greater Than, Latency Less Than, Throughput Greater Than, Error Rate Less Than, SLA Compliance.
  • Status Code: Status Code Equals, Not Equals, In Range, One Of.

Latency/response-time types expose a Percentile dropdown (p50, p95, p99, avg, max; default p95). Add an optional Description. The editor notes: "A failing assertion downgrades the run status from PASSED to FAILED." Remove an item with its trash icon.

Step 8 — Save

Click Save in the header (it reads **Save *** when there are unsaved changes, Saving… during save, and Saved just after). The header also shows an Unsaved changes indicator. On save the editor validates the Start → Stop structure; if invalid, a validation modal lists the errors. A new workflow gets its saved ID automatically so it can then be launched.

Step 9 — Launch and view the report

  1. Click Launch Workflow (it shows Launching… while running). If a saved workflow has unsaved edits, an Unsaved Changes dialog offers Cancel, Launch Saved Version, or Save & Launch — noting "If you launch now, the previously saved version will run — your latest edits won't be included." Save first if you must run your latest changes.
  2. You can also run from the list using a row's Run Test or Run Selected.
  3. When the run finishes, a Workflow Execution Report modal opens on the high-level view; click through to the detailed, per-node report and back with Back to High Level Report.

Troubleshooting

  • Save is blocked / validation modal appears — the graph lacks a valid Start → Stop path; add or reconnect the missing nodes.
  • "Please save the integration test first" on launch — a brand-new workflow must be saved once before it can run.
  • My latest edits didn't run — you chose Launch Saved Version; use Save & Launch instead.
  • A downstream node has no data — confirm the upstream node's Variable Outputs are defined and the Variable Name matches what you reference.
  • The run shows FAILED despite passing steps — a Post-Run SLA Gate (Workflow Assertion) failed on an aggregate metric; open Workflow Assertions to review thresholds.

Related articles

Next steps

Still stuck?

Tell us what you’re trying to accomplish and we’ll point you to the right setup—installation, auth, or CI/CD wiring.