Skip to content

Guides by audience

Flowfile has several entry points into the same tool. Pick the one that matches how you work — every path builds the same flows, and you can switch between them at any point. (Not sure Flowfile is the right shape at all? Start with What is Flowfile.)

Find your starting point

  • Build flows visually


    Messy exports become clean tables others rely on — as visible, re-runnable pipelines.

    Build Flows Visually

  • Coming from Excel


    VLOOKUPs, pivot tables, and IF-formulas, translated into flows.

    Coming from Excel

  • Your data lives elsewhere


    Warehouse, S3, Kafka, GA — work with data where it already is, and stop copying it around by hand.

    Your Data Lives Elsewhere

  • Analyze your data


    From question to chart you trust: shape, publish, query, visualize — and let it refresh itself.

    Analyze Your Data

  • Write Python


    Polars-style code with less I/O boilerplate — and every pipeline gets a canvas.

    Write Python

  • Run Flowfile for a team


    Running it as a shared service: auth, secrets, sharing, backups, day-two operations.

    Run Flowfile for a Team

  • Build a node the palette lacks


    A custom transformation, built once in the Node Designer — visually, no code file — and reusable in every flow.

    Node Designer

Visual and code are the same pipeline

A flow built on the canvas and a pipeline written in Python construct the same graph underneath:

  • Write code, then inspect it on the canvas with ff.open_graph_in_editor(df.flow_graph).
  • Build visually, then export the flow as Python — pure-transformation flows export as Polars with no flowfile import (some formula, fuzzy-match, or graph nodes pull a small polars_* helper); flows with I/O nodes keep an ff import for their connections.
  • Hand a visual flow to a colleague who prefers code, or the other way around — both are views of the same graph.
import flowfile as ff

SALES = "https://raw.githubusercontent.com/edwardvaneechoud/flowfile/main/data/templates/supermarket_sales.csv"

result = (
    ff.read_csv(SALES)
    .unique()
    .filter(ff.col("quantity") > 7)
    .group_by("city")
    .agg(
        ff.col("gross_income").sum().alias("total_income"),
        ff.col("gross_income").median().alias("median_income"),
    )
)

This is the same pipeline the Quickstart builds visually — read, deduplicate, filter, aggregate.

New here?

The Quickstart installs Flowfile and walks both paths in a few minutes: a visual flow that ends in the catalog, and the Python version of the same pipeline.