Skip to main content

Building Reports

How to create, edit, version and retire reports with the Folio Editor.

Overview​

A Folio report is built in the Editor, reached from the Folio Reports tab. You choose an object, a format and the fields, and a live preview beside you shows real rows from your org as you go. The preview is the report itself, run against a small slice of your data, so what you see while building is what readers get.

Building reports needs the Flourish Folio: Admin permission set. See Setup.


Folio Reports opens on a card for every report.

On a card
Name and statusPublished for a report in service, Archived for one taken out of service.
ObjectThe object the report is built on.
DescriptionThe report's description, if it has one.
VersionThe version readers currently see, such as v2.
Last runWhen anyone last opened the report, or Never run.

Active and Archived across the top switch between reports in service and those you have archived. Search reports… matches on the report's name or its object.

Click a card to open the report as readers see it. The header then offers:

Editor / ViewerSwitch between editing the report and viewing it.
Go to DefinitionOpens the report's Folio Definition record in a new tab. Its Unique Name is what you need to place the report on a page.

Reports in the breadcrumb takes you back to the gallery. The address bar follows you, so a link copied from it opens the same report, and a link copied while editing opens the Editor.


Creating a report​

  1. On the gallery, click + New Report. The Editor opens empty.
  2. Type a name over Untitled report in the header.
  3. Under Report On, pick the object the report is about.
  4. Under Format, pick one of the four formats below.
  5. Add fields until the preview shows what you want, then click Save.
FormatWhat it showsYou need
TabularA plain list of records, one row each.At least one column.
SummaryRecords grouped under a heading per value, with a subtotal for each group and a grand total.At least one column and a group row.
MatrixA grid: one grouping down the side, another across the top, and one number in each cell.A measure, a group row and a group column.
ScorecardOne row per record, each column a number gathered from a related object, such as won revenue, open cases and contact count per account.A row label and at least one measure.

Changing the object clears the report, since its fields no longer apply. Changing the format keeps your fields, filters and groupings, with one exception: switching to Matrix keeps only one column, the first summarized one, because a matrix shows a single number per cell.


The Outline​

The Editor's left rail has three tabs: Outline, Filters and Style. Outline is the report's structure, and shows only the sections that apply to the format you chose.

Picking fields​

Every Add button opens the same field picker. Type to search. A field marked › is a lookup: click it to step into the related record's fields, so you can add the account name to an opportunity report, and ‹ Back steps out again. A ✓ marks a field already added.

Folio reaches related records through lookups only, upward from the object the report is on. A report on Accounts cannot list each account's opportunities as columns; a scorecard is how you bring numbers up from related records.

Columns​

The fields shown for each record. Drag a column to reorder it, and use × to remove it.

Each column has a Σ button to summarize it:

SummaryOffered for
Not summarizedAny field. The default.
Count, Count DistinctAny field.
Sum, Average, Min, MaxNumber, currency and percent fields.

A summarized column is what fills subtotals, grand totals and charts. On a tabular report it adds a totals row at the bottom; on a summary it adds a subtotal under each group as well.

Number fields also have a # button for their format: Decimals, Currency code, Prefix and Suffix. Currency code takes a three-letter code such as USD.

On a matrix, this section is called Measure and takes exactly one field, which is the number in every cell. It defaults to Sum for a number field and Count otherwise, and it cannot be left unsummarized.

Group Rows​

What a summary groups by, or what runs down the side of a matrix. The arrow beside it sets whether groups run ascending or descending.

A date field gets a Group dates by control:

OptionGroups read as
Exact dateThe date itself.
Day2026-06-19
Month2026-06
Quarter2026-Q2
Year2026

Quarters and years are calendar ones; there is no fiscal grouping. Date and time fields are grouped by their date in GMT, so a record stamped late in the evening in the Americas can land on the next day.

A report groups by one field. The Editor lets you add more than one group row, but only the first is used and the rest have no effect on the report.

Group Columns​

Matrix only. The field whose values become the matrix's columns. It works exactly like Group Rows, date grouping included.

Sort​

The report's default order, up to three fields, each ascending or descending. The first one wins and the others break ties. With no sort, records come back in the database's own order.

On a summary, groups always follow their own direction from Group Rows, and Sort orders the records inside each group. Matrix and scorecard reports have no Sort section, since their order comes from their groupings.

Chart​

Summary and matrix only. Turn on Show a chart to draw one above the table. It needs a summarized column to plot, and says so until there is one.

Setting
Chart typeSummary: Bar, Horizontal bar, Line, Pie, Doughnut. Matrix: Bar (grouped), Stacked bar, Line.
MeasureSummary only. Which summarized column to plot. On a matrix the one measure is used, and the Editor shows it along with Bars by (the group row) and Series by (the group column).
TitleOptional. Left blank, it reads like "Amount by Industry".

A summary chart always plots the report's grouping, so there is no separate choice of what to plot it by.

Pie, Doughnut and Stacked bar need a Sum or Count. Those charts show parts of a whole, and averages, minimums, maximums and distinct counts do not add up to one. The Editor leaves them out of the list for any other measure and tells you why. If you had one chosen and switch the measure to an average, the report draws bars, and switching back restores your choice.

How readers use a chart is in Reading Reports.

Row Label and Measures (scorecard)​

A scorecard has its own two sections in place of the ones above.

Row Label is the field that names each row, such as the account name. Its arrow sets the row order. There is one row per record of the object the report is on.

Measures are the columns. Pick a related object from Add a measure from…. The list shows every object that looks up to yours, with the lookup it uses, such as "Opportunities (via Account ID)". Each measure then has:

ΣHow to summarize: Count and Count Distinct for any field, plus Sum, Average, Min and Max when the related object has a number field.
FieldWhat to summarize. Record Count counts the related records.
NameThe column heading. Required.
#Number format, as for columns.
+ Filter this measureConditions on the related object alone, such as only opportunities with Stage equal to Closed Won. They work like the Filters tab.

Add the same object more than once to count it different ways: open cases and closed cases are two measures on Cases with different filters.

The totals row at the bottom rolls up the rows above it: sums and counts add, averages are averaged across rows, and minimums and maximums take the extreme.

Details​

Description is shown on the report's card in the gallery. Row limit caps how many records a summary lists under its groups; its subtotals and totals still count every matching record. A tabular report loads every matching record as the reader scrolls, so Row limit does not cut it short.


Filters​

The Filters tab decides which records the report covers. Its count shows on the tab.

Click + Add filter…, pick a field, then an operator and a value, and click Done. Each filter collapses to a one-line summary you can click to edit. With no filters the report covers every record the reader can see.

Field typeOperators
Text, email, phone, URL, lookupIs Equal To, Is Not Equal To, Contains, Does Not Contain, Starts With, Is Blank, Is Not Blank
Number, currency, percent, dateIs Equal To, Is Not Equal To, Is Greater Than, Is Less Than, Is Greater Than or Equal To, Is Less Than or Equal To, Is Blank, Is Not Blank
PicklistIs Equal To, Is Not Equal To, Is Blank, Is Not Blank
Multi-select picklistContains, Does Not Contain, Is Blank, Is Not Blank
CheckboxIs Checked, Is Not Checked

Filter Logic​

All filters must match, unless you say otherwise. Once there are two or more, turn on Combine conditions with custom logic and type an expression such as 1 AND (2 OR 3), using AND, OR, NOT and parentheses.

The numbers refer to the badge on each filter. Only a finished filter gets a number, so a filter you have not completed is skipped and cannot be referred to. An expression that refers to a missing number or does not parse shows an error under the box, and the report cannot be saved until it is fixed.

Date Filter​

A single date range, applied on top of everything else. Pick a Date field, then a Range:

Today, Yesterday, This week, Last week, This month, Last month, This quarter, Last quarter, This year, Last year, This fiscal quarter, This fiscal year, Last N days… and Next N days… (with a Number of days), or Custom range… (with From and To).

The fiscal ranges follow your org's fiscal year settings.


Style​

The Style tab changes how the report looks and what readers can do with it.

Appearance

Setting
Brand colorThe color of the title banner, the group bands and single-series charts. A hex value such as #3D2170.
DensityComfortable or Compact rows.
Cell border colorDraws grid lines between cells in this color. Blank for the default light row lines.
Hide the record-count / format sublineRemoves the line under the title that reads like "120 records · Summary".
Freeze the first columnSummary and scorecard. Keeps the first column in view when a wide report scrolls sideways. Tabular reports always do this.

Header Strip adds label and value pairs under the title, such as Owner and Region. Use + Add row for each one. A blank value shows as a dash.

Utility Bar decides which tools readers get above the report: Export, Interactive filter and Chart toggle, and under Export, which file types. Leaving everything on is the same as not restricting anything. Where a report is placed can narrow these further but never widen them; see The Utility Bar setting. The Folio Reports tab and the Folio Definition record page always show every tool, since those are admin views.


Preview​

The Preview card runs the report as you build it and refreshes a moment after each change. It shows up to 50 records, which its subtitle says. Run in the header, or Refresh preview on the card, runs it again against current data.

Until the report has what its format needs, the card says what is missing, such as "Add a group row to preview the summary."

The preview runs as you, with your own access, even on a report marked Run Elevated.


Saving​

Save saves the report. There is no separate publish step: saving the live version changes what readers see the next time they open it.

The report needs a name, and whatever its format requires. If something is missing, Not ready to save says what, for example "A matrix needs a group column."

Save as New makes a copy as a separate report, with its own card and its own history. The original is untouched.

The first save gives the report its Unique Name, made from its name: lower case, spaces turned into hyphens, punctuation dropped, so "Won Revenue by Industry" becomes won-revenue-by-industry. If that is taken, a number is added. Renaming the report later does not change it, which is what keeps pages that show the report by its unique name working.


Versions​

Save always changes the version you are on. A new version exists only when you ask for one.

While editing a saved report, the header has a version picker and two buttons:

+ VersionCopies the version you are on into a new one and opens it in the Editor. The new version is live immediately: readers see it from now on.
Make ActiveMakes the version you are looking at the live one again. Use it to roll back.

The picker lists every version, with (active) beside the one readers see. Picking another opens it in the Editor without changing what readers see, until you click Make Active.

To try out a change without readers seeing it, use Save as New instead, and copy your change back once it works.


Archiving and deleting​

Both act on the whole report, every version of it. Hover over a card to find them.

Archive takes the report out of service. It leaves the gallery for the Archived list, and pages that show it by its unique name stop showing it. Restore on the Archived list brings it back as it was. Archive is the safe way to retire a report.

× deletes the report after a confirmation. Folio cannot bring a deleted report back. For about 15 days the records sit in the org's Recycle Bin, where an admin can undelete them, but the report returns under a changed unique name and has to be renamed by hand before any page finds it again.

Folio cannot tell you where a report is used. A report placed on a Lightning page, a Flow or a site simply stops appearing when it is archived or deleted, with no warning beforehand. Check where it is placed before you remove it.


Things the Editor does not set​

A few presentation options exist but are not in the Editor yet: coloring cells by rule, coloring individual column headers, fixing column widths, choosing which columns readers can sort, and PDF page sizing. They are set by editing the report's JSON directly, described in Report JSON. The Editor keeps them when you save, so hand-edited options survive later edits.