Mindket

Baserow columns filled from PDFs by field descriptions

Newversion 1 · updated

Overview

An n8n workflow for a Baserow table where each field’s description is its prompt. Attach a PDF to a row and an OpenAI chat model fills each empty described cell. Change a field and its column fills again.

Baserow columns filled from PDFs by field descriptions is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file there and publish it, so Baserow can reach it
  • Your own n8n server: the same file and steps, with a public address for the webhook
  • Baserow: write the prompts in field descriptions and read the answers in the cells
  • Baserow on your own server: change the address in five nodes first

Platform

Connects 2 apps

How it works

Trigger

Baserow webhook

It starts when Baserow posts to the workflow’s webhook after one of these edits in the watched table:

  • A PDF added or changed in a row’s File field
  • A field added to the table
  • A field changed in the table

Actions

  1. The table’s fields are listed, and those with a description become the prompts
  2. The edit is sorted as a row change or a field change
  3. The PDF of each affected row is downloaded and read as text
  4. An OpenAI chat model answers each prompt from the PDF’s text: every empty described cell of a changed row, or the changed field in up to 60 rows
  5. The answers are patched into the Baserow row

Result

The described Baserow fields filled in from each row’s PDF, and a column filled again when its prompt changes

Integrations

What you need before you start.

Baserow

Table and webhooks

Holds the table, posts the workflow an event when the File field or a field changes, and takes the answers back as row updates.

NeedsA database token in a Header Auth credential, and a table with a File field

OpenAI

Language model

Answers each field’s prompt from the PDF’s text, one call for each field on each row.

NeedsOpenAI API key, and a model chosen in two nodes

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
28 steps, starting when its webhook is called
AI
2 steps call an AI model: Generate Field Value1 and Generate Field Value
Sign-ins
Signs in to: api.baserow.io and OpenAI
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 11 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow lets the people who use a Baserow table decide what to pull out of a PDF, with no change to the workflow. Each field’s description acts as the prompt for that column. When someone attaches a PDF to a row, an OpenAI chat model reads it and fills every described field that is still empty. Add a field or edit its description, and the workflow fills that column for the rows that have a PDF. Thirty nodes run it, beside fourteen sticky notes.

Who it suits

Teams that keep their records in Baserow, on its cloud or on a server of their own, and receive documents as PDFs, such as invoices, contracts, quotes and résumés. Skip it if your PDFs are scans with no text, if you need exact figures with no review, or if Baserow cannot reach a webhook address of yours.

Who uses it, and how
IndustryWho uses itHow they use itExample
AccountingBookkeepersAttach each supplier invoice and describe the fields to readA bookkeeper adds Total and Due date columns and sees both filled from a month of invoices.
LegalParalegalsAttach each contract and ask for its parties and its renewal dateA paralegal adds a Renewal date field, and the column fills for every contract.
ProcurementBuyersAttach supplier quotes and read their price and lead timeA buyer compares three quotes side by side in one table.
RecruitmentRecruitersAttach résumés and ask for the last employer and the years of experienceA recruiter describes Last employer, and the column fills for each résumé.

You need some n8n and some Baserow: import a file, add two credentials, publish a webhook and set up a webhook in Baserow.

Where to use it

Any n8n that Baserow can reach over the internet, and that can reach OpenAI, will run it. The answers land in the cells of the table you watch.

  • n8n Cloud: import the file there and publish it, so Baserow can reach it
  • Your own n8n server: the same file and steps, with a public address for the webhook
  • Baserow: write the prompts in field descriptions and read the answers in the cells
  • Baserow on your own server: change the address in five nodes first

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Unlike its Airtable twin, this one has no setup branch. You make the webhook in Baserow’s own settings.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own, with a public address
BaserowA table with a file field named File, and a database token that can read and update it
OpenAIAn API key, and a model to choose in two nodes
PDFsFiles that have text in them, not scans
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add a Header Auth credential named Authorization, with the word Token, a space and your Baserow database token as its value. Select it in Table Fields API, List Table API, Get Row, Update Row and Update Row1.
  3. Add an OpenAI credential and select it in OpenAI Chat Model and OpenAI Chat Model1. Choose a model in each.
  4. In Baserow Event, replace YOUR_WEBHOOK_PATH with a long random string. Save, then press Publish.
  5. In Baserow, open the table’s webhook settings and make a POST webhook to the production address of Baserow Event. Use field names instead of IDs, choose the events row updated, field created and field updated, and watch the File field for row updates.
  6. Write a prompt in the description of each field you want filled, then attach a PDF to a row.

How to use it

Attach a PDF to a row’s File field. A few moments later, each described cell that was empty holds an answer. To ask a new question, add a field and write the question in its description. That column fills for up to 60 rows that have a PDF.

What to change for a different result
To changeWhere
The questionsThe Baserow field descriptions
How answers are phrasedThe system messages of Generate Field Value and Generate Field Value1
The modelsOpenAI Chat Model and OpenAI Chat Model1
The input columnThe name File, in List Table API, Filter Valid Rows and the File[0].url expressions
How many rows a field change reachesThe page limit and the size in List Table API

Example

A bookkeeper’s table has File, Supplier (described as the company that issued the invoice), Total (the invoice total with its currency) and Due date (the payment due date, as written). All three are text fields. She attaches one supplier’s PDF invoice to a new row.

Within moments, Supplier, Total and Due date hold short answers. A month later she adds PO number, described as the purchase order number if there is one. That column fills for the rows that have a PDF, and shows n/a where an invoice has none. Check the figures against the PDFs before you rely on them.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Baserow posts the edit itself to n8n’s webhook, and the workflow then asks Baserow for the table’s fields so it knows which prompts exist. Start with a table of three text fields and one PDF.

For experts. Everything goes through HTTP Request nodes to Baserow’s REST API with one Header Auth credential. A Switch node decides what kind of event arrived.

Where to look closer
NodeWhat it doesWhat to know
Get Event BodySets the webhook’s body as the itemEvent Type reads event_type from it, and table_id comes along
Fields to UpdateLists the described fields whose cell in the row is emptyA row change never overwrites a cell, and a field change does
List Table APILists rows with a filter on File not empty, 20 a pageIts pagination stops after 3 requests, so at most 60 rows
Get Prompt FieldsKeeps the table’s fields that have a descriptionMindket’s copy also passes each field’s type, which the row branch’s prompt uses

Good to know

A row edit never overwrites a cell, but a field edit does, and a field edit reaches 60 rows at most.

  • Overwriting: a row change fills only empty cells. A field change fills that column for the rows it fetches, and replaces what was there
  • The 60-row limit: List Table API asks for 20 rows a page and stops after 3 requests. Raise the page limit to reach more
  • Cost: each field on each row is one chat call that carries the whole PDF’s text
  • What is read: only the first attachment, File[0], and only as a PDF. A scan with no text layer gives the model nothing
  • `n/a`: the model answers n/a when it finds nothing. That is text, and Baserow can refuse text in a number or date field. Start with text fields
  • Repairs: the original copy asked Baserow for six named fields only, with File left out, so the field branch had no attachment to download. Mindket’s copy drops that filter, and also passes each field’s type to the row branch’s prompt
  • The token: Baserow’s API schema, read on 12 November 2026, lets a database token call the fields and rows endpoints this workflow uses, written as Token and the token
  • Model: neither chat model names one. OpenAI Chat Model 1.1 uses gpt-5-mini by default in n8n’s current source, read on 12 November 2026. OpenAI’s deprecations page gives 11 December 2026 for it and names gpt-5.6-terra as the replacement
  • Open webhook: keep its path long and private, since anyone who learns the address can call it
  • Your data: each PDF’s text goes to OpenAI
  • Credentials: the JSON holds none

README and files

README

Baserow columns filled from PDFs by field descriptions

An n8n workflow that treats each Baserow field's description as a prompt. When someone attaches a PDF in a row's File
field, a chat model reads it and fills every described field that is still empty. When a field is added or changed, the
same prompt runs again for the rows that have a PDF.

What is inside

  • workflow.json: the workflow as n8n exports it, forty-four nodes: thirty that do the work and fourteen sticky notes. It
    holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The credential links are gone: the Header Auth credential on five HTTP Request nodes and the OpenAI key on both chat
    models. Select your own.
  • Baserow Event had its author's own path and webhook ID. The ID is gone and the path is now YOUR_WEBHOOK_PATH.
  • List Table API asked Baserow for six named fields only, and File was not one of them. Baserow's API schema says that
    a request with include returns just the fields it names, so the rows would have arrived with no attachment to download.
    Mindket's copy drops include.
  • Get Prompt Fields passed on each field's name, order and description but not its type, so the "output format" line in
    the row branch's prompt came out empty. It now passes type too, as the field branch already gets it from the webhook.
  • The large note at the top, with the author's links and a demo video, is now a title. The note that held a logo is gone,
    and the screenshot link in the webhook note is removed. The text of that note stays.
  • Nothing else. The Code nodes needed no other repair.

Before you start

  • An n8n instance, on n8n Cloud or your own server. Baserow must be able to reach its webhook address.
  • A Baserow table with a file field named File. The name is written into the filter in List Table API, into the
    File[0].url expressions and into Filter Valid Rows, so change it in all of them or none.
  • A Baserow database token that can read and update that table.
  • An OpenAI API key.
  • PDFs that have text in them. A scanned page with no text layer gives the model nothing to read.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add a Header Auth credential. Set its name to Authorization and its value to the word Token, a space and your
    Baserow database token. Select it in the five nodes that call Baserow: Table Fields API, List Table API,
    Get Row, Update Row and Update Row1.
  3. Add an OpenAI credential and select it in OpenAI Chat Model and OpenAI Chat Model1. Neither names a model, so
    choose one in each.
  4. In Baserow Event, replace YOUR_WEBHOOK_PATH with a long random string of your own. Save, then press Publish.
  5. In Baserow, open the table's webhook settings from the three-dots button in its toolbar. Create a POST webhook to the
    production address of Baserow Event. Tick the option to use field names instead of IDs. Choose individual events:
    "row updated", "field created" and "field updated". For "row updated", pick the File field as the one to watch.
  6. In Baserow, write a prompt in the description of each field you want filled, such as "The company that sent the
    document". Attach a PDF to a row. The empty described cells fill within moments.

A self-hosted Baserow needs one more change: replace https://api.baserow.io with your own address in the five nodes above.

How a run goes

  1. Baserow Event receives the event. Table Fields API lists the table's fields, Get Prompt Fields keeps those with a
    description, and Get Event Body puts the event's own data back in front. Event Type sends rows.updated one way and
    field.created and field.updated the other.
  2. A row change: Rows to List splits the event into rows, Filter Valid Rows keeps those with a file, and Get Row
    reads each one fresh. Loop Over Items1 takes one row. The PDF is downloaded and read as text. Fields to Update
    lists the described fields whose cell is empty. For each one, Generate Field Value1 sends the PDF's text, the
    field's description and its type to the chat model. Get Result1 names the answer after the field and Update Row1
    patches the row.
  3. A field change: Filter Valid Fields keeps it if the field has a description. List Table API lists the rows that
    have a file, Get Valid Rows flattens its pages, and Loop Over Items takes one row. The PDF is read,
    Generate Field Value answers for that one field, and Update Row patches the row.

Change the look

  • The prompts: the Baserow field descriptions, and the system messages of Generate Field Value and
    Generate Field Value1, which keep answers short and ask for n/a when nothing is found.
  • The models: both chat model nodes.
  • The input column: the name File, in the places listed above.
  • How many rows a field change reaches: Max Pages in the pagination of List Table API, and its size.
  • Which edits start a run: the events and the watched field in Baserow's webhook settings.

Good to know

  • A row change fills only empty cells. A field change fills that column for the rows it fetches, and replaces what was
    there.
  • List Table API asks for 20 rows a page and stops after 3 requests, so a field change reaches at most 60 rows. Raise
    the page limit to reach more. The note beside it warns that a table of thousands of rows would take a long time.
  • Each field on each row is one chat call that carries the whole PDF's text. Many fields on long PDFs cost more.
  • Only the first attachment, File[0], is read, and Extract from File is set to PDF.
  • The answer n/a is text. Baserow can refuse text in a number or date field. Describe text fields first.
  • Baserow's webhook watches only the File field, so the workflow's own writes to the other columns do not start
    another run.
  • Baserow's API schema, read on 12 November 2026, lets a database token call the fields and rows endpoints this workflow
    uses, written as Token and the token.
  • Neither chat model names a model. OpenAI Chat Model 1.1 uses gpt-5-mini in n8n's current source, read on 12 November
    2026. OpenAI's deprecations page gives 11 December 2026 for gpt-5-mini and names gpt-5.6-terra as its replacement.
  • Keep the webhook path long and private. Anyone who learns the address can call it.
  • The PDF's text goes to OpenAI. Your rows travel between Baserow and n8n.
Files
NOTICE.md  634 B
README.md  6 KB
workflow.json  33 KB

3 files, 40 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

upscaler

uwg · Kit

Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…

New

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

VibeVoice-1.5B

microsoft · Kit

Turns written conversations into spoken audio with up to four speakers and about 90 minutes of speech, an open Microsoft text-to-speech model for research on p…

New

Similar in Productivity

See all in Productivity

Moss-Image-Edit LoRA for ComfyUI

PedroMarinhoDev · Kit

Edits an image, or combines up to four, from a text instruction, using a ComfyUI-ready version of the Moss-Image-Edit LoRA. For ComfyUI users working with the…

New

Mega-ASR

zhifeixie · Kit

Transcribes English and Chinese speech from noisy, echoey, clipped or overlapping recordings, and routes clean audio to the base model. For teams with difficul…

New

GLM-Image

zai-org · Kit

Generates and edits images from text and reference pictures, with strong text rendering inside images, using an autoregressive plus diffusion design. For creat…

New