Nhat Luu
Optimizely
Oct 12, 2018
visibility 4160
star star star star star
(3 votes)

Display all Opt-in processes in EPiServer Campaign Connector

By default, EPiServer Campaign Connector only displays opt-in processes of type Double: 

However, sometimes we want to display opt-in processes of other types (Single, Confirmed). We can easily achieve this by overriding the default behaviour.

Firstly, we need to create a class which inherits from the default OptinProcesseService, then override the GetAllowedOptInProcesses method:

public class CustomOptinProcessServive : OptinProcessService
{
    ...

    public override IEnumerable<SelectItem> GetAllowedOptInProcesses()
    {
        // GetAllOptInProcesses() returns a list of all opt-in processes where each item is a Tuple<long, string, string>:
        // + Item1 is the Id of the optin process
        // + Item2 is the Name of the optin process
        // + Item3 is the Type of the optin process
        return GetAllOptInProcesses().Select(x => new SelectItem() { Text = x.Item2, Value = x.Item1 });
    }

    ...
}

Then register the above class as the default implementation for IOptinProcessService:

context.ConfigurationComplete += (o, e) =>
{
    context.Services.AddTransient<IOptinProcessService, CustomOptinProcessServive>();
};

Now the Opt-in process drop-down will display all opt-in processes:

Oct 12, 2018

Comments

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