The visual automation builder
Drag-and-drop workflows that fire on 14 event triggers with 21 node types across Send, CRM, Logic, Data and AI.
The automation builder is FlowMaticX's visual workflow canvas. Pick a trigger (new lead, inbound reply, audit completed, invoice paid…) and drag nodes onto the canvas to describe what should happen. Every workflow is saved as JSON and executed by an in-process runner the moment its trigger fires.
Every automation is a graph of one trigger node connected to any number of action / logic / data / AI nodes via edges. The runner walks the graph depth-first from the trigger, executing each node in turn. Nodes that have two outputs (like logic.if) branch the walker based on the node's return value.
Workflows support {{variable}} substitution: any node that sets a variable with data.set_variable, ai.extract, ai.classify, etc. makes that value available to every downstream node via {{variableName}} syntax. The trigger payload is also accessible as {{lead.email}}, {{email.subject}}, {{monitor.url}} etc.
| Category | Trigger | Fires when… |
|---|---|---|
| Lead | lead.created | A new lead lands in any source (Google Maps, Pro Database, CSV…) |
| Lead | lead.stage_changed | A lead is dragged to a new pipeline column |
email.sent | The outreach sender successfully ships an outbound email | |
email.opened | The open-tracking pixel is hit for the first time | |
email.clicked | A tracked link in an outbound email is clicked | |
email.replied | The IMAP poller links an inbound reply to an existing lead | |
sequence.completed | A sequence enrollment reaches its last step (or is auto-stopped) | |
| SEO | audit.completed | An audit finishes with status COMPLETED |
| SEO | audit.score_dropped | A re-audit shows a score drop vs the previous run |
| Uptime | monitor.down | A monitor flips from UP to DOWN |
| Uptime | monitor.recovered | A monitor flips back to UP after being DOWN |
| Lead | booking.created | Someone books a meeting via a public booking page |
| Billing | invoice.paid | Stripe / PayPal / manual marks an invoice as paid |
| Manual | manual | You click Run now on the automation detail page |
Each automation has a trigger filter — a small predicate tested against the payload before the workflow runs. Typical filters:
{ field: 'fromAddress', op: 'equals', value: 'vip@client.com' }— only fire for a specific sender{ field: 'overallScore', op: 'lt', value: 70 }— only fire when an audit scored below 70{ field: 'tags', op: 'contains', value: 'enterprise' }
Filters keep you from writing a single mega-automation with a giant branching tree. If you need complex predicates, use logic.if or data.filter nodes inside the graph instead.
- Head to /automations and click New automation
- Pick a name + trigger
- The builder opens with a single Trigger node on the canvas
- Drag nodes from the left panel onto the canvas
- Connect the Trigger's output handle to the next node's input handle
- Click a node to edit its config in the right panel
- Click Save, then flip the Active switch to start listening for events
- Use Run now at the top to fire a test run with an empty payload
Every execution is persisted as an AutomationRun row with the full step log (nodeId, ok, error, output, at) so you can debug exactly which node failed and why. Open any automation detail page and scroll down to see the last N runs.