File viewer block
Content
The file viewer block displays whatever file a formula returns. Point it at a file column — [Invoice] — and each record shows its own upload. PDFs render page by page; CSVs open as a table. Anything else shows its filename with buttons to open or download it.
When to use it
- An invoice, contract, or delivery note attached to the record on screen.
- A CSV export or import file, checked without downloading it first.
- A fixed handbook, price list, or policy PDF on a dashboard, from a literal link.
Settings
| Setting | Options | What it does |
|---|---|---|
| Source | formula | The file's address. On a record page the formula runs against the record on screen, so [Invoice] shows that record's upload. On a page with no record block, only fixed text and USERROLE()/USEREMAIL() are available. |
| Show the filename bar | on / off | The strip across the top carrying the filename and the open/download buttons. On by default. |
| CSV: first row is a header | on / off | On by default. Off treats every row as data and numbers the columns instead. Ignored for other file types. |
What it can display
- PDF — rendered a page at a time, sized to the block, with page and zoom controls along the bottom.
- CSV — parsed into a scrollable table with a sticky header. Commas, semicolons, tabs, and pipes are all detected, as are quoted fields and quoted line breaks. Files are previewed up to 5,000 rows; past that the block says how many more the file holds.
- Anything else — the filename, its type, and buttons to open or download. Nothing is fetched, so pointing the block at a large archive costs nothing.
The file type comes from the address's own filename, not from downloading the file first — so a
.pdf link gets the PDF viewer and a .csv link gets the table.Files uploaded through this app always display. A file hosted somewhere else can only be displayed inline if that server allows cross-origin reads — when it doesn't, the block says so and the open and download buttons still work. Addresses must be
https://.Like every block, this one also has the shared block settings: a title and optional description, a header you can show or hide, auto-height, conditional visibility, and role-based visibility.