Skip to content

Building Your First Flow

Walk through a realistic flow end to end: take a customer export, keep only active accounts, drop internal-only fields, derive a signup_year column, and write the cleaned file out as CSV. About ten minutes.

The Quick Start builds a three-node flow as a mechanics check. This guide assumes you’ve done that and shows what a real flow tends to look like — five nodes, a couple of decisions per node, and a final output you can hand to someone.

The example: you have a customer CSV exported from another system. It contains every account ever created, including internal test rows; it has columns nobody downstream cares about; and the signup_date field is a full ISO timestamp when all you actually need is the year. By the end of this guide the flow produces a cleaned file ready for a colleague to use.

Download the sample CSV to follow along — five rows, nine columns, mirrors the table below.

The starting CSV looks like this:

customer_idfull_nameemailphonesignup_datetierbalanceinternal_notesstatus
1042Alice Anderson[email protected]555-01422023-03-12T09:14:00Zpro320.50active
1043Bob Brown[email protected]555-01772024-04-01T11:02:00Zstandard45.00active
1044qa-test-001[email protected]000-00002024-06-18T08:00:00Zstandard0.00seed data — excludeactive
1045Carol Chen[email protected]555-02182025-01-22T15:47:00Zpro1240.00inactive
1046Dave Davis[email protected]555-02632025-09-04T10:30:00Zstandard88.75active

Five rows; one is an internal test account (internal_notes populated), one is inactive, and the timestamps are noisier than the consumer needs.

Create a new flow from the dashboard. Drag a CSV Input node onto the canvas and drop the file on it. The schema and a preview appear underneath the node.

A CSV Input node with the customer file dropped on it, showing all nine columns in the preview.

2. Filter Rows — keep only active, real customers

Section titled “2. Filter Rows — keep only active, real customers”

Drag a Filter Rows node onto the canvas and connect the CSV Input’s source handle to its target handle. Double-click the Filter Rows node to open its settings.

Set two conditions in a single group (AND logic):

  • status equals active — drops Carol’s inactive row.
  • internal_notes is empty — drops the QA seed row.
Filter Rows configuration dialog with two conditions: status equals active, and internal_notes is empty.

Click Save Changes and run the flow. The preview now shows three rows: Alice, Bob, and Dave.

Filter Rows node on the canvas, preview panel showing three filtered rows.

3. Select Columns — drop internal fields

Section titled “3. Select Columns — drop internal fields”

The downstream consumer doesn’t need phone, internal_notes, or status. Drag a Select Columns node onto the canvas, connect Filter Rows to it, and double-click to configure. Set the mode to Remove and list the three columns.

Select Columns configuration dialog in Remove mode with phone, internal_notes, and status listed.

Save and run the flow. The preview confirms the three columns are gone.

Select Columns node on the canvas, preview panel showing six remaining columns.

You could also use Keep mode and list the columns you want — same result, easier when the keep list is shorter.

The consumer wants the year, not the full timestamp. Drag a Formula node (the user-facing name for the Computed Column transform) onto the canvas and connect Select Columns to it. Double-click to configure.

Set the expression to signup_date.substring(0, 4) and the output column name to signup_year. CEL’s substring method takes the first four characters of the ISO timestamp, giving you the year.

Formula configuration dialog with expression signup_date.substring(0, 4) and output column signup_year.

Save and run the flow. The new column appears at the right side of every row.

Formula node on the canvas, preview panel showing the new signup_year column.

A note on tier availability: Formula is a Pro-tier transform. On the Free or Starter tier you can substitute Format Dates to reformat signup_date into YYYY style, then Rename Columns to call it signup_year — three nodes instead of one but no Pro features. See the full list at filebender.com/pricing.

Drag a CSV Output node onto the canvas, connect Formula to it, and click Run in the header. When execution completes, the output node shows a download card.

CSV Output node showing a download card after a successful run.

The downloaded file has six columns — customer_id, full_name, email, signup_date, tier, balance, signup_year — and three rows, one per active real customer.

Five nodes, six columns of real data plus one derived, three rows out of five. The flow runs in milliseconds on a five-row file and scales to whatever the tier row limit allows.

The flow persists in your account. Open it tomorrow, drop a fresh export on the CSV Input node, and run again — the configuration sticks.