Open-source visual ETL

Transform your data. Then keep flowing.

Build it on the canvas. Work with it in Python. Open it as a graph again. Flowfile keeps your data work connected, on your own machine.

Free and MIT licensed. Desktop, Python, or Docker.

Flowfile joining clients, orders and support tickets on the canvas, with aggregation, a scoring formula and generated FlowFrame Python code alongside.
Canvas to Python. And back again.

From your first file to a working data setup.

Skip the tour
Swipe to explore →
1 / 6 · Install

Start on your own machine.

Download the desktop app, or install with Python. The editor, catalog, SQL tools and scheduler come together.

Flowfileon your machine
Visual editorData catalogSQL & dashboardsScheduler
Or install with Pythonpip install flowfile
flowfile run ui

One install gives you a place to build and run your data work.

2 / 6 · Connect

Bring in the data you work with.

Open an Excel file, read from a database, or connect to cloud storage and APIs. Save connections to use them in your next flow.

Select a source to see its connectors.

Your flowRead from the source.
Reuse saved connections.

Explore all 23 connectors and 28 transformations

3 / 6 · Build

Build the steps. Check the result.

Join, filter, pivot, fuzzy match, or write a formula. See the columns and preview the data at each step. Add Python when you need it.

Orders.csvCustomers
Join
Group by
Catalog

Result: sales by region Example data

Example sales totals after joining orders to customers and grouping by region
region strrevenue f64
North400.00
South85.00

A repeatable pipeline you can inspect, explain and run again.

4 / 6 · Catalog

Put the result to work.

Store tables in the catalog, analyse them with SQL or Python, and create dashboards. Publish registered flows as endpoints for other applications.

Your catalogTables, flows and the work built on them
StoreDelta tables, versions & lineage
AnalyseSQL queries & Python notebooks
VisualiseSaved charts & dashboards
ServeFlows as API endpoints

Your data, analysis and the flows behind them stay connected.

5 / 6 · Automate

Keep the data up to date.

Run on a schedule or when a catalog table changes. Check run history, see which nodes ran, and configure notifications when something fails.

When the data changesCatalog table trigger
or on a schedule
Run the flow
Update the catalog table
Read the latest data in your dashboard

Run history · Node status · Failure notifications

The flow refreshes the table your dashboard reads. The host machine needs to be running.

6 / 6 · Extend

Add the parts your work needs.

Write custom nodes in Python, install community nodes, or use isolated kernels with your own packages. An optional assistant can help build the graph.

Your transformation logic
def clean_names(df):
return df.with_columns(
pl.col("name")
.str.strip_chars()
.str.to_lowercase()
)
Clean namesYour own node

Package your rules as a reusable node, with settings and a data preview.

Reuse your own transformations alongside the built-in nodes.

1 / 6
Get Flowfile →

Inside Flowfile

The visual editor, the catalog, and the tools around them.

Build a pipeline you can follow.

Connect nodes to turn raw data into something useful. Inspect the columns before a run and preview the rows at each step.

  • Join, fuzzy match, filter, pivot and aggregate
  • Formulas and Polars code for custom transformations
  • Conditional branches and reusable subflows
  • Export supported pipelines as Python
Explore the nodes →
Flowfile canvas with a sales pipeline branching into a product leaderboard, revenue matrix and monthly trend
From the application · View full size

Store the data and keep its history.

Organise tables and flows in catalogs and schemas. The catalog connects each result to the work that produced it.

  • Delta tables with version history and time travel
  • Append, overwrite, upsert and keep change history
  • Virtual tables defined by a flow
  • Lineage and run history alongside the data
Read about the catalog →
Flowfile catalog showing namespaces, registered flows, tables, schedules and run history
From the application · View full size

Ask another question of the same data.

Query catalog tables in SQL, or work in a Python notebook with your own packages. Save useful analysis next to the data.

  • SQL editor with a results preview
  • Turn query results into visualisations
  • Save queries as reusable virtual tables
  • Python notebooks in Docker-backed kernels
Explore analysis tools →
Flowfile SQL editor querying a catalog table, with a results grid and visualisation tab
From the application · View full size

Build a view you can come back to.

Create charts over catalog data and put them together in a dashboard. Use shared filters to explore the numbers.

  • Saved charts and dashboard layouts
  • Tables, charts and filters in the same view
  • Read from the tables your flows maintain
  • Keep the analysis alongside its source data
See how visualisations work →
A Flowfile inventory dashboard with category filters, clothing counts and colour charts
From the application · View full size

Let another application call your flow.

Publish a registered flow as an HTTP endpoint from the catalog. Define its parameters and give each consumer an API key.

  • Reuse your existing transformation logic
  • Typed parameters for callers
  • API keys and access per consumer
  • Inspect and test the endpoint in Flowfile
Read the endpoint guide →
Flowfile Expose as API panel showing a published sales endpoint, typed region and amount parameters, and API key management
From the application · View full size

Run the work when it is needed.

Set an interval, a cron schedule, or a trigger on catalog table updates. Each run is recorded so you can see what happened.

  • Schedule in your own time zone
  • Trigger on one table or a set of tables
  • Per-node status, run history and logs
  • Notifications to chat tools or a webhook
See scheduling options →
Create Schedule form with interval, table trigger and table set trigger options
From the application · View full size

Make Flowfile fit your work.

Put your own Python logic in a reusable node. Define its settings, test it in the Node Designer, and use it alongside the built-in nodes.

  • Custom nodes defined in one Python file
  • Community nodes you can install and reuse
  • Isolated kernels with your own dependencies
  • Optional assistant with your own model or provider key
Browse community nodes →
A custom Greeting Generator node on the Flowfile canvas with its settings form and output data preview
From the application · View full size

WHY FLOWFILE

Visual workflows and Python, in the same tool.

The canvas and the Python API describe the same graph. Choose the view that makes the work easier to build, check, and share.

How code export works

Visual work that connects to Python

Build on the canvas or with the FlowFrame API. Export supported file and transform pipelines as standalone Polars scripts.

Polars underneath every step

Joins, filters, and aggregations run on Polars. Inspect column types and preview intermediate results while you build.

Run it on the machine you choose

Run locally or self-host. Save flows as readable YAML that you can keep in version control. Flowfile is free and MIT licensed.

On the canvas

Columns after

    In code

    import flowfile as fffrom flowfile import col orders = ff.read_csv("orders.csv")customers = ff.read_parquet("customers.parquet") sales = (    orders.join(customers, on="customer_id")          .filter(col("amount") > 100)          .group_by("region")          .agg(col("amount").sum().alias("revenue")))sales.write_parquet("sales_by_region.parquet")

    One graph, two views. Hover a node to see its code and its columns, or switchSwitch to the plain Polars script Flowfile exports for a flow like this.

    YOUR FIRST FLOW

    Try the canvas in your browser.

    Open the sample sales flow in your browser. Select a node, inspect the data, and change a step to see what happens.

    Open the browser demo

    Runs in your browser. Best explored on a desktop.
    Install Flowfile to connect databases and work with larger datasets.

    1. 01

      Open the sample

      A sales pipeline is already on the canvas.

    2. 02

      Follow the rows

      Select a node to see what each operation does.

    3. 03

      Bring your own data

      Install Flowfile, add a file, and build your first flow.

    Install Flowfile.

    Choose the desktop app for your own machine, Python for a package install, or Docker for a shared setup.

    Like what you see?

    Have a question or something you’d like to build with Flowfile? Let’s talk. You can also sponsor the project to help fund its development.