Appearance
Changelog - December, 2025
New Features
Multilingual Templates
Multilingual Templates hold multiple language versions of one email in a single template file. Language mutations share the same structure but carry localized content, so there is no need to duplicate a template per language.
One template is the single source of truth for every language variant. A layout change applies to all languages at once, which keeps layouts consistent across translations and avoids version drift in international campaigns.
Add this option to TOPOL_OPTIONS:
ts
multilingual: true,Language mutations are then managed from the editor's top bar. On save, the onSave callback includes a mutations array with all language variants, so integrations can store and process them correctly. Language-specific HTML comes from the JSON-to-HTML conversion API (in the next section).
For full details, see the documentation.
Custom Language Preset
A custom language list can now replace the default set in the Multilingual Templates dropdown. The list specifies exactly which languages appear (with custom names, codes, and native names) and whether it replaces or extends the defaults.
The built-in list may not cover every language variant a team supports, or a team may want to match specific markets or internal conventions. A Custom Language Preset controls exactly which options users see in the editor.
Add a customLanguagePreset object to TOPOL_OPTIONS with a langs array and an override flag:
ts
customLanguagePreset: {
langs: [
{ name: "Spanish (Spain)", code: "es-ES", nativeName: "Español (España)" },
{ name: "Portuguese (Brazil)", code: "pt-BR", nativeName: "Português (Brasil)" },
],
override: true, // defaults to true
}langsdefines the custom languages with display names and codes.overridesets whether this list replaces (true) or appends to (false) the default languages.
For full details, see the documentation.
Default Template Language Versions
Default language versions are now created automatically when a new multilingual template is initialized, so each new template starts with a predefined set of language variants instead of manual setup.
Consistent language availability across all new templates saves setup time and reduces errors in localization-heavy projects.
Set the templateLanguageVersions option inside defaultTemplateSettings to specify which language versions are created automatically.
For full details, see the documentation.
CRM Integration Demo
A new CRM Integration Demo walks through an end-to-end integration of the Plugin with a CRM-style application. It covers initializing the editor, loading and saving templates, and working with editor callbacks in a real integration, as a reference for building custom email-editing workflows on Topol.
See the demo website or the documentation.
Improvements
Option to Hide Multilingual Templates Dropdown from the Top Bar
Adding the changeLanguage identifier to the topBarOptions array now hides the Multilingual Templates language selector from the editor's top bar.
More details in the documentation.
Callable Functions to Control Multilingual Templates via Custom UI
A new set of callable functions manages Multilingual Templates from a custom UI, without the editor's built-in language controls. They create, delete, select, and set the primary language programmatically:
createLanguage(lang): create a new language mutationdeleteLanguage(lang): delete an existing language mutationselectLanguage(lang): switch to a specific language mutationsetPrimaryLanguage(lang): mark a language mutation as primary
For full specifications, see the documentation.
Bugfixes
- Email Fixed a few visual issues with Gradients and Hover effects.
