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.
NoteYou 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 theappsettings.json
file with any string as its value.machineKey
of the server. ThemachineKey
encryption is used ONLY ifMAICryptoKey
is not specified. If you neglect to specify anMAICryptoKey
inappsettings.json
, the credentials are removed when the DXP instance is restarted because themachineKey
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.
NoteThe
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 < 12EPiServer.Marketing.Automation.Forms
version >= 2.1.0 and < 3EPiServer.ConnectForMarketingAutomation
version >= 5.2.0 and < 6EPiServer.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()
toIEnumerable<CampaignDataList>
.
Breaking changes – Connect for Campaign 3
EPiServer.ConnectForCampaign
(3.0.0) depends on:
EPiServer.CMS.UI.Core version
>= 11.2.4 and < 12Optimizely.Marketing.Automation.Forms
version >= 2.1.0 and < 3EPiServer.ConnectForMarketingAutomation
version >= 5.5.3 and < 5.7EPiServer.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 < 13Optimizely.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
Updated 6 days ago