Request access
AI workflow integrations

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.

Generate → Sign → Publish

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.

Every morning at 06:00Schedule
Generate an imageyour image model
Sign an imageinteqral
successPublish to your siteupload
errorTell the teamchat message

You set

Sign an imageinteqral
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

Output1 item
{"status": "succeeded",
 "manifest_id": "urn:c2pa:9a1d4c7e-...",
 "public_url":
   "https://api.inteqral.com/v1/assets/..."}
datastorm.pngPNG, 76 kBContent Credentials

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.

Receive → Verify → Route

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.

New file in the inboxtrigger
Verify an imageinteqral
By stateSwitch
trustedAdd to the library
validAsk the desk
invalidReject it
noneQueue a manual check

You set

Verify an imageinteqral
Input binary field
data
When the image has no credentials
Continue with state "none"
By stateSwitch
Value
{{ $json.state }}

It passes on

Output1 item
{"state": "trusted",
 "manifest_id": "urn:c2pa:9a1d4c7e-...",
 "manifest_source": "embedded",
 "validation": {...}}
datastorm.pngpassed through

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 copy → Resolve → Link back

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.

A copy is reportedForm
Download the copyHTTP request
Resolve an imageinteqral
Any candidates?If
candidateReply with the original
noneLog the copy

You set

Resolve an imageinteqral
Input binary field
data
Any candidates?If
Condition
{{ $json.candidates.length }} is larger than 0

It passes on

Output1 item
{"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.

Receive → Detect → Sign

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.

New file in the inboxtrigger
Detect AI generationinteqral
Sign an imageinteqral
Add to the libraryupload

You set

Sign an imageinteqral
Detection
{{ $json.id }}
AI training
Not allowed
Keep signed image
For 24 hours

It passes on

Output of Detect AI generation1 item
{"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.

Ask → Verify or trace → Answer

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.

When a chat message arrivesChat trigger
AI agentAgent
Chat modelyour model
Verify an imageinteqral tool
Trace textinteqral tool

You set

Trace textinteqral tool
Description
Checks a quoted passage against the signed article it came from
Text
{{ $fromAI('text') }}

It passes on

Tool resultto the agent
{"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.

ActionWhat it doesYou setIt passes on
Sign an imageAttaches Content Credentials and returns the signed image.Title, AI disclosure, AI training, how long to keep the signed image. As options: a parent manifest, components, a detection.The signed image in data, with manifest_id and public_url.
Verify an imageRuns the full C2PA validation, whoever signed the image.What to do when an image has no credentials.state: trusted, valid, invalid or none, with the C2PA status codes.
Resolve an imageFinds the signed originals of a copy that lost its credentials.The input field.candidates, each with a manifest_id and a distance.
Detect AI generationScores how likely an image is to be AI-generated.The input field.verdict, score and threshold, and an id to sign the result in.
Trace textChecks passages against the signed articles they came from.The text.passages, each with a result and its source.

Set it up in three steps.

  1. 1

    Create a credential

    In the inteqral console, an owner creates a credential for the workflow and allows only what it uses.

  2. 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. 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.

Request access to the docs info@inteqral.com

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.

Request access info@inteqral.com