Before you fill or sign anything, know exactly what you are looking at. This record is
your GDPR Article 30 Record of Processing Activities, drafted from your engineering team’s real
systems — not a blank template. This page orients you completely: what the record is, every field and
who owns it, the line between the facts a machine can measure and the calls only a person makes, and
how to judge whether the record is complete enough to sign. You act on nothing here — you read, so the
pages that follow go quickly.
Also process data for clients? That needs a second, separately-shaped record — GDPR Art. 30(2), organised per client. See The processor record →.
Land here from:the whole journey, or the
email your engineering team forwarded. The next step, once you understand the record, is to check who
Regixo is: Is it safe to sign?
Optional · EU compliance module
You need this only if your company must keep a GDPR Article 30 RoPA or a DORA register — it is an optional module on top of the free data catalog. If that is not you, you can skip this section.
Your whole job on this page, in order
You are here to understand the record, not yet to act on it. Read these six things in order and
you will know what the record is and whether it is ready to sign:
The three counts — datasets, columns and activities: what the record is built from. (read ↓)
One activity, field by field — the Article 30 fields, and what each badge means. (read ↓)
The mechanical-vs-legal line — what Regixo fills, and what it only ever suggests. (read ↓)
Two machine claims to sanity-check — “0 special-category (Art. 9)” and “Uncategorised processing”. (read ↓)
Who owns what on your team — viewer, preparer, approver, admin. (read ↓)
The sign-readiness bar — walk the decision “is this record complete enough to sign?” (walk it ↓)
Read only this box and you know the shape of the record; the rest of the page is each read in full.
Then move to the next station: Is it safe to sign?
Read one record and reach a verdict (the worked example)
Before the reference, walk one estate through all six reads, so the shape is concrete. Say your
record opens with 7 datasets · 11 personal-data columns · 4 activities, and the coverage line
reads 5 of 6 sources reached — one warehouse was unreachable at the last scan. Here is each read,
and the verdict it builds toward:
Four activities to read, sitting on seven tables. You work at the activity level — one entry per job.
2 · One activity
Open “Take and record payments”. Data categories found; purpose, basis and retention suggested.
The facts are measured; the legal calls are starting points a person must confirm. Nothing is signed.
3 · Mechanical vs legal
Categories, role and the transfers/recipients suggestions on the left; purpose, basis, retention on the right.
Regixo fills the left. The right is yours — the engine never marks a legal field confirmed on its own.
4 · Sanity-check
“0 special-category (Art. 9)” and an “Uncategorised processing” group holding 1 table.
Both are machine guesses. KYC or a free-text notes field can hide Art. 9 data behind a neutral name — read the uncategorised table and check what you know.
5 · Roles
You are the record’s admin; your team has no preparer or approver yet.
Decide who fills (preparer) and who confirms and signs (approver) before the record can be finished.
6 · Sign-readiness bar
One source unreached; every legal call still a suggestion; controller named.
Not signable today. The legal calls are unconfirmed and one system is missing — both fixable, neither hidden.
The verdict: the record is real and mostly mapped, but not ready to sign — the legal calls
are unconfirmed and one system is unreached. That is the normal starting state. The rest of this page is
each of those six reads in full, so you can reach the same verdict on your own record.
1 · What a RoPA is — and the three counts you’ll see
A RoPA — Record of Processing Activities — is the register GDPR Article 30 requires most
organisations to keep: for each thing you do with personal data, it records why you hold the data, on
what lawful basis, who it concerns, who you share it with, and how long you keep it. It is the first
document a supervisory authority asks for.
GDPR Article 30 requires this record, and Art. 30(5) exempts firms under 250 persons
unless any one of these is true: the processing is likely to result in a risk to people's rights
and freedoms, it is not occasional, or it involves special-category or criminal-offence data. Regular
processing such as payroll or a CRM meets the “not occasional” limb, so in practice the exemption
rarely applies.
Regixo builds the draft from your data itself, not a blank template. The scan reads the structure of
your databases and SaaS — table and column names, types, owners, lineage — and turns it into a set of
activities (“Take and record payments”, “Employment administration”), each with the Article 30
fields below. Nothing is guessed about the values in your tables; Regixo reads metadata only.
Datasets, columns and activities — three zoom levels on one estate
The record is built from three things the scan found, and the claim shows a count of each. On this
example estate they read 7 datasets · 11 personal-data columns · 4 activities. The three are
three zoom levels on the same estate:
Datasets — the tables and files in your systems (a customers table, an
invoices table). A dataset is the whole table; the scan reads its name and structure,
never its rows.
Personal-data columns — the individual fields inside those datasets that the classifier
flagged as personal data (an email field, a national-ID field). The count is of columns, not of
people: one column can hold data on millions of subjects.
Activities — your datasets grouped by the job they serve (“Manage customer
accounts”, “Take and record payments”). An activity is the unit Article 30 records, so the RoPA
carries one entry per activity, not one per table. Several tables usually roll up into one activity.
So a handful of activities can sit on top of many datasets and columns. Reading the
record, you work at the activity level — one entry per job — and the datasets and columns are the
evidence underneath each one.
2 · One activity, field by field
Every activity carries the Article 30(1) items plus the lawful basis every supervisory-authority
template adds. Each field is badged so you can see at a glance what Regixo could fill and what it
could not — read the badge before you read the value, because the badge tells you whether it is a
measured fact, a starting point, or a gap:
auto-filled Regixo measured it from your data ·
suggested a starting point Regixo proposes, you confirm ·
needs you only a human can supply it ·
⚠ Art. 9 special-category data — a stricter call
Field
What it records
How it’s filled
Title
The short name of the activity.
suggested from the grouped tables
Role
Whether you are the controller (you decide the purpose) or a processor (you act for someone else) for this data.
suggested from the sources’ declared roles, you confirm
Data categories
The kinds of personal data present — email, name, financial, health…
auto-filled from the scanned PII flags
Data subjects
Whose data it is — customers, employees, patients…
suggested, you can edit
Recipients
Who you share the data with.
suggested from cross-system lineage — needs you when no cross-system flow is known; you confirm
Purpose
Why you process the data.
suggested, you confirm
Lawful basis
The Art. 6(1) ground that makes it lawful.
suggested, you confirm
Retention
How long you keep the data.
suggested, you confirm
Transfers outside the EU
Whether the data leaves the EU, and the safeguards if it does.
suggested from the source region, you confirm
Security measures
The technical and organisational safeguards.
needs you — never auto-filled
Art. 9(2) ground
The condition for special-category data. Appears only when the activity carries Art. 9 data.
needs you⚠ Art. 9
Art. 10 condition
The condition for criminal-offence data. Appears only when such data is present.
needs you
Controller
Your organisation’s registered legal name (record level).
needs you — factual identity you supply
Data protection contact
Who owns data protection — your Data Protection Officer if you have appointed one, otherwise a legal lead or director.
needs you
Whose processing this record covers — Art. 30(1)(a)
The record opens with the identity of the organisation it is for. It is factual, not a
legal judgement. The engineer fills it headlessly in regixo.yml and it travels with the
draft; the record displays it. The record shows six rows.
regixo.yml — the Art. 30(1)(a) identity block
controller:
name: Northwind SaaS Ltd # registered legal name
contact: privacy@northwind.example # a reachable data-protection contact
address: 12 Clover Court, Dublin 2, Ireland
dpoName: Aoife Byrne # where a DPO is appointed
dpoContact: privacy@northwind.example
representative: # Art. 27 — where applicable
none: true
by: dpo@northwind.example
jointControllers: # where applicable
- Northwind Analytics Oy
The two where-applicable slots take an answer either way, in regixo.yml. representative and
jointControllers accept a name (or a list), or a recorded “does not apply” —
{ none: true, by: <who@org> }. The record then reads
None · confirmed by that address, which is an answer. Leaving them blank is not — it stays an
open ask.
An official record cannot be sealed without the name and a reachable contact. The unlock
gate refuses a placeholder, with the coded CONTROLLER_REQUIRED.
None of it is a secret — it is the record’s own content — so it belongs in
regixo.yml, which is safe to commit.
It is exempt from redaction. This block is legal content of the record, so it is never
masked on the way out — see the redaction
policy.
Data categories are fixed at the source
The data categories are mechanical — derived from the personal-data flags on the scanned
columns. You do not type them on the record. If a category is wrong, it is corrected where it came
from: the engineer fixes the column on the map or with regixo classify
(Classify & correct), and the record re-derives
from the corrected map.
Here is one activity as it reads in the draft — the mechanical facts Regixo found, the legal
calls it only suggests, and the gaps it leaves open for you.
Every activity is a numbered section with a badge counting its open calls, and every field stays on
the page:
what you'll see — one activity on the record (RoPA): its open-call badge, and every field tagged “found”, “suggested” or “needs you” (a static picture, not a live app)
Every source behind this activity is declared a processor, which suggests processing on another controller’s behalf; the role remains a suggestion until a person confirms it. Shown in controller format — not the statutory Art. 30(2) processor record organised per controller.
Purpose
Create and run customer accounts and subscriptions so people can use your product or service. suggested
Personal data
Financial (card/IBAN), National ID, Identifier, Address, Date of birth, Email, Name, Phone found
Data subjects
Customers suggested
Recipients
HubSpot found
Lawful basis
You need it to provide your product or service.Art. 6(1)(b) contractsuggested
Retention
Account lifetime + statutory minimum suggested
Transfers outside the EU
None identified from source regions suggested
Security measures
Describe them — or set once in your org profileneeds you
example — one activity on the record
2 / 4 Take and record payments 2 open calls
invoices · charges · payment_methods
⚠ Needs you: confirm the legal fields (purpose, lawful basis, retention); add
who you share this data with (recipients) — none could be detected from the schema.
Purpose Process orders and payments, issue invoices… [suggested]
Personal data Email, Financial (card/IBAN), Name [found]
Data subjects Customers [suggested]
Recipients — none detected from your schema [needs you]
Lawful basis Art. 6(1)(c) legal obligation / (b) contract [suggested]
Retention 7 years (statutory tax retention) [suggested]
Transfers None identified from source regions [suggested]
Security measures —[needs you]
The tables listed under the title are the ones Regixo grouped into this activity —
a mechanical judgement about your schema, never a judgement about a legal call. If the grouping is
wrong, say so when you review: the legal calls below it are yours either way.
3 · Mechanical vs legal — the line Regixo won’t cross
This split is the whole honesty of the product. Regixo fills the mechanical fields — the ones it can
read from your systems. It only ever suggests the legal ones; a human confirms them, and the
engine never marks a legal field confirmed on its own.
In practice the human side splits again — the product draws three lines, not two:
Mechanical facts — Regixo fills them from your schema.
Engineer facts — security measures, recipients and data subjects: the “Your part”
questions on the engineer’s own free record (is the data encrypted? which outside services get a
copy? whose data is it?), answered once and travelling with the record.
Legal calls — purpose, lawful basis, retention, transfers and the Art. 9/10 grounds;
only the compliance team confirms these.
The table keeps everything a person supplies on the right.
Mechanical — Regixo fills
Legal — a human confirms (never the engine)
Data categories · Role · Transfers suggestion · Recipients suggestion · the special-category (Art. 9) and criminal-offence (Art. 10) flags
Transfers appears on both sides, and that is deliberate: Regixo suggests whether data
leaves the EU from the source region it knows (mechanical), but the decision — and the safeguard
behind it — is a legal call you confirm. Recipients works the same way: Regixo suggests the
destination systems from cross-system lineage (a mechanical read of where your data flows), and you
confirm the disclosure — a suggestion is never confirmed on its own. The same holds for the Art. 9 and
Art. 10 flags: Regixo can tell you a column looks like health or conviction data, but only you pick the
ground that permits it.
The line, in the engine
An agent — or Regixo itself — may verify and mark mechanical fields. It may never mark
purpose, lawfulBasis, retention, or transfers
confirmed. That is a hard rule enforced in the code, not a setting.
4 · Two machine claims to sanity-check
Two lines on the draft are the classifier’s guesses, not proof. The classifier reads column
names and types only, so a blandly-named column can hide personal data and a suggestive name can
false-flag. Before you rely on either line, check it against what you know:
“0 special-category (Art. 9)” is a machine claim to sanity-check, not a clean bill of
health. It means no column name or type looked like health, ethnicity, religion, political
opinion, trade-union, biometric or sexual-orientation data — not that none is present. If you know a
system holds sensitive data behind a neutral name (a free-text notes field, a scanned
form), say so: the ground that permits it is a legal call only you can make.
“Uncategorised processing” is where Regixo puts tables it could not fit to a recognised
activity pattern — it groups them plainly rather than invent a name. Do not skip it: an activity the
rules did not recognise is still one you may have to record. In a regulated firm this is often your
KYC / AML processing, which rarely matches the common table-name patterns. Read what landed
there and name it.
DRAFT vs OFFICIAL
The free record is always stamped DRAFT. The stamp is permanent until a human confirms the
legal fields and a named person signs — it is not a nag you can dismiss, it is the honest state of the
document. Every DRAFT surface (the PDF, the on-screen record, the machine-readable JSON) carries the
same line, word for word:
On every DRAFT
Regixo attests mechanical facts only — purpose, lawful basis and retention are confirmed and signed by
you. This is not legal advice.
Need the drafts as one file? regixo evidence assembles them — the RoPA DRAFT, the DORA
register DRAFT when in scope, the change-log and the sources — into one verifiable JSON with a sha256
fingerprint per artifact; free and DRAFT-only, it attests nothing
(command reference).
OFFICIAL is the paid version of the same record: the DRAFT stamp comes off, the legal fields
read confirmed, and an immutable snapshot is sealed under a real signature and date. It is the
version you can put in front of an auditor. What signing does, and what the seal proves, is covered in
Unlock, sign & maintain.
The signature appears in full capacity — name, role and organisation — wherever it is shown,
so a reader always knows who stands behind the record and in what authority.
5 · Who owns what on your team
A claimed record has four roles. They separate filling a legal field from confirming
and signing it — so no single person quietly turns a suggestion into an official fact.
viewer
Reads the record. Makes no changes. Anyone you share the record with can review it in this role.
preparer
Fills the legal fields — purpose, lawful basis, retention, recipients and the rest. A preparer’s
value is provided, not yet confirmed.
approver
Confirms the filled fields and signs the official record. Only an approver or an admin may
sign. A field an approver has confirmed is locked — a preparer cannot overwrite it; only an approver
can re-open it.
admin
Everything an approver can do, plus managing the team and the machine tokens. The first person to
sign in on a claim becomes its admin.
Two people, one record
In practice a engineer forwards the draft and a
compliance team claims it: a preparer fills the calls, an approver
confirms and signs. The next two pages walk that path — Claim &
review, then Fill the RoPA.
6 · Is it complete enough to sign? — the decision walk
This is the read the other five build toward. A RoPA is only as defensible as it is
true and complete, so before anyone signs, walk the record against a fixed bar — the
minimum-viable-estate test. Ask these five questions in order; each “no” is a reason the record is
not yet ready to sign, and names exactly what to close first:
Ask…
“Yes” looks like
If “no” — what to do
1. Has every system that holds personal data been reached — or is the missing one named on the record?
The coverage line reads all sources reached, or the banner names each unreached source.
Ask your engineering team to re-scan the named source (how, on the next-but-one page). Can’t reach it yet? Name it on the record with a dated plan — never sign silently over a gap.
2. Does every activity have a confirmed purpose, lawful basis and retention?
No activity still shows suggested or needs you on those three.
Fill and confirm them — Fill the RoPA walks each one. A suggestion is not a decision; only a named approver confirms.
3. Does every special-category (Art. 9) and criminal-offence (Art. 10) activity carry its ground?
Each flagged activity has an Art. 9(2) ground or Art. 10 condition confirmed.
Add the ground yourself (the Art. 9 walk). Sanity-check step 4 first — a hidden Art. 9 column carries no badge to prompt you.
4. Is the controller named — a real legal entity, not “us”?
The record shows your organisation’s registered name and a data-protection contact.
Supply the controller and DP contact — from regixo.yml or the claim form. A record with no named controller belongs to no one.
5. Have you sanity-checked the two machine claims (step 4)?
Any system you know holds sensitive data has an Art. 9(2) ground; nothing important sits unread in “Uncategorised processing”.
Read the uncategorised group and add any Art. 9 ground the classifier could not see. The machine will not prompt you for what it never read.
All five “yes” → the record is complete enough to sign (signing itself is a later, deliberate
act — Unlock, sign & maintain). Any “no” names the work
left. How to read the coverage: the claim states how much of the estate the draft is built on and
names any source it could not reach, so a partial scan is never quietly passed off as the whole picture.
That honesty is also a warning — if you sign while systems are unscanned, you have sealed an accurate
record of part of your processing, and an auditor reads the gap as missing activities, not as a
smaller company.
Short of the bar you can still sign — the seal lists the open items as flagged
gaps rather than hiding them — but you are signing a record that says so on its face. Close the gaps you
can before the signature, and carry the rest openly.
How you know you’ve understood the record
You are done reading this page when you can answer all six reads on your own record without guessing:
You can say what the three counts mean, and that you read the record at the activity level.
For any field, you can name its badge — measured fact, suggestion, or a gap that needs you.
You can point to the mechanical-vs-legal line: which fields Regixo fills, and which are yours alone.
You have sanity-checked the “0 Art. 9” and “Uncategorised processing” claims against what you know.
You know who on your team will fill (preparer) and who will confirm and sign (approver).
You can run the sign-readiness bar and say, in one sentence, why the record is or is not signable today.
Nothing here signs or changes the record — understanding it is the whole job of this
page. The record still reads DRAFT, exactly as it should.
Two honest limits
In this version, activities are grouped by rule only — table-name patterns and structure, no AI
or language model deciding the grouping — and each flag shows the rule that matched it.
Records also render in English today; a localized render is on the roadmap where a supervisory
authority expects one.
What your engineer already built (from both sides)
You did not start this record from a blank page. An engineer on your team ran Regixo against your
real systems and forwarded the result — and only the structure left their machine: table and
column names, types, the personal-data flags and the drafted activities, never a row of data. What
reaches you is a draft with the mechanical facts already filled; your side is the legal calls. The next
two pages are how to open it and check who Regixo is before you do.
Your next step
Before you open the link, it is fair to ask who Regixo is and what you are taking on trust.
Is it safe to sign? → answers the vendor questions plainly —
including the ones whose honest answer today is “not yet”.