Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

Dev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Connect for Campaign

Connects Optimizely Campaign with Optimizely Content Management System and Optimizely Forms.

With this add-on, marketers can collect visitor data and pass that on to Optimizely Campaign, for usage in campaign mailings.

Prerequisites

An Optimizely Content Management System (CMS) installation with Optimizely Forms, Optimizely Campaign, and the required Optimizely Connect for Marketing Automation.

Install

The Connect for Campaign MA connector is installed through the NuGet package EPiServer.ConnectForCampaign. See Add-ons platform compatibility for supported Optimizely versions.

Configure

Authenticate Connect for Campaign

The user being used for the connector must have API privileges. If your user does not have API access privileges, you must submit a Support ticket to create a user specifically for API access. Include the name of the client for whom you want the user created, and which API access is needed. In the case of the Connector, request SOAP API access. For security purposes, the user being granted access cannot be the same as a user with general access rights to the client.

To create a connector for Optimizely Campaign, go to Addons > Connectors, and click Create.

To connect CMS with Optimizely Campaign, enter your authentication details.

  • Connector Type – Required. This is a dropdown menu where you can select the type of connector you want to add, in this case, "Episerver Campaign".
  • Connector Name – Required. Enter a name for the connector.
  • Username – Required. Enter the username necessary for connecting to the Episerver Campaign.
  • Password – Required. Enter the password associated with the username for the Episerver Campaign connection.
  • Mandator ID – Required. Enter the Mandator ID (this is your Campaign client ID), which is a unique identifier or account number needed for the connection.
📘

Note

You can have multiple instances of the Campaign connector. Click Add Connector to add another instance.

Connect Optimizely Forms with Optimizely Campaign

When the Optimizely Forms add-on is installed on the CMS website, you must connect form fields with Optimizely Campaign to send data from the specified fields to Campaign.

Autofill

When a website visitor submits a form, a tracking cookie is generated, which can be used to identify the visitor. If the visitor opens the form again in the same web browser (assuming it still has the cookie and it is valid), the system automatically gets the visitor's data based on the cookie. It fills in the data in the form.

Enable or disable the autofill feature in the CMS admin view, under Addons > Global Settings > Enable Auto-fill on forms:

  • Enable Auto-fill on forms – Select to automatically populate form fields with saved data, which can help speed up the process of filling out forms.
  • Hide form submission error – Select to hide error messages that would normally appear when there is an issue with form submission. This might be used to prevent users from seeing certain error details.

Clear the cache

Information, such as Session Token and Recipient Lists, is stored in the cache to improve performance.

Go to Addons > Cache Setting and click Clear cache to clear the cache. You can also set the Cache timeout value and click Save.

Store tracking cookie

When a website visitor submits a form, a tracking cookie is generated, which can be used to identify the visitor.

Encrypt credentials

Credentials are encrypted and saved based on one of the following options:

  • MAICryptoKey – AES encryption with an SHA256-computer hash, based on the value of the key. This key should be specified at the root level of the appsettings.json file with any string as its value.
  • machineKey of the server. The machineKey encryption is used ONLY if MAICryptoKey is not specified. If you neglect to specify an MAICryptoKey in appsettings.json, the credentials are removed when the DXP instance is restarted because the machineKey is different and will fail to decrypt the credentials, so you must save credentials again through the configuration screen.

If the credentials are already encrypted using machineKey in an existing site, and the MAICryptoKey setting is added, then the credentials are deleted and must be re-entered.

📘

Note

The MAICryptoKey must be specified with the same value in ALL the DXP instances that are connected to the same database. If it is missing or the value is different in any of the instances, the credentials will be deleted and must be re-entered.

Breaking changes – Connect for Campaign 2

EPiServer.ConnectForCampaign (2.0.0) depends on:

  • EPiServer.CMS.UI.Core version >= 11.2.4 and < 12
  • EPiServer.Marketing.Automation.Forms version >= 2.1.0 and < 3
  • EPiServer.ConnectForMarketingAutomation version >= 5.2.0 and < 6
  • EPiServer.Forms.UI version >= 4.16 and < 5

Interfaces and classes removed:

  • EPiServer.ConnectForCampaign.Core.Implementation.IRecipientListIdMapper.cs
  • EPiServer.ConnectForCampaign.Core.Implementation.RecipientListIdMapper.cs
  • EPiServer.ConnectForCampaign.Core.Implementation.IVisitorIdentifyProvider.cs
  • EPiServer.ConnectForCampaign.Core.Implementation.VisitorIdentifyProvider.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.CampaignDataSubmissionService.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.CampaignFormValidationService.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.CampaignMenuAssembler.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.CampaignProviderService.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.CampaignSettingsRepository.cs
  • EPiServer.ConnectForCampaign.Implementation.Services
  • CampaignXFormMarketingAutomationInterception.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.ListService.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.ProfileService.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.ProgramService.cs
  • EPiServer.ConnectForCampaign.Implementation.Services.ScoringService.cs
  • EPiServer.ConnectForCampaign.Implementation.CampaignProvider.cs
  • EPiServer.ConnectForCampaign.Implementation.ProviderRepository.cs

Properties, methods, constants removed/changed:

  • EPiServer.ConnectForCampaign.Core.Configuration.ICampaignConfig.CacheTimeout
  • EPiServer.ConnectForCampaign.Implementation.Configuration.CampaignConfig.CacheTimeout
  • EPiServer.ConnectForCampaign.Core.Models.CampaignDataList.ParentName
  • EPiServer.ConnectForCampaign.Core.Models.CampaignDataList.FeatureSupport
  • EPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.Id
  • EPiServer.ConnectForCampaign.Implementation.Helpers.FullFormSubmissionData
  • EPiServer.ConnectForCampaign.Implementation.Helpers.ActiveExternalFieldMappingTable
  • EPiServer.ConnectForCampaign.Implementation.Helpers.ServiceValidationMessage
  • EPiServer.ConnectForCampaign.Implementation.Helpers.RecipientIdentification
  • EPiServer.ConnectForCampaign.Implementation.Helpers.RecipientListId
  • EPiServer.ConnectForCampaign.Implementation.Helpers.OptInProcessId
  • EPiServer.ConnectForCampaign.Services.Implementation.AuthenticationService.ctor()
  • EPiServer.ConnectForCampaign.Services.Implementation.OptinProcessService.ctor()
  • EPiServer.ConnectForCampaign.Services.Implementation.RecipientListService.ctor()
  • EPiServer.ConnectForCampaign.Services.Implementation.RecipientService.ctor()

Other

  • Change the type of the Id property in EPiServer.ConnectForCampaign.Core.Models.CampaignDataList.cs from "int" to "long".
  • Change return type of EPiServer.ConnectForCampaign.Services.Implementation.GetAllRecipientLists() to IEnumerable<CampaignDataList>.

Breaking changes – Connect for Campaign 3

EPiServer.ConnectForCampaign (3.0.0) depends on:

  • EPiServer.CMS.UI.Core version >= 11.2.4 and < 12
  • Optimizely.Marketing.Automation.Forms version >= 2.1.0 and < 3
  • EPiServer.ConnectForMarketingAutomation version >= 5.5.3 and < 5.7
  • EPiServer.Forms.UI version >= 4.20 and < 5

Properties, methods, constants removed/changed:

  • EPiServer.ConnectForCampaign.Core.Configuration.ICampaignConfig.TrackingCookieTimeout
  • EPiServer.ConnectForCampaign.Implementation.Configuration.CampaignConfig.TrackingCookieTimeout
  • EPiServer.ConnectForCampaign.Core.Configuration. ICampaignSettings.UserName
  • EPiServer.ConnectForCampaign.Core.Configuration.ICampaignSettings.Password
  • EPiServer.ConnectForCampaign.Core.Configuration.ICampaignSettings.MandatorId
  • EPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.UserName
  • EPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.Password
  • EPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.MandatorId

Breaking changes – Connect for Campaign 4.1.0

EPiServer.ConnectForCampaign (4.1.0) depends on:

  • EPiServer.CMS version >= 12.15.0 and < 13
  • Optimizely.Marketing.Automation.Forms version >= 3.2.0 and < 4

Properties, methods, constants, classes removed/changed:

  • EPiServer.ConnectForCampaign.Implementation.Helpers.Constants.UserNameFieldKey
  • EPiServer.ConnectForCampaign.Implementation.Helpers.Constants.PasswordFieldKey
  • EPiServer.ConnectForCampaign.Implementation.Helpers.Constants.MandatorIdFieldKey
  • EPiServer.ConnectForCampaign.Services.Implementation.OptinProcessService
  • EPiServer.ConnectForCampaign.Services.Implementation.RecipientListService
  • EPiServer.ConnectForCampaign.Services.Implementation.RecipientService

Obsoleted classes and interfaces

  • EPiServer.ConnectForCampaign.Services.Implementation.AuthenticationService.cs
  • EPiServer.ConnectForCampaign.Services.Implementation.IAuthenticationService.cs
  • EPiServer.ConnectForCampaign.Services.IServiceClientFactory.cs
  • EPiServer.ConnectForCampaign.Services.ServiceClientFactory.cs

Other

  • Change from using campaign SOAP API service to REST API

Breaking changes – Connect for Campaign 4.2.0

Configure options through appsettings

Campaign.config was migrated to appsettings.json. From version 4.2.0 onward, appsettings.json stores the configuration.

To use the new configuration, add a CampaignConnectorOptions section your appsettings.json like the following example.

"EPiServer": {
    "CampaignConnectorOptions": {
      "ForceUpdateRecipient": false
    }
  }

Related blog post: Configuring the Episerver (Optimizely) Campaign connector through code by David Knipe