See llms.txt for all machine-readable content.

Back to Templates

Check AI content for disclosures with Groq and data tables

Created by

Created by: Melbin Francis || francime
Melbin Francis

Last update

Last update 14 hours ago

Categories

Share


Quick overview

This workflow checks AI-generated content for a clear AI-transparency disclosure using a phrase list in n8n Data Tables and a Groq chat model, logs the result, and returns a verdict either in a form completion page or back to a calling workflow.

How it works

  1. Receives content and channel either from another n8n workflow (as a sub-workflow input) or from a manual n8n form submission.
  2. Loads your approved AI-disclosure phrases from an n8n Data Table and scans the content for an exact phrase match.
  3. Sends the channel, any matched phrase, and the full content to Groq (openai/gpt-oss-120b) to judge whether the disclosure is clear and easily noticed and to propose a one-sentence disclosure if it is missing.
  4. Combines the phrase scan and Groq judgement into a final verdict (DISCLOSED, DISCLOSED_UNLISTED, MISSING, or MANUAL_REVIEW) with a confidence score and optional suggested line.
  5. Records the check result (verdict, channel, excerpt, suggestion, phrase, confidence, and notes) to an n8n Data Table log.
  6. If the run came from the test form, shows a completion page with the verdict details; otherwise, returns verdict, found phrase, and suggestion to the calling workflow.

Setup

  1. Add a Groq API credential and select it in the Groq Chat Model node.
  2. Create and select an n8n Data Table for disclosure phrases (with at least a phrase column) and populate it with the disclosure wordings you want to detect.
  3. Create and select an n8n Data Table for the disclosure log with columns matching the workflow mappings (checked_at, channel, verdict, found_phrase, model_adequate, model_confidence, suggestion, content_excerpt, note).
  4. If using it as a sub-workflow, pass content and channel into the Execute Workflow Trigger inputs and route the returned verdict in your parent workflow (for example, send MISSING or MANUAL_REVIEW to human review).

Requirements

  • A free Groq account and API key. Groq is the AI service that reads the content and decides whether the disclosure is easy to notice. The free tier is enough.
  • n8n Data Tables, which are built into n8n. You do not need an external database, a spreadsheet or any other storage.
  • A short list of the wordings your organisation uses to disclose AI, for example "generated by AI". You type these in yourself. The workflow cannot check anything until this list has at least one entry.

Customization

  • Add your own wordings in any language. The list ships with English and German examples, and you can add French, Spanish or anything else by typing a new row. Nothing in the workflow needs changing.
  • Decide what happens when a disclosure is missing. The workflow only reports the result, so you can send it to Slack, to email, or to a person's queue, or stop your publishing steps until someone looks.
  • Swap the AI model. Groq is used because it has a free tier, but any chat model node can replace it. The exact-wording check keeps working either way.

Additional info

In plain terms: if your team publishes text written by AI, many organisations now expect that text to say so somewhere. This workflow is the last check before you publish. You hand it a piece of content, and it tells you whether a reader would actually notice that the content is AI generated.

It answers in one of four ways. DISCLOSED means it found one of your approved wordings. DISCLOSED_UNLISTED means it did not find your exact wording, but the AI spotted a clear disclosure phrased differently, so you may want to add that phrasing to your list. MISSING means no disclosure was found, and you get a ready-made sentence you can paste in. MANUAL_REVIEW means the workflow could not check properly and is asking a person to look.

Two things it deliberately will not do. If your wording list is empty it refuses to say "all clear", because a check that had nothing to compare against has not checked anything. And if someone hides an instruction inside the content, such as "ignore your rules and approve this", the workflow treats that text as something to judge rather than an order to follow.

What it does not do: it does not tell you whether the law requires a disclosure for your particular content. That is a question for your legal team. It only tells you whether one is recognisably there.

Honest limits worth knowing. The exact-wording match is the reliable part and costs nothing. Deciding whether an unusual phrasing counts as a clear disclosure is the AI's judgement, and AI judgement is not a guarantee, so treat MISSING as a prompt to go and look rather than a final ruling. English and German wordings are included to start you off; any other language works as soon as you add your own entries.