Skip to content

Changelog - January, 2026

New Features

Email API Events

Programmatic Template Updates

The new updateTemplate function replaces the entire email template at runtime. Unlike load, which handles the initial template, updateTemplate is built for in-session updates while the editor is active. It validates the template against Topol's schema, creates an undo snapshot (configurable), and marks the template as edited.

Programmatic updates enable real-time template sync with external systems, collaborative editing, and automation-driven content changes without manual user interaction. The undo snapshot keeps programmatic changes reversible, and the onError and onTemplateUpdated callbacks report failure and confirmation for integrations.

updateTemplate is available on the TopolPlugin instance and accepts a template object or JSON string:

js
window.TopolPlugin.updateTemplate(templateJson);

To skip the undo snapshot (for example when syncing with external state), pass the skipSnapshot option:

js
window.TopolPlugin.updateTemplate(templateJson, { skipSnapshot: true });

For full details, see the documentation.

Email UI/UX Config

Dark Mode Email Preview

A built-in dark mode preview shows how a template will likely appear in dark mode on recipient devices. A toggle in Preview mode applies an approximation of the color transformations email clients perform when rendering in dark mode.

Most major clients (Gmail, Outlook, Apple Mail, Yahoo Mail) apply their own dark mode rendering, often reworking backgrounds, text colors, and images in ways that break a careful layout. The preview gives immediate visual feedback during development, instead of sending test emails to each client to check dark mode compatibility.

Add this option to TOPOL_OPTIONS:

ts
enableDarkMode: true,

For full details, see the documentation.

Email Config UI/UX

Synced Sections

Synced Sections reuse content across templates and keep it synchronized. Regular saved blocks create an independent copy on insertion; a synced section keeps a live connection to every template it appears in, so editing it once updates it everywhere.

Recurring content (headers, footers, legal disclaimers, branded sections) often needs the same update across dozens of templates. With regular saved blocks, each copy is updated individually. Synced Sections propagate the change automatically, which cuts manual effort and the risk of outdated content reaching recipients.

Turn it on by setting syncedSectionsEnabled to true in TOPOL_OPTIONS:

ts
syncedSectionsEnabled: true,

Users can then save a structure as synced through "Save as Synced structure" in the section actions menu. To refresh the listing and reload the template with the latest changes programmatically, call:

js
TopolPlugin.refreshSyncedSections();

For full details, see the documentation.

Improvements

Email UI/UX Config

Tiptap Text Editor

Tiptap is now available as an alternative to the default TinyMCE text editor. It is a lightweight, modern editor with a more minimal interface, and offering both lets each integration pick the editor that fits its users.

Set the textEditor option to "tiptap" in TOPOL_OPTIONS:

ts
textEditor: "tiptap",

For full details, see the documentation.

Email Config UI/UX

Option to Hide Pexels Integration

Setting hidePexelsIntegration to true in the fileManagerPreferences object now removes the built-in Pexels stock photo integration from the File Manager, controlling which image sources users see.

For full details, see the documentation.

Email API Config

API-Based Configuration for Saved Blocks and Synced Sections

Saved blocks and synced sections now support a fully API-based configuration. Setting savedBlocks to true and configuring the API.SAVED_SECTIONS endpoint stores and manages both on your own server, with folders, search, pagination, and preview images.

ts
const TOPOL_OPTIONS = {
  savedBlocks: true,
  syncedSectionsEnabled: true,
  api: {
    SAVED_SECTIONS: "https://your-domain.com/saved-blocks",
  },
};

Both use the same endpoint, differentiated by the type field in API requests and responses. For full details, see the documentation.

Email Config UI/UX

Multilingual Preheader Support

Preheader text in multilingual templates is now language-specific. Each language mutation carries its own preheader instead of sharing one across all versions, so the inbox preview text matches the language of the email content.

Bugfixes

  • Email Resolved an issue where the editor failed to load in Django-based applications: Django's default same-origin referrer policy stripped the parent page's origin from document.referrer, so the authorization payload omitted the required hostname.