Execution history
Status, duration, execution ID, and the trigger source: user, schedule, agent, or listener. Every run has a shareable URL, and retries are marked as retries rather than hidden as separate runs.
Visibility and traceability
What ran, what it found, what it cost, and who changed it. Filter any of it in the UI, or pull the same data from the API, the CLI, or an MCP client. Or just ask the agent.
Most platforms answer the first question and stop. The second is what costs money, and the third is what a security review actually asks for.
Capabilities
Status, duration, execution ID, and the trigger source: user, schedule, agent, or listener. Every run has a shareable URL, and retries are marked as retries rather than hidden as separate runs.
A static analyser that walks the whole flow, nested sub-flows included, against dozens of known patterns: batch processing off, shapes that will not scale. Each finding carries a severity, why it matters, and a fix, before the flow has ever run.
Activity by hour, day, week, or month with intensity by volume. Average executions, records processed, average duration, and your peak window. Click a cell to open the runs behind it.
Expected Timeline simulates upcoming runs from your schedules. Gaps finds the windows with nothing in them. Scheduled vs Actual shows the drift between what you planned and what the scheduler actually did.
CPU, RAM, JVM heap, threads, disk, and open file descriptors, per cluster node. Top flows by estimated resource consumption answers “which flow is doing this to us” with a confidence level on the estimate.
When CPU, RAM, or disk breaches a threshold and stays there for a sustain window, an incident opens with a severity and a trigger value, and closes when it settles. Brief spikes do not wake anyone.
Every important system event: running a flow, editing a connection, adding a user, changing configuration. Each records the date, method, user, tenant, result, duration, and both the client and host IP.
Server-side filters on date, status, method, user, duration, client IP, exception text, and inside the event payload. Open the full JSON, jump to the object the event touched, or read the stack trace behind a failure.
The same events come back from the built-in API with JWT auth, filtered by type, user, and timestamp. The MCP server hands the same tools to Cursor or Claude Desktop, with exposure controlled per tool.
The built-in CLI queries the same data with a select, a where, and an order by. flow-executions, get-audit-records, metrics, get-flow-status, and tail-flow-log run against one tenant or across all of them.
Simba, the agent built into Etlworks, reads execution history, logs, configuration, and findings, then answers in a sentence. Which flows failed overnight, what changed on that connection, which one is eating the CPU.
Tokens split by prompt and completion, agentic against non-agentic, conversations and requests, with billable and non-billable cost, wallet balance, monthly drain, and cap. Tenants on their own provider key show zero billable.
Specifications
Every important system event is captured: flow runs, connection edits, user changes, configuration changes, and every field below is filterable server-side, including free-text search inside the payload.
runFlow, addFlow, editConnection, and the restFAQ
Start your trial
Run a few flows, then open the heatmap and the findings and see what they say about them.