Output · Reports
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.
Also known as: Report text, dynamic text
How it works
Type the prose in the Text field and, if you want, a Heading. The field has a Generate with AI button when it is empty and Improve with AI once it has text. To include live values, add a Data input, give it a name and wire a table into the matching port; the panel then lists that table's columns under Insert data, and clicking one drops a token such as ${{ kpis.total_sales }} into the text, filled from the first row when the pipeline runs. The repeat chip adds a block whose contents are written once per row of that input. Ticking "as list" makes a clicked column insert a token that joins the whole column into one phrase, such as "North, South and East". A section with no tokens needs no input at all. Report Assembly places the section in the layout.
Inputs and outputs
Inputs
input_0— Tableinput_1— Tableinput_2— Tableinput_3— Tableinput_4— Tableinput_5— Table
Outputs
section— File
Settings
The Attributes panel of Text Section, as in the app: the controls work, but nothing runs — there is no data behind it.
The same settings, as the Assistant writes them
{
heading?: string
body: string
tokenInputs?: [{ name: string }]
}body is prose with optional data tokens ${{ <name>.<column> }}, filled at run time from the table wired into input_i for tokenInputs[i], e.g. "Total sales: ${{ kpis.total_sales }}" with tokenInputs [{ name: "kpis" }]; a body with no tokens needs no input
Example
An intro paragraph that quotes this month's totals. Add a data input named kpis, wire in a one-row Aggregate result, and write: "Revenue reached ${{ kpis.revenue }} across ${{ kpis.orders }} orders." Add a second input top with the top five products and a repeat block to list them.