---
title: "Release notes | Customer&#x27;s Canvas Hub"
canonical: "https://customerscanvas.com/docs/hub/dev-center/release-notes/"
---

# Release notes

> - **Price Calculator**: Added support for **two-dimensional parameter matrices** as a new formula type alongside Single, QuantityRange, and CostRange. The matrix matches quantity (rows) and square area (columns) to determine the base price at the intersection, which can then be further transformed by standard rules, such as applying material-specific coefficients.
> - **Product Setup Wizard**: Improved **asset-connections management** with the following capabilities:
>   - **Integrated asset-connections section**: Asset-connections management is now available directly within the product setup wizard.
>   - **Improved Preview behavior**: When unsaved asset-connection changes exist, **Preview** displays a confirmation dialog prompting you to save them first. Preview runs against the saved version once changes are saved.
>   - **Save progress indication**: Saving a product draft now displays a progress indicator, as applying accumulated changes can take several minutes for products with many variants.

## October 2026

### Tenant Admin & User

### Personalization Platform API

- **GetVariables API**: Variables returned by `GET /api/atoms/v1/designs/{id}/variables` now include **constraints** (for example, `allowedFolder` for image placeholders) that **reflect** placeholder settings.
- **Design Preview with Mockup**: Added a **mockup strategy** to the `render-design-preview` endpoint in the DesignAtoms API, allowing designs to be rendered with the embedded editor mockup. This is useful for personalized designs, where white elements can blend into the background when the mockup is excluded from rendering.
- **Invoke URL Task**: Added support for **retrying failed calls** to external services via the new `retryCount` and `retryDelaySeconds` parameters (defaults: `retryCount = 0`, `retryDelaySeconds = 10`).
- **Product Draft Snapshots**: Added **asset-connection snapshots** to product drafts.
- **Batch Custom Field Updates**: Added `POST /api/storage/v1/<assetType>/batch-update-custom-fields/discrete` for updating custom fields on multiple assets individually. Accepts a dictionary where the key is the asset ID and the value specifies `FieldsToAdd`, `FieldsToUpdate`, and `FieldsToRemove`.
- **PIM Design Resources**: Custom data is now copied when creating product variant resources, ensuring custom data schemas are preserved.

## September 2026

### Tenant Admin & User

- **Product Asset Connections**: Fixed table layout to prevent breaking when displaying many columns.
- **Storage Page**: Added explanations for data types.
- **Integration Types**: Added ability to view **product reference ID** for all integration types.
- **Workflow Configuration**: Resolved issues with individual workflow setup.

### Personalization Platform API

- **Shape Creation**: Added support for setting transparency when creating rectangles/ellipses.
- **DropBox File Upload**: Implemented session-based uploads for `upload-to-dropbox`.

## August 2026

### Tenant Admin & User

#### Design-Specific Workflows

- **Personalization Workflow per Design**: Configure individual workflows for designs (e.g., "Upload your own" templates, mixed customization, or conditional 3D viewer enablement). Previously, all design variations within a PIM product were forced to share the same workflow. Because a design may require different rules depending on the product context, this capability has been implemented within **asset connections**.

#### Color Palette Management

- **Re-import Color Palettes**: Update existing palettes (e.g., PANTONE) without breaking system links. When a new version of a palette is released, clients can now update the asset directly, ensuring that all existing products, templates, and configurations seamlessly inherit the updated colors without requiring manual re-linking.
- **BackOffice File Manager**: Added an **Update** option to re-import palettes safely.

#### Product Options

* **Option Pre-selection**: Updated `AllowMultiselect` behavior to support loading all designs to the design selector widget with preselected options by default.
    * When `AllowMultiselect` is active, the option editor in the BackOffice now switches from standard **Default** radio buttons to **Preselected** checkboxes.

#### Storage Insights

- **Storage History Visualization**: Monitor storage metrics over time with timeline data from the Accounting module, including capacity trends and utilization spikes.

### Personalization Platform API

* **PrintProduct API Extension**: Added a new endpoint (`POST /api/atoms/v1/designs/print-product`) to allow the creation of empty products, enabling end-to-end design generation workflows using only the PrintProduct API.
* **Mockup DPI Support**: Added an optional DPI parameter to the `DesignAtomsPrintProductApi` mockup replacement endpoints, enabling proper scaling of images when they are loaded into design placeholders.

## July 2026

### Tenant admin & user

#### Custom Project Statuses

**Project Status Management Page**: Added a new **Statuses** configuration page under the **Projects** section. This interface allows you to create new statuses, define initial and final statuses, and manage their transitions.

#### Asset Manager

**Palette UID Visibility**: Palette UIDs are now displayed directly below palette names in the thumbnail view, as well as in a specific **UID** column within the table view, eliminating the need to open file properties to find this identifier.

### Personalization Platform API

#### General Improvements

- **Print Area Visualization Border**: Applied auto-scaling to the print area preview border. The line thickness now automatically adapts based on the minimum side of the bounding rectangle, ensuring bounds remain clearly visible on high-resolution print areas.
- **Asset Processor API**: You can now generate private designs from public mockups using the endpoint `POST /api/processor/v1/private-designs/from-mockup`.
- **Pipeline Asset Naming**: Enhanced data extraction to support dynamic file name handling within processing pipelines (e.g., when running an `upload-to-dropbox` task). You can now reference the original asset name in parameter configurations and seamlessly propagate that name to the output results (e.g., for referencing in automated emails) using the custom template syntax:

    ```json
    "parameters": {
        "originals*": "/site/wwwroot/App_Data/{{projectId}}/12345/{{originals@:name}}",
        "some-artifact": "/site/wwwroot/App_Data/{{projectId}}/12345/{{some-artifact:name}}"
    },
    "inputArtifacts": [ "originals*", "some-artifact" ]
    ```

## June 2026

### Personalization Platform API

#### New Shape Items in Design Atoms API

Added endpoints for creating **Rectangle** and **Ellipse** items in the Design Atoms API. This helps you build custom visualizations, such as rendering max artwork size boundaries directly within a design, and then generating previews via `render-design-preview-with-mockup`.

New endpoints:

- `POST /api/atoms/v1/designs/print-product/items/rectangle`
- `POST /api/atoms/v1/designs/print-product/items/ellipse`

#### Print Area Visualization

Added the possibility to **visualize print area bounds** in rendered design previews and proof images. New parameters are now available across all relevant rendering endpoints in both Asset Processor and Design Atoms API. The following parameters were added to the rendering tasks:

| Endpoint / Task | Parameter |
|---|---|
| [`render-preview`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/render-preview.md) | `previewOutputVisualizePrintAreas` |
| [`render-proof`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/render-proof.md) | `proofOutputVisualizePrintAreas` |
| [`render-vdp-preview`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/render-vdp-preview.md) | `previewOutputVisualizePrintAreas` |
| [`render-design-preview-with-mockup`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/render-design-preview-with-mockup.md) | `visualizePrintAreas` |

## May 2026

### Tenant admin & user

#### Subscription Usage Visibility

We're continuing to improve how customers can track their subscription usage. This release introduces **tariff plan awareness** across the platform, enabling the system to display usage limits and consumption data for the current billing period. Key additions:

- **Credit limits history**: When viewing billing period history, tenant employees can now see the credit limits applied during each period.
- **Storage breakdown**: A detailed storage diagram is now available for tenant employees, showing current storage usage devided by asset types.
- **Updated tenant dashboard**: The tenant dashboard now displays tariff-based usage limits, showing credits consumed and storage used separately, with visibility for both tenants with and without an active account.
- **Tenant Violation Indicators**: Introduced **color-coded labels in the top bar** for tenants with usage limit violations.

#### IDML Color Profile Handling

- **Changed importing IDML assets**: the original color profile embedded in the IDML is now retained, assigned to all elements, and is used for rendering. Previously, a default profile was used. If the required profile is missing when importing IDML, an error will occur.

### Personalization Platform API

#### Text Rendering Engine Update

This release switches the text rendering engine in rendering services to a more stable and accurate implementation. The update includes:
- Fixes for known rendering issues with specific fonts.
- Improved support for **tabs**, **subscript**, and **superscript**.
- More precise spacing and alignment calculations.
- Better rendering performance, especially for handwritten fonts.

#### API for Launching Personalization

- **Personalization API**: You can now fetch all necessary initialization data (workflows, app links, and entity IDs) directly through the **Storefront Api**. This simplifies the integration of personalization workflows into custom storefronts.
- **Design Editor Security Update**: Added support for the global JWT token. The system now intelligently handles fallback scenarios, ensuring that the Design Editor receives the correct token even when switching between authentication modes.

#### Custom Project Statuses

To enable external systems integrated with Customer's Canvas Hub to build complex responsibility workflows for projects, we've introduced **custom project statuses** and **status transitions** in the BackOffice. Added **CRUD endpoints** `/api/backoffice/v1/projects-statuses` to the BackOffice API, which allow managing custom statuses and defining allowed transitions between them as part of tenant configuration.

#### Asset Management Enhancements

- **Remote Asset Import via URL**: Added the `import/from-url` method to all asset types. This allows frontend-only integrations to trigger file imports by providing a source URL.
- **Extended Data Tracking**: Updated `FileStorageInfo` within the Asset Storage API to include metadata about temporary files. The new `retainable-file-storage-info` endpoint provides real-time data on the count and total volume of the assets.

#### Data Model & Integration Updates

- **Extended Order Identification**: Added an `OrderName` (string) field to the Project model.
    - This resolves issues where external E-commerce systems use non-numeric order identifiers.
    - The existing `OrderNumber` remains for backward compatibility, while `OrderName` is now available via public APIs for flexible integration mapping.
- **Advanced OrderDesk Task Configuration**: Enhanced the export-to-order-desk task with new parameters to handle non-numeric workflows:
    - `skipMissingOrders`: Allows the task to continue execution even if specific orders are not found.
    - `orderLookupType`: Set this to `ProjectName` to interpret incoming identifiers as strings, facilitating integration with clients using alphanumeric order numbering.

## April 2026

### Tenant admin & user

#### Product Management Enhancements

- **New PIM product variant property**: Introduced a `weight` field for PIM product variants, stored as a numeric value (similar to `price`).
    - Available for editing in the **product setup wizard** (next to the price field).
    - Included in **CSV export/import** for bulk management.
- **Customizable product bundle names & descriptions**: Added support for **custom `Name` and `Description`** fields in `ProductBundle` items. Tenant users can now edit these values via the **updated bundle setup wizard** (aligned with the new design mockups).

#### Mockup & Design Tools

- **Mockup-link editor in BackOffice**: Added a **built-in editor** for creating and editing mockup-links (m-links) directly in BackOffice.
- **Enhanced Mockup-Link Visibility Selectors**: Now supports **layer groups** as visibility selectors:
    - **Multiple (or zero) top-level groups** allowed.
    - Each top-level group defines a **set of visual alternatives** (layers or subgroups).
    - Nested subgroups are supported but **do not create new alternatives**.
- **PSD Mockup Design: Auto-Generated Elements & Smart Naming**: When generating designs from PSD mockups, **automatically adds** a **Safety Line** (zero-margin, dashed) and **Interactive Zone** (shaped by clipping masks or print area boundaries). **Names** are derived from **markers** (`surface.name`, `printarea.name`) or layer names, with markers taking priority.

#### AI Improvements

- **New Vendor for RemoveBackground**: Added **CutOutPro** as a vendor for the AI-powered **RemoveBackground** operation, alongside Picsart and RemoveBg. This vendor operates in **face-focused mode (Face Cutout)** only.

#### Product Specification Workflow Improvements

- **Separated PS Workflow Logic by Role**: Refactored workflow logic to distinguish between **HostAdmin** and **TenantUser** access levels, ensuring proper permissions and workflow management for each role.
- **Custom workflows from templates**: You can now create your own workflows based on **standard** templates.

### Personalization Platform API

#### Design Atoms API: Enhanced Configuration Endpoints

- **PrintArea Shape Customization**: Added support for configuring the `Shape` of the `PrintArea` model via the endpoints `/api/atoms/v1/designs/{id}/print-product/print-areas/`.
- **Container Configuration**: Added endpoints for creating and configuring containers based on **Design Atoms models** `/api/atoms/v1/designs/{id}/print-product/containers/`.

## January 2026

### Tenant admin & user

#### Accounting Period History for Credit Consumption Tracking

- Added support for **accounting period history** to track and analyze tenant credit usage. Each period is linked to an account, storing accumulated credits, start/end dates, and is automatically generated.
- Additionally, **credit usage** is recorded to support future trend analysis and resource consumption tracking.

#### Conditional Task Execution Improvement

- Added support for `runIf`, `runIfAny`, and `runIfAll` conditions when processing rendering tasks. This allows for **flexible, positive rule-based execution**, improving automation and control over rendering workflows. For more details, see the [Controlling task execution](https://customerscanvas.com/docs/hub/printer-guide/pipelines/concepts/flow.md#controlling-task-execution-by-condition) topic.

### Personalization Platform API

#### Mockup Enhancements

- The `render-image-preview-with-mockup` and `render-design-preview-with-mockup` tasks now support **multiple mockups**.
- Added endpoints to the Asset Processor API for retrieving **artwork parameters** of mockups and mockup groups.
- Added endpoints to the Design Atom API for rendering previews **2D mockup based on alternative artwork layers**.
- Added the `GET /api/storage/v1/mockups/folders/content` endpoint to fetch folder content **by folder ID** for cases where the **ID does not match the folder path**.
- Added the `mockupValidationType` field to the `GET /api/storefront/v1/products/{id}/variant-mockups` endpoint response, which returns values like `"Mockup3D"`, `"MockupLink"`, or `"Mockup2D"`.

## December 2025

### Tenant admin & user

- Introduced **mockup-link**—a JSON-based solution that eliminates the need for dozens of nearly identical PSD mockups (differing only by print zones or colors) by dynamically selecting layer groups, reducing manual work and file management for personalized products like souvenirs and apparel.

    Key Features:
    - **Automatic mockup-link generation** for all layer group combinations directly from PSD, that reduces manual setup for product variants (e.g., colors, techniques).
    - **Import**, **validation** of mockup-link configurations, and displays mockup types in BackOffice.
    - **Testing mockup-link files** and 2D mockups directly from the context menu using the **Test** button.

- Added a new **Image Operations** tab in **Settings** (when the **ImageProcessingHub** feature is enabled for your tenent). Tenant administrators can now configure and manage settings of **AI-powered image operations**: select an **AI vendor** and customize **service-specific settings** for operations like:
    - Background removal
    - Vectorization
    - Text-to-image generation
    - Image upscaling

- Added the possibility to use product bundles (if the **ProductBundle** feature is enabled) to create and manage **personalized product sets** (e.g., gift boxes, kits) in the **BackOffice** in a new **"Bundles"** section under **Products**.

### Personalization Platform API

#### MockupLink Support

- Introduced a new **MockupLink** type for **2D mockups**, enabling dynamic linking and rendering.
- Added **MockupLink** support in:
  - **Preview rendering** via **DesignAtomsApi**.
  - **Resource preparation** for **PIM product variants**.
  - **Rendering tasks** in **RenderingNode**.
- Enabled **automatic generation** of **MockupLink** from **PSD mockup containers**.

#### Error Handling & Data Processing

- Adapted **error response concepts** (based on the **ImageProcessingHub** model) for better consistency.
- Added support for setting `GroupId` in **ProjectItem** for improved organization.

#### Pipeline & Rendering

- Added **fallback keys** for **custom-fields** with spaces during pipeline compilation.
- Added support for the [`upload-to-onedrive`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/upload-to-onedrive.md) rendering task.

## November 2025

### Tenant admin & user

- You can now create projects directly while testing products in the BackOffice. Previously, after previewing a product, an editor would only output a JSON model to the console. Now, with a single click in the Preview mode, you can generate a full project for PIM products or product specifications—without leaving the BackOffice panel.
- The **Print file name template** editor's setting is now automatically hidden in the BackOffice panel when Design Editor rendering is unavailable.
- You can now view the `lineItemId` of an order when inspecting project properties in the BackOffice panel.
- Improved Handy Editor styles in BackOffice for better user experience.

### Personalization Platform API

- You can now process projects with product versioning support in the Storefront Projects API.
- The `draw-crop-marks` task now allows you to limit the length of the black and white crop lines through the `drawCropMarkBlackCropLineMaxLength` and `drawCropMarkWhiteCropLineMaxLength` parameters, correspondingly.
- Added a custom task `sn-export-order-details-to-csv` that generates a CSV file with order information, including: order number, ordered items, customer/company name, order cost.

## October 2025

### Tenant admin & user

- Enhanced project tracking by displaying processing pipeline information on the project rendering jobs page.
- Adjusted permissions for User-level accounts to include the ability to download asset files.

### Personalization Platform API

- Removed explicit handling of OPTIONS requests in the internal BackOffice API. Previously, OPTIONS requests were incorrectly processed as GET-like operations. Now, the API will only confirm endpoint availability for OPTIONS requests, as intended.
- Adjusted CORS-policy configuration for the BackOffice API and Accounting API.

### Workflow elements

- Expanded mobile support with a lightweight version of the Handy Editor, offering core functionality for on-the-go editing.

## September 2025

### Tenant admin & user

- Improved user experience with table operations.

### Personalization Platform API

#### Rendering & Pipeline Enhancements

- Added a [`render-vdp-preview`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/render-vdp-preview.md) task to generate previews for VDP (Variable Data Printing) orders as a set of single images, simulating a multi-page PDF. Each record in the design's dataset is rendered as a separate page with a mockup.
- Added support for complex conditional logic in rendering pipelines, enabling more dynamic workflows:
    - Introduced inversion in expressions (e.g., `skipIf: "{{artifact-name?}}!="`).
    - Added `SkipIfAny`, `SkipIfAll`, `SkipIfNotAny`, and `SkipIfNotAll` conditions for finer control over task processing. For more details, see the [Flow Concepts Topic](https://customerscanvas.com/docs/hub/printer-guide/pipelines/concepts/flow.md).

#### Input & Artifact Handling

- Added support for PNG and JPEG inputs in the [`merge-separate-pages`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/merge-separate-pages.md) task, expanding file format compatibility.
- You can now use collections of artifacts in the [`render-image-preview-with-mockup`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/render-image-preview-with-mockup.md) task, streamlining batch processing.
- Added a `RetentionPolicy` filter when retrieving private assets via the Asset Storage API, improving asset management.

#### BackOffice API Updates

- Introduced a new endpoint `​/api​/backoffice​/v1​/products​/{id}​/set-image` to set a thumbnail image for an existing product via API.
- UIDs are now used as keys for options and option values when creating or removing PIM product asset connections, ensuring consistent asset binding.

## August 2025

### Tenant admin & user

- Added the possibility to embed assets when creating a project.
- Improved the speed of reading folder contents with a large amount of nested data.

### Personalization Platform API

- Introduced a new API for working with multi-page images, offering the following capabilities:

    - Retrieve a preview of a specified page from a multi-page image.
    - Extract a specific page from a multi-page image.
    - Obtain a preview of a specified page from a multi-page image, including the mockup.
    - Create a design element based on a specified page from a multi-page image.

- Added an `IncludeAnonymous` flag to the endpoint [`GET /api/storefront/v1/storefront-users`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/storefrontusers/GetAll) to filter out temporary (anonymous) users.
- Implemented the endpoint [`/api/processor/v1/designs/{id}/embed-all-linked-data`](https://customerscanvas.com/docs/hub/dev-center/api/asset-processor.md#tag/designprocessor/EmbedAllLinkedData) to embed all external assets referenced in a design, improving integration capabilities.
- Added the possibility to select the output file type, either `"Jpeg"` or `"Png"`, in `PrintProductItem.ExtractImage` endpoints.
- Added a [`populate-psd-template`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/populate-psd-template.md) rendering task to populate smart objects in PSD templates with artifacts.

## July 2025

### Tenant admin & user

- Added validation mechanism for filling fields in pricing rules dialogs:
    - Titles must be unique and non-empty for PriceRule and DiscountRule.
    - Formulas must meet the requirements for PriceRule and DiscountRule.
- Improved performance of the asset selection component in the Product Specification wizard.

### Personalization Platform API

- Added missing fonts validation for importing PSD and IDML templates to the Asset Processor API when fonts are specified through `Family` and `Style`.
- Improved error messages for `ImageItem` recoloring in the Design Atoms API. These errors now report status `409`.
- Added the `stub` property to `renderingConfig` of the `POST ​/api​/atoms​/v1​/designs​/render-preview` endpoint to disable placeholder's stub content when rendering design preview. To do so, set this property to `false`.
- Added the `HasContent` tag to `FolderInfoDto` in the Asset Storage API. Unlike the `HasChildern` tag, `HasContent` allows you to check not only the nested folders but also files.

## June 2025

### Tenant admin & user

- Introduced significant improvements to product specifications:

    - Improved user experience while creating product specifications with a new tab-based configuration wizard.
    - Improved display of product specifications whose associated workflow or pipeline has been removed.
    - Refined the connection between product specifications and e-commerce products.
    - Automatically import attribute descriptions from pipelines into product specifications.

- Added the possibility to restart failed projects from the context menu in the project list.
- Improved user experience when working with group operations to delete table entries and managing product links.

### Personalization Platform API

- Introduced a new [BackOffice API](https://customerscanvas.com/docs/hub/dev-center/api.md) designed to manage tenant-related data within the Personalization Platform. This includes:

    - User management capabilities through dedicated endpoints.
    - Storefront management features, allowing administrators to control front-end configurations.
    - Endpoints for managing products, including creation based on predefined models.
    - Ability to attach assets to products and connect them to e-commerce products.
    - Set availability (`isAvailable`) and Stock Keeping Unit (SKU) values for product variants.
    - Support for bulk imports of products from CSV files.
    - Specific permissions for managing storefronts and tenant users in the application settings.

- Added an [`extract-design-images`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/extract-design-images.md) rendering task to extract original images.
- Added support for SSH public key auth for SFTP file uploading in the [`upload-to-ftp`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/upload-to-ftp.md) task.
- Implemented `/api/atoms/v1/designs/{id}/apply-items-data` endpoint in the Design Atoms API. It allows you to set values for design items that are not marked with the `isVariable` flag through an `itemsData` object.

## May 2025

Released an internal technical update. While no noticeable changes affect the end-user experience, this update introduces important optimizations and improvements under the hood to ensure higher stability and performance. No action is required from users.

Key Changes in This Release:
- Upgraded Design Atoms to version 7.1.42.
- Enhanced the functionality of loading specification lists for better performance and accuracy.
- Revised the logic for generating blank designs based on templates: containers and all related information, including surface items, are now transferred during creation.

## April 2025

### Tenant admin & user

- Introduced significant changes to PIM products and product links. A self-sufficient product will no longer contain a product link, which in turn becomes a separate concept in the PIM module. Although previously created products will work as before, they will be displayed in a new way in the BackOffice panel. Key changes:

    - The **Products** section no longer contains product links, which are moved to a new **Product links** section.
    - Added saving of the workflow and pipeline name within a product and a product link.
    - Added validation for products and product links and display of the conflict icon **(!)** in the BackOffice panel:
        - Missing persionalization workflow.
        - Missing processing pipeline.
        - When a product link refers to an outdated version of the product.
    - Updated e-commerce product binding scheme:
        - Enabled creating bindings for multiple products or product links.
        - Allowed setting custom names for references.
        - Prioritized handling orders: product specification > product link > product.
    - Adapted project processing to the scheme with separated product links.
    
- Preview Preparation Improvements:
    - Different smart objects in a PSD mockup can now represent different pages, allowing users to view all of them whithin a single mockup image.
    - Introduced markers for smart objects, which are applied during the preparation of preview images. The marker format is `[<name> <key>=<value>, ...]`.
    - Added a `[bind]` marker to preview a design or an image. For example, adding `[bind surface="Front", container="UVB"]` to a smart object's layer name renders the **"Front"** surface into that smart object, using only the **"UVB"** container.
    - Added an `[embossed]` marker to preview a design or an image. For example, adding `[embossed effect=deboss, angle=45, depth=10, strength=20]` to a smart object's layer name applies an embossing effect to the content of that smart object.
- Bulk Deletion Support:
    - Added support for bulk deletion of table records.
    - Introduced mass deletion capability for products.

### Personalization Platform API

- Introduced significant changes to PIM products and product links. The Storefront API will now contain controllers for both product specifications and PIM products. Key changes:

    - **Deprecated** the Storefront Products API and moved `ProductsController` to the Storefront API.
    - Marked `ProductReferencesExtController` and certain methods in `ProductsController` as **Not recommended**.
    - Added a separate `ProductLinkController` to the Storefront API with methods for retrieving product links and summaries.
    - Updated `ProductDTO` to include `Image` and default `StorefrontId`, `StorefrontProductId`, and `StorefrontProductName` based on the first `ProductReference`.

- Improved API Client Functionality:
    - Generated API clients now support different `Content-Type` headers for various response codes.
- Rendering Task Enhancements:
    - Added the `PdfKeepOriginalColors` parameter to the `render-hires` and `render-vdp-hires` tasks.
    - Added a `render-design-preview-with-mockup` task to prepare a design preview with using a PSD mockup. This task implements the `POST ​/api​/atoms​/v1​/designs​/render-preview` endpoint.
    - Added a `render-image-preview-with-mockup` task to prepare an image preview with using a PSD mockup. This task implements the `POST ​/api​/atoms​/v1​/images​/render-preview` endpoint.

## March 2025

### Tenant admin & user

- Added support for working with containers and their palettes in Personalization Platform services. If a palette UID is set when defining an image, the new image item is automatically recolored and image effects are applied with the selected palette. When an image is added to a container, the image will also be recolored to the target pallete.
- Now, [palette previews](https://customerscanvas.com/docs/hub/admin-guide/manage-assets/palettes.md) can be viewed in the file manager, and their UIDs are displayed in the **Properties** panel.
- Added the possibility to export all PIM products and options to a CSV file. In the **Products** section, use the **Export** button.
- Improved user experience with table operations. Multi-select feature was added, allowing users to select and delete groups of table rows, simplifying the process of deleting items from the database. Bulk deletion is now available for projects, product specifications, personalization workflows, and processing pipelines.
- Improved user experience with personalization workflows and processing pipelines by adding an ID column to their lists.
- Added a project owner update when merging users.

### Personalization Platform API

- Improved the Design Atoms API for working with the product model:
    - Implemented `​/api​/atoms​/v1​/designs​/{id}​/print-product​/containers` endpoints for manipulating surface containers.
    - Implemented `​/api​/atoms​/v1​/designs​/{id}​/print-product​/items` endpoints for manipulating surface container items.
    - Implemented `​/api​/atoms​/v1​/designs​/{id}​/print-product​/print-areas` endpoints for creating a print-area and updating its parameters based on the description.
    - Added the possibility to add custom headers to the request when creating an image item using URL to simplify working with client storages.
- Added the `/api/rendering/v1/jobs/update-project-owner` endpoint for batch updating project owners in rendering jobs in the Rendering Service API.
- Added the `hiResOutputRotateMode` parameter to the `render-vdp-hires` and `render-hires` tasks to rotate output images.

## February 2025

### Tenant admin & user

- Added a new type of assets, palettes. Сurrently the functionality is limited, but you can already import color palettes to the **Palettes** section to link them to your design files later.
- Added the possibility to create a new [blank design based on template](https://customerscanvas.com/docs/hub/admin-guide/manage-assets/design/create-new-design.md). To create one, navigate to **Designs**, click **New** > **Design file** > **Template**, and select a design template.
- Added the possibility to preview different workflow types for a singe product.
- Improved user experience when working with tables.
- Improved invalidation of Design Editor tokens.

### Personalization Platform API

- Implemented `​/api​/atoms​/v1​/designs​/{id}​/print-product` endpoints for manipulating a product model in the Design Atoms API: surfaces, surface mockups, and print areas. For more details, refer to the [Working with print product model](https://customerscanvas.com/docs/hub/dev-center/api/design-atoms/working-with-print-product-model.md) topic.
- The `render-hires` and `render-vdp-hires` tasks now support BMP output format.
- Added endpoints to the Asset Storage API to delete asset folders by ID.
- Added the `​/api​/storage​/v1​/resources​/namespaces​/{namespace}` endpoint to the Asset Storage API to delete resources by namespace.

## December 2024

### Tenant admin & user

- Added support for graphics in EPS format. Implemented an EpsConverter service that accepts an EPS file as input and returns the result in PDF format.
- Improved user experience with displaying tables. Visualization settings are now saved in the user's profile.

### Personalization Platform API

- Added the possibility to upload print files to Dropbox and GoogleDrive. To do so, add the `upload-to-dropbox` and `upload-to-google-drive` tasks to your pipeline.
- Added new endpoints to the Design Atoms API to create multiple images from the following sources:
    - Asset storage by IDs `​/api​/atoms​/v1​/designs​/model​/items​/from-storage​/batch-create`
    - Remote Web images by URLs `​/api​/atoms​/v1​/designs​/model​/items​/from-url​/batch-create`
    - Input files `​/api​/atoms​/v1​/designs​/model​/items​/from-file​/batch-create`
- Added the possibility to overwrite preview images rendered and saved to resources if they already exist. To do so, use the `overwriteExistingResource` parameter in the `/api/atoms/v1/images/render-preview/to-resource` group of endpoints.

## June 2024

### Tenant admin & user

- Added support for ECMA A60.20.00.03 mockup.
- Added animation, faces, and cameras to ECMA B20.01.00.50 and ECMA A20.20.03.03.
- Added the possibility to generate colors of the background and substrate mockups.
- Added the **ID** field to the **Info** window of color profiles and fonts.
- Improved the table view layout.

## May 2024

### Tenant admin & user

- Added animation, faces, and cameras to ECMA A20.20.01.01, ECMA A20.20.01.03, and ECMA A55.20.01.01.
- Improved page layouts for projects.

### Personalization Platform API

- You can now retrieve metadata from M3D files through `/api/atoms/v1/mockups-3d/{id}/attributes` when a mockup was created through the endpoint `/api/asset-generator/v1/mockups/generate`.
- Added an endpoint `/api/storefront/v1/tenant-info/measure-units` for getting tenant measure units.

## March 2024

### Tenant admin & user

- Added support for custom fields and tags in pipeline arguments. You can refer to them as `{{product.customFields.MyField}}` and `{{product.tags.MyTag}}`.
- Added the possibility to run processing pipelines in projects manually.
- Improved user experience with editing PIM products. You can now stay on the product page after publishing a product.

### Personalization Platform API

- Added endpoints that return workflow information for PIM Products to Storefront.Product API.
- Added endpoints that return workflow information for Product Specifications to Storefront API.
- Added endpoints that manage processing pipelines to Storefront API.
- Added the possibility to create projects based on a custom scenario for processing pipelines with the endpoint [`/api/storefront/v1/projects/by-scenario/specific-pipeline`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/projects/CreateBySpecificPipelineScenario).
- Now, if the product has linked design and mockup, then the endpoint for getting design variants returns information about the mockup used for the resource preview of the PIM product variant.
- Added the possibility to filter the projects by their processing status in the endpoint `/api/storefront/v1/projects`.
- Added the possibility to filter designs and mockups by folder and custom fields in the endpoints `/api/storefront/v1/products/{id}/variant-designs` and `/api/storefront/v1/products/{id}/variant-mockups`.

## February 2024

### Tenant admin & user

- Improved user experience of creating data schemas and data sets.

### Personalization Platform API

- Added an endpoint `/api/processor/v1/designs/{id}/calculate-count-per-sheet` to estimate the number of designs that can fit a given page.
- Added the possibility to filter product links by tags and custom fields.
- The `render-vdp-hires` task now supports the print area filter.

## January 2024

### Tenant admin & user

- Improved the structure of the main menu.
- The **Website** entity has been renamed to **Integration**.

### Personalization Platform API

- Added endpoints that render private designs with preview mockups into an image and save this combined image in assets storage.
- Added an endpoint for getting information about the specified product variant.
- You can now apply a filter by design name in endpoints getting product variant designs.

## December 2023

### Tenant admin & user

- Added support for _custom fields_ in PIM products. This linking tool allows you to add some information to a product in the key-value format. You can now specify arbitrary named properties in the product customization form.
- Added support for _tags_ in PIM products. You can now mark products by tags to organize their binding. For example, using tags, you can calculate the price, assign discounts, organize a grouping of products by assigning the same tag to your favorite products.
- Added description of camera positions to metadata of 3D mockups.

### Personalization Platform API

- You can now define how images should be inserted into placeholders when rendering mockup-based product previews through the `FitMode` parameter of the `render-image-preview` task in Design Atoms Api.
- Now missing extensions of downloaded files will be added automatically depending on their format.
- Improved the text rendering. The `draw-crop-marks`, `render-hires`, and `render-vdp-hires` tasks can now save text as text in print files. To do so, set the `PdfTextOutputMode` rendering parameter to `text`. By default, these tasks output text as vector outlines.
- Added the possibility to retrieve the source of image items by using the Design Atoms API.

## November 2023

### Tenant admin & user

- Improved the loading performance of PIM products.

### Personalization Platform API

- The `render-image-preview` task now supports images from Asset Storage and 3D mockups.
- Added the possibility to copy resources in Asset Storage.
- You can now refer to Asset Storage resources when creating a project.
- Added the possibility to render project previews.
- Added the possibility to search product references by SKU.

## October 2023

### Tenant admin & user

- Improved user experience of editing SKU in the PIM module:
    - Added the possibility to mass select SKUs when editing products.
    - Returned the possibility to enable multi-selection when filtering options.
- Added the possibility to specify the workflow and pipeline when importing products.

### Personalization Platform API

- Added support for multiple API keys in Personalization Platform APIs.

### Storefront

- A more secure architecture was implemented in StorefrontJS 1.2.16. if you are migrating from earlier versions, you should change the storefront initialization and the way to get the integration model in your code. For more details, refer to the [Getting started](https://customerscanvas.com/docs/hub/dev-center/frontend-integration/ui-framework/storefrontjs/getting-started.md) topic.

## September 2023

### Tenant admin & user

- You can now generate mockups for packaging based on the model name and a set of related parameters. You can also create a design that matches this 3D mockup.
- Added the possibility to start processing projects when they move to different statuses, and not immediately after creating the project.
- Predefined the order of the main menu items. Now, the menu only depends on the edition type.

### Personalization Platform API

- Added support for private mockups to the Design Atoms API.
- Added the possibility to create rendering jobs without starting them automatically.
- You can now omit the `customers-canvas` namespace when defining rendering tasks. It will be used by default.

## August 2023

### Tenant admin & user

- Both product specifications and PIM products now support processing pipelines.
- Improved user experience with displaying project data and details of its processing pipeline on the same screen.
- Improved user experience of editing SKU in the PIM module:
    - The **SKU** tab has been renamed to **Variants**.
    - Added the option filters to the **Variants** tab. An option value for a single selection will be displayed as text. If you have selected several values, their number will appear in the option filter.
    - A new button **Clear all** will appear if at least one filter is selected.

### Personalization Platform API

- Added support for private mockups to the Asset Storage API and Asset Processor API.
- Added the possibility to search products and variants by SKU.

## July 2023

### Tenant admin & user

- Added the possibility to enable processing pipelines for product specifications. Now, the **Pipelines** tab will be displayed in the Customer's Canvas tenant.
- Added support for importing PIM products and options from CSV files.
- Added a confirmation dialog when closing an account.
- Improved user experience with editing PIM products. You can now change the link to e-commerce product.

### Personalization Platform API

- Changed parameters of the `invoke-url` task. You can now define an HTTP method, HTTP headers, and query parameters.

## June 2023

### Tenant admin & user

- Added visualization of the current usage of rendering credits and tenant storage.
- Added the possibility to reset the tenant password from the login page.
- Added the possibility to remove projects through the user interface of BackOffice.
- Added support for PIM metadata used to display product options.
- Improved user experience with editing options of PIM products. The former tab **Variants** was renamed to **Options**. The preview or product variants was removed from the user interface.
- Improved user experience with editing product links in the PIM module.

### Personalization Platform API

- Added support for authorization through tokens.
- Added tenant ID information to all endpoints.
- Added support for the Order Desk. You can now use `export-to-order-desk` and `change-group-in-order-desk` tasks to export and arrange project artifacts.

### Storefront

- Added a new integration of the `ShopifyCustom` type based on a Shopify Custom App.
- Added the possibility to disconnect Shopify integrations to remove subscriptions to webhooks.

## May 2023

### Tenant admin & user

- Added the possibility to view images in the **Designs**, **Mockups**, and **Images** asset sections in lightbox.

### Personalization Platform API

- Added an `extract-project-resource` task to rendering jobs for retrieving a resource and placing it in artifact storage.
- Added an `export-to-ecommerce` task to rendering jobs for attaching data to an e-commerce order. You can add plain text, comma-separated list, or JSON values to an order.
- Added a `draw-crop-marks` task to rendering jobs to draw crop marks and slug.
- Added the possibility to pass a template name to the `produce-imposition` task.
- Added endpoint for attaching data to an e-commerce order [`/api/storefront/v1/projects/{id}/order-data`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/projects/AttachDataToProjectOrder).
- Now, working with folders in Asset Storage is case-insensitive.
- Added a ban on creating jobs without a `finalize` task to the Rendering Service.

### Storefront

- Implemented an interface for adding data to an order in `WooCommerceProvider`.

## April 2023

### Tenant admin & user

- Added support for data retention policy.
- Implemented auto-formatting when opening and saving files, pasting fragments, and by using the **Shift+Alt+F** key combination in the JSON Editor.
- Improved user experience with the **Login** and **Password change** dialogs.

## March 2023

### Tenant admin & user

- Added the possibility to define settings of [custom apps](https://customerscanvas.com/docs/hub/admin-guide/settings/external-apps.md).
- Added a preview of 3D (2D) mockups to the Attribute manager.
- For products using the Simple Editor, you can now enable the test and preview.
- Improved page layouts.

### Personalization Platform API

- Added endpoints for getting the results of project processing [`/api/storefront/v1/projects/{id}/processing-results`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/projects/GetProjectProcessingResults), resuming the project processing [`/api/storefront/v1/projects/{id}/resume-processing`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/projects/ResumeProjectProcessing), and restarting the project processing [`/api/storefront/v1/projects/{id}/restart-processing`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/projects/RestartProjectProcessing).
- Added the possibility to create projects based on a scenario with [`/api/storefront/v1/projects/by-scenario/render-hires`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/projects/CreateByRenderHiResScenario).
- Added endpoint [`/api/storefront/v1/product-references/product-links`](https://customerscanvas.com/docs/hub/dev-center/api/storefront.md#tag/productreferences/GetAllProductLinks) to get a list of product links connected to products in storefronts.

### Storefront

- Added the `productLinkId`, `productVersionId`, and `productId` fields to  `IntegrationInfo` for convenient work with PIM Widgets.

## February 2023

### Tenant admin & user

- Add the possibility to edit password settings for default roles.
- Composed a list of names, for example, **host** or **admin**, so that tenants with such names cannot be created.
- Improved user experience with the folder tree when copying and moving assets.
- Added section descriptions to the home page of tenants.

### Personalization Platform API

- The endpoints for [creating private designs from templates](https://customerscanvas.com/docs/hub/dev-center/api/asset-processor.md#tag/privatedesignprocessor/CopyDesignFromPublicDesign) and [creating private designs from resources](https://customerscanvas.com/docs/hub/dev-center/api/asset-processor.md#tag/privatedesignprocessor/CopyDesignFromPublicResource) were moved from Design Atoms API to Asset Processor API.

## January 2021

Added an API Gateway with Swagger UI client. See [API Reference](https://customerscanvas.com/docs/hub/dev-center/api.md) for details.

## Initial Release

This is a first release which includes not just the Design Editor, but also:

- BackOffice application
- Back-end services (as explained in the [Personalization Platform API](https://customerscanvas.com/docs/hub/dev-center/api.md) article).
