Skip to Content
WorkflowsCreating Workflows

Creating Workflows

This guide walks you through creating workflows using KeeperHub’s visual workflow builder.

Getting Started

  1. Click the workflow dropdown in the top-left corner
  2. Select New Workflow to create a blank workflow
  3. The visual canvas opens with zoom controls and the AI assistant

The Workflow Canvas

  • Zoom: Use the +/- buttons in the bottom-left, or scroll to zoom
  • Pan: Click and drag on empty canvas space to move around
  • Fit: Click the fit button to center all nodes in view

Top Toolbar

ButtonFunction
+Add a new node
Undo/RedoUndo or redo recent changes
SaveSave current workflow state
DownloadExport workflow as JSON
LockLock workflow to prevent edits
RunExecute the workflow manually

Adding Nodes

Add nodes to your workflow using any of these methods:

Method 1: Toolbar Button

Click the + button in the top toolbar to open the node picker.

Method 2: Context Menu

Right-click anywhere on the canvas to open a context menu with node options.

Method 3: Edge Dragging

Drag from an existing node’s output connector (the dot on the right side) to create a new connected node.

Connecting Nodes

Nodes have connector points:

  • Input (left side): Receives data from previous nodes
  • Output (right side): Sends data to subsequent nodes

To connect nodes:

  1. Click and hold on a node’s output connector
  2. Drag to another node’s input connector
  3. Release to create the connection

Connections show the data flow direction with a curved line between nodes.

Configuring Nodes

Click any node to open the configuration panel on the right side of the screen.

Common Configuration Fields

FieldDescription
ServiceThe type of service (Web3, Email, Discord, etc.)
ConnectionYour configured connection for this service
NetworkBlockchain network (for Web3 nodes)
AddressWallet or contract address (for Web3 nodes)
LabelDisplay name for this node
DescriptionOptional notes
EnabledToggle to activate/deactivate this node

Trigger Configuration

For trigger nodes, you’ll also configure:

  • Schedule: Interval for scheduled triggers (every 5 minutes, hourly, etc.)
  • Webhook URL: Provided URL for webhook triggers
  • Event Filter: Event signature for event triggers
  • Block Interval: Network and block interval for block triggers (e.g., every 10 blocks on Ethereum)

Condition Configuration

Condition nodes evaluate expressions and branch the workflow into true and false paths. Use the Visual builder for point-and-click rule creation, or switch to Expression mode to write raw JavaScript expressions.

Visual Builder

Each rule has a left operand, an operator, and (for binary operators) a right operand. Operands accept literal values or template references like {{@nodeId:Label.field}}.

Combine multiple rules with AND / OR logic toggles, and nest groups for complex conditions.

Operators

OperatorLabelTypeDescription
==soft equalsComparisonLoose equality (type coercion)
===equalsComparisonStrict equality (no type coercion)
!=soft not equalsComparisonLoose inequality
!==not equalsComparisonStrict inequality
>greater thanComparisonNumeric greater than
>=greater than or equalComparisonNumeric greater than or equal
<less thanComparisonNumeric less than
<=less than or equalComparisonNumeric less than or equal
containscontainsStringLeft operand contains right operand
startsWithstarts withStringLeft operand starts with right operand
endsWithends withStringLeft operand ends with right operand
matchesRegexmatches regexPatternLeft operand matches regex pattern in right operand
isEmptyis emptyExistenceValue is null, undefined, or empty string
isNotEmptyis not emptyExistenceValue is not null, undefined, or empty string
existsexistsExistenceValue is not null and not undefined
doesNotExistdoes not existExistenceValue is null or undefined

When to use soft vs strict equality: Use == (soft equals) when comparing values that may differ in type, such as a string "0" against a number 0. Use === (equals) when you need exact type matching. Most blockchain data arrives as strings, so soft equality is the default for new conditions.

Expression Mode

Expression mode allows you to write raw JavaScript condition expressions for advanced logic. In addition to the comparison and logical operators in the Visual Builder, you can use arithmetic operators for calculations:

OperatorDescription
+Addition
-Subtraction
*Multiplication
/Division
%Modulo (remainder)
**Exponentiation (power)

Example expressions:

  • {{@CheckBalance:Balance.value}} * 2 > 100 - Check if double the balance exceeds 100
  • {{@GetPrice:Price.usd}} ** 2 >= 10000 - Check if price squared is at least 10,000
  • ({{@GetAmount:Amount.wei}} / 1000000000000000000) >= 0.5 - Convert wei to ETH and check threshold
  • {{@GetRewards:Rewards.amount}} % 10 === 0 - Check if rewards are divisible by 10

Expression mode also supports JavaScript methods, array indexing, and property access for complex logic.

Dual Output Paths

Condition nodes have two output handles:

  • true — downstream nodes connected here execute when the condition passes
  • false — downstream nodes connected here execute when the condition fails

Connect different branches to each handle to create if/else logic in a single node.

Managing Connections

Before using certain node types, set up connections in your account:

  1. Click your profile icon in the top-right
  2. Select Connections
  3. Add connections for services you need:
    • Web3 wallets
    • Email providers
    • Discord webhooks
    • Slack workspaces

Enabling and Running

Enable Individual Nodes

Each node has an Enabled toggle in its configuration panel. Disabled nodes are skipped during execution.

Test Your Workflow

Click the green Run button to execute the workflow immediately. This is useful for testing before enabling scheduled execution.

Delete Nodes

Click Delete in the node configuration panel to remove a node and its connections.

Saving Workflows

  • Workflows automatically save when you make changes
  • Use the Save button to force-save current state
  • Invalid configurations prevent saving until fixed

Using AI to Create Workflows

The Ask AI… input at the bottom of the canvas lets you describe your automation in natural language:

  1. Click the input field or use the keyboard shortcut
  2. Describe what you want to automate
  3. The AI will suggest nodes and configurations
  4. Review and adjust the generated workflow

Example Prompts

  • “Alert me on Discord when my wallet balance drops below 0.1 ETH”
  • “Every hour, check if a contract’s totalSupply changed and email me”
  • “When someone sends ETH to my wallet, log it to Slack”

Importing from the Hub

The Hub lists workflow templates shared by the community. To use a template:

  1. Browse the Hub from the main navigation
  2. Select a workflow template
  3. Click Duplicate to copy it into your workspace

The copy is created with a unique name (e.g., “My Workflow (Copy)”) and set to private visibility. Node configurations are preserved, but integration credentials are removed so you can assign your own connections.

You can also duplicate any public workflow you are viewing by clicking the Duplicate button in the toolbar.

Workflow States

StateDescription
DraftWorkflow is being edited, not running
ActiveWorkflow is enabled and will execute on triggers
PausedWorkflow exists but all triggers are disabled

Best Practices

  1. Test on Sepolia first: Use the testnet before deploying to Mainnet
  2. Name your nodes clearly: Use descriptive labels for easy understanding
  3. Start simple: Begin with one trigger and one action, then add complexity
  4. Check your connections: Ensure all required connections are configured before enabling
  5. Review the Run output: Check execution logs after running to verify behavior