Workflows
Workflows are the heart of Quox's automation, powered by the QuoxFlow engine. Build visually with a split-pane Workflow Builder and live WireMap preview, or describe what you want in plain English and let the AI create it. Every execution is fully audited with real-time monitoring and APM-style drilldowns.
What are workflows?
Think of a workflow as a recipe for automation. Just like a recipe has steps that happen in order (preheat oven, mix ingredients, bake for 30 minutes), a workflow has steps that run automatically when something triggers them.
A workflow is an "if this, then that" for your infrastructure. When X happens, automatically do Y. No coding required.
TRIGGER ACTIONS OUTPUT
------- ------- ------
[Clock] [Check] [Alert]
| | |
Every 5 min ---> Check server CPU ---> Send Telegram
If CPU > 90% message to admin
"When this happens" --> "Do these things" --> "With this result"
Real-world examples
Server monitoring
"Check all Docker hosts every 5 minutes. If any disk is over 90% full, send me a Telegram alert."
Data sync
"When a new row is added to Google Sheets, create a ticket in Jira and notify the team on Slack."
AI assistant
"When someone emails support@, use AI to categorize the request and draft a response for review."
Deployment pipeline
"When code is pushed to main, run tests, build the container, and ask for approval before deploying."
Why workflows matter
Manual tasks are error-prone, time-consuming, and often forgotten. Workflows solve these problems:
| Problem | Manual Approach | With Workflows |
|---|---|---|
| Monitoring | Remember to check servers periodically | Automatic checks every X minutes |
| Notifications | Notice issues by chance | Instant alerts when problems occur |
| Data Entry | Copy-paste between systems | Automatic sync in real-time |
| Approvals | Chase people via email | Structured approval queues |
| Responses | Human handles every request | AI drafts, human approves |
Anatomy of a workflow
Every workflow has three essential parts: a trigger that starts it, nodes that do the work, and outputs that deliver results.
WORKFLOW STRUCTURE
==================
+-------------+ +-------------+ +-------------+ +-------------+
| TRIGGER | --> | NODE 1 | --> | NODE 2 | --> | OUTPUT |
| | | | | | | |
| - Schedule | | - HTTP GET | | - If/Then | | - Telegram |
| - Webhook | | - Database | | - Transform | | - Email |
| - Event | | - AI Agent | | - Filter | | - Slack |
+-------------+ +-------------+ +-------------+ +-------------+
| | | |
v v v v
"When?" "Get data" "Process" "Notify"
Triggers
A trigger defines when your workflow runs. Quox supports several trigger types:
Schedule
Run at specific times or intervals. "Every 5 minutes", "Daily at 9am", "Every Monday".
trigger: schedule interval: 5 minutes
Webhook
Run when an external service sends data. Perfect for integrations and events.
trigger: webhook path: /my-endpoint
Manual
Run on-demand when you click a button or send a command.
trigger: manual # Run via dashboard
Nodes and actions
QuoxFlow provides 21 node types across 6 categories. Each node does one thing and passes its result to the next node. Browse and add nodes from the NodePalette in the visual builder.
| Category | Node Types | Examples |
|---|---|---|
| Triggers | Webhook, Schedule, Event | HTTP endpoints, cron schedules, event bus |
| Control Flow | Condition, Switch, Loop, Parallel, Merge | If/else branching, multi-path routing, array iteration |
| Actions | HTTP Call, SSH Bastion, SaaS Connector | API calls, remote commands, SaaS integrations |
| Data | Transform, Set, Aggregate | Expressions, variables, sum/avg/count |
| Error Handling | Try/Catch, Throw | Error recovery, metadata-rich exceptions |
| Utilities | Wait, Log, Subworkflow, Policy Gate, Evidence, Approval | Delays, structured logs, nested workflows, governance |
Outputs
Outputs deliver results - notifications, data storage, or triggering other systems.
Notifications
Telegram, Slack, Discord, Email, SMS (Twilio)
Data Storage
Google Sheets, Airtable, Databases, Files
Actions
Create tickets, update records, trigger deployments
Inbox
Create approval requests in Quox's inbox system
Your first workflow
Let's create a simple monitoring workflow step by step. We'll build: "Check if my website is up every 5 minutes, and alert me on Telegram if it's down."
Describe your goal
Open the Workflow Builder - a split-pane interface with an AI chat on the left and a live WireMap preview on the right. The 7-phase guided builder walks you through triggers, data sources, transforms, destinations, and approval configuration. Navigate back between phases at any time. Describe what you want in plain English:
Check if https://mysite.com is responding every 5 minutes. If the site is down or returns an error, send me a Telegram message with the status code and error details.
Quox's AI understands your intent and generates a workflow plan. No need to know the technical details - just describe the outcome you want.
Review the plan
The WireMap preview updates live as the AI generates your workflow. You see the visual node graph forming in real time on the right pane:
LIVE WIREMAP PREVIEW
====================
+------------------+ +------------------+ +----------+ +----------+
| trigger:schedule | --> | call | --> | flow: | --> | call |
| Every 5 min | | GET mysite.com | | condition| | Telegram |
+------------------+ +------------------+ +----------+ +----------+
NodePalette: [Triggers] [Control Flow] [Actions] [Data] [Errors] [Utilities]
Configuration:
- URL: https://mysite.com
- Expected status: 200
- Timeout: 10 seconds
- Policy: auto-approve (read-only check)
You can modify thresholds, drag new nodes from the NodePalette, add approval steps, or change notification channels before proceeding.
Configure connections
Connect the services your workflow needs. For this example, you'll need to set up your Telegram bot credentials:
{
"telegram": {
"bot_token": "your-telegram-bot-token",
"chat_id": "your-chat-id"
}
}Credentials are stored encrypted and never exposed in workflow definitions. You only need to set them up once per integration.
Test and deploy
Before going live, test your workflow:
- Manual Test: Click "Test Run" to execute once and see results
- Check Output: Verify the HTTP request succeeded and data looks correct
- Simulate Failure: Test with an invalid URL to ensure alerts work
- Deploy: Enable the schedule trigger to run automatically
Test Run: SUCCESS ----------------- Trigger: Manual HTTP Request: GET https://mysite.com Status: 200 OK Response Time: 142ms If/Then: Condition FALSE (site is UP) -> Alert path skipped Workflow completed in 156ms
Common workflow patterns
Here are battle-tested patterns for common automation scenarios. Use these as starting points for your own workflows.
Monitoring & alerting
Server health monitor
Monitor CPU, memory, and disk across your fleet. Alert on thresholds.
{
"name": "Server Health Monitor",
"trigger": { "type": "schedule", "interval": "5 minutes" },
"hosts": ["nw-web-01", "nw-db-01", "nw-worker-01"],
"thresholds": {
"cpu": 90,
"memory": 85,
"disk": 90
},
"alerts": ["telegram", "inbox"]
}Use cases: Infrastructure monitoring, capacity planning, SLA compliance
Data synchronisation
Bidirectional sync
Keep data in sync between two systems. Detect changes and propagate updates.
System A Quox System B
-------- ------- --------
| | |
|--- Changed record ----->| |
| |--- Transform data ----->|
| |<-- Confirm update ------|
| | |
|<------------------------|--- Update log -------->|
Use cases: CRM sync, inventory management, cross-platform updates
Approval workflows
Human-in-the-Loop
Pause workflows for human approval before proceeding with sensitive actions.
{
"node": "approval",
"config": {
"title": "Approve Production Deployment",
"description": "Deploy version {{version}} to production?",
"inbox": "ops-team",
"timeout": "2 hours",
"escalate_to": "manager-inbox",
"require_comment": true
}
}Use cases: Deployment gates, expense approvals, content review
AI-powered automation
Intelligent processing
Use AI to analyze, categorize, summarize, or generate content as part of your workflows.
{
"node": "ai-agent",
"config": {
"model": "claude-3-sonnet",
"prompt": "Analyze this support ticket and return:
1. Category (bug, feature, question, complaint)
2. Priority (low, medium, high, urgent)
3. Suggested response draft",
"input": "{{ticket.body}}",
"output_format": "json"
}
}Use cases: Email triage, log analysis, content generation, anomaly detection
Import from n8n
Already have workflows built in n8n? The Workflow Builder's Import n8n dialog converts an n8n workflow JSON export into a native QuoxFlow workflow, no running n8n instance required. Paste the JSON or upload a .json file, and QuoxFlow maps nodes, connections and node positions automatically, then flags anything that still needs credentials configured before it can run.
Open it from the Workflow Builder toolbar (My Workflows tab). The importer converts the workflow offline and opens it directly in the canvas with every node and connection intact.
Vendor connectors
Nine of the vendor node types the importer sees most often resolve to a genuine vendor API request instead of a generic HTTP placeholder: Slack, Telegram, Gmail, Google Sheets, Google Drive, Airtable, Notion, a generic email-send connector, and OpenAI.
Each connector covers that vendor's dominant real-world operation(s), sampled from a library of real n8n workflows, not the vendor's entire API surface, so a less common operation on the same node type can still fall back to the placeholder. Every connector authenticates via a workflow variable you set yourself (for example ${vars.CREDENTIAL_SLACK_API}).
QuoxFlow does not yet pull these from an encrypted vault automatically: that wiring is a tracked next step, not shipped.
n8n's LangChain Agent and Basic LLM Chain nodes compose onto QuoxFlow's own agent system, rather than falling back to the placeholder: the Agent node maps onto agent:invoke, and the Chain node maps onto assistant:invoke.
The attached Chat Model and Memory nodes are informational only (the QuoxFlow agent you assign brings its own model), attached Tool nodes are named in a warning rather than auto-wired, and conversation memory across separate runs is not preserved. Most agent-shaped n8n workflows use more than just the agent node, so this composition alone rarely makes the whole workflow run end to end without further edits.
Re-run against a 1,340-workflow sample of real n8n exports: 63 convert cleanly with no edits, 91 more need only minor polish (typically filling in a credential variable), and the remaining majority still contain other node types this pass did not reach (structural nodes like Merge and Split In Batches, or vendors this pass did not cover).
Of 308 sampled workflows containing an Agent or Chain node, 22 are fully clean or minor-polish after this pass.
View Workflow Examples | API Reference
Deployment
QuoxFlow runs natively (SSH, HTTP, API calls), with every execution producing the same audit trail, policy gates, and evidence.
- Native Infrastructure: SSH and HTTP calls run directly through QuoxFlow - no external dependencies
- Full Audit on Everything: Every workflow produces the same audit trail, policy gates, and evidence
- Schedule Visibility: See all scheduled and cron workflows with countdown timers and execution history
- Running Now Monitor: Live dashboard with animated progress bars and 5-second polling
- Execution Drilldown: APM-style waterfall visualization with node-by-node timeline and payload inspection
QuoxFlow includes a split-pane Workflow Builder with AI-assisted creation on the left and a live WireMap visual preview on the right. Describe what you want in natural language, or drag nodes from the NodePalette with 21 node types in 6 categories.
docker compose up -d
Best practices
Start simple, then expand
Begin with a minimal workflow that solves one problem. Once it's working reliably, add more features. A complex workflow that fails is worse than a simple one that works.
Test before deploying
Always run manual tests before enabling scheduled triggers. Test both success and failure paths. Use the workflow history to debug issues.
Use human-in-the-loop for risky actions
Any action that modifies production systems, sends external communications, or involves money should have an approval step. Better safe than sorry.
Monitor your workflows in real time
Use the Running Now dashboard to watch active executions with animated progress bars. Click any execution for an APM-style waterfall drilldown with node-by-node timelines and payload inspection. Check schedule visibility for upcoming cron runs.
Document your workflows
Give workflows descriptive names. Add comments explaining why, not just what. Future you (or your teammates) will thank you.
Explore the Plugin Store to enable premium workflow capabilities, or check out the API Reference for integration options.
See also: Safety & Guardrails for approval workflows | AI Agents for agent-powered automation | Architecture for system overview