Bartosz Sekula
Optimizely
Nov 20, 2018
visibility 4558
star star star star star
(4 votes)

Delayed approval email notifications

Up to this point, if you had SMTP configured, your editors would receive immediate emails about every approval step that the content went into.

In cases when a page goes through a long approval sequence - is reviewed at few steps, declined, marked as ready for review once again, approved, etc. it would cause the editors to be flooded with emails.

Version 11.13.0 of EPiServer.CMS.UI brings an improvement to our Content Approval email notifications. 

The frequency of incoming emails is now just dependent on the Notification Dispatcher scheduled job interval setting (configured in the admin mode, nothing changed about it) which means that a single editor will only receive a single email with a batch of all Approval related notifications.

An example email that contains 4 notifications about two different content items is presented below:

By adding the following module:

[ModuleDependency(typeof(FrameworkInitialization))]
[InitializableModule]
public class ApprovalNotificationInitialization : IConfigurableModule
{
	public void ConfigureContainer(ServiceConfigurationContext context)
	{
		context.Services.Configure<ApprovalNotificationOptions>(options => options.Immediate = true);
	}

	public void Initialize(InitializationEngine context)
	{
	}

	public void Uninitialize(InitializationEngine context)
	{
	}
}

you can turn this feature off and not have the emails bundled.

Nov 20, 2018

Comments

Aria Zanganeh
Aria Zanganeh Nov 21, 2018 11:53 PM

For one of customer there were looking for this for a long time :) 

error Please login to comment.
Latest blogs
Surviving a Dirty Feed. Part 3: Error Handling and Event Batching

Committing a 250,000-row Optimizely catalog import row by row, returning a per-row failure report, and coalescing catalog events into one per batch.

Stanisław Szołkowski | Oct 16, 2026 |

Building UI Extensions for Optimizely SaaS CMS

Introduction Developers have been extending the functionality of Optimizely PaaS CMS for years using addons built in C# and deployed as NuGet...

Mark Stott | Oct 15, 2026

Cheapskate AI Translator: Because Translation Should Not Require a Second Mortgage

There is a particular kind of software project that begins with a detailed architecture document, a product roadmap, and a carefully assembled...

Linh Doan Cuu | Oct 15, 2026

Computed Fields in CMS 13 Content Contracts with Optimizely Graph

Content Contracts in Optimizely CMS 13 allow different content types to share a common structure when querying Optimizely Graph. But what if the...

Mardy | Oct 14, 2026