Documentation

Nodes

A node is one step in your workflow: read a file, filter rows, join two tables, draw a map, send an email. You connect nodes on the canvas, and data flows from one to the next.

Add a node

Right-click the canvas, or press ⌘K (Ctrl+K on Windows), and start typing. Names from other tools work too, so Summarize, GroupBy or Merge Queries find Aggregate or Join. With a node selected, the new one is wired after it.

Some searches add a node that is already set up. Type an Excel finance function, such as PMT, NPV or IRR, or what it works out, such as loan payment or depreciation, and the Finance section lists one row per function. Picking one adds an Add Column with the formula already written, or for the cash-flow functions an Aggregate with the operation and its rates filled in; you replace its placeholders with your columns. See Formulas and finance functions.

To read a file, you can also drop it on the canvas, or drag a source out of the Drones panel on the left.

Ports

Inputs sit on a node's left edge and outputs on its right. Drag from an output to an input to connect two nodes. Most ports carry a table. A few nodes have more than one input, such as Join (a left and a right table), or more than one output, such as Switch (one per case).

Configure

Select a node to set it up in the Attributes panel on the right. Run the workflow, and the panel under the canvas shows the selected node's output on the Data tab, or on Map, Chart or Report for the nodes that draw one.

Input

Input nodes bring data into the workflow. Files, databases and cloud sources usually come in from the Drones panel on the left: drop a file or folder on the canvas, or drag a source out of the panel, and the right reader appears already set up. The rest you add from the node menu like any other node.

Files

Node What it does Typical use / also known as
CSV Reader Reads a CSV or other delimited text file, such as a TSV. Column types are detected for you, and you can override them or read every column as text. Import, read_csv, TSV
Fixed-width Reader Reads a text file whose columns sit at fixed character positions, such as a mainframe export or a legacy feed, slicing each line at the positions you set on a ruler over the file's first lines. Header row, start line, encoding and row limit work as in the CSV Reader. Fixed length, flat file, .dat, .prn, Alteryx .flat
JSON Reader Reads a .json, .jsonl or .ndjson file as a table. A JSON array of objects and one-object-per-line files are both detected automatically. JSON Lines, NDJSON, API response
Parquet Reader Reads a Parquet file and keeps the column types stored in it. Columnar, Arrow
Excel Reader Reads one worksheet of an Excel workbook, the first sheet unless you pick another. XLSX, spreadsheet
Geo Reader Reads a map file with its geometry: GeoJSON, Shapefile (also zipped), GeoPackage, GML, KML/KMZ, GPX, FlatGeobuf or MapInfo TAB. For a file with several layers, you pick which layer to read. Shapefile, GeoPackage, KML
XML Reader Reads an XML file into a table. It finds the repeating record element for you, so each record becomes a row. XML feed
SQLite Reader Reads one table from a local SQLite database file (.sqlite, .sqlite3 or .db). You pick the table from the file's list of tables. Embedded database
Daedalus Table Reader Reads a .ddtable file saved by Write Daedalus Table, in this project or another one. The column formats come back too, so everything prints as it did. Hand-off, checkpoint

Databases and cloud

Node What it does Typical use / also known as
DB Reader Reads a table from a PostgreSQL or MySQL database through a saved connection. You pick the schema and table. Postgres, MySQL, SQL input
S3 Reader Reads a file stored in an Amazon S3 bucket, or another S3-compatible store, into a table. A pattern such as s3://bucket/exports/*.csv reads every matching object into one table. AWS, bucket, MinIO
Snowflake Reader Reads a table from Snowflake through a saved connection, or the result of a SQL query you write. A table is read whole unless you set a row limit. Data warehouse
Salesforce Reader Reads the records of a Salesforce object through a saved connection, or the result of a SOQL query you write. An object is read whole unless you set a row limit. CRM
Strava Reader Reads your Strava activities, athlete profile or activity streams through your own connected Strava app. Fitness data

Folders and loops

Node What it does Typical use / also known as
Directory Lists the files in a folder, one row per file, instead of reading their rows. Wire it into a loop to process every file in turn. Batch of files, dynamic input
S3 Directory Lists the objects in an S3 location that match a pattern, one row per object, so a loop can process each one. Batch of S3 files
DB Directory Lists the tables in a database connection, one row per table, so a loop can run once per table. You can filter the list by name. Table per record
Sheets Lists the sheets of an Excel workbook, one row per sheet, so a loop can read each sheet in turn. Sheet per record
Current item Sits inside every loop and gives you the item the loop is on right now, such as the current file read as a table. It is added for you and can't be removed. Loop input
File Reads the file whose path sits in a column of its input: Parquet, CSV, JSON, Excel or a map file, on disk or in S3. Wire a loop's Current item into it to read a different file each time. Dynamic input, read by path

Web and APIs

Node What it does Typical use / also known as
REST Fetch Pulls data from a web address into a table. Enter the URL and press Generate fetch, and the code that fetches and parses the response is written for you. API, web scraping, download
Web Page Reads a web page or a saved .html file. Add it with Add data source, then choose what to read: a table, repeating items such as product cards or list entries, contact details, or the whole page as text. It can follow "next" links or a URL pattern to read several pages, and render a page built with JavaScript before reading it. Web scraping, scrape a table, Wikipedia
Extract from HTML Reads pages you already have as HTML in a column, such as a Web Page source's page HTML or stored email bodies, the way the Web Page source reads a page: a table, repeating items, contact details, the text or the links. Scrape stored pages, parse HTML

Make your own data

Node What it does Typical use / also known as
Constant Table A small table you type in by hand, with named, typed columns. Handy as a lookup list, or as the list of items a loop goes through. Text input, manual entry
Generate Series Creates a one-column table of numbers, dates or timestamps from a start to a stop at a fixed step, such as every day or every 15 minutes. Useful as a calendar to join facts onto. Date spine, calendar table, range
DuckDB Query Write your own SQL query for anything the other nodes don't cover. A wired-in table is available to the query as _input. Excel's cash-flow functions such as NPV and IRR take a column here, e.g. NPV(0.08, list(cashflow ORDER BY period)). Custom SQL

Context data

Node What it does Typical use / also known as
Overture Maps Fetches open map data from Overture Maps inside a box you draw: places, buildings, roads, land use or addresses. Places can be narrowed by category, such as restaurants. POIs, building footprints
Population (Kontur) Fetches the Kontur population grid for one country, clipped to your area, as one row per 400 m hexagon with its population. Population density, headcount
US Census (ACS) Fetches American Community Survey estimates, such as population, income, age and housing, for US states, counties, tracts, ZIP areas and more. Needs a Census API key saved in Credentials. Demographics
OSM Overpass Asks live OpenStreetMap for features that match tag filters inside your area, such as amenity=cafe or shop=supermarket. OpenStreetMap query
EU Parcels Fetches open land-parcel outlines and parcel references for Poland, France, Spain or the Netherlands: inside a box, at a point, or by parcel reference, depending on the country. Geometry and references only, never ownership data. Cadastre, land registry

Shape

Shape nodes change a table: filter it, add columns, summarize it, combine it with another one. Each takes a table in and passes a table on.

Rows

Node What it does Typical use / also known as
Filter Keeps only the rows that meet your conditions, combined with AND or OR. For example, keep orders where the amount is over 100. Where, select records
Switch Sends each row down one of several outputs: it goes to the first case whose condition is true, and rows that match none go to Default. Case when, if/else, conditional split
Sort Puts rows in order by one or more columns, ascending or descending, with blanks first or last. Order by
Row Limit Keeps or drops the first or last N rows, in their current order. For example, skip three header lines or take 100 rows for a quick check. Head, tail, skip rows, sample
Top / Bottom N Keeps the N rows with the largest or smallest values in one column, such as the 10 best-selling products. You choose what happens to ties at the cut-off. Leaderboard, nlargest
Distinct Keeps one row per unique combination of key columns. You choose whether the first or last copy survives; with no keys it drops exact duplicate rows. Remove duplicates, unique
Random Sample Picks a random set of rows, either a fixed number or a share such as 10%. You can sample with replacement, or stratify by a column so each group keeps its share. Set a seed to get the same rows every time. Downsample, stratified sample
Random Split Divides rows into named groups by percentage, each on its own output, such as 80/20 train and test. Repeatable, and can keep each group's share of a column. Train/test split, A/B cohorts, create samples
Add Row Number Numbers the rows 1, 2, 3… in a new column. You can sort first and restart the count in each group. Record ID, row_number
Rank Ranks rows by one or more columns, optionally within groups, so the top seller per region gets 1. You choose how ties are ranked; percentile rank is available too, and Tile splits the rows into N equal-sized buckets. Dense rank, percentile
Densify Adds the rows that are missing so every key combination appears, taken from the data or from a reference table you wire in, and fills the gaps with values you choose. For example, every product for every month, with 0 sales where none were recorded. Complete, fill gaps
Generate Rows Repeats each row once per value of a range, such as 1 to a count column or a start date to an end date, and adds the generated value as a column. For a sequence with no input, use Generate Series. Expand rows, one row per day, repeat rows

Columns

Node What it does Typical use / also known as
Select Columns Keeps only the columns you pick and drops the rest. Drop columns, select
Rename Gives columns new names. Type old-to-new pairs, or let the data decide at run time: take the names from the first row (which is then dropped), from a names table on a second input, or from an expression over each old name. Relabel, alias
Cast Types Changes a column's type, such as text to number or text to date. You choose what happens to a value that won't convert: stop the run, or make it blank with or without a warning. Data type, change type
Parse Turns messy text into real values: dates and times, numbers with separators or currency signs, true/false, durations, measurements with units, and coordinates. Text to date, text to number
Add Column Adds a column worked out by a formula, a fixed value, today's date or the current time, or a parameter. For example, margin = Price − Cost. Excel's finance functions such as PMT work here by name; see Formulas and finance functions. Formula, calculated field
Multi-field Formula Applies one formula to many columns at once, such as rounding every price column. Overwrite the columns or write new ones beside them. Apply to many columns
Multi-row Formula Works out a column from the current row and its neighbours, including the column's own value on the previous row. Use it for fill-down, running totals or carrying the last value forward. Previous row, fill down
Fill Missing Replaces blanks with a fixed value, an empty string, or the previous or next value, or drops those rows. It can also drop rows or columns that are entirely empty. Fill nulls, forward fill, data cleansing
Replace Values Swaps text in a column for other text, such as 'N/A' to blank or 'NY' to 'New York'. Each rule replaces its text wherever it appears in a value, as plain text or a pattern. Find and replace, recode
Replace via Mapping Swaps values in one or more columns using a second table of from → to pairs, such as a code list turning 'NY' into 'New York'. Values with no match stay as they are, or fail the run if you choose. Mapping table, recode, translate codes
Interpolate NULLs Fills blank numbers by estimating from the known values around them, in a straight line or by taking the nearest one. For example, missing sensor readings. Gap fill
Clip Values Caps numbers at a lower and/or upper bound. Anything below becomes the minimum, anything above becomes the maximum. Clamp, cap outliers
Bin Turns a number into a labelled band, using your own break points or equal-width buckets. For example, ages into 0–17, 18–64 and 65+. Bucket, tile, age groups
Format Table Sets how columns print in previews and reports: currency, percent, decimals, thousands separators, date masks, alignment and hidden columns. The values themselves don't change. Number format, display format
Format to Text Turns a number, date or time column into formatted text: thousands separators, fixed decimals, currency or a date pattern. The pattern can come from another column, row by row. Unlike Format Table, this changes the data. Number to text, format as text
Audit Stamp Adds columns that record when the row was loaded, from which source, and in which run. Use it before writing to a warehouse so you can trace every row. Lineage, batch ID

Summarize and reshape

Node What it does Typical use / also known as
Aggregate Collapses rows into one row per group and works out values for each: sum, count, average, median, mode, percentiles, longest text and more, cash-flow values such as NPV or IRR, and for a geometry the dissolved shape, extent or centroid. With no group, you get one grand-total row. Summarize, group by
Group Aggregate Works out a group total and writes it onto every row instead of collapsing them, as the value, a ratio or a percent. For example, each sale as a share of its region's total. Percent of total, window total
Running Aggregations Adds running totals that build up row by row: sum, average, median, min, max, count or standard deviation, optionally restarting per group. For example, year-to-date sales. Cumulative sum, running total
Pivot Turns the values of one column into new columns, such as one row per store with a column per month. The reverse of Unpivot. Cross tab, long to wide
Unpivot Turns chosen columns into rows of name and value pairs. For example, Jan, Feb and Mar columns become month and sales rows. Melt, wide to long, transpose
Transpose Swaps rows and columns, so every column becomes a row. Best for small, wide summary tables. Flip, swap rows and columns
Split to Rows Turns a cell holding several delimited values into one row per value. For example, 'red;green;blue' becomes three rows. Text to rows
Split to Columns Breaks one text column into several columns at a delimiter, such as 'London, UK' into city and country. Text to columns
Explode Turns each item of a list column into its own row. For comma-separated text, use Split to Rows instead. Unnest, flatten

Text

Node What it does Typical use / also known as
Text Operations Cleans text columns: change case, trim spaces, find and replace, pad, cut, add a prefix or suffix, or take the length. One node can clean several columns. Trim, upper case, cleanse
Regex Extract Pulls pieces out of text with a regular expression, one new column per capture group, such as a postcode from an address. Regular expression, pattern
Tokenize Finds every match of a regular expression in a text column, such as each number in 'a12 b34'. It spreads the matches across columns, gives each its own row, or turns each match's capture groups into columns. Extract all matches, text to columns
URL Parse Splits a web address into its parts: scheme, host, port, path, query and fragment. For example, pull the domain out of referrer links. Extract domain
IP Parse Splits IPv4 or IPv6 addresses and network ranges into host, family, netmask, network and broadcast address. Handy for grouping traffic by subnet. CIDR, subnet
Slug Turns text into a web-friendly form: lower case, no accents, hyphens between words. 'Hello, World! 2026' becomes 'hello-world-2026'. Slugify, permalink
Base64 Encodes a column to base64 text, or decodes base64 back to text or raw bytes. Encode, decode

Combine tables

Node What it does Typical use / also known as
Join Matches rows from two tables on one or more key columns: inner, left, right, full, anti or semi. Keys can also compare with <, > or between, for range joins. Merge, merge queries
Lookup Adds columns from a reference table to every row by matching one key, like Excel's VLOOKUP. Rows without a match stay, with blanks. VLOOKUP, XLOOKUP, find and replace
Union Stacks the rows of two or more tables one under another. Columns line up by name or by position. Append, concatenate, stack
Zip Puts two tables side by side, row 1 with row 1, row 2 with row 2, with no key needed. Both tables must have the same number of rows. Join by position, bind columns
Cross Join Pairs every row of one table with every row of the other, so 10 × 5 rows gives 50. For example, every store with every month. Append fields, every combination
As-of Join Matches each row to the closest row in another table by a sorted key such as a time. For example, attach the price in effect at the time of each trade. Nearest match, merge_asof
Fuzzy Match Joins two tables on keys that are similar but not identical, such as customer names with typos. A score column shows how close each match is. Approximate join, record linkage

Dates and time

Node What it does Typical use / also known as
Extract Date/Time Parts Pulls parts out of a date into new columns: year, quarter, month, week, day, weekday, hour, a weekend flag and more. Date part
Date/Time Arithmetic Adds or subtracts time from a date, or measures the gap between two dates, from seconds to years or working days. For example, due date = order date + 30 days. Date diff, date add, business days
Truncate Date/Time Rounds dates down to the start of a period, such as the first of the month. Handy before grouping by month. Start of month, date floor
Time of Day Drops the date from a timestamp and keeps the clock time, so you can compare times across days. Strip date
Make Date from Parts Combines separate year, month and day columns (and hour, minute, second) into one real date or timestamp. Date from parts
Convert Date/Time to Text Turns a date into text using a pattern, such as 01/03/2024 or Mar 2024. The result is text, so use it for labels and exports, not for date math. Date format, strftime
Convert Serial Date Converts between numbers and dates: Unix timestamps, Excel serial dates, Julian days or your own starting point. For example, 45292 from Excel becomes 2024-01-01. Epoch, Excel date
Convert Timezone Shifts times from one time zone to another, with daylight saving handled. For example, UTC to Europe/Warsaw. Time zone, UTC

Time series

Node What it does Typical use / also known as
Shift / Lag Copies a value from N rows earlier or later onto each row, so you can compare a row with the one before it. For example, last month's sales next to this month's. Lag, lead, previous row
Diff / Pct Change Compares each row with the one N periods earlier and writes the difference or percent change. For example, month-over-month growth per store. Growth rate, year over year
Rolling Window Adds moving statistics over the last N rows: sum, average, standard deviation, min, max, count or median. For example, a 7-day moving average. Moving average
Resample Rolls a time series up into regular buckets, from minutes to years, with a total or other summary per bucket. Empty buckets can be left out, carried forward or set to zero. Time bucket, daily totals
Exponential Weighted Mean Smooths a number column so recent rows count more than older ones. Gives a weighted mean, standard deviation or variance. EWMA, exponential smoothing
Forecast Forecasts the next periods of a measure from a dated series, one forecast per group, with a lower and upper band. It can also backtest the recent past to show how accurate the forecast would have been. Sales forecast, time-series projection
Sessionize Groups events into sessions: a new session starts when the gap since the last event is longer than you set, such as 30 minutes. Clickstream sessions

Statistics

Node What it does Typical use / also known as
Describe Summarizes each column in one row: count, blanks, mean, standard deviation, min, percentiles and max. A quick first look at a new dataset. Summary statistics, profile
Value Counts Counts how often each value, or combination of values, appears: one row per distinct value with its count or share. Frequency table, tally
Column Profile Counts the distinct values in each chosen column, as long rows of column, value and count. Useful for spotting typos or dominant categories. Field summary
Correlation Matrix Shows how strongly each pair of number columns moves together, as a grid of values from −1 to 1. Pearson, Spearman
Covariance Matrix Works out the covariance of every pair of number columns, as a grid. Covariance
Linear Regression Fits a straight-line model of one column from one or more others. Outputs the coefficients, or your rows with predictions and residuals. Least squares, trend line
Standardize Rescales number columns to a common scale: z-score or 0 to 1. Use it before comparing measures in different units. Normalize, scale
Outlier Flag Adds a true/false column marking rows with unusually high or low values. Rows are kept, so you can filter or review them afterwards. Anomaly flag

Data quality and flow control

Node What it does Typical use / also known as
Assert Checks the data against rules, such as no blanks, unique keys, allowed values or freshness, and stops the run if one fails. Data that passes flows through unchanged. Test, validate
Expectations Runs a set of quality rules and outputs a scorecard with one row per rule, its failed count and pass rate. Unlike Assert, it never stops the run. Data quality report
Gate Passes data on only when a condition holds. The condition can test the data itself, a separate control table or a parameter. Otherwise everything after it is skipped and the run still succeeds. For example, publish only if the extract has rows. Only if, skip downstream
Wait For Holds a branch back until other steps have finished, then passes its data on. For example, send a Slack message only once the database write is done. Run after, block until done
Compare Tables Lines up two versions of a table by key columns and puts each value side by side, flagging every cell that changed. A row on only one side shows blanks for the other. Diff, reconcile

Matching and dedupe

Node What it does Typical use / also known as
Flag Duplicates Adds a true/false column marking rows that repeat on the key columns, and keeps every row for review. A fuzzy mode catches near-duplicates such as Jon and John. Find duplicates
Blocking Finds candidate pairs of records that share a key, such as the same postcode, within one table or across two. It narrows down the pairs before fuzzy matching. Record linkage, candidate pairs
Match Grouping Turns matched pairs into groups: if A matches B and B matches C, all three share one cluster ID. Wire in the original records too and every record gets its cluster ID, with unmatched records in a cluster of their own. Make group, clusters
Survivorship Merges each group of duplicate records into one best record, picking each field by a rule such as most recent or most frequent. Golden record, master data

IDs and hashing

Node What it does Typical use / also known as
Hash Replaces a column, or adds a new one, with its MD5, SHA-1 or SHA-256 hash. Use it to hide personal data such as emails, or to build a stable ID. Anonymize, pseudonymize
Row Hash Combines several columns into one fingerprint per row. Compare fingerprints between two loads to spot the rows that changed. Change detection, checksum
Surrogate Key Gives each distinct key a compact ID: a hash that stays the same across runs, or a number from 1 to N. Dimension key
UUID Adds a random unique ID to every row. The IDs change on every run; use Surrogate Key when they must stay stable. GUID, unique ID

Geospatial

Geospatial nodes work with a geometry column: points, lines and polygons. You see the result on the Map tab under the canvas. Geocoding and routing run offline on your machine. Routing needs road data installed first.

Build and fix geometry

Node What it does Typical use / also known as
Make Point Turns longitude and latitude columns into points you can map and use in other spatial nodes. XY to point, create points
Poly Build Connects ordered points into a line or polygon, or wraps them in a hull or bounding box, optionally one shape per group. For example, GPS points into route lines. Points to line, convex hull
Make Valid Repairs broken shapes, such as self-crossing polygons, so later spatial steps don't fail on them. Fix geometry
Reproject Converts geometry from one coordinate system to another. Use it before measuring or overlaying layers that come in different projections. CRS, EPSG, transform
Poly Split Breaks multi-part shapes into single parts, one row per part, such as the islands of a country. Explode multipart
Remove Holes Fills in the holes inside polygons, keeping only the outer boundary. Fill holes
Dissolve Merges shapes into one, or one per group, so the inner borders disappear. For example, county outlines into one outline per state. To keep totals alongside the shapes, use Aggregate's Union (dissolve). Merge polygons, union

Combine and measure

Node What it does Typical use / also known as
Spatial Join Joins two tables by where their shapes are, not by a key: intersects, within, contains or nearest. For example, tag each store with the region it falls in. Point in polygon, spatial match
Spatial Intersection Overlays two layers. Keep only where they overlap, or cut one out of the other, such as land parcels minus flood zones. Overlay, erase
Spatial Measure Adds a measurement per shape: length, area, perimeter, compass bearing, or the distance from the previous point on a track. Area, distance, length
Buffer Grows each shape outward by a distance, turning points or lines into areas. For example, a 500 m zone around every store. Radius, zone

Areas and surfaces

Node What it does Typical use / also known as
Trade Areas Builds catchment areas around each location: distance rings, drive-time bands, areas traced from demand, or rings cut into sectors. Catchment, market area
Gravity Model Splits each area's demand between the locations in range by their attractiveness and distance (the Huff model). Gives the demand each location captures, such as a new store's sales and what it takes from the others, the top location per area, or a probability for every area and location. Huff model, market share, site selection
Calibrate Gravity Model Fits the Gravity Model's attractiveness and distance-decay settings to what customers actually did, such as loyalty-card visits per area and store, and reports how well the fit reproduces each store. Calibrate Huff, distance decay
Voronoi Draws one area per point covering everywhere closer to it than to any other point, such as the nearest-store territory for every shop. Thiessen polygons
H3 Aggregate Puts features into hexagon cells of a chosen size and summarizes each cell, for an even grid on density maps. Hex bins, heat map
Spatial Interpolate Estimates a smooth surface from measured sample points, on a hexagon or square grid. For example, a pollution surface from sensors. IDW, heat surface

Geocoding and routing

Node What it does Typical use / also known as
Geocode Finds the latitude and longitude for addresses or place names and adds a point. Works offline at city level, at street level with an address index you build, or through an online service you opt into. Address to coordinates
Reverse Geocode Finds the nearest place or street address for each point and adds place, region, country, street, city and postcode columns. Works offline at city level, at street level with an address index you build, or through an online service you opt into. Coordinates to address
Route Works out the road route between each row's start and end point, with distance, travel time and the route line. By car, bicycle, foot or truck. Directions, drive distance
Isochrone Draws the area you can reach from each point within a time or distance, such as a 15-minute drive. Drive-time area, reachability
Matrix Works out road distance and travel time between every pair of points, or from each start to each destination. For example, drive time from every store to every customer. Distance matrix, origin–destination
Map-match Snaps noisy GPS points onto the road network, one matched path per trip or each point with its confidence. Snap to road, GPS traces
Optimize stops Puts stops in the visiting order with the least total travel time or distance on the road, for one or several vehicles. Route optimization, delivery route

Intelligence

Intelligence nodes work with free text. You describe what you want in a prompt, AI writes the code, and you review it before it runs. You choose how much of your data, if any, the AI may see.

Node What it does Typical use / also known as
Classify Labels each row with a category, using code written from your prompt. For example, tag support tickets as billing, bug or feature request. Categorize, sentiment
Extract Pulls the fields you describe out of free text into new columns, such as company names, dates or amounts from email bodies. Entity extraction
Summarize Turns the whole table into one text or number, such as a two-line summary of this month's sales. Narrative, insight
Generate Writes a piece of text for each row from its values, such as a one-line summary of each order. Per-row text, mail merge

Output

Output nodes deliver results: they write files, load databases, build reports and send messages.

Files

Node What it does Typical use / also known as
Write CSV Saves the table as a CSV file. It can create a new file, replace one (keeping a backup) or append to it; the delimiter, header and quoting are up to you. Export, save as
Write Excel Writes one or more tables into named sheets of an Excel workbook. It can add to an existing workbook and keep its other sheets. XLSX, multiple sheets
Write JSON Saves the table as a JSON file: one array of objects, or one object per line. JSON Lines
Write Parquet Saves the table as a compressed Parquet file that reloads fast here, in DuckDB, pandas or Spark. Good for large in-between results. Columnar export
Write XML Saves the table as an XML file with one element per row. Both element names are up to you. XML feed
Write HTML Saves the table as a plain HTML page with one table and an optional title. For a styled report, use Write Report. Web page
Write Geo File Saves a table with geometry as GeoJSON, GeoPackage, Shapefile or GeoParquet, ready to open in QGIS or ArcGIS. GeoParquet takes lon/lat data only. Shapefile, GeoPackage export
Write Daedalus Table Saves the table with its column formats into one .ddtable file, so a colleague can pick it up in another project and see it printed the same way. Hand-off, snapshot

Databases and cloud

Node What it does Typical use / also known as
Write to DB Loads the table into PostgreSQL or MySQL through a saved connection, or into a SQLite file. Stop if the table exists, replace it, or append rows. Insert, output to database
S3 Sink Saves a table to an S3 bucket as Parquet or CSV, or uploads a file another node wrote, such as a finished report. Upload to S3

Reports

Node What it does Typical use / also known as
Table Section Puts a table in a report with a heading, optional commentary, a row cap, totals and highlighting. Number formats come from Format Table. Report table
Text Section Adds a block of text to a report, such as an intro or notes. It can include live values from your data, filled in at run time. Report text, dynamic text
Image Section Adds an image, such as a logo, product photo or site plan, to a report. Logo, picture
Chart Draws a chart from its input: bar, line, scatter, pie, histogram, box, heat map, KPI, treemap, funnel, waterfall and more. Set it up in the Chart tab, then place it in a report. Graph, plot, visualize
Map Draws the input's geometry as a map over an offline basemap, styled in the Map tab, ready to place in a report. Choropleth, static map
Report Assembly Takes the sections wired into it and arranges them on a layout into one report. Without a layout, each section gets its own full-width row. Layout, dashboard
Write Report Saves the report from Report Assembly as a PDF, an HTML file or an editable PowerPoint deck. Fed by a loop, it merges every report into one document. PDF, PowerPoint, render

Send and serve

Node What it does Typical use / also known as
Email Sends an email through a saved mail connection, with the table in the body or attached as a CSV. It can use a report as the email body. Notify, send report
Slack Posts a message to a Slack channel when the workflow runs. The message can include the first rows of the table, such as a daily KPI alert. Notify, alert
HTTP Request Sends the data to a web address with POST, PUT or PATCH, as JSON, form fields or a file. For example, push results to a webhook. Webhook, API call
HTTP Endpoint Publishes the table as JSON at a local web address on your machine, so other tools can fetch it. Each run refreshes what the address returns. Local API, serve

Utility

When no ready-made node fits, write the step in Python, or let AI write it for you.

Node What it does Typical use / also known as
Code Gen Describe what you want in plain language and AI writes the Python for it. It can read up to 8 input tables, and you can review the code it wrote. Python tool, custom script
Custom Node A node built from your own hand-written Python. Saved custom nodes show up in the add-node menu, and each one can read up to 8 inputs. Your own tool

Containers: loops and functions

A container is a frame on the canvas that holds nodes. Drag the frame and everything inside moves with it. Drop a node inside to add it; drag it out to take it away. To make one, open the toolbar's ⋯ menu → Draw and draw a rectangle, or select some nodes and wrap them.

Container What it does Typical use / also known as
Loop (for each) Runs the nodes inside it once per row of a table, or once per file in a folder or S3 listing. Inside, the Current item node gives you the item the loop is on, and the results of every pass are collected for you. Batch macro, process every file
Loop (iterate until done) Feeds a starting table into the first pass, then each pass's output into the next. It stops when the output comes back empty, or at the maximum number of passes you set. Iterative macro
Named function Groups a set of nodes into one reusable step with its own inputs and outputs. Collapse it to a single node to keep the canvas tidy; you can still run it from there. Macro, sub-workflow