---
title: "Fill a Google Sheet of companies from European registers"
kind: "Kit"
category: "Business"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/f40dba72-eaa0-4c71-ab8f-0ecea615c399"
updated: "2026-11-12"
---

# Fill a Google Sheet of companies from European registers

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that takes the companies listed in a Google Sheet, finds each in seven European business registers and fills in its registration number, status and address.

Fill a Google Sheet of companies from European registers is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow fills a Google Sheet of companies with official register data. It reads a column of company names or registration numbers and asks an Apify Actor to look each one up in the business registers of seven European countries. The registration number, status, address and more go back into the same row. The fields come back with identical names for each country, so a single set of columns serves all seven. Five nodes run it. One sticky note sits beside them.

### Who it suits

Teams that keep lists of suppliers, customers or leads in a sheet and want the official facts next to each name, such as sales researchers, buyers and compliance clerks. It suits a list of a few dozen to a few hundred companies in Czechia, Estonia, Finland, France, Norway, Poland or Slovakia. Skip it for companies elsewhere, because those seven are the only registers it reads. Skip it too if you need directors or owners. The Actor returns company data only.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Sales | Lead researchers | Add the registration number and status to a prospect list | A researcher sees at once which prospects the register still shows as active. |
| Procurement | Buyers | Check a supplier list against the official record | A buyer opens each supplier’s register page from the sheet. |
| Compliance | Onboarding clerks | Confirm that a business customer exists before onboarding | A clerk compares the registered address with the contract. |
| Finance | Credit controllers | Add VAT numbers where a register publishes them | A controller fills the VAT column for a few customers in Norway and France. |

You need an n8n, an Apify account and a Google account that can open your sheet.

### Where to use it

Any n8n that can reach Apify and Google will run it. The workflow starts by hand from the editor. Each lookup waits for the Actor, so a long list takes a while.

- n8n Cloud: bring in the file, connect your accounts and run it
- Your own n8n server: the same file
- A local install: it runs, because Apify and Google are reached over the internet
- A schedule: swap the manual start for a Schedule Trigger if you want it to run on its own

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Import the file, add two credentials, pick your sheet in both sheet nodes and run it on a few rows.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| Apify | An account, an API token and the Apify node in your n8n |
| Google Sheets | A Google account that can open the sheet, with an OAuth2 credential |
| Sheet | A \`company\` column in row 1, then one name or number per row |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add an Apify credential with your API token to `Look up the official register`. If your n8n does not list the Apify node, install the package `@apify/n8n-nodes-apify` first.
3. Add a Google Sheets OAuth2 credential to `Read the sheet` and to `Write it back to the sheet`. Pick your sheet and its tab in both nodes. They must be the same tab.
4. To search one register only, put a country code before the text in your sheet, such as `no:Equinor`. The codes are `cz`, `ee`, `fi`, `fr`, `no`, `pl` and `sk`.
5. Try three rows first. Select `Run it` and run the workflow.

### How to use it

Run the workflow when the list is ready. It reads every row, looks each one up and writes the answers back. Open the sheet afterwards to see the new columns. A row that no register returns keeps its empty cells.

What to change for a different result

| To change | Where |
| --- | --- |
| Countries, result count, dissolved companies | The body in \`Look up the official register\` |
| Which fields come back | The list in \`Keep the columns worth writing back\` |
| A spending cap | Maximum Cost per Run (USD) in \`Look up the official register\` |
| The key column | \`matchingColumns\` in \`Write it back to the sheet\` |

### Example

A buyer keeps forty suppliers in a sheet. The `company` column holds names such as Equinor, and a few Czech registration numbers with the prefix `cz:`. She runs the workflow.

Each lookup takes a few seconds. The sheet gains columns for the registered name, status, address, city and a link to the official record. A supplier that no register returns keeps empty cells, which tells her which ones to check by hand. She opens the link on one row and finds the same address as on her contract.

### 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. A business register is a government list of the companies registered in a country. An Apify Actor is a small program on Apify’s servers that n8n can start. Here it asks seven registers the same question. Try it on three rows.

**For experts.** The write-back finds each row by the text you typed, not by the name the register returns.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Look up the official register\` | Runs the Actor once per row and waits for it | The body is built from \`company\` with \`JSON.stringify\`. The node stops with an error unless a run ends as SUCCEEDED, and a row with no result passes nothing on |
| \`Keep the columns worth writing back\` | Builds twelve fields from each result | \`company\` is the Actor’s \`query\` field, so the write-back finds your row. The register’s own name sits in \`registeredName\` |
| \`Write it back to the sheet\` | Updates the row that matches \`company\`, or adds one | It auto-maps every field and makes a column for each header that is missing |
| \`Run it\` | Starts the run by hand | Replace it with a Schedule Trigger to run on its own |

### Good to know

Lookups run one at a time, and the Actor is small and new.

- Speed: the Actor runs once per row, one after another, each waiting up to 600 seconds. Start with a few rows
- Cost: the Actor’s price list shows USD 0.00001 for each run start and each company record. An earlier list showed USD 0.01 for each. A run that finds nothing is free. Read its page before a big run
- Actor: its page showed one user and 19 runs in total on 12 November 2026, so check it before you rely on it
- Matches: with a cap of one result, a name that fits several registers returns one match from any of them. A prefix such as \`no:\` keeps the search to one register. Poland can be searched by number only
- Gaps: \`onlyActive\` drops companies the register marks as dissolved. \`website\` comes only from Norway and Finland, and \`vatNumber\` is often empty
- Repairs: the original copy wrote the register’s name into \`company\`, which could add a new row when the spelling differed. Mindket’s copy writes your own text there and keeps the register’s name in \`registeredName\`. The saved labels of the original sheet were removed
- Not run: nothing was run, so no Actor and no sheet was tried. The notes come from Apify’s public pages and the node’s package
- Your data: the text in your \`company\` column goes to Apify, and the Actor reads the official registers
- Credentials: the JSON holds none

## README

```markdown
# Fill a Google Sheet of companies from European registers

An n8n workflow for a Google Sheet of companies. It reads a column of names or registration numbers and looks each one
up in the official business registers of seven European countries. The registration number, status, address and more go
back into the same row.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 5 nodes and 1 sticky note. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- `Keep the columns worth writing back` set `company` to the name the register returned. The write-back finds the row to
  update by `company`. A name that the register spells differently would add a new row. `company` now carries the Actor's `query` field, which is the text from your sheet, and the register's
  name goes into a new column, `registeredName`.
- Both Google Sheets nodes carried the saved labels of the original author's sheet and tab. They are blank now, so you
  pick your own in each node.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An Apify account and an API token. The Apify node must be in your n8n. If it is not listed, install the package
  `@apify/n8n-nodes-apify` from the community nodes settings.
- A Google account that can open your sheet, and a Google Sheets OAuth2 credential in n8n.
- A sheet whose first row has a column named `company`, with one company name or registration number per row below it.

## Set it up

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add an Apify credential with your API token to `Look up the official register`.
3. Add a Google Sheets OAuth2 credential to `Read the sheet` and to `Write it back to the sheet`. Pick your sheet and
   its tab in both nodes. They must be the same tab.
4. To search one register only, put a country code in front of the text in your sheet, such as `no:Equinor` or
   `cz:27074358`. The codes are `cz`, `ee`, `fi`, `fr`, `no`, `pl` and `sk`.
5. Try it on three rows first. Select `Run it` and run the workflow.

## How a run goes

1. `Run it` starts the workflow by hand.
2. `Read the sheet` reads every row of the tab. Each row becomes one item, and the `company` column holds the text to
   look up.
3. `Look up the official register` runs the Apify Actor `gubidonius/company-registry-lookup` once for each row. The input
   is that row's text as the only query, all seven countries, at most one result, and active companies only. The node
   waits up to 600 seconds for each run and returns the Actor's rows.
4. `Keep the columns worth writing back` builds twelve fields: `company`, `registeredName`, `registrationNumber`,
   `vatNumber`, `country`, `registry`, `status`, `incorporatedAt`, `address`, `city`, `website` and `registryUrl`.
5. `Write it back to the sheet` updates the row whose `company` matches. A field with no matching header gets a new
   column on the right.

## Change the look

- Which countries are searched, how many results a query may return and whether dissolved companies count: the body in
  `Look up the official register`.
- Which fields are kept: the list in `Keep the columns worth writing back`.
- A spending limit: Maximum Cost per Run (USD) in `Look up the official register`. It is empty here.
- The column that finds the row: `matchingColumns` in `Write it back to the sheet`.

## Good to know

- The facts below come from Apify's public pages for the Actor and from the node package, read on 12 November 2026.
  Nothing was run: no Actor run, no sheet.
- The Actor runs once per row, one after another. A long sheet takes a long time, so start with a few rows.
- Cost: the Actor's price list shows USD 0.00001 for each run start and for each company record. An earlier list, from
  26 August 2026, showed USD 0.01 for each. A run that finds nothing is free. Read the Actor's page before a big run.
- The Actor is young and small. Its page shows one user and 19 runs in total on 12 November 2026, so check it before you
  rely on it.
- With `maxResultsPerQuery` at 1, a name that fits several registers returns one match from any of them. A prefix such
  as `no:` keeps the search to one register.
- Poland's register can be searched by number only. A name searched there returns nothing.
- `onlyActive` is on, so a company that the register marks as dissolved gives no row, and its sheet row stays as it was.
  The same is true for a text that no register knows.
- Registers fill different fields. `website` comes only from Norway and Finland, and `vatNumber` is often empty. An
  empty field is written as an empty cell.
- A blank `company` cell is sent as a blank query. Remove empty rows first.
- The Actor returns company data only. It does not return directors or shareholders.
- Your data: the text in your `company` column goes to Apify, and the Actor reads the official registers.
- Credentials: the JSON holds none.
```

## What is in it

3 files, 12 KB, downloaded as a zip.

```text
NOTICE.md  683 B
README.md  5 KB
workflow.json  7 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 5 steps, starting by hand
- AI: No step calls an AI model
- Sign-ins: Signs in to: Google Sheets and Apify
- API keys: No API key is left in the file
- Community nodes: Needs the community node package @apify/n8n-nodes-apify
- Step types: Mindket’s checker reads all 4 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/f40dba72-eaa0-4c71-ab8f-0ecea615c399)
- [Its page on Mindket](https://mindket.com/p/f40dba72-eaa0-4c71-ab8f-0ecea615c399)
