Deploying Episerver sites with Marketing Automation

  • Updated

In EPiServer.ConnectForMarketingAutomation.4.3.0 we added an additional method of encrypting connector credentials (AES encryption with an SHA256 computed hash based on the value of a key “MAICryptoKey” in the appSettings).

We encrypt/decrypt the credentials based on the "MAICryptoKey" key in the app settings and if it doesn't exist, we encrypt them using machineKey.

Since the machineKey would vary on each machine, you can prevent an issue with Marketo by adding your own unique value for "MAICryptoKey." 

Resolution

Before implementing the below, ensure you are on EPiServer.ConnectForMarketingAutomation 4.4.1+(for 4.4.x versions) or 4.3.1+(for 4.3.x versions).

  1. Add the following key in the appSettings in the local environment.
    <appSettings>
    <add key="MAICryptoKey" value="anyword" />
    </appSettings>

    Note: The key would need to be the same in all environments or else Marketo credentials would need to be reentered after every deployment. The deploy should carry MAICryptoKey over, therefore no transforms are necessary. 

  2. Run the following SQL query on the deploy destination's database(this only needs to be done once after adding the MAICryptoKey and may require Managed Services engagement).

    DELETE 
    FROM [dbo].[tblBigTable]
    where StoreName like '%Marketo%'

  3. Deploy

  4. After completing the deploy, reenter your Marketo credentials in the CMS on the deployment destination. This would only need to be done the first time after adding the MAICryptoKey.
  5. If you are a DxC customer, repeat steps 2 - 4 when deploying from Integration to Preproduction and then Preproduction to Production.

If you are not on EPiServer.ConnectForMarketingAutomation 4.4.1+(for 4.4.x versions) or 4.3.1+(for 4.3.x versions), you could see the below error on the entire site if you had not completed step 2 before the deploy. Try to avoid this error by deleting the Marketo row from the database before deploying.  

Initialize action failed for Initialize on class EPiServer.MarketingAutomationIntegration.InitializationModule, EPiServer.MarketingAutomationIntegration

If you see the initialize error, immediately delete the Marketo configuration and follow the above steps.

DELETE 
FROM [dbo].[tblBigTable]
where StoreName like '%Marketo%'