Where the inteqral step goes.
The inteqral node for n8n signs, verifies and resolves images, detects AI generation and traces text. These five workflows show where it fits, which fields to set, and what it passes on to the next node. No code.
Sign what your model makes.
Put the step between the model and the place you publish. Every image leaves with Content Credentials that say it was made with generative AI, and a copy can still be matched to it after its metadata is stripped.
You set
- Title
- {{ $json.title }}
- AI disclosure
- Created with generative AI
- AI training
- Not allowed
- Keep signed image
- Permanently, with a public link
- On error
- Continue, using the error output
It passes on
{"status": "succeeded",
"manifest_id": "urn:c2pa:9a1d4c7e-...",
"public_url":
"https://api.inteqral.com/v1/assets/..."}
Good to know
Article 50(2) of the EU AI Act asks providers of generative AI to mark their output as artificially generated, in a machine-readable way. A manifest that records the image as made with generative AI is one way to do that, and any C2PA verifier can read it, not only ours.
Check what comes in.
Verify each image a partner, a reader or another model sends you before it reaches your library. The answer is a state, so the next node can branch on it without parsing anything.
You set
- Input binary field
- data
- When the image has no credentials
- Continue with state "none"
- Value
- {{ $json.state }}
It passes on
{"state": "trusted",
"manifest_id": "urn:c2pa:9a1d4c7e-...",
"manifest_source": "embedded",
"validation": {...}}
Good to know
Valid and trusted differ only in who signed. A valid image is intact, but its signer's certificate is not on the trust list. Send the two down different branches if that matters to your desk.
Find the original of a copy.
When a copy of your image turns up without its credentials, resolve compares it with every image your account signed and returns the closest, so you can link back to the original.
You set
- Input binary field
- data
- Condition
- {{ $json.candidates.length }} is larger than 0
It passes on
{"algorithm": "io.iscc.v0",
"candidates": [{
"manifest_id": "urn:c2pa:9a1d4c7e-...",
"distance": 6}]}
Good to know
Resolve searches only the images your account signed and returns candidates, not a verdict. A copy that was only re-encoded or resized is usually within 32 of 256 bits. With a public link kept, the reply can point straight to the signed original.
Sign the AI check into the file.
Score each incoming image for AI generation, then sign the result into its Content Credentials, so the check travels with the file instead of staying in a log.
You set
- Detection
- {{ $json.id }}
- AI training
- Not allowed
- Keep signed image
- For 24 hours
It passes on
{"id": "0199c3f0-5e7a-...",
"status": "succeeded",
"result": {"verdict": "generated",
"score": 0.97,
"threshold": 0.5,
"detector_version": "..."}}
Good to know
The result goes into the manifest as its own assertion, com.inteqral.ai-detection, with the verdict, the score, the threshold and the detector version. It is signed with the file, so anyone can read it later without calling us, and nobody can change it without breaking the signature.
Let an agent check first.
Give an n8n AI agent the inteqral actions as tools. Asked about a picture or a quote, it can verify the image or trace the text first, and answer with what it found.
You set
- Description
- Checks a quoted passage against the signed article it came from
- Text
- {{ $fromAI('text') }}
It passes on
{"passages": [{
"result": "altered",
"source": {
"title": "City council approves...",
"version": 2,
"in_current_version": true}}]}
Good to know
As tools, the actions run when the agent decides to check. Trace needs only text, so it works straight from the conversation; verify takes the image that came with the chat message.
One node, five actions.
Each action reads its input from the item before it and adds its result to the item it passes on, so the next node can use any field.
data, with manifest_id and public_url.state: trusted, valid, invalid or none, with the C2PA status codes.candidates, each with a manifest_id and a distance.verdict, score and threshold, and an id to sign the result in.passages, each with a result and its source.Set it up in three steps.
- 1
Create a credential
In the inteqral console, an owner creates a credential for the workflow and allows only what it uses.
- 2
Add it to n8n
Paste the client ID and secret into a new inteqral credential in n8n. The node fetches and renews its own tokens.
- 3
Add the node
Search for inteqral in the nodes panel, pick an action, and choose the credential.
Read the documentation.
The n8n guide covers installing the node, connecting your account, and every action with its fields and what it passes on. While we onboard accounts one at a time, the docs are open on request. They become public once onboarding opens up.
Integrations
- n8n
- WordPress
- Superdesk
- Browser extension
Get started
- Overview
- Quickstart
- Authentication
- Formats and limits
Sign
- Overview
- Sign an image
- Retention
- AI training
- Versions and components
- Articles
Verify
- Overview
- Results and status codes
Resolve
- Overview
- Resolve an image
- Trace text
Account
- Credentials
- Team and roles
- Usage
Start signing.
We are onboarding accounts one at a time. Tell us which workflows you run, and we will set up your console and the credential for your first node.