Module · Data map
Every organisation that has built a record of processing from a questionnaire knows the same thing: it was accurate on the day it closed. This module exists because the interesting question is not what the register said last March, it is whether the register still describes the systems you are running today — and whether you can prove an erasure actually happened.
Section 8(7) requires a Data Fiduciary to erase personal data when the data principal withdraws consent or when it is reasonable to assume the specified purpose is no longer being served, unless retention is necessary for compliance with any law. Read that as an operational requirement and it stops being a paperwork exercise: to erase on purpose-completion you have to know which activities process which data in which systems, and to evidence the erasure you have to record it against something.
So the register here is not a document. It is a set of activities, each carrying its purpose, lawful basis, the categories of personal data and of data principals, the systems the data actually sits in, the recipients including processors, whether it crosses a border, the retention rule it is disposed against, the security measures claimed, and a risk score. The register is what §8(7), §8(2) and §16 are all enforced from.
The module presents one register through five lenses, because the DPO, the security team and the person answering an erasure request are looking for different things in the same rows.
Three routes populate the register and they coexist. You can add an activity by hand, which is the right answer for HR, payroll, KYC and physical security — processing with no consent purpose behind it. A starter set of those standard activities is seeded per tenant so the register is not an empty table on day one.
The second route is the one that stops decay. A resolver reads your declared consent purposes together with the findings from PII discovery and proposes activities, deriving the data categories from what was actually found, linking the systems the data was found in, attaching the recipients recorded against those purposes, scoring the risk and suggesting the retention rule. Discovered personal data that maps to no activity opens its own task rather than being quietly absorbed.
The third is a discovery sweep across vendors, open incidents and registered data sources that reports proposed changes without writing any. That reticence is the design: the resolver proposes and a person decides. Where the lawful basis is inferred rather than stated, the activity is flagged unconfirmed and a task is raised to confirm it, and the register shows you the count of unconfirmed bases on the front page.
Discovery connects to fifteen source types — PostgreSQL, MySQL, SQL Server, Oracle, Db2 and managed relational instances, MongoDB, S3, Salesforce, SAP, a generic REST source, shared filesystems and log files through an outbound-only on-premises agent, and the Microsoft Purview and OpenMetadata catalogues, which contribute existing classification tags rather than reading raw data. Mailboxes are scanned separately with their own connectors, reading bodies and attachments including scanned PDFs, and storing findings masked with a keyed hash and no message metadata.
Classification runs on a named-entity engine with a set of India-specific recognisers layered on top, falling back to pattern and checksum detection when the engine is unavailable. The India set is the part that matters here: Aadhaar with its checksum, PAN, GSTIN, IFSC, Indian passport, Indian phone, vehicle registration, voter ID, driving licence, UPI virtual payment address and ABHA health identifier, alongside the general types — email, card number with a network and checksum test, address, person name and IP. Context-gated types only fire when supporting keywords sit nearby, which is what keeps a column of six-digit numbers from being reported as identifiers.
Those findings feed the register's sensitivity categories, and categories like children's data, health, biometric, genetic and financial are the ones that force a DPIA regardless of the computed score.
An activity is scored out of a hundred and banded. A DPIA is triggered by a forced category, a rule match, crossing the threshold, a cross-border element, high volume or a high-risk recipient — and it is proposed as pending sign-off, never auto-approved. Sign-off is gated to the DPO, compliance or organisation administrator roles, and the assessment itself is versioned and exportable.
Processor contracts are checked by joining the recipients recorded against each activity to the contract records held for those vendors, so the register can tell you which processors are handling personal data with no data processing agreement in force or with an expired one. That is the §8(2) obligation expressed as a count on the front page rather than as a spreadsheet someone maintains.
Cross-border works from a registry of restricted destinations that ships deliberately empty, because no country has been notified. Administrators add notified destinations as and when; a transfer to one raises a materially larger risk signal than a generic cross-border flag and opens its own review task. Each recipient carries its geography, transfer mechanism and safeguard. What the module does not do is manage standard contractual clauses or adequacy decisions for you — that machinery belongs to a regime India has not adopted.
This is where the register earns its place rather than duplicating a spreadsheet. When a consent withdrawal lands, a bridge observes it and writes an erasure evidence record sealed against the register's audit chain, then opens a dispatch task against the activities and recipients that withdrawal touches. A data principal request can be mapped to the activities, sources and recipients it actually reaches, which turns "do we hold anything for this person" from a meeting into a query.
The audit trail underneath is a SHA-256 hash chain with a per-entry keyed digest and a signed head, and there is a verify call that recomputes it. Register-level sign-off takes a snapshot with an optional expiring share link, which is the thing you give an auditor rather than exporting your live register to them.
One limitation worth stating rather than discovering. The data model carries version, supersession and current-version fields, but edits are applied in place and recorded as audit events naming the fields that changed — there is no side-by-side version diff of an activity. DPIAs are versioned properly. If you need a before-and-after of a register entry, the audit trail is where it lives.
The register is the artefact most likely to be technically present and practically useless.
It does not delete anything. The retention side is a rules registry with review dates and upcoming expiries; enforcement happens in the consent module's sweeps and in the systems that own the data. Nothing here purges a database on a schedule.
It does not decide lawful basis. The resolver infers a starting point from the activity and its purpose, flags it as unconfirmed, and raises a task. A person confirms it, and that confirmation is recorded with their name against it.
It does not sign off a DPIA. It triggers one, structures it, versions it and exports it; approval is gated to accountable roles and is a human act.
It does not discover data sources by itself, and it does not connect to everything. There is no cloud-drive, warehouse or collaboration-tool discovery, and a source nobody registers is a source the register will never know about.
It is not a replacement for reading the buyer's guide before you choose a tool. If you are still comparing approaches rather than operating one, start there — the guide covers what a record has to contain and why questionnaire-built registers decay.
Both, deliberately. Consent purposes and PII discovery findings propose activities with their data categories, systems, recipients and a suggested retention rule, and you add by hand the processing that has no consent purpose behind it — HR, payroll, KYC, security. Proposals are never activated silently: an inferred lawful basis is flagged unconfirmed and raises a task for a person to confirm.
Aadhaar with its checksum, PAN, GSTIN, IFSC, Indian passport, Indian mobile numbers, vehicle registration, voter ID, driving licence, UPI virtual payment addresses and ABHA health identifiers, alongside general types like email, card numbers with a network and checksum test, names and IP addresses. Several are context-gated so they fire only when supporting keywords sit nearby.
A consent withdrawal writes an erasure evidence record sealed against the register's hash-chained audit trail and opens a dispatch task against the activities and recipients that withdrawal touches. A request can also be mapped to the activities, sources and recipients it reaches, so the scope question is answered from the register rather than from memory.
Yes. The recipients recorded against each activity are joined to the contract records held for those vendors, and the register reports how many processors are operating with no data processing agreement in force or with an expired one. The check is only as good as the recipient records behind it, which is why a vendor recorded as free text will report clean.
The change is applied in place and written to an append-only audit chain as an event naming the fields that moved, with the actor attached, and the chain can be recomputed and verified. There is no side-by-side version comparison of an activity — assessments are versioned properly, register entries are evidenced through the audit trail.
Start with the processing that has no consent purpose behind it — HR, payroll, KYC, vendor management — because that is the part discovery will never propose for you, and it is where the unconfirmed lawful bases hide.
Start with the register →Dinkar Singh — Dinkar covers privacy engineering at ProtectComply — discovery, consent propagation and the evidence trail behind them.