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.jsonfile with any string as its value.machineKeyof the server. ThemachineKeyencryption is used ONLY ifMAICryptoKeyis not specified. If you neglect to specify anMAICryptoKeyinappsettings.json, the credentials are removed when the DXP instance is restarted because themachineKeyis 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
MAICryptoKeymust 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.Coreversion >= 11.2.4 and < 12EPiServer.Marketing.Automation.Formsversion >= 2.1.0 and < 3EPiServer.ConnectForMarketingAutomationversion >= 5.2.0 and < 6EPiServer.Forms.UIversion >= 4.16 and < 5
Interfaces and classes removed:
EPiServer.ConnectForCampaign.Core.Implementation.IRecipientListIdMapper.csEPiServer.ConnectForCampaign.Core.Implementation.RecipientListIdMapper.csEPiServer.ConnectForCampaign.Core.Implementation.IVisitorIdentifyProvider.csEPiServer.ConnectForCampaign.Core.Implementation.VisitorIdentifyProvider.csEPiServer.ConnectForCampaign.Implementation.Services.CampaignDataSubmissionService.csEPiServer.ConnectForCampaign.Implementation.Services.CampaignFormValidationService.csEPiServer.ConnectForCampaign.Implementation.Services.CampaignMenuAssembler.csEPiServer.ConnectForCampaign.Implementation.Services.CampaignProviderService.csEPiServer.ConnectForCampaign.Implementation.Services.CampaignSettingsRepository.csEPiServer.ConnectForCampaign.Implementation.ServicesCampaignXFormMarketingAutomationInterception.csEPiServer.ConnectForCampaign.Implementation.Services.ListService.csEPiServer.ConnectForCampaign.Implementation.Services.ProfileService.csEPiServer.ConnectForCampaign.Implementation.Services.ProgramService.csEPiServer.ConnectForCampaign.Implementation.Services.ScoringService.csEPiServer.ConnectForCampaign.Implementation.CampaignProvider.csEPiServer.ConnectForCampaign.Implementation.ProviderRepository.cs
Properties, methods, constants removed/changed:
EPiServer.ConnectForCampaign.Core.Configuration.ICampaignConfig.CacheTimeoutEPiServer.ConnectForCampaign.Implementation.Configuration.CampaignConfig.CacheTimeoutEPiServer.ConnectForCampaign.Core.Models.CampaignDataList.ParentNameEPiServer.ConnectForCampaign.Core.Models.CampaignDataList.FeatureSupportEPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.IdEPiServer.ConnectForCampaign.Implementation.Helpers.FullFormSubmissionDataEPiServer.ConnectForCampaign.Implementation.Helpers.ActiveExternalFieldMappingTableEPiServer.ConnectForCampaign.Implementation.Helpers.ServiceValidationMessageEPiServer.ConnectForCampaign.Implementation.Helpers.RecipientIdentificationEPiServer.ConnectForCampaign.Implementation.Helpers.RecipientListIdEPiServer.ConnectForCampaign.Implementation.Helpers.OptInProcessIdEPiServer.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.csfrom "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.Formsversion >= 2.1.0 and < 3EPiServer.ConnectForMarketingAutomationversion >= 5.5.3 and < 5.7EPiServer.Forms.UIversion >= 4.20 and < 5
Properties, methods, constants removed/changed:
EPiServer.ConnectForCampaign.Core.Configuration.ICampaignConfig.TrackingCookieTimeoutEPiServer.ConnectForCampaign.Implementation.Configuration.CampaignConfig.TrackingCookieTimeoutEPiServer.ConnectForCampaign.Core.Configuration. ICampaignSettings.UserNameEPiServer.ConnectForCampaign.Core.Configuration.ICampaignSettings.PasswordEPiServer.ConnectForCampaign.Core.Configuration.ICampaignSettings.MandatorIdEPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.UserNameEPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.PasswordEPiServer.ConnectForCampaign.Implementation.Configuration.CampaignSettings.MandatorId
Breaking changes – Connect for Campaign 4.1.0
EPiServer.ConnectForCampaign (4.1.0) depends on:
EPiServer.CMSversion >= 12.15.0 and < 13Optimizely.Marketing.Automation.Formsversion >= 3.2.0 and < 4
Properties, methods, constants, classes removed/changed:
EPiServer.ConnectForCampaign.Implementation.Helpers.Constants.UserNameFieldKeyEPiServer.ConnectForCampaign.Implementation.Helpers.Constants.PasswordFieldKeyEPiServer.ConnectForCampaign.Implementation.Helpers.Constants.MandatorIdFieldKeyEPiServer.ConnectForCampaign.Services.Implementation.OptinProcessServiceEPiServer.ConnectForCampaign.Services.Implementation.RecipientListServiceEPiServer.ConnectForCampaign.Services.Implementation.RecipientService
Obsoleted classes and interfaces
EPiServer.ConnectForCampaign.Services.Implementation.AuthenticationService.csEPiServer.ConnectForCampaign.Services.Implementation.IAuthenticationService.csEPiServer.ConnectForCampaign.Services.IServiceClientFactory.csEPiServer.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 9 days ago