Back to Top

How to Auto-Tag Pimcore 12 Assets with AI

A DAM is only as findable as its tags. In most Pimcore 12 libraries the tags stop being maintained somewhere around the two-thousandth asset — the images are there, the PDFs are there, and nobody can find either of them, because tagging is manual work that never fits into anyone’s day.

The Pimcore AI Auto Tagging Connector removes that work. Point it at an AI provider — Google Gemini, OpenAI, Anthropic, Mistral or Groq — and it describes your assets and writes the result as native Pimcore tags. Not a parallel metadata field, not a custom index: ordinary tags that work with DAM search, filters and smart collections exactly like the ones your team adds by hand. Tag one asset, a whole folder, or every asset as it is uploaded. This guide walks the whole flow: add a key, choose the defaults, and run your first tagging job from inside Pimcore Studio.

Pimcore AI Auto Tagging Connector
Pimcore AI Auto Tagging: Menu listing

Pimcore AI Tagging Connector: Key Features

  • Tags are real Pimcore tags — created under a parent tag you choose, so AI tags stay together in the tag tree and are searchable, filterable and usable in collections like any other tag.
  • Five providers, capability checked per model — Gemini, OpenAI, Anthropic, Mistral and Groq. A text-only model dispatched against an image is refused with a sentence before a job is created, so you are never billed to find that out.
  • Images, PDFs, Word documents and text files — an image is sent as a thumbnail, not the 40-megapixel master; a document is sent as extracted text, which lets a cheap text-only model tag it.
  • Scanned PDFs too — a scan has no text layer, so the file itself goes to a model that reads PDFs, capped at ten pages and 10 MB because that is billed per page.
  • Manual tags are never touched — in either merge mode. Only tags this bundle created are its own.
  • Several named credentials, one active — each enabled or disabled independently, verified against the provider before it is saved, and encrypted at rest.
  • A job console — live progress, a cooperative Stop, per-asset records, and a retry that re-runs only the assets that failed.
  • Failures grouped by cause — a rejected key or an exhausted quota ends the run once instead of being retried against every remaining asset.
  • Automatic tagging on upload and on file replacement — off until you switch it on.
  • An AI Tags tab on the asset — every tag with its confidence and the model that produced it, and a removal that sticks: the next run does not put it back.

Before You Start

You will need:

  • A running Pimcore 12 instance (2026.1 or newer) with Studio, and the AI Auto Tagging Connector installed.
  • PHP 8.4.
  • An API key for one of the supported providers.
  • background worker running. Every run is queued through Symfony Messenger — without a consumer, jobs stay queued forever. The connector ships a supervisord config for it.

Once installed, an AI Tagging entry appears in the Studio navigation, with everything behind tabs: GuideTag assetsHistoryCredentials and Settings.

Step 1 — Add a Provider Credential

On the Credentials tab, add a credential: a name, the provider, the model, and the API key.

The key is verified against the provider before it is saved — a typo fails here, not silently on the first run.

You can keep several named credentials — a cheap model for bulk folders, a stronger one for the catalogue images — with one active at a time, each enabled or disabled independently.

ProviderModelsReads
Google Geminigemini-2.5-flashgemini-2.5-proimages, PDFs (incl. scans), text
OpenAIgpt-4ogpt-4o-miniimages, text
Anthropic Claudeclaude-sonnet-4-5claude-haiku-4-5images, text
Mistral AIpixtral-12b-latestmistral-small-latestmistral-large-latestimages, text (mistral-large text only)
Groqqwen/qwen3.6-27bllama-3.3-70b-versatileopenai/gpt-oss-120bimages and text, or text only

Capability is per model, not per provider — that is the whole point of the table. Choosing a text-only model does not break image tagging with an error at asset 500; the Settings screen warns you, and a dispatch that cannot work is refused up front.

image-15
Add AI Provider Credential

Step 2 — Choose the Defaults

On the Settings tab:

  • Merge mode — when an asset already has AI tags, keep what an earlier run produced or replace it. Either way, tags added by hand are never touched.
  • Maximum tags per asset — the model is asked for at most this many.
  • Confidence threshold — tags the model is less sure about than this are discarded.
  • Tag language — tags are generated in this language; only the languages enabled for your installation are listed.
  • Tag folder — the top-level tag AI tags are created under.
  • Timeout and retries — only a temporary failure is retried; a rejected key is not.
  • Automatic tagging — tag a newly uploaded asset, and tag one again when its file is replaced (a metadata change never re-tags). Both are off by default, with the asset types they apply to chosen here.
Choose the Defaults Settings
image-17

Step 3 — Tag Your Assets

On the Tag assets tab, click Choose assets or folders. Folders and individual assets can be picked together — one selection is one run, whichever way it was assembled. Tick Only assets without AI tags to skip everything a previous run already covered, optionally pick a different credential just for this run, and press Start tagging.

You can start the same run from the asset tree instead: right-click a folder for AI tagging → Tag everything in this folder or Tag assets without AI tags, or right-click a single asset for Generate AI tags.

Either way the run opens its own view immediately, so it is watchable from the moment it starts. Nothing is tagged synchronously — tagging happens in the background worker.

Tag Your Assets

Step 4 — Review the Tags on the Asset

Open a tagged asset and go to the AI Tags tab. Every AI tag is listed with its confidence and the provider and model that produced it, and Generate tags re-runs just this one asset.

Remove a single tag or all of them. Removal takes the provenance record with it, so the tag does not come back on the next run — including when the tag is unchecked in Pimcore’s own tag panel.

Only AI tags appear on this tab. Tags your team added by hand are left entirely alone.

Review the Tags on the Asset

Watching, Stopping & Retrying a Run

Every run is tracked on the History tab with its ID, kind, who started it, progress, tagged and failed counts, and status — QueuedRunningFinishedFailed or Stopped.

  • Open a run — live progress with Tagged / Failed / Skipped / Total counters, an activity log in plain language, and per-asset records behind a toggle: what was attempted, how many tags came back, and why an asset failed.
  • Failures are grouped by cause, not listed per asset. Assets a model cannot read collapse into one line naming the reason and the files, instead of five hundred identical warnings.
  • An account refusal ends the run once — a rejected key or an exhausted quota is not retried against every remaining asset. A transient refusal is retried, with a widening wait, obeying the provider’s own Retry-After when it sends one.
  • Stop — takes effect after the batch in flight; the tags already written are kept.
  • Retry the failures — starts a new run over only the assets whose last attempt failed.
  • A run keeps the credential it was dispatched with, so switching the active credential mid-run cannot move a queued batch onto another account.
Watching, Stopping & Retrying a Run

What Gets Read, and What It Costs

AssetWhat is sentNotes
ImageThe thumbnailA 40-megapixel master costs one small request. Needs a model that reads images.
PDF / Word documentThe extracted textA cheap text-only model can tag it. Word needs LibreOffice + poppler-utils.
Scanned PDFThe file itselfNeeds a model that reads PDFs. Billed per page — over 10 pages or 10 MB it is skipped with a reason naming the limit.
Text fileThe leading excerpt
Video, audio, archivesNothingNot tagged, and not offered as an option.

One asset is one paid request to your provider. A folder of five hundred assets is five hundred requests — which is why Only assets without AI tags, the per-model capability check and the account refusal that stops the run all exist. They are cost controls, not conveniences.

Asset search using Tag filter

Troubleshooting

  • Nothing is tagged and no job appears — automatic tagging is off by default, and it applies only to the asset types listed in Settings.
  • A run sits at Queued — nothing is consuming the tagging queue. The History tab warns when it detects this; the worker is a background process on the server, and it needs to be running.
  • Tags are on the asset but not in Studio search — Studio searches the index, not the database. A run reindexes what it tagged; a tag added another way needs bin/console generic-data-index:update:index.
  • A document reports that it cannot be read — a scanned PDF has no text layer to send, so tag it with a model that reads PDFs; a Word file needs LibreOffice and poppler-utils on the server.
  • Images are skipped — the selected model is text-only. Settings says so; pick a model that reads images.
  • An old run reads in another language — a run keeps the language of whoever started it. New runs follow yours.

Try the Pimcore AI Auto Tagging Connector

Ready to stop tagging assets by hand in Pimcore 12? Get the AI Auto Tagging Connector from the Webkul Store, or reach out for a live demo and help choosing the provider and model that fit your library and your budget. Browse all of Webkul’s Pimcore extensions.

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Back to Top

Message Sent!

If you have more details or questions, you can reply to the received confirmation email.

Back to Home