Automate with ETL

Example: File to Delivered Output

Build a complete flow from a CSV in Files to a delivered GeoJSON, then release it for a scheduled refresh.

Updated 2026-08-3110 minutes read
Before you begin
  • A CSV of point sites in Files
  • A polygon dataset in the project

Ava Reyes at Meridian Geospatial keeps a customer sites CSV in Files for the "Harbourview Network Buildout" project. She wants the active sites, tagged with the pressure zone each falls in, delivered as GeoJSON — first once, then on a schedule. Four stages do it.

Build the flow

  1. 1

    Create the flow. From the ⋮ menu choose "Create flow", name it Harbourview active sites, and click "Create flow".

  2. 2

    Read the CSV. Drag "Read Data" from "Input / Readers" onto the canvas. Pick "Choose from Files" and select the customer sites CSV — the format is detected from the file. Open the "Schema" tab to confirm the inferred column types, and the "Preview" tab to see "Sample rows".

  3. 3

    Keep active sites. Add "Filter Rows" from "ETL Stages" and connect the reader's output to its input. Configure the condition status = Active — the "Expression" footer "Auto-updates as you edit", and the "Preview" tab shows only matching rows.

  4. 4

    Join in the pressure zones. Add a "Dataset" stage and point it at the "Pressure Zones" dataset, then add "Spatial Join" from "Joins". It takes two inputs: connect "Filter Rows" to one port and "Dataset" to the other.

  5. 5

    Write the output. Add "Write Data" from "Writers / Outputs", connect the join's output, and set "Output file name" to active_sites_by_zone.geojson. The .geojson extension picks the format.

  6. 6

    Save. Click "Save" — the "Unsaved changes" chip clears.

No stage should still be flagged for attention — a run won’t start while any are.

Run it and find the output

Click "Run flow" and watch the status chip while it reads "Running flow...". When the run completes:

  1. Select the "Write Data" stage and open the data dock. The "In" side shows exactly the rows that were delivered — active sites with their pressure-zone attributes joined on. Check the "Map" tab to see them in place.
  2. active_sites_by_zone.geojson is stored with this run, and the run’s logs record the delivery — read them in the dock’s "Logs" tab or from the Runs tab.

Release it for a scheduled refresh

The sites file changes weekly, so Ava puts the flow into operation:

  1. Click "Publish to Server", choose the flow, set a "Deployment name" like harbourview-active-sites, and add a "Release note".
  2. Success reads "Release v1 is in Non-production" — click "View in Server".
  3. In the Server console's "Schedules" tab, create the schedule. Later changes to the flow take effect only when she shares it again — see Publish to Server and Schedules.
Next steps