Skip to content
DC
All work

Workflow Builder

A no-code, keyboard-accessible workflow automation tool for enterprise IT admins in HCL BigFix.

Role
Product Designer
Year
2026
Client
HCL BigFix
Tools
Figma, React Flow, Accessibility (WCAG)

Overview

Workflow Builder is a no-code automation tool inside HCL BigFix's Resolve suite. It lets IT and security admins set up automated workflows for things like notifications, remediation, software deployments, and approvals, without writing any code.

Before this, admins did all of that by hand, one task at a time. My job was to build the automation into the product itself. It had to be capable enough to be useful and simple enough that a non-technical admin could pick it up on their own.

It runs on React Flow. And because BigFix serves federal customers, keyboard accessibility wasn't optional. It was something I designed around from the start, not a thing I patched in later.

Approach

I didn't have access to real users, so I leaned on a few things instead. Competitive analysis of Zapier and n8n, the platform's existing components and conventions, BigFix's accessibility guidelines, and a lot of back-and-forth with another designer.

The biggest call was to keep it simpler than Zapier or n8n. Our workflows are short, usually under 15 steps, and they mostly run one action after another. So I modelled the canvas around a linear flow and saved branching for a few node types like Switch.

Engineering added one rule that shaped everything. A workflow always has to be valid and connected, so you can't leave a broken flow on the canvas. That's why nodes move one step at a time instead of being freely rewired, and why a half-built flow can't be saved.

Three surfaces

The tool has three surfaces. A dashboard to keep an eye on workflows and deployments, the canvas where you create one, and a read-only details view. Most of my work went into the canvas and the details page.

Landing page. The dashboard, with workflows and deployments by status above the full workflow list.

01 / 03

Exploration

Mapping

I started by mapping the two ways someone would build the same workflow. A regular user clicks or drags. A keyboard user moves through insertion points and the action library. Both paths had to converge on the same result, and getting them to line up shaped everything that followed.

Regular user
Action library

either way

Click + on the canvas
Pick a node from the menu
Drag a node onto the canvas
Node added
Keyboard / accessible user
On the canvas

either way

Move to a + insertion point
Open the menu, choose a node
Skip to the action library
Search and select a node
Focus returns to the canvas
Node added

Designing the node

A node has to show its name, whether it's configured, and what you can do with it, all inside a small box. I tried coloured nodes, coloured status icons, and a few different connection points. Every one of them fought for attention and made the node feel busy.

So I stripped it back. The node is neutral, with a single “Not configured” state. Delete stays visible because people reach for it often. Everything else, like move up, move down, and duplicate, sits in a More menu opened from the kebab icon, which also works with the keyboard. I dropped the connection dots completely. They added weight and didn't really mean anything.

Working through node connectors. The heavy pointers and deletable ends didn't hold up, so I kept the simplest connection that can't be deleted.
An early take on the canvas, with the action library docked on the left.
Trying out the edit-workflow layout and node states.
More variations on the canvas and node configuration.

Keyboard design exploration

Before any of this shipped, I had to work out how a keyboard would move through the canvas and what a screen reader would say at each step. Focus runs from Start to End so it follows the workflow itself. Each node's actions are grouped as a labelled toolbar, and a short hint tells you that Alt with the up or down arrow reorders a node. I handed this off to engineering as focus-order notes.

The keyboard-nav exploration: focus order through the canvas, the node action toolbar, and the screen-reader hints for reordering.

Final design

Adding a node on the canvas

The everyday path: drag a node from the library onto the flow. Each state gives clear feedback so you always know what's about to happen.

  1. Step 01 / 04

    Start on an empty canvas. There's always a Start and End, with a prompt to add the first step between them.

  2. Step 02 / 04

    Drag a node out of the library and onto the canvas. The rest of the library dims, so it's clear what you're moving.

  3. Step 03 / 04

    Bring it over the highlighted slot between Start and End. That zone marks exactly where the node drops in.

  4. Step 04 / 04

    Release, and the node drops into the flow in a Not configured state, ready to set up.

Building on the canvas

The action library sits docked on the left and collapses when you need more room. You can search it or browse by category, and search ranks results by node name first, then category, then description. Start and End are fixed, so you build everything between them. Zoom, fit-to-view, auto-align, and lock keep a bigger workflow readable.

Accessibility shaped the visuals too. The dotted canvas tells you the workspace is editable, and the read-only details page drops the dots. I tuned the dot contrast for light and dark so the grid stays visible without fighting the workflow.

Adding a configured node between the fixed Start and End.
Editing a workflow that already exists.
The editable canvas. The dotted background signals you can edit here.

Accessibility for mobile screen

The builder holds up on a smaller, accessible viewport. The same node, library, and configuration patterns adapt to a narrow screen, and adding a step works the same way.

Adding a node on a mobile device, step by step.

Dual authoring and always-valid

Power users get a second way in: a live JSON editor in a side drawer. The canvas and the JSON stay in sync, so a change in one shows up in the other when you save. You can import a full workflow file or export the current one. Invalid JSON throws an inline error and won't save, so a workflow is always valid and connected.

The live JSON editor in a drawer. Import a full workflow, edit it, or export it, and it stays in sync with the canvas.

Adding a node with the keyboard

Drag and drop can't be the only way to build a workflow, so I designed a second path for people who use a keyboard, and treated it as equal rather than a fallback. There's a plus between every pair of nodes, and a “Skip to Action Library” link jumps focus straight to search. Here's that path end to end.

  1. Step 01 / 04

    Skip to the action library moves focus to Search. The canvas shows the open slot between Start and End.

  2. Step 02 / 04

    Pick a node and focus returns to the canvas. A placeholder asks you to press Enter or Space to drop it in.

  3. Step 03 / 04

    Press Enter or Space and the node lands in the flow, unconfigured and ready to set up.

  4. Step 04 / 04

    Activating the plus also opens a categorized menu, so the same path works by mouse or keyboard, all the way to the action.

Adding a node to an existing workflow

Editing a saved workflow is where the canvas gets busy, with multiple steps and a plus between every pair. The same two paths still apply, and both let you land a node at the exact point you mean.

  1. Step 01 / 02

    Add node from the library, by keyboard. With several slots already on the canvas, press Enter on the node you want, then use the arrow keys to pick the exact point where the new step lands.

  2. Step 02 / 02

    Add node from the action library, by drag and drop. As the node is dragged near a plus, an area highlights in the shape of a node to show exactly where it will land.

Duplicating and deleting a node

Once a node is on the canvas, the edits people reach for most are duplicating and deleting. Both live on the node itself and work the same by mouse or keyboard, so a change never breaks the flow.

  1. Step 01 / 04

    Every node carries a small toolbar: its configured status, delete, and a kebab for the rest. All of it is reachable by keyboard.

  2. Step 02 / 04

    Open the kebab, or press Enter on a focused node, to reach its actions: Duplicate, Swap up, and Swap down.

  3. Step 03 / 04

    Duplicate drops a copy directly below in the flow, marked with an asterisk. Delete stays in the toolbar because people reach for it often.

  4. Step 04 / 04

    Delete removes the node and the flow reconnects around it, so the workflow stays valid and connected.

Keyboard navigation order

Underneath all of this is a defined tab order, the spec I handed to engineering. Every interactive element is numbered in the sequence focus moves through it, so the keyboard path is unambiguous to build and to test. Skip links jump focus to the action library or the canvas, the canvas runs Start to End following the workflow itself, and even chart segments take focus.

Focus order on the canvas: skip links, then the toolbar, the action library, and the nodes from Start to End. Forty-eight stops, each numbered for engineering.
Focus order on the landing page: skip to main content, Create workflow, the charts (every segment takes focus), then each row, cell, and action in the table.

Outcome and reflection

Workflow Builder shipped as BigFix's first built-in automation tool. Admins finally had a no-code way to replace the manual, repetitive work they'd been doing by hand, with a keyboard path that was built in rather than bolted on.