Skip to content

Changelog - March, 2026

New Features

Template Translation

You can now translate email templates using AI directly inside the editor. Translate the entire template at once, or translate individual blocks through the AI context menu block by block.

Why It Matters

Previously, localizing templates required exporting the content, translating it in an external tool, and pasting it back in - a process that often breaks formatting or corrupts Merge Tags. Template Translation performs translations in-place, preserving your structure, styles, and Merge Tags throughout the process.

The feature uses the same OpenAI integration as the AI Assistant, so no additional AI setup is required if you already have the AI Assistant configured. When combined with Multilingual Templates, translations are automatically stored in the correct language mutation.

How To Enable

A valid OpenAI API token must be configured in your Plugin API token settings. Once enabled, a Translate button appears in the Top Bar. When Multilingual Templates is enabled, the translate action is available next to each language mutation in the language settings dropdown.

For full details, please refer to the documentation.

Improvements

Limit the Number of Files Uploaded at Once

You can now limit the number of files users can upload simultaneously in the File Manager. The new maxUploadingFiles option sets the maximum number of files that can be selected in a single upload. Files exceeding the limit are skipped and a notification is shown. For example, setting the value to 1 switches the browser file picker to single-file mode.

Why It Matters

Integrations that proxy uploads to rate-limited services or perform per-file server-side validation can be overwhelmed by large batch uploads. By setting an upload limit, you can prevent this without needing to implement a Custom File Manager.

How To Enable

Add maxUploadingFiles to the fileManagerPreferences object in your TOPOL_OPTIONS configuration:

ts
fileManagerPreferences: {
  maxUploadingFiles: 5,
},

For full details, please refer to the documentation.

Better Error Details in onError

The onError callback now accepts an optional third parameter, responseBody, containing the parsed response body from your server. Previously, the callback only provided a generic message such as "Request failed with status code 422" with no access to the underlying server response.

Why It Matters

When your backend returns descriptive error messages (e.g., "File exceeds 10 MB limit"), you can now read them from responseBody and display them to users using TopolPlugin.createNotification(), replacing generic status code messages with actionable feedback.

How To Enable

No additional configuration is required. Add the third parameter to your existing onError callback:

ts
callbacks: {
  onError(error, statusCode, responseBody) {
    console.log(responseBody); // parsed server response
  },
},

For full details, please refer to the documentation.

Merge Tag Search in TipTap Toolbar Shows Full Paths

When searching for Merge Tags in the TipTap toolbar dropdown, results now display the full breadcrumb path (e.g., "Contact > Personal > First Name") instead of only the tag name. The tree view continues to show short names when browsing.

Why It Matters

For deeply nested merge tag structures, searching for a common term like "Name" previously returned a flat list with no indication of which group each tag belonged to. The full breadcrumb path provides immediate context, making it easier to identify and select the correct tag.

Bugfixes

  • Fixed an issue where the "Image size options" dropdown label and its values ("cover", "auto", "contain") were not recognized by textOverride.
  • Fixed an issue where switching language mutations in preview mode did not reset the Dark mode toggle.