PDFCase page

EU AI Act · Article 50 · n8n

The human is the gate.
The ledger cannot be edited.

An n8n module that turns Article 50 transparency duties into one approval step inside any production line: label, ask a person in Slack, write an append-only record, keep a registry of every AI system on the instance.

Ruslan Karymov
AI Enablement & Automation Lead · Creative, marketing and business operations
github.com/karusrus/transparency-kit

Why this exists

From 2 August 2026 the deployer, not the model vendor, answers for these.

Art. 50(4) §1 · deep fakes

Generated or manipulated image, audio or video that resembles a real person, place, object or event must be labelled. Artistic or satirical work: limited disclosure.

Art. 50(4) §2 · public-interest text

AI-generated text published to inform the public must be disclosed, unless a named person took editorial responsibility.

Art. 50(1) · chatbots

A system that talks to people must make its AI nature clear unless it is obvious.

Art. 50(3) · emotion & biometrics

People exposed to emotion recognition or biometric categorisation must be told.

Most automation lines wire a generator straight into a publish node. Nothing in between knows the law. That gap is what the kit fills.

Where it sits

One sub-workflow call inside any n8n line.

Production line calling the AI Act gate as a sub-workflow

A real line: notice text → three local TTS voices → AI Act gate → publish only what a human approved. The map is generated from the running workflows, not drawn.

1

The line passes the asset, the model, the prompt and what it depicts.

2

The kit classifies under Article 50, burns the label in, stores a manifest.

3

A person decides in Slack. The kit returns approved, disclosure_status and the labelled file.

Intake → label

A real place, altered, is a deep fake. No person needed.

Original photo of a street in Varna

Original photo. Varna, fog.

Manipulated photo with the burnt-in label

A building added at the end of the street. AI-manipulated label burnt in, sentence goes under the photo.

Same manipulation declared as satire, small corner label

Same alteration declared as satire. Disclosure limited to a corner label, as Art. 50(4) allows.

Art. 3(60) covers persons, objects, places and events. The classifier reads four intake answers: what it shows, generated or manipulated, artistic or not, consent reference.

The gate

A person decides in a Slack thread. The kit only listens.

Slack thread with the labelled photo and an approve reply
Slack thread with a labelled portrait and an approve reply

Post with the disclosure sentence and the labelled file → reply approve, editorial or return <reason>. Reviewer identity comes from Slack, not from a text field.

The record

Append-only ledger, hash-chained. Three real rows.

AssetReviewerDecisionStatusprev → hash
text · gpt-4o
public notice
Ruslan
Slack U0C2N5PEJJV
approve · dates checked against the municipal orderdisclosed84c55f81 → 92d911ce
image · Photoshop GF
real place, manipulated
Ruslan
Slack U0C2N5PEJJV
approve · label says manipulated, sentence under the photodisclosed5f9ee8ae → 84c55f81
image · Midjourney
real person, consent on file
Ruslan
Slack U0C2N5PEJJV
approve · consent is my own signaturedisclosed54c702cf → 5f9ee8ae

Postgres, two triggers.

BEFORE INSERT computes sha256 over the previous hash and the row. UPDATE and DELETE raise. verify_chain() walks the chain on every audit render.

What an auditor asks first.

Who decided, when, on what basis, and can the record be changed afterwards. Four answers, one table.

The registry

Every AI system on the instance, with the path to people.

Registry with path analysis on the audit view

The kit reads all workflows through the n8n API and walks from every model node forward. What stands between the generator and the exit decides the status:

uncovered inform chatbot disclosed internal editorial

The audit view

What the auditor reads instead of the pipeline.

Synthetic media and deep fakes section of the audit view

Section 2 of the audit view: every synthetic asset with what it shows, consent reference, disclosure method, model, prompt hash, operator, status, artefact path.

Numbers from the ledger

Demo instance, one day, one reviewer.

61
decisions logged
13%
returned for changes
5s
median decision time
18
AI systems on the instance
6
workflows scanned
5
paths flagged: 2 uncovered, 2 chatbot, 1 inform

These are demo numbers, not a production benchmark: I answered my own requests within seconds. What the numbers prove is the mechanics: every decision landed, the chain verified after each run, nothing was edited by hand.

Take it

Import the JSON. Point it at your line. Add a Slack channel.

Repository
github.com/karusrus/transparency-kit

Case page and live map
karusrus.github.io/transparency-kit · karusrus.github.io/pipeline-map

What I do in a team's first month: inventory every line that calls a model, put the gate where content reaches people, hand compliance a page they can read without opening n8n.

Ruslan Karymov
AI Enablement & Automation Lead · Creative, marketing and business operations · Varna, Bulgaria
linkedin.com/in/ruslankarymov