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…
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.
Baserow webhook
It starts when Baserow posts to the workflow’s webhook after one of these edits in the watched table:
The described Baserow fields filled in from each row’s PDF, and a column filled again when its prompt changes
What you need before you start.
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
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
Checked by Mindket on 13 Nov 2026
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.
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.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Accounting | Bookkeepers | Attach each supplier invoice and describe the fields to read | A bookkeeper adds Total and Due date columns and sees both filled from a month of invoices. |
| Legal | Paralegals | Attach each contract and ask for its parties and its renewal date | A paralegal adds a Renewal date field, and the column fills for every contract. |
| Procurement | Buyers | Attach supplier quotes and read their price and lead time | A buyer compares three quotes side by side in one table. |
| Recruitment | Recruiters | Attach résumés and ask for the last employer and the years of experience | A 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.
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.
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.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own, with a public address |
| Baserow | A table with a file field named File, and a database token that can read and update it |
| OpenAI | An API key, and a model to choose in two nodes |
| PDFs | Files that have text in them, not scans |
workflow.json.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.OpenAI Chat Model and OpenAI Chat Model1. Choose a model in each.Baserow Event, replace YOUR_WEBHOOK_PATH with a long random string. Save, then press Publish.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.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.
| To change | Where |
|---|---|
| The questions | The Baserow field descriptions |
| How answers are phrased | The system messages of Generate Field Value and Generate Field Value1 |
| The models | OpenAI Chat Model and OpenAI Chat Model1 |
| The input column | The name File, in List Table API, Filter Valid Rows and the File[0].url expressions |
| How many rows a field change reaches | The page limit and the size in List Table API |
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.
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.
| Node | What it does | What to know |
|---|---|---|
Get Event Body | Sets the webhook’s body as the item | Event Type reads event_type from it, and table_id comes along |
Fields to Update | Lists the described fields whose cell in the row is empty | A row change never overwrites a cell, and a field change does |
List Table API | Lists rows with a filter on File not empty, 20 a page | Its pagination stops after 3 requests, so at most 60 rows |
Get Prompt Fields | Keeps the table’s fields that have a description | Mindket’s copy also passes each field’s type, which the row branch’s prompt uses |
A row edit never overwrites a cell, but a field edit does, and a field edit reaches 60 rows at most.
List Table API asks for 20 rows a page and stops after 3 requests. Raise the page limit to reach moreFile[0], and only as a PDF. A scan with no text layer gives the model nothingn/a when it finds nothing. That is text, and Baserow can refuse text in a number or date field. Start with text fieldsFile 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 promptToken and the tokengpt-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 replacementAn 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.
workflow.json: the workflow as n8n exports it, forty-four nodes: thirty that do the work and fourteen sticky notes. ItREADME.md: these notes.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 thatinclude returns just the fields it names, so the rows would have arrived with no attachment to download.include.Get Prompt Fields passed on each field's name, order and description but not its type, so the "output format" line intype too, as the field branch already gets it from the webhook.File. The name is written into the filter in List Table API, into theFile[0].url expressions and into Filter Valid Rows, so change it in all of them or none.workflow.json.Authorization and its value to the word Token, a space and yourTable Fields API, List Table API,Get Row, Update Row and Update Row1.OpenAI Chat Model and OpenAI Chat Model1. Neither names a model, soBaserow Event, replace YOUR_WEBHOOK_PATH with a long random string of your own. Save, then press Publish.Baserow Event. Tick the option to use field names instead of IDs. Choose individual events:File field as the one to watch.A self-hosted Baserow needs one more change: replace https://api.baserow.io with your own address in the five nodes above.
Baserow Event receives the event. Table Fields API lists the table's fields, Get Prompt Fields keeps those with aGet Event Body puts the event's own data back in front. Event Type sends rows.updated one way andfield.created and field.updated the other.Rows to List splits the event into rows, Filter Valid Rows keeps those with a file, and Get RowLoop Over Items1 takes one row. The PDF is downloaded and read as text. Fields to UpdateGenerate Field Value1 sends the PDF's text, theGet Result1 names the answer after the field and Update Row1Filter Valid Fields keeps it if the field has a description. List Table API lists the rows thatGet 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.Generate Field Value andGenerate Field Value1, which keep answers short and ask for n/a when nothing is found.File, in the places listed above.Max Pages in the pagination of List Table API, and its size.List Table API asks for 20 rows a page and stops after 3 requests, so a field change reaches at most 60 rows. RaiseFile[0], is read, and Extract from File is set to PDF.n/a is text. Baserow can refuse text in a number or date field. Describe text fields first.File field, so the workflow's own writes to the other columns do not startToken and the token.gpt-5-mini in n8n's current source, read on 12 Novembergpt-5-mini and names gpt-5.6-terra as its replacement.NOTICE.md 634 B README.md 6 KB workflow.json 33 KB
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…
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…
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…
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…
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…
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…