Skip to main content
Stay up to date with what’s new in Cernel. This page lists recent platform changes, new features, and improvements. For longer write-ups on major releases, see the Blog.
CSV import warns before dropping rows it can't import

Know when CSV rows won’t be imported

When you review a CSV import, Cernel now tells you up front if some rows won’t make it in. If the file has rows it can’t import, usually because they have no identifier value or an identifier that matches another row’s, the preview shows a Some products won’t be imported step with the count, and you acknowledge it before continuing to the create and update summary. Cernel also only treats a column as a product identifier when its values are almost entirely unique, so a non-unique column can’t be mistaken for one.See Importing products from a CSV.
How to read a category value over the public API

Reading category values over the API

Documented the shape of a category (taxonomy classification) attribute in the public API. A category value carries a nodes array with one entry per category, so a product can now come back classified in more than one category at once. Values classified before multi-category taxonomies keep their older single-category shape and are never rewritten, so an API consumer should check for nodes and fall back to reading path and node_id from the object itself. If your integration reads classification values, update it to handle both shapes.See Reading a category (taxonomy classification) value.
Manage API keys through service accounts

API keys move to service accounts

The Settings > Developer > API page is now organized around service accounts: one account per integration, each holding its own keys. You can give an account several keys, revoke a single key without touching the others, and rotate keys with no downtime by adding a new one before revoking the old. Each key is shown in full only once, right after it’s created. Renaming and deleting an account are admin-only, and a revoked key stays listed so a past call still has an explanation. This replaces the earlier model of one API key per organization; keys made before the change keep working and move to an account of their own the next time they’re used.See Managing API keys with service accounts.
Give agents per-language instructions and fix an attribute's languages

Language control per agent and per attribute

Two new ways to shape multi-language output beyond the organization-wide settings. Every agent now has a Languages tab with an instruction box for each enabled language, plus a toggle to keep or replace your organization’s language instructions for that agent. And each attribute can pin which languages it’s written in: turn on Override language settings in its Enrichment Settings to set every language to Generate, Translate, or Skip, overriding whatever an enrichment run asks for.See Fine-tuning language output.
Map an integration property straight from the Properties tab

Map a property without switching tabs

The Properties tab on an integration now has a + button on every property row. Click it to open the mapping picker with that property already selected, so you can connect a source field to a Cernel attribute without switching to the Property Mapping tab and back.See Mapping from the Properties tab.
Delete picked values straight from the product table

Delete values in bulk

The bulk-select selection bar gains a Delete button, with Del or Backspace as a shortcut. It empties every selected value across all enabled languages in one step, after a confirmation, without opening the editor. A value cleared this way shows as a genuinely blank cell rather than the muted No value marker an agent leaves when it looked and found nothing.See Deleting values.
CSV imports are named after the uploaded file by default

CSV imports name themselves

Uploading a CSV no longer needs a name typed by hand. As soon as you pick a file, Cernel fills the Name field with the file’s own name, so you can go straight to analyzing it. Anything you already typed is kept, and you can rename the import at any time.See Importing products from a CSV.
Empty Single Select and Multi Select values export as blank cells

Empty select values export as blank, not “None”

When a Single Select or Multi Select agent enriches an attribute with no matching option, that empty value now exports as an empty cell in your CSV instead of the literal text None. Downstream systems no longer read those cells as real content. Re-run an older export to clear any None text it produced.See Exporting your catalog as a CSV.
Move products between categories in bulk, and tell an empty cell apart from an enriched blank

Reclassify products in bulk

You can now add a Classification column to the product table from Column settings and use bulk select and bulk edit to move many products to a different category at once, picking the target from the taxonomy tree. This replaces writing a per-product prompt or re-running classification when you just need to move a batch of products.See Moving products to a different category in bulk.

Tell an empty cell apart from an enriched blank

A blank attribute cell in the product table now shows which kind of blank it is. A truly empty cell means nothing has ever been written, while a muted No value means an agent ran and found nothing to write, carrying the same enrichment tint as any other AI-written value. Hover over a value to confirm its source.See Understanding value sources.
Filter products by whether a value was enriched or edited by hand

Filter by where a value came from

The product filter gains three ready-made conditions: Is enriched, Is not enriched, and Is manually edited. They match on where a value came from, not only whether one exists, so you can build enrichment batches even when a connected integration or CSV import already fills the same field. For example, Is not enriched on Description isolates the products AI hasn’t touched yet, even if the feed already put text in that field.See Filtering the product list.
List a single product's required attributes and which are filled over the API

Check one product’s attributes over the API

A new endpoint lists the attributes a single product requires and whether each one holds a value: GET /api/v1/products/{product_id}/attributes. It returns every attribute the product’s categories ask for, the category that set each one, and an is_completed flag per attribute, so a custom pipeline can see exactly what is still missing on a given product rather than an aggregate count. You can scope resolution to a single taxonomy or one category’s subtree, and count the is_completed entries yourself to compute completeness at whatever scope you need.See Listing the attributes a product requires.
Let a taxonomy place products in more than one category

Multiple categories per product

When you create a custom taxonomy, you can now turn on Allow multiple categories per product so the AI can place each product in several categories at once instead of just one. A new Multicategory Agent Settings section in Classification Settings sets the most categories a product can get (1 to 5) and whether a category and one of its own subcategories can be held together. You can also tick or untick a product’s categories by hand. This is a permanent choice made when the taxonomy is created, and single-category taxonomies, including the built-in Cernel Taxonomy, are unchanged.See Placing products in more than one category.
Reference a product's variant-defining attributes in agent prompts

Reference a product’s defining attributes in prompts

Agent prompts gain a new Product Defining Attributes reference in the / menu. It inserts the values that make the current product a distinct variant, such as its Size or Color, so you can tell an agent “write for this specific Large, Blue variant” without hardcoding attribute names. Cernel resolves these from wherever the variant axis was introduced in the product hierarchy, so a product nested under both a Size and a Color split surfaces both.See Using Data Sources in prompts.
Shift-click to select a range of attributes when starting enrichment

Select a range of attributes at once

In the Configure Enrichment modal, you can now click one attribute, hold Shift, and click another to select every attribute between the two in one go. The range follows the list as displayed, so it respects whatever you’ve typed in the attribute search box. This makes picking a long run of attributes faster on categories with large attribute sets.See Running enrichment.
Select across the product table to set, clear, or enrich many values at once

Bulk edit values from the product table

A new Bulk select mode turns the product table into a grid you can select across. Pick individual values, whole rows, or whole columns (drag or hold Shift to take a block), then set a shared value, clear the field, or send the whole selection to enrichment in one action. Manual edits ask you to confirm the count first, and a Send for review option lets the changes wait for approval instead of writing straight to your products. The same bulk selection works on the Review surface.See Editing values in bulk.
Poll product completeness through the changes API

Track product completeness over the API

The product changes endpoint can now return a per-product completeness summary. Pass include_summary=true and each change carries how many attributes the product’s category defines, how many of those an AI agent can fill, and how many are populated in each enabled language. This lets a custom pipeline show enrichment progress or gate a downstream publish without a separate lookup.See Tracking product completeness.
Rename a job from the Jobs list at any time

Rename a job

You can now rename any job from the Jobs page, in any status. Enrichment setup has several steps and the job title is easy to skip past, so the Rename job action in a job’s Actions column lets you give a run a clearer name after it has started, or even once it has finished. The new name shows everywhere the job appears, including the header job-status list.See Renaming a job.
Delete an automation straight from the Automations list

Delete an automation from the list

You can now delete an automation directly from the Automations list through its row menu, without opening the automation first. Deleting is permanent and asks you to confirm, and the built-in Cernel Classification Automation can’t be removed. Previously delete was only available on an automation’s detail page.See List-view actions.
Shopify import now brings in each product's storefront URL and handle, plus per-variant URLs and IDs

Shopify import adds store URLs, handles, and variant IDs

The Shopify integration now imports a few more identifiers alongside the existing product data. For each product you get its online store URL and its URL handle (the storefront slug), and for each variant you get the variant’s Shopify ID and its online store URL (the storefront link with that variant preselected). The online store URL is populated for products published to your Online Store sales channel; products that aren’t published there import without a URL until you publish them.See What data syncs.
CSV import reads Excel 'CSV UTF-8' files, including UTF-16 and UTF-32 with a byte-order mark

CSV import handles more file encodings

CSV import now reads an Excel CSV UTF-8 export exactly as saved. Previously the file’s leading byte-order mark attached to the first column header, so that column matched nothing and silently dropped from the import. UTF-16 and UTF-32 files that start with a byte-order mark are also read correctly. When a file’s encoding can’t be determined, Cernel stops the import and asks you to re-save as CSV UTF-8, rather than importing scrambled text.See the CSV import FAQ.
Variant values now appear in the Review queue under a category or filter

Variants show up in Review

Proposed values for product variants now appear on the Review surface whenever you select a category in the sidebar or apply a search or filter, alongside their parent products. Previously these variant values dropped out of view as soon as a category or filter was applied, leaving that enrichment work with no way to reach it. Each variant now lists as its own row and is approved, edited, or rejected like any product, and the header select all includes variant values when you decide a whole category or job at once.See the enrichment FAQ.
See a product's own activity log on its new Events tab

Events tab on the product detail page

The product detail page gains an Events tab that lists the system activity Cernel has recorded for that specific product, such as when it was enriched, classified, or synced with an integration. Each entry is graded Info or Error, so you can filter by minimum severity to focus on problems, and expand a row for the full details. The feed is scoped to the product you’re viewing, so it never mixes in another product’s activity.See Working with a product.
A single unusable product image no longer fails the whole enrichment

Enrichment tolerates unusable images

When one of a product’s images can’t be processed (it can’t be fetched, isn’t a valid image, or is unusually large), Cernel now skips just that image and generates the value from the product’s remaining inputs, instead of failing the enrichment. A run only fails when no usable input is left. The agent also records a short note in its Reasoning when it leaves an image out, so you can tell exactly what was skipped and why.See the enrichment FAQ.
Select all in Review now decides every matching value, not just the loaded page

Select all covers the whole review queue

Using select all on the Review surface now approves or rejects every in-review value that matches your current filters, including products beyond the ones loaded on screen. In a single-job review, it covers that job’s entire pending set. Previously select all only reached the rows already loaded, so a large queue needed scrolling to the bottom before you could decide it in one action. You can still deselect individual products to leave them out, and the confirmation dialog notes how many you excluded.See Approving, rejecting, and dismissing.
Translated content keeps the original prompt's length, tone, and format rules

Higher-quality translations

When a language is set to Translate, Cernel now follows the same length, tone, and format rules that the original prompt used when it generated the source value. A value written to a 150-word limit, for example, stays within that limit after translation instead of drifting. Every translated value also passes the same quality check Cernel applies to generated content, so output that comes back corrupted is rejected and retried automatically.See Languages.
Search and filter your product table down to individual variants

Search within child products

The product table’s search and filters now reach child products, not just parents. Turn on the new Search within children toggle in the toolbar (available once you’ve entered a search or applied a filter) and matching variants appear under their parent product, with columns for the properties that set each one apart and the matched text highlighted. This makes it easy to find and act on individual variants, which previously the table’s search and filters could not target.See the variant search FAQ.
Exclude products by value with the new Does not contain filter

New “Does not contain” product filter

The product list gains a Does not contain operator, so you can filter to the products whose attribute value does not include a term you enter. It joins the existing operators (Equals, Contains, Has data, Has no data, and more) for building enrichment batches and finding the products you want to work on.See Filtering the product list.
The enrichment modal now includes child products by default

Enrichment includes variants by default

When you open the enrichment modal, Product Scope now starts on Include child products, so a master product and its variants are enriched together. Variant-heavy catalogs no longer need to change the scope on every run. You can still narrow it to the selected products only, or to only child products, per run.See Running enrichment.
Automations now carry the full set of enrichment options

Enrichment options for automations

Automations now offer the same controls as a manual enrichment run. Set the Product Scope to reach child products, toggle Review to decide whether results wait for approval or apply automatically, turn on Only enrich missing fields to backfill without overwriting, and use Language Configuration to generate, translate, or skip each language. The options are saved with the automation and applied to every run it triggers.See Enrichment options.
Shopify measurement metafields now import with their units

Fuller Shopify metafield import

The Shopify integration now imports every metafield value type. Measurement metafields (weight, dimensions, volume, temperature, and similar) import as a numeric value together with its unit, and their multi-value list variants come through as lists. Value types Cernel doesn’t model natively import as plain text so nothing is dropped.See What data syncs.
A rebuilt product detail page with completeness, per-language editing, variants, and integration data

A richer product detail page

Opening a product now gives you everything Cernel holds for it in one place. A Completeness ring shows how much of the category’s attribute set is filled in, and the Attributes tab lists every value with its language coverage and its origin (enriched, manual, or imported). Edit a value inline, fill in a missing one, or open Edit translations to update every language at once. Each value keeps a version history you can restore from.Products with variants get a Variants tab showing what makes each one distinct, and every connected integration gets its own tab with the raw properties it sends and how they map to your attributes.See Product detail for the full guide.
Name, search, filter, and cancel your enrichment jobs

Manage your jobs more easily

You can now give an enrichment run a Title when you start it, so it’s easy to find on the Jobs page later. Leave it blank and Cernel names the job for you from the attributes and category you picked. The Jobs page also gained a search box and filters (status, trigger, who started it, product, and date range) to narrow a long history, and you can now cancel a job that’s still pending or running straight from its row.See The Jobs page.
Reuse an existing CSV import as a template, even when the new file's columns differ

Reuse a CSV import as a template

You can now start a new CSV import from an existing one with Use as template for new import, even when the file you upload doesn’t line up with the original column for column. Cernel matches columns by name: columns that match keep their original mapping, and anything new starts in Skipped columns, ready for you to map. A vendor changing or reordering their columns no longer blocks the reuse.See Importing products from a CSV.
A reworked Jobs experience and a dedicated Review surface for AI-proposed values

Jobs & Review

Enrichment now cleanly separates running a job from deciding what goes live. The Jobs page tracks every run (status, progress, and who started it) while the new Review surface is where you approve, edit, or reject the values your agents propose. Work through one product at a time or decide in bulk; open a job to review just its values, or switch to Review on the Products area to handle everything waiting for a decision. Each proposed value shows the prompt, the agent’s reasoning, and the inputs behind it, so you can decide with full context.See Jobs & Review for the full guide, or read the story behind it on the blog.
A new agent type that selects the best value from a set of candidates

Picker agent (Preview)

A new Picker agent type selects the best value (or values) from a set of candidates, instead of generating new content: the cleanest packshot, the strongest tagline, or the top few options. It runs in two phases: find candidates (from your prompt, your catalog, or your Data Sources), then pick from them by letting the AI rank against a rubric or by choosing at random.Picker is an early-access Preview feature whose behavior may change.See Picker agent.
A rebuilt CSV import and export experience

Redesigned CSV import and export

CSV import and export now have a dedicated home in the sidebar. Open CSV under Tools. Importing walks you through where your file comes from (a catalog you manage in one place, or vendor files that arrive in many shapes), suggests how each column maps to your attributes and product identifiers, and shows a preview of exactly what will be created or updated before the import runs.Exporting is now template-based: save a reusable column layout as a CSV export template, then run it from the Products page whenever you need a file. You can still pick columns ad hoc at export time.See CSV Import & Export for the full guide, or read the story behind the redesign on the blog.
Re-run property mappings on API integrations without re-sending products

Reapply mappings for API integrations

After you change an attribute, an agent, or a property mapping, you can now re-run the current mappings across every product in an API integration. Open the integration’s Settings menu and choose Reset Integration → Reapply mappings. Because API integrations receive products directly, there’s nothing to re-import; reapplying mappings re-processes your existing products in place, much faster than a full restart.See Managing the product lifecycle.
Pin the agent type when creating an agent from a description

Choose the agent type up front

When you create an agent by describing what it should do, you can now optionally pin the type of content it generates (Text, HTML, Single Select, Multi Select, External Data, or Media) before Cernel writes the prompt. Leave it unset and Cernel detects the type from your description, or select one to lock it in when you already know what you need (for example, Single Select for a gender classifier).See Creating an agent.
Replace generated image backgrounds with a single exact color

Recolor image backgrounds on Media agents

Media agents that generate images can now replace the background of every image with one solid color, ideal for product and studio shots that need a clean, consistent backdrop. Open the Media agent’s Advanced Settings tab and switch on Recolor background to set the target color, choose how shadows are handled (Replace background, Preserve shadows, or Hybrid), and pick the edge-processing engine.See Advanced configuration.
Control the automatic language instruction per language

Per-language enrichment toggle

Each language’s detail page (Tools > Languages → click a language) now has a Use translation prompt for all language enrichments toggle. While it’s on - the default - Cernel automatically instructs your agents to write that language’s enriched content in that language, so output always comes back correctly localised. Turn it off when you’d rather control the output language entirely through your own prompts.See Setting up languages.
Control the alt text and file names of AI-generated images

Alt text and file name instructions for Media agents

Media agents that generate images now have Alt Text Instructions and File Name Instructions fields in the Advanced Settings tab. Tell the AI how to describe each image (for accessibility and SEO) and how to name the generated file, and reference product data like the title or color by typing /. Leave a field empty to keep Cernel’s defaults.See Media agents: image output, alt text, and file names.
Watch the agent sandbox generate results live

Live streaming in the agent sandbox

The agent sandbox’s Review & Test step now streams results live. Each product’s card updates with a rotating status as the agent works and shows its output the moment that product finishes, so early results appear while the rest are still running, instead of everything landing at the end. Click View live agent thinking on a card to watch the agent’s reasoning stream in real time; it stays available afterward, including for products that errored, so you can see what the agent did before a failure.See Run the agent.
Faster prompt picker and live progress on CSV exports
The / reference picker in the agent prompt editor now shows a clickable breadcrumb trail at the top of each submenu (for example, Data Sources > Models > ToV), so you can jump back to a parent level instead of starting over. Search inside the picker is also space-tolerant: type Specifications type 1 and it matches entries named specifications_type_1.See Referencing Data Sources in your prompt.

Live counter on CSV exports

The Export to CSV modal now shows a live Exported N products count on the button while the file streams, replacing the previous spinner. Large exports finally show their progress instead of looking stuck.See Download the CSV.
Push and pull product data in several languages from one API integration

Multiple languages per API integration

An API integration is no longer locked to a single language. Pick any number of languages when you create or edit the integration; the first one becomes Primary and acts as the fallback when a property is pushed without a language. Properties carry an optional locale field, and Cernel stores each localized variant separately and surfaces it to enrichment, the product UI, and the /changes endpoint.The new PATCH /products and GET /products endpoints (see Patching products and Listing products) shipped alongside, so you can update individual localized values and look products up by identifier without re-sending full payloads.See Setting up the API integration and Working with multiple languages.
Enrich only the attributes that are currently empty

Only enrich missing fields

The enrichment modal has a new Only enrich missing fields toggle. Turn it on and the AI only generates values for attributes that are currently empty; existing values you’ve reviewed or hand-edited are left alone. Turn it off to re-enrich every selected attribute and overwrite current values. Use it to backfill a newly-added attribute across a large catalog without touching products you’ve already finished.See Running enrichment.
Cancel a sandbox run, no more auto-runs

Sandbox stays put until you tell it to run

The agent sandbox no longer auto-runs when you open the Review & Test step, switch attribute types, or send a chat refinement. The 5 random products are still pre-selected for you, but Cernel waits for an explicit Run click before calling the LLM. Chat refinements still rewrite the prompt and save a new version in history. You click Re-run when you want to see the new output. This puts you in control of when the (potentially slow) enrichment pass actually fires.

Cancel an in-progress sandbox run

While a sandbox run is in flight, the Run button becomes Cancel. Click it to abort the request immediately. Any results that already came back are kept, you get a Run cancelled toast, and the button returns to a startable state so you can adjust and try again. Especially useful for External Data agents in Agentic mode, where a single pass can take a couple of minutes.See Run the agent.
Web research without writing search queries by hand

Agentic mode for External Data web research

External Data agents that pull text data from the web now have a Mode selector with two options:
  • Classic: you define the exact search queries and trusted sources; Cernel searches them and combines the results.
  • Agentic: Cernel plans and runs the searches itself, one product at a time, based on each product’s details. You don’t write search queries; you control scope through Block these domains and Restrict to these domains, and accuracy through Match by (a product identifier such as SKU or GTIN, or Broad search on the title).
Use Agentic mode when your products vary too much for one query template to cover: for example, sourcing technical specs across thousands of SKUs from manufacturers you don’t enumerate up front. The What to Extract prompt (renamed from Synthesis Instructions) tells the agent what to pull out of the matched results.Agentic external data also works end-to-end inside the Agent Sandbox: you can preview a run, refine the prompt through chat, and re-run on the same products, just like every other agent type.See External Data agents: Classic vs Agentic mode.
Enable Shopify product variants from the integration detail panel

Shopify product variants

Shopify integrations now have a Variants control on the integration detail panel. Click Enable, confirm the dialog, and Cernel starts importing each Shopify variant as its own variant record under the parent product. Enabling variants is a one-way action, so the dialog warns up front before you commit.See Working with product variants.
Connect Struct PIM workspaces with two-way sync

Struct PIM is now a supported integration

Connect a Struct PIM workspace directly from Tools > Integrations > Add integration. Both Struct PIM v3 and v4 are supported, and you can optionally target a specific dimension when Cernel pushes enriched content back to Struct PIM.See Struct PIM integration.
New Automations page, sentence builder, and multi-taxonomy support

Redesigned Automations with multi-taxonomy support

Automations now live on dedicated pages, /automations for the list and /automations/new (or /automations/{id}) for the detail view, instead of a four-step modal. Each automation is configured through a single editable sentence builder that reads as one line: “New and updated products in [category] will automatically enrich [attributes] narrowed to only products matching [filters]”.Each automation is now scoped to one taxonomy explicitly, so you can run independent automations on different taxonomies for the same product. You can also pick Unclassified products as the target, which limits the automation to setting the taxonomy’s classifying attribute, useful for getting unclassified products into the right category before further enrichment runs.Run history has moved to a dedicated Run history tab on the automation detail page.See Creating an automation and Multi-taxonomy and Unclassified products.
Add any locale by code, including regional variants

Free-text locale codes when adding a language

The Add Language modal in Tools > Languages now accepts any valid locale code as free text instead of picking from a fixed dropdown. Type a code like en, da, or a region-specific variant such as sv_FI or pt_BR and the platform validates it on submit. This unlocks locales that weren’t in the previous list and gives you region-specific content where you need it.See Add a new language.
On-demand CSV export and dedicated Jobs page

On-demand CSV product export

Export products to CSV directly from the products table, no integration setup required. Pick any combination of attributes, identifiers, product fields, child products and integration data, drag to reorder columns, and customise headers before downloading.See On-demand export from the products table.

Dedicated Jobs page

Job tracking now lives on its own Jobs page with stats (Elements Run Total, Total Jobs, Avg Elements Per Job, Elements Run Today), a By user activity widget, and a filterable jobs table. The Dashboard keeps a Recent jobs widget for at-a-glance access.
Tools section in main sidebar

Automations, Data Sources, Integrations and Languages moved to Tools

These four areas now live under a new top-level Tools section in the main sidebar instead of inside Settings. Direct URLs are now /automations, /data-sources, /integrations, and /languages.Settings continues to host Platform, Global Prompts, Usage, Users, API, and Webhooks. See the Settings overview for the new split.
Event Log in Settings

Event Log in Settings

A new Events tab in Settings surfaces recent system events and integration activity in one place. Filter by severity, domain, event kind, or resource type to drill into a specific run.See Event Log for details.
Documentation site launch

Documentation site is live

The Cernel Knowledge Platform at docs.cernel.com is now available. Browse feature guides, integration setup instructions, and use-case workflows to get the most out of Cernel.
  • Full documentation for all platform features
  • Step-by-step guides for Shopify, CSV, Feed, and API integrations
  • Use-case workflows for hands-free enrichment, image sourcing, and more