This technical implementation guide provides information about the reference architecture, guidelines, configuration steps and tests that implementation specialists need to follow while integrating Adobe Experience Manager to Adobe Campaign ACS.

This technical integration guide is intended for Adobe Consultants, Adobe Partners, and other experienced implementation specialists. Configuring this integration requires a full understanding of the implementation process for each individual solution covered in this guide.

Adobe customers can contact Adobe Professional Services or an Adobe Partner to learn more about this integration.

Integration Options

Adobe Campaign lets you manage email delivery content and forms directly in Adobe Experience Manager. 

To use both solutions together, you must first configure them to connect to one another. This involves configuration steps in both Adobe Campaign and Adobe Experience Manager. These steps are described in detail in this document.

Working with Adobe Campaign in AEM includes the ability to send email and forms via Adobe Campaign.

With the help of the discovery phase, the consultant should be able to have all the information needed to plan the delivery or execution approach. The document will also help the consultant to drive conversation with the client by citing various use cases about how other customers have achieved their goals. 

The following integrations are applicable for AEM:

  1. On premise solution 
  2. Adobe hosted solution

Solution Planning and Integration Architecture

Prerequisites

Make sure you have the following elements beforehand starting with the integration.

  • An AEM authoring instance
  • An AEM publishing instance
  • An Adobe Campaign instance

Implementation Architecture

Integration Overview

The below pictures illustrates high level overview of AEM to Adobe Campaign integration.

aem-acs1

AEM and Campaign Integration Data flow

aem-acs2

Installation, Provisioning and Configuration

With the help of the installation provisioning phase, the consultant should be able to provide access and install the solutions in the client's platform.

​Set-up/ Provisioning

AEM Installation & Setup

ACS Setup

  • ACS is a cloud based subscription solution and instances are not installed manually, all installation is automated
  • Contact the provisioning team for a new ACS instance or the TechOps team for provisioning a Demo instance

Configuring Adobe Campaign involves the following:

  1. Configuring the aemserver user.
  2. Creating a dedicated external account.
  3. Verifying the AEMResourceTypeFilter option.
  4. Creating a dedicated delivery template.

NOTE: To perform these operations, you must have the administration role in Adobe Campaign.

Configuring the AEM Server User

The aemserver user must be configured in Adobe Campaign. The aemserver is a technical user that will be used to connect the AEM server to Adobe Campaign.

Go to Administration Users & Security Users, and select the aemserver user. Click it to open the user settings.

  • A password has to be set for this user. This cannot be done through the UI. This configuration must be done in REST by a technical administrator.
  • You can assign specific roles to this user, such as deliveryPrepare, which allows the user to create and edit deliveries. 

Configuring an Adobe Experience Manager External Account

You must configure an external account that allows you to connect Adobe Campaign to your AEM instance.

Note:

In AEM, make sure that you set the password for the campaign-remote user. You need to set this password to connect Adobe Campaign with AEM.

To set the password:

  1. Log in as administrator and in the user administration console.

  2. Search for the campaign-remote user, and then click Set Password.

To configure an AEM External Account:

  1. Go to Administration > Application settings > External accounts.

    aem-acs3
  2. Select the default aemInstance external account or create a new one by clicking the Create button.

  3. Select Adobe Experience Manager in the Type field, and then enter the access parameters used for your AEM authoring instance: server address, account name and password.

    Note:

    Make sure that you do not add an ending / slash at the end of the URL or the connection will not work.

  4. Select the Enabled checkbox, and then click Save to save your modifications.

Verifying the AEMResourceTypeFilter option

The AEMResourceTypeFilter option is used to filter types of AEM resources that can be used in Adobe Campaign. This allows Adobe Campaign to retrieve AEM contents that are specifically designed to be used in Adobe Campaign only.

This option comes pre-configured; however, if you change this option, it may lead to a non-functioning integration.

To verify the AEMResourceTypeFilter option is configured:

  1. Go to Administration > Application settings > Options.
  2.  In the list, you can ensure that the AEMResourceTypeFilter option is listed and that the paths are correct.

Creating an AEM-Specific Email Delivery Template

By default, the AEM feature is not enabled in Adobe Campaign's email templates. You can configure a new email delivery template that will be used to create emails with AEM content.

To create an AEM-specific email delivery template:

  1. Go to Resources > Templates > Delivery templates.
  2. Enable selection by clicking the checkmark in the action bar and selecting the existing Standard email (mail) default template, then duplicate it by clicking the Copy icon and clicking Confirm.
  3. Disable the selection mode by clicking the x and open the newly created Copy of Standard email (mail) template, then select Edit properties from the action bar of the template dashboard. You can modify the template's Label.
  4. In the properties Content section, change the Content source to Adobe Experience Manager. Then select the external account that was previously created and click Confirm.
  5. Click Confirm and then Save to save your modifications.

Email deliveries created from this template will have the AEM content feature enabled.

aem-acs4

Configuring Adobe Experience Manager

To configure AEM, you must do the following:

  • Configure replication between instances
  • Connect AEM to Adobe Campaign
  • Configure the externalizer

Configuring Replication Between AEM Instances

Content that is created from the AEM authoring instance is first sent to the publishing instance. This publishing instance then transfers the content to Adobe Campaign. The replication agent must therefore be configured to replicate from the AEM authoring instance to the AEM publishing instance.

Note:

If you do not want to use the replication URL but instead use the public-facing URL, you can set the Public URL in the following configuration setting in the OSGi (Tools > Web Console > OSGi Configuration > AEM Campaign Integration - Configuration): Public URL: com.day.cq.mcm.campaign.impl.IntegrationConfigImpl#aem.mcm.campaign.publicUrl

This step is also necessary to replicate certain authoring instance configurations into the publishing instance.

To configure replication between AEM instances:

  1. From the authoring instance, select AEM logo> Tools icon > Deployment > Replication > Agents on author, then click Default Agent.

    Note:

    Avoid using localhost (that is a local copy of AEM) when configuring your integration with Adobe Campaign unless the publish and author instance are both on the same computer.

    aem-acs5
  2. Click Edit then select the Transport tab.

  3. Configure the URI by replacing localhost with the IP address or the address of the AEM publishing instance.

    aem-acs6

Connecting AEM to Adobe Campaign

Before you can use AEM and Adobe Campaign together, you must establish the link between both solutions so that they can communicate.

  1. Connect to your AEM authoring instance.

  2. Select Tools > Operations > Cloud > Cloud Services, then Configure now in the Adobe Campaign section.

    aem-acs7
  3. Create a new configuration by entering a Title and click Create, or choose the existing configuration that you want to link with your Adobe Campaign instance.

  4. Edit the configuration so that it matches the parameters of your Adobe Campaign instance.

    • Username: aemserver, the Adobe Campaign AEM Integration package operator used to establish the link between the two solutions.
    • Password: Adobe Campaign aemserver operator password. You may have to re-specify the password for this operator directly in Adobe Campaign.
    • API End Point: Adobe Campaign instance URL.
  5. Select Connect to Adobe Campaign, and then click OK.

    aem-acs8

Note:

After you create your email and publish it, you need to re-publish the configuration onto your publish instance.

aem-acs9

If the connection fails, make sure you check the following:

  • You may encounter a certificate problem when using a secure connection to an Adobe Campaign instance (https). You will have to add the Adobe Campaign instance certificate to the cacerts file of your JDK.
  • In addition, see the Troubleshooting section in this document.

Configuring the Externalizer

You need to configure the externalizer in AEM on your author instance. The Externalizer is an OSGi service that lets you transform a resource path into an external and absolute URL. This service provides a central place to configure those external URLs and build them.

See Configure the externalizer for general instructions. For the Adobe Campaign integration, make sure you configure the publish server at http://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl not point to localhost:4503 but to a server that is reachable by the Adobe Campaign console.

If it points to localhost:4503 or another server that Adobe Campaign cannot reach, your images will not appear on the Adobe Campaign console.

aem-acs10

Implementation Delivery

Solution Implementation

Use case 1: Forms integration

Goal

Create a web page to allow end-user to sign-up/submit profile details that maps the user details to existing user data on Campaign.

Implementation Overview

Adding custom fields in Campaign Standard, and being able to build a form in AEM6.2 that maps to the custom fields. Implementation involves following steps:

  1. Extend the profile
  2. Extend the 'seed' table
  3. Build the form in AEM
  4. Submit the form to test it

Create form on AEM:

  1. Create a new page on AEM and choose the Adobe Campaign Profile (ACS).

    aem-acs11
    aem-acs12
  2. Next, add the profile-id in the Title.

    aem-acs13
  3. Click on Create and open the new page created.

    aem-acs14
  4. Click on the “Form Start” block and wait for the toolbar to appear, then click on “Configure”. Click on the “Advanced tab”, to verify configurations for existing profiles.

Create the Fields to Update:

  1. Click on the upper left of the screen, then on the “+”.

    aem-acs15
  2. Drag/drop three “Text Field” components in the form.

    aem-acs16
  3. Then, open the configure menu while clicking on the added field.

    aem-acs17
  4. Configure the fields:

    aem-acs18

    The element name must be unique in the form.

    aem-acs19
    aem-acs20
  5. After you have configured the page, you can preview (upper right) the page and try to add a new profile.

    aem-acs21

    You can validate this by checking the profiles inside ACS under the Profiles menu:

    aem-acs22

Testing from the Publish-Instance

Activate the page and submit from the AEM-publish environment.

Use case 2: Creating Personalized email template in AEM

Goal

Compose a personalized email template in AEM with personalized fields from ACS. Use the content to send an email to Users from ACS.

Pre-requisite - Create a workflow in ACS

Workflows are used in ACS to allow automated email communications (known as Campaigns). Workflows can be created under the Marketing Activities tab

aem-acs23
  1. Create a workflow to query an audience and add an email channel activity to configure the email to be sent to the audience.

    aem-acs24
    aem-acs25
    aem-acs26
  2. Open (pencil) the “Send via email with AEM content” activity and check the connection to AEM.

    aem-acs27
  3. Click on the pencil on the right-hand side and expand the Content section.

    aem-acs28
    aem-acs29
  4. Close the screen and go back to the workflow. Click on “summary” if the workflow link doesn’t appear.

    aem-acs30

Pre-requisite - Create a new page on AEM

  1. In AEM, create a new page and select the Adobe Campaign Email (ACS) template.

    aem-acs31
    aem-acs32
  2. Indicate the ID.

    aem-acs33

    Note:

    In case of missing or invalid webservice config, navigate to page properties in the main toolbar and add the Adobe Campaign configuration in the Cloud Services tab.

    aem-acs34
    aem-acs35

Email Composing

Compose the content of the email and use the personalization fields from Campaign:

  1. Click on “Drag components here” and wait for the “+” to appear.

    aem-acs36
  2. Click on "Text & Personalization (Campaign)".

    aem-acs37
  3. Click on the pencil icon.

    aem-acs38
  4. Through the Adobe Campaign button you can select fields from the Profile (these will be replaced during the sending by ACS).

    aem-acs39
    aem-acs40

Linking Email Template

  1. Open the email activity in the workflow in ACS.

    aem-acs41
  2. Click on the white space in the 'Content' section.

    aem-acs42
  3. You get now a screen presented where you can sync your email templates, click on “AEM”.

    aem-acs43
  4. View the available templates, listed below:

    aem-acs44
  5. Select the right template, and hit confirm. This now links the template between AEM and ACS. To confirm this, you can reload the email in AEM and you will see a similar indicator.

    aem-acs45

Approving the Email

The email can be approved on AEM before processing. This is done via the Workflow-tab, and to select the workflow ‘Approve for Adobe Campaign’.

aem-acs46
aem-acs47
  1. Click on "View in Admin".

    aem-acs48
  2. Click on the bell which shows notifications. This gets you through a number of steps, whereby in the final step you need to Approve the email.

    aem-acs49
    aem-acs50
  3. After the approval you can see an indicator as below.

    aem-acs51

Run the Workflow

Now that we have completed all the pre-requisites for the workflow we can now run the workflow.

  1. You can run the workflow by clicking the “Start” button.

    aem-acs52
  2. Refresh the page and notice a blinking email-step in the workflow.

    aem-acs53
  3. When you open the email step, you see the following notification:

    aem-acs54

    This indicates that a final confirmation is needed, before the emails will be send. Once you click ‘Confirm’ the emails will be sent, and you can check your inbox for this.


    When you now return to the screen of the marketing activities you see that the color has changed to green, and also an indication on the size of the audience involved.

    aem-acs55

Solution Deployment

Deployment Plan

AEM deployment plan - Please refere the Adobe documentation link for different AEM deployment topologies.

https://docs.adobe.com/docs/en/aem/6-1/deploy/recommended-deploys.html

Campaign deployment plan - Please refere the Adobe documentation link for different Campaign deployment types.

https://docs.campaign.adobe.com/doc/standard/en/ADM_Deployment_Operating_principle.html

Troubleshooting your Adobe Campaign Integration

The following troubleshooting tips help solve the most common problems you may encounter when you integrate AEM with Adobe Campaign:

General Troubleshooting Tips

For both integrations, you can check whether HTTP-calls are sent (AEM > Adobe Campaign, Adobe Campaign > AEM):

  • When integrations are failing, make sure that these calls arrive on the other end (to avoid firewall/SSL issues).
  • For AEM functionality, you will see that json calls are requested from the AEM author interface; these should not result in an HTTP-500 error. If you see HTTP-500 errors, check the error.log for more information on this.
  • Raising the debug level for campaign-classes in AEM also helps to troubleshoot issues.

If the connection fails:

Check that you have configured the aemserver operator in Adobe Campaign. 

If images do not appear in the Adobe Campaign console:

Check the HTML source and validate that you can open the URL from the client machine. If the URL has localhost:4503 in it, then change the configuration of Day CQ Link Externalizer on your author instance to point to a publish instance that can be reached from the Adobe Campaign console machine.

If you cannot connect from AEM to Adobe Campaign:

Look for the following error message in Adobe Campaign:

No datasource defined in the instance 'default'. 

Make sure the DNS alias used to access the server is correct (for example, avoid hard-coded IP addresses). (iRc=16384)

To fix this issue, change the following in $CAMPAIGN_HOME/conf/config-<instance-name>.xml:

<dataStore hosts="*" lang="en_GB">

If no data displays in the Adobe Campaign dialog:

In Adobe Campaign, ensure that you have no trailing slash (/) after the port number. See section Configuring an external AEM account.

If you get a warning about your setlocale:

If you are starting the Apache HTTPD service and see the error "Warning: setlocale: LC_CTYPE cannot change locale" make sure that you have your en_CA.ISO-8859-15 locale installed on your system.

You can check whether it is installed by using local -a. If it is not installed you can patch /usr/local/neolane/nl6/env.sh script and change the locale to an installed one.

If you get an error while compiling script 'get_nms_amcGetSeedMetaData_jssp':

If you see the following error message in the AEM log file:

com.day.cq.mcm.campaign.impl.CampaignConnectorImpl Internal Adobe Campaign error: response body is Error while compiling script 'get_nms_amcGetSeedMetaData_jssp' line 45: String.prototype.toJSON called on incompatible XML.

Use the following workaround:

  1. Open file $CAMPAIGN_HOME/datakit/nms/fra/js/amcIntegration.js
  2. Modify line 467 of method “amcGetSeedMetaData” 
  3. Change “label : inclView.@label” into “label : String(inclView.@label)”
  4. Save.
  5. Relaunch the server.

If Adobe Campaign displays an error when clicking the Synchronize button:

If when clicking the Synchronize button in Adobe Campaign 6.1, you see the following error:  

Error while executing the method ‘aemListContent' of service 'nms:delivery':

To fix this issue, make sure the AEM connection-url configured in the External Accounts is reachable from the machine.

A switch from localhost to an IP-address solved this issue.

If you get a 'Cannot parse XTK Date+Time 'undefined'' error:

After clicking Synchronize, you get an error that a script on the pages has occured: Cannot parse XTK Date+Time 'undefined': not a valid XTK value.

This happens if there is still outdated Adobe Campaign information on the AEM instance. Solve this issue by reinstalling the AEM environment.

If a connection to SSL displays an error when setting up the cloud service:

In the error.log of AEM, if you see the following:​

javax.net.ssl.SSLProtocolException: handshake
  alert:  unrecognized_name
at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown
  Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
at sun.security.ssl.AppOutputStream.write(Unknown Source)

Code samples are intended for illustration purposes only.

Please raise a ticket with the Adobe Campaign support team.

If you see http instead of an expected https links in the synchronization dialog:

With the following setup:

  • Hosted Adobe Campaign using https for communication with AEM Author
  • Reverse proxy terminating SSL
  • On premise AEM Author instance

When trying to synchronize content in Adobe Campaign delivery, AEM returns a list of newsletters. However, the urls to the newsletters in the list are http addresses. When selecting one of the items in the list an error occurs.

To solve this issue:

If the custom template I created cannot be selected in Page Properties:

When creating a mail template for Adobe Campaign, you must include the property acMapping with the value mapRecipient in the jcr:content node of the template, or you will not be able to select the Adobe Campaign template in Page Properties of AEM (field is disabled).

Other Resources

FAQs

Best Practices​

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy