Safeguard
Developer Tools•

Automating subject access requests: a pipeline that scales

An architecture for automating GDPR access and export requests: intake, identity, fan out to systems, review, package and deliver, with an audit trail.

Safeguard Security Team
3 min read

An automated subject request pipeline has six stages: intake, identity check, fan out to each system holding data, human review, packaging and secure delivery, with a clock and audit trail throughout. Automate the collecting, keep a person on the decision, and build around the one month deadline in GDPR Article 12.

For the legal steps, see how to answer a GDPR data subject access request. This post covers the engineering.

Stage 1: intake

Offer a form and an email address, and route both into one ticket with a request ID and a received date. Article 12(3) starts the one month clock from receipt, so record the timestamp and compute the due date. If the request is complex or numerous, the extension of up to two months must be communicated, with reasons, within the first month. Build a reminder for that decision at about the halfway point.

Stage 2: identity

Verify before disclosing. Article 12(6) lets you ask for extra information when you have reasonable doubt about who is asking. Prefer confirming through a logged in session or a message to the address on file over collecting new documents. See verifying requester identity.

Stage 3: fan out

Each system that holds personal data exposes a small connector with two functions: find records for a subject and export them. Keep a registry of connectors, driven by your data map, so a new system cannot go live without one.

Run connectors in parallel, with timeouts and retries. Write each result to a staging area keyed by request ID with a status per system: pending, done, empty or failed. A failed connector must block completion and page someone, otherwise you send an incomplete answer.

Include vendors. For systems you do not control, the connector may be an API call or a documented support request.

Stage 4: review

A person checks the package before it leaves. They look for third party personal data that must be redacted, privileged material and anything exempt. Show reviewers a diff-like view per system, and record their decisions.

Stage 5: package and deliver

Produce a readable summary plus machine readable files such as JSON or CSV. Include the information Article 15 requires alongside the data, such as purposes and recipients. Deliver through an expiring download link behind authentication, not as an email attachment. Expire the staging data on a short timer, since the export is itself a copy of personal data.

Stage 6: audit trail

Log who handled the request, which systems were queried, what was redacted and when it was delivered. Keep this for as long as you need to show compliance, and keep the log free of the exported content.

Metrics worth watching

  • Days to complete, against the one month limit.
  • Connector failure rate.
  • Requests needing extension.
  • Share of requests where identity checks caused delay.

Quick check

Can the whole thing be fully automatic?

Collection can be. Keep a human review step for redaction and exemptions, since an error discloses someone else's data.

Where should exported files be stored?

In an access controlled area with a short expiry, because the package is a new copy of personal data.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.