{"id":552296,"date":"2026-08-20T08:35:14","date_gmt":"2026-08-20T08:35:14","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=552296"},"modified":"2026-08-20T08:35:14","modified_gmt":"2026-08-20T08:35:14","slug":"how-to-auto-tag-pimcore-12-assets-with-ai","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/","title":{"rendered":"How to Auto-Tag Pimcore 12 Assets with AI"},"content":{"rendered":"\n<p>A DAM is only as findable as its tags. In most&nbsp;<strong>Pimcore 12<\/strong>&nbsp;libraries the tags stop being maintained somewhere around the two-thousandth asset \u2014 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\u2019s day.<\/p>\n\n\n\n<p>The&nbsp;<strong>Pimcore AI Auto Tagging Connector<\/strong>&nbsp;removes that work. Point it at an AI provider \u2014 Google Gemini, OpenAI, Anthropic, Mistral or Groq \u2014 and it describes your assets and writes the result as&nbsp;<strong>native&nbsp;<a href=\"https:\/\/docs.pimcore.com\/platform\/2025.1\/Pimcore\/Assets\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pimcore tags<\/a><\/strong>. 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.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png\" alt=\"Pimcore AI Auto Tagging Connector\" class=\"wp-image-8316\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/Screenshot-from-2026-08-05-12-53-54-1-1024x505.png\" alt=\"Pimcore AI Auto Tagging: Menu listing\" class=\"wp-image-8317\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Pimcore AI Tagging Connector: Key Features<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tags are real Pimcore tags<\/strong>&nbsp;\u2014 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.<\/li>\n\n\n\n<li><strong>Five providers, capability checked per model<\/strong>&nbsp;\u2014 Gemini, OpenAI, Anthropic, Mistral and Groq. A text-only model dispatched against an image is refused with a sentence&nbsp;<em>before<\/em>&nbsp;a job is created, so you are never billed to find that out.<\/li>\n\n\n\n<li><strong>Images, PDFs, Word documents and text files<\/strong>&nbsp;\u2014 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.<\/li>\n\n\n\n<li><strong>Scanned PDFs too<\/strong>&nbsp;\u2014 a scan has no text layer, so the file itself goes to a model that reads PDFs, capped at ten pages and 10&nbsp;MB because that is billed per page.<\/li>\n\n\n\n<li><strong>Manual tags are never touched<\/strong>&nbsp;\u2014 in either merge mode. Only tags this bundle created are its own.<\/li>\n\n\n\n<li><strong>Several named credentials, one active<\/strong>&nbsp;\u2014 each enabled or disabled independently, verified against the provider before it is saved, and&nbsp;<strong>encrypted at rest<\/strong>.<\/li>\n\n\n\n<li><strong>A job console<\/strong>&nbsp;\u2014 live progress, a cooperative&nbsp;<strong>Stop<\/strong>, per-asset records, and a retry that re-runs only the assets that failed.<\/li>\n\n\n\n<li><strong>Failures grouped by cause<\/strong>&nbsp;\u2014 a rejected key or an exhausted quota ends the run once instead of being retried against every remaining asset.<\/li>\n\n\n\n<li><strong>Automatic tagging<\/strong>&nbsp;on upload and on file replacement \u2014 off until you switch it on.<\/li>\n\n\n\n<li><strong>An AI Tags tab on the asset<\/strong>&nbsp;\u2014 every tag with its confidence and the model that produced it, and a removal that sticks: the next run does not put it back.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Before You Start<\/h2>\n\n\n\n<p>You will need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A running&nbsp;<strong><a href=\"https:\/\/docs.pimcore.com\/platform\/2025.1\/Pimcore\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pimcore 12<\/a><\/strong>&nbsp;instance (2026.1 or newer) with Studio, and the&nbsp;<strong>AI Auto Tagging Connector<\/strong>&nbsp;installed.<\/li>\n\n\n\n<li><strong>PHP 8.4<\/strong>.<\/li>\n\n\n\n<li>An&nbsp;<strong>API key<\/strong>&nbsp;for one of the supported providers.<\/li>\n\n\n\n<li>A&nbsp;<strong>background worker<\/strong>&nbsp;running. Every run is queued through Symfony Messenger \u2014 without a consumer, jobs stay queued forever. The connector ships a supervisord config for it.<\/li>\n<\/ul>\n\n\n\n<p>Once installed, an&nbsp;<strong>AI Tagging<\/strong>&nbsp;entry appears in the Studio navigation, with everything behind tabs:&nbsp;<strong>Guide<\/strong>,&nbsp;<strong>Tag assets<\/strong>,&nbsp;<strong>History<\/strong>,&nbsp;<strong>Credentials<\/strong>&nbsp;and&nbsp;<strong>Settings<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 \u2014 Add a Provider Credential<\/h2>\n\n\n\n<p>On the&nbsp;<strong>Credentials<\/strong>&nbsp;tab, add a credential: a name, the provider, the model, and the API key.<\/p>\n\n\n\n<p>The key is&nbsp;<strong>verified against the provider before it is saved<\/strong>&nbsp;\u2014 a typo fails here, not silently on the first run.<\/p>\n\n\n\n<p>You can keep several named credentials \u2014 a cheap model for bulk folders, a stronger one for the catalogue images \u2014 with&nbsp;<strong>one active at a time<\/strong>, each enabled or disabled independently.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Provider<\/th><th>Models<\/th><th>Reads<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/ai.google.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Google Gemini<\/a><\/td><td><code>gemini-2.5-flash<\/code>,&nbsp;<code>gemini-2.5-pro<\/code><\/td><td>images, PDFs (incl. scans), text<\/td><\/tr><tr><td><a href=\"https:\/\/platform.openai.com\/docs\/models\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI<\/a><\/td><td><code>gpt-4o<\/code>,&nbsp;<code>gpt-4o-mini<\/code><\/td><td>images, text<\/td><\/tr><tr><td><a href=\"https:\/\/docs.anthropic.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Anthropic Claude<\/a><\/td><td><code>claude-sonnet-4-5<\/code>,&nbsp;<code>claude-haiku-4-5<\/code><\/td><td>images, text<\/td><\/tr><tr><td><a href=\"https:\/\/docs.mistral.ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mistral AI<\/a><\/td><td><code>pixtral-12b-latest<\/code>,&nbsp;<code>mistral-small-latest<\/code>,&nbsp;<code>mistral-large-latest<\/code><\/td><td>images, text (<code>mistral-large<\/code>&nbsp;text only)<\/td><\/tr><tr><td><a href=\"https:\/\/console.groq.com\/docs\" target=\"_blank\" rel=\"noreferrer noopener\">Groq<\/a><\/td><td><code>qwen\/qwen3.6-27b<\/code>,&nbsp;<code>llama-3.3-70b-versatile<\/code>,&nbsp;<code>openai\/gpt-oss-120b<\/code><\/td><td>images and text, or text only<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Capability is per model, not per provider<\/strong>&nbsp;\u2014 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.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-15-1024x500.png\" alt=\"image-15\" class=\"wp-image-8319\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-14-1024x500.png\" alt=\"Add AI Provider Credential\" class=\"wp-image-8318\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 \u2014 Choose the Defaults<\/h2>\n\n\n\n<p>On the&nbsp;<strong>Settings<\/strong>&nbsp;tab:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Merge mode<\/strong>&nbsp;\u2014 when an asset already has AI tags, keep what an earlier run produced or replace it. Either way,&nbsp;<strong>tags added by hand are never touched<\/strong>.<\/li>\n\n\n\n<li><strong>Maximum tags per asset<\/strong>&nbsp;\u2014 the model is asked for at most this many.<\/li>\n\n\n\n<li><strong>Confidence threshold<\/strong>&nbsp;\u2014 tags the model is less sure about than this are discarded.<\/li>\n\n\n\n<li><strong>Tag language<\/strong>&nbsp;\u2014 tags are generated in this language; only the languages enabled for your installation are listed.<\/li>\n\n\n\n<li><strong>Tag folder<\/strong>&nbsp;\u2014 the top-level tag AI tags are created under.<\/li>\n\n\n\n<li><strong>Timeout and retries<\/strong>&nbsp;\u2014 only a temporary failure is retried; a rejected key is not.<\/li>\n\n\n\n<li><strong>Automatic tagging<\/strong>&nbsp;\u2014 tag a newly uploaded asset, and tag one again when its file is replaced (a metadata change never re-tags). Both are&nbsp;<strong>off by default<\/strong>, with the asset types they apply to chosen here.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-16-1024x500.png\" alt=\"Choose the Defaults Settings\" class=\"wp-image-8320\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-17-1024x500.png\" alt=\"image-17\" class=\"wp-image-8321\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3 \u2014 Tag Your Assets<\/h2>\n\n\n\n<p>On the&nbsp;<strong>Tag assets<\/strong>&nbsp;tab, click&nbsp;<strong>Choose assets or folders<\/strong>. Folders and individual assets can be picked&nbsp;<strong>together<\/strong>&nbsp;\u2014 one selection is one run, whichever way it was assembled. Tick&nbsp;<strong>Only assets without AI tags<\/strong>&nbsp;to skip everything a previous run already covered, optionally pick a different credential just for this run, and press&nbsp;<strong>Start tagging<\/strong>.<\/p>\n\n\n\n<p>You can start the same run from the asset tree instead: right-click a folder for&nbsp;<strong>AI tagging<\/strong>&nbsp;\u2192&nbsp;<em>Tag everything in this folder<\/em>&nbsp;or&nbsp;<em>Tag assets without AI tags<\/em>, or right-click a single asset for&nbsp;<strong>Generate AI tags<\/strong>.<\/p>\n\n\n\n<p>Either way the run&nbsp;<strong>opens its own view immediately<\/strong>, so it is watchable from the moment it starts. Nothing is tagged synchronously \u2014 tagging happens in the background worker.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-18-1024x500.png\" alt=\"Tag Your Assets\" class=\"wp-image-8322\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4 \u2014 Review the Tags on the Asset<\/h2>\n\n\n\n<p>Open a tagged asset and go to the&nbsp;<strong>AI Tags<\/strong>&nbsp;tab. Every AI tag is listed with its&nbsp;<strong>confidence<\/strong>&nbsp;and the&nbsp;<strong>provider and model<\/strong>&nbsp;that produced it, and&nbsp;<strong>Generate tags<\/strong>&nbsp;re-runs just this one asset.<\/p>\n\n\n\n<p>Remove a single tag or all of them. Removal takes the provenance record with it, so&nbsp;<strong>the tag does not come back on the next run<\/strong>&nbsp;\u2014 including when the tag is unchecked in Pimcore\u2019s own tag panel.<\/p>\n\n\n\n<p>Only AI tags appear on this tab. Tags your team added by hand are left entirely alone.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-19-1024x500.png\" alt=\"Review the Tags on the Asset\" class=\"wp-image-8323\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Watching, Stopping &amp; Retrying a Run<\/h2>\n\n\n\n<p>Every run is tracked on the&nbsp;<strong>History<\/strong>&nbsp;tab with its ID, kind, who started it, progress, tagged and failed counts, and status \u2014&nbsp;<em>Queued<\/em>,&nbsp;<em>Running<\/em>,&nbsp;<em>Finished<\/em>,&nbsp;<em>Failed<\/em>&nbsp;or&nbsp;<em>Stopped<\/em>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Open a run<\/strong>&nbsp;\u2014 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.<\/li>\n\n\n\n<li><strong>Failures are grouped by cause<\/strong>, 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.<\/li>\n\n\n\n<li><strong>An account refusal ends the run once<\/strong>&nbsp;\u2014 a rejected key or an exhausted quota is not retried against every remaining asset. A transient refusal&nbsp;<em>is<\/em>&nbsp;retried, with a widening wait, obeying the provider\u2019s own&nbsp;<code>Retry-After<\/code>&nbsp;when it sends one.<\/li>\n\n\n\n<li><strong>Stop<\/strong>&nbsp;\u2014 takes effect after the batch in flight; the tags already written are kept.<\/li>\n\n\n\n<li><strong>Retry the failures<\/strong>&nbsp;\u2014 starts a new run over&nbsp;<strong>only<\/strong>&nbsp;the assets whose last attempt failed.<\/li>\n\n\n\n<li>A run keeps the credential it was dispatched with, so switching the active credential mid-run cannot move a queued batch onto another account.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-20-1024x500.png\" alt=\"Watching, Stopping &amp; Retrying a Run\" class=\"wp-image-8324\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What Gets Read, and What It Costs<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Asset<\/th><th>What is sent<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>Image<\/td><td>The thumbnail<\/td><td>A 40-megapixel master costs one small request. Needs a model that reads images.<\/td><\/tr><tr><td>PDF \/ Word document<\/td><td>The extracted text<\/td><td>A cheap text-only model can tag it. Word needs LibreOffice +&nbsp;<code>poppler-utils<\/code>.<\/td><\/tr><tr><td>Scanned PDF<\/td><td>The file itself<\/td><td>Needs a model that reads PDFs. Billed per page \u2014 over&nbsp;<strong>10 pages<\/strong>&nbsp;or&nbsp;<strong>10&nbsp;MB<\/strong>&nbsp;it is skipped with a reason naming the limit.<\/td><\/tr><tr><td>Text file<\/td><td>The leading excerpt<\/td><td>\u2014<\/td><\/tr><tr><td>Video, audio, archives<\/td><td>Nothing<\/td><td>Not tagged, and not offered as an option.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>One asset is one paid request<\/strong>&nbsp;to your provider. A folder of five hundred assets is five hundred requests \u2014 which is why&nbsp;<em>Only assets without AI tags<\/em>, the per-model capability check and the account refusal that stops the run all exist. They are cost controls, not conveniences.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-21-1024x500.png\" alt=\"Asset search using Tag filter\" class=\"wp-image-8325\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Nothing is tagged and no job appears<\/strong>&nbsp;\u2014 automatic tagging is off by default, and it applies only to the asset types listed in Settings.<\/li>\n\n\n\n<li><strong>A run sits at Queued<\/strong>&nbsp;\u2014 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.<\/li>\n\n\n\n<li><strong>Tags are on the asset but not in Studio search<\/strong>&nbsp;\u2014 Studio searches the index, not the database. A run reindexes what it tagged; a tag added another way needs&nbsp;<code>bin\/console generic-data-index:update:index<\/code>.<\/li>\n\n\n\n<li><strong>A document reports that it cannot be read<\/strong>&nbsp;\u2014 a scanned PDF has no text layer to send, so tag it with a model that reads PDFs; a Word file needs LibreOffice and&nbsp;<code>poppler-utils<\/code>&nbsp;on the server.<\/li>\n\n\n\n<li><strong>Images are skipped<\/strong>&nbsp;\u2014 the selected model is text-only. Settings says so; pick a model that reads images.<\/li>\n\n\n\n<li><strong>An old run reads in another language<\/strong>&nbsp;\u2014 a run keeps the language of whoever started it. New runs follow yours.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Try the Pimcore AI Auto Tagging Connector<\/h2>\n\n\n\n<p>Ready to stop tagging assets by hand in&nbsp;<strong>Pimcore 12<\/strong>? 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&nbsp;<a href=\"https:\/\/store.webkul.com\/catalogsearch\/result\/?cat=All+Categories&amp;q=pimcore\" target=\"_blank\" rel=\"noreferrer noopener\">Webkul\u2019s Pimcore extensions<\/a>.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A DAM is only as findable as its tags. In most&nbsp;Pimcore 12&nbsp;libraries the tags stop being maintained somewhere around the two-thousandth asset \u2014 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\u2019s day. The&nbsp;Pimcore AI Auto Tagging Connector&nbsp;removes that <a href=\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":785,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8189],"tags":[5829,8201,8487],"class_list":["post-552296","post","type-post","status-publish","format-standard","hentry","category-pimcore","tag-pim","tag-pimcore","tag-pimcore-ecommerce-connector"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pimcore AI Tagging: Auto-Tag Assets in Pimcore 12 with AI<\/title>\n<meta name=\"description\" content=\"Pimcore AI tagging made simple: connect Gemini, OpenAI, Anthropic or Groq and let AI tag images, PDFs and documents as native Pimcore tags\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pimcore AI Tagging: Auto-Tag Assets in Pimcore 12 with AI\" \/>\n<meta property=\"og:description\" content=\"Pimcore AI tagging made simple: connect Gemini, OpenAI, Anthropic or Groq and let AI tag images, PDFs and documents as native Pimcore tags\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-20T08:35:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Devraj Jaiswal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Devraj Jaiswal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\"},\"author\":{\"name\":\"Devraj Jaiswal\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3aea89d84a5d70c394d6055b8121fb13\"},\"headline\":\"How to Auto-Tag Pimcore 12 Assets with AI\",\"datePublished\":\"2026-08-20T08:35:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\"},\"wordCount\":1673,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png\",\"keywords\":[\"pim\",\"Pimcore\",\"Pimcore eCommerce Connector\"],\"articleSection\":[\"PimCore\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\",\"url\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\",\"name\":\"Pimcore AI Tagging: Auto-Tag Assets in Pimcore 12 with AI\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png\",\"datePublished\":\"2026-08-20T08:35:14+00:00\",\"description\":\"Pimcore AI tagging made simple: connect Gemini, OpenAI, Anthropic or Groq and let AI tag images, PDFs and documents as native Pimcore tags\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage\",\"url\":\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png\",\"contentUrl\":\"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Auto-Tag Pimcore 12 Assets with AI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3aea89d84a5d70c394d6055b8121fb13\",\"name\":\"Devraj Jaiswal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9cd646e0638ef0c329a1e4eae88ec76efb622a3042261278996e92cd952d2e90?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9cd646e0638ef0c329a1e4eae88ec76efb622a3042261278996e92cd952d2e90?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Devraj Jaiswal\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/devraj-jaiswal322\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pimcore AI Tagging: Auto-Tag Assets in Pimcore 12 with AI","description":"Pimcore AI tagging made simple: connect Gemini, OpenAI, Anthropic or Groq and let AI tag images, PDFs and documents as native Pimcore tags","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/","og_locale":"en_US","og_type":"article","og_title":"Pimcore AI Tagging: Auto-Tag Assets in Pimcore 12 with AI","og_description":"Pimcore AI tagging made simple: connect Gemini, OpenAI, Anthropic or Groq and let AI tag images, PDFs and documents as native Pimcore tags","og_url":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2026-08-20T08:35:14+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png","type":"image\/png"}],"author":"Devraj Jaiswal","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Devraj Jaiswal","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/"},"author":{"name":"Devraj Jaiswal","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3aea89d84a5d70c394d6055b8121fb13"},"headline":"How to Auto-Tag Pimcore 12 Assets with AI","datePublished":"2026-08-20T08:35:14+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/"},"wordCount":1673,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png","keywords":["pim","Pimcore","Pimcore eCommerce Connector"],"articleSection":["PimCore"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/","url":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/","name":"Pimcore AI Tagging: Auto-Tag Assets in Pimcore 12 with AI","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png","datePublished":"2026-08-20T08:35:14+00:00","description":"Pimcore AI tagging made simple: connect Gemini, OpenAI, Anthropic or Groq and let AI tag images, PDFs and documents as native Pimcore tags","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#primaryimage","url":"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png","contentUrl":"https:\/\/unopim.com\/wp-content\/uploads\/2026\/08\/image-13-1024x496.png"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/how-to-auto-tag-pimcore-12-assets-with-ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Auto-Tag Pimcore 12 Assets with AI"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3aea89d84a5d70c394d6055b8121fb13","name":"Devraj Jaiswal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9cd646e0638ef0c329a1e4eae88ec76efb622a3042261278996e92cd952d2e90?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9cd646e0638ef0c329a1e4eae88ec76efb622a3042261278996e92cd952d2e90?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Devraj Jaiswal"},"url":"https:\/\/webkul.com\/blog\/author\/devraj-jaiswal322\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/552296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/785"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=552296"}],"version-history":[{"count":19,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/552296\/revisions"}],"predecessor-version":[{"id":552587,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/552296\/revisions\/552587"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=552296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=552296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=552296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}