Builder Tutorial

A hands-on walkthrough of the workflow canvas — from blank slate to production-ready automation.

Opening the builder

  1. Click Workflows in the sidebar.
  2. Click New Workflow (or open an existing one to edit).
  3. The canvas opens with a single Trigger node already placed.

The canvas interface

The workflow canvas has four areas:

  • Node palette (left sidebar) — all available nodes, searchable
  • Canvas (center) — your workflow diagram; drag to pan, scroll to zoom
  • Inspector (right panel) — configuration for the selected node
  • Toolbar (top) — save, enable/disable, test, view executions

Building your first workflow

This example builds a workflow that:

  • Fires on any critical alert
  • Notifies Slack immediately
  • Waits 5 minutes
  • If still unacknowledged, sends an SMS to the on-call engineer
  1. 1
    Set the trigger

    Click the Trigger node. In the Inspector:

    • Event: Alert Firing

    This workflow will run every time a new alert arrives.

  2. 2
    Add a severity condition

    From the palette, drag a Condition node onto the canvas. Connect it to the Trigger node by clicking the Trigger's output handle (the small dot at the bottom) and dragging to the Condition node.

    In the Inspector:

    • Field: Severity
    • Operator: equals
    • Value: critical

    The Condition node has two outputs: True (matching) and False (non-matching). You can leave the False branch unconnected to do nothing.

  3. 3
    Add a Slack notification

    Drag a Notify node and connect it to the Condition's True output.

    In the Inspector:

    • Channel: Slack
    • Workspace: select your connected Slack workspace
    • Slack Channel: #alerts
    • Message: 🔴 *{{alert.title}}* ({{alert.severity}}) — {{alert.source}}
  4. 4
    Add a delay

    Drag a Delay node and connect it after the Slack notify node.

    In the Inspector:

    • Duration: 5 minutes
  5. 5
    Add an acknowledgment check

    Drag another Condition node after the Delay.

    In the Inspector:

    • Field: Status
    • Operator: equals
    • Value: firing

    This checks whether the alert is still firing (not yet acknowledged or resolved) after 5 minutes.

  6. 6
    Add an SMS escalation

    Drag a Notify node and connect it to the second Condition's True output.

    In the Inspector:

    • Channel: SMS
    • Recipients: On-call engineer (select from your team or on-call schedule)
    • Message: 🚨 UNACK: {{alert.title}} — still firing after 5 min. Alert ID: {{alert.id}}
  7. 7
    Save and enable

    Click Save in the toolbar. Toggle the Enabled switch to on.

    The workflow is now live — it will run for every new critical alert.

Connecting nodes

  • Output handles appear at the bottom of each node
  • Input handles appear at the top
  • Condition nodes have a True handle (green) and a False handle (red)
  • Click an output handle and drag to an input handle to connect them
  • Click a connection line to select it; press Delete to remove it

Template variables

Node message fields support Handlebars-style variables:

VariableValue
{{alert.id}}Alert UUID
{{alert.title}}Alert title
{{alert.severity}}Severity level
{{alert.status}}Current status
{{alert.source}}Source system
{{alert.description}}Full description
{{alert.clientName}}Client name (from incident)
{{alert.firedAt}}ISO 8601 timestamp
{{alert.labels.host}}Any label by key
{{incident.id}}Incident UUID (if grouped)
{{incident.status}}Incident status
{{oncall.name}}Current on-call engineer's name
{{oncall.phone}}On-call engineer's phone number

Testing a workflow

Use the Test button in the toolbar to run the workflow against a synthetic alert without affecting your live alert data. You can set any field value for the test payload.

After a test run, click View Execution to see the step-by-step trace, including which branch each condition took and what was sent to each channel.

Versioning

Every time you save a workflow, AlertFlow increments its version number and stores the previous version. Click History in the toolbar to restore an older version if needed.