Configure EXM for deployment on the Azure App Service

Abstract

Configure EXM for XP0 or XP so that EXM is fully integrated how you want it to be.

The Email Experience Manager (EXM) module installation is fully integrated with Sitecore and supports the Sitecore configurations of XP0 and XP.

To install the EXM module as part of the Sitecore XP installation on the Azure App Service, you must have the following applications:

  • Sitecore XP 8.2 Update-5 or later

  • Email Experience Manager 3.5

  • Sitecore Azure Toolkit 1.1

Note

Depending on which environment you want to configure (XP0 or XP), after you have prepared to deploy EXM and injected the EXM module into the Sitecore XP .parameters.json file, you continue to either integrate an EXM deployment into a Sitecore XP0 environment or populate the EXM module parameters for a Sitecore XP environment.

To prepare to deploy the EXM module:

  1. Download the Web Deploy Packages (WDPs) for EXM.

  2. Upload the WDPs to a storage account.

  3. Locate the EXM template for your topology on GitHub.

  4. Inject the EXM module into the Sitecore XP .parameters.json file for your topology.

To inject the EXM module into the Sitecore XP .parameters.json file for your topology:

  1. Go to Deploy a new Sitecore environment to the Azure App service, Download and configure section, and ensure you have a .parameters.json file for your Sitecore environment.

  2. Add the modules parameter to the .parameters.json file and configure the Bootloader module for a Sitecore deployment.

To integrate an EXM deployment into a Sitecore XP0 environment deployment:

  1. In the .parameters.json file, add the following snippet to the modules parameter:

    {... ,
      "modules": {
        "value": {
          "items": [
            ... ,
            {
              "name" : "EXM",
              "templateLink" : "<url of EXM azuredeploy.json for XP0 configuration>",
              "parameters" : {
    /*
                "templateLinkAccessToken": "<access token for the nested templates>",
    */
                "singleExmMsDeployPackageUrl": "<WDP URL for single.scwdp.zip>",
                "exmSampleNewsletterMsDeployPackageUrl": "<WDP URL for Sample Newsletter>",
                "exmSampleNewsletterFileMsDeployPackageUrl": "<WDP URL for Sample Newsletter files>",
                "cryptographicKey": "<Cryptographic key hex string>",
                "authenticationKey": "<UI authentication key string>"
              }
            }
          ]
        }
      }
    }
    
  2. Populate the parameters for the EXM module according to the following parameters:

    Parameter

    Description

    templateLink

    The URL of the EXM azuredeploy.json file on GitHub or a storage account that includes any access token.

    singleExmMsDeployPackageUrl

    The URL of a single.scwdp.zip package for EXM.

    exmSampleNewsletterMsDeployPackageUrl

    The URL of a Sample Newsletter package for EXM.

    exmSampleNewsletterFileMsDeployPackageUrl

    The URL of a Sample Newsletter Files package for EXM.

    cryptographicKey

    The keys must be represented in hexadecimal format by 64 characters, where you can use the symbols 0-9 and A-F.

    authenticationKey

    The keys must be represented in hexadecimal format by 64 characters, where you can use the symbols 0-9 and A-F.

    templateLinkAccessToken (optional)

    The access token is for the nested infrastructure and application templates.

  3. Go to Deploy a new Sitecore environment to the Azure App Service, Invoke the deployment section, and run your Sitecore deployment as usual.

To integrate your EXM deployment into the Sitecore XP environment deployment:

  1. In the .parameters.json file, add the following snippet to the modules parameter:

    {... ,
      "modules": {
        "value": {
          "items": [
            ... ,
            {
              "name" : "EXM",
              "templateLink" : "<url of EXM azuredeploy.json for XP Environment configuration>",
              "parameters" : {
                "templateLinkAccessToken": "<access token for the nested templates>",
                "cmExmMsDeployPackageUrl": "<URL>",
                "cdExmContentDeliveryMsDeployPackageUrl": "<URL>",
                "prcExmAnalyticsProcessingMsDeployPackageUrl": "<URL>",
                "repExmReportingMsDeployPackageUrl": "<URL>",
                "ddsExmMsDeployPackageUrl": "<URL>",
                "ddsExmEmailProcessingMsDeployPackageUrl": "<URL>",
                "exmSampleNewsletterMsDeployPackageUrl": "<URL>",
                "exmSampleNewsletterFileMsDeployPackageUrl": "<URL>",
                "bootLoaderMsDeployPackageUrl": "<URL>",
                "cryptographicKey": "<HEX String>",
                "authenticationKey": "<String>",
                "internalApiKey": "<String>"
              }
            }
          ]
        }
      }
    }
    
  2. Populate the parameters for the EXM module according to the following parameters:

    Parameter

    Description

    templateLink

    The URL of the EXM azuredeploy.json file on GitHub or a storage account that includes any access token.

    cmExmMsDeployPackageUrl

    The URL of the cm .scwdp.zip (Content Management) package for EXM.

    cdExmContentDeliveryMsDeployPackageUrl

    The URL of the cd.scwdp.zip (Content Delivery) package for EXM.

    prcExmAnalyticsProcessingMsDeployPackageUrl

    The URL of the prc.scwdp.zip (Processing) package for EXM.

    repExmReportingMsDeployPackageUrl

    The URL of the rep.scwdp.zip (Reporting) package for EXM.

    ddsExmMsDeployPackageUrl

    The URL of the CM Web Only WDP package for the Sitecore Experience Platform. You can download the package for the CM Web Only role from the Sitecore Experience Platform download page.

    ddsExmEmailProcessingMsDeployPackageUrl

    The URL of the dds.scwdp.zip (Email Processing) package for EXM.

    exmSampleNewsletterMsDeployPackageUrl

    The URL of the Sample Newsletter package for EXM.

    exmSampleNewsletterFileMsDeployPackageUrl

    The URL of the Sample Newsletter Files package for EXM.

    bootLoaderMsDeployPackageUrl

    The URL of the Bootloader wdp.zip package. See Configure the Bootloader module for a Sitecore deployment for more information.

    cryptographicKey

    The keys must be represented in hexadecimal format by 64 characters, where you can use the symbols 0-9 and A-F.

    authenticationKey

    The keys must be represented in hexadecimal format by 64 characters, where you can use the symbols 0-9 and A-F.

    internalApiKey

    The internal API key is an authentication key for service-to-service communication. It has a string value and a minimum length of 16 characters.

    templateLinkAccessToken (optional)

    The access token is for the nested infrastructure and application templates.

  3. Go to Deploy a new Sitecore environment to the Azure App Service, Invoke the deployment section, and run your Sitecore deployment as usual.

After you have integrated the EXM deployment into a Sitecore XP0 or a Sitecore XP environment deployment, you must do the post-configuration steps to complete your EXM installation.

To complete your EXM installation:

  1. Publish your site using the Smart Publish option.

  2. In Sitecore, open the Control Panel and do the following:

    • In the Indexing section, rebuild the search indexes.

    • In the Analytics section, deploy the marketing definitions.

    • In the Database section, clean up the databases.

  3. Load the site in your browser to ensure that your Processing server is awake so that your contacts and analytics data are indexed correctly.

  4. To use a different timezone than UTC, patch the ServerTimeZone setting in the Sitecore.config file.

  5. To ensure correct link generation and hostname mapping in EXM, create a Hostname Mapping item in the Hostname Mappings folder (/sitecore/system/Modules/E-mail Campaign Manager/System/Hostname Mappings). Use the following values but change <instance> to your website name:

    • Original: https://<instance>-exm-dds.azurewebsites.net

    • Preview: https://<instance>-cm.azurewebsites.net

    • Public: https://<instance>-cd.azurewebsites.net