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 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.
Make sure you have the following elements beforehand starting with the integration.
- An AEM authoring instance
- An AEM publishing instance
- An Adobe Campaign instance
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.
Refer to the adobe docs for details around installation of AEM:
- Adobe Campaign Standard is a cloud-based subscription solution and instances are not installed manually, all installation is automated
- Contact the provisioning team for a new Adobe Campaign Standard instance or the TechOps team for provisioning a Demo instance
Configuring Adobe Campaign involves the following:
- Configuring the aemserver user.
- Creating a dedicated external account.
- Verifying the AEMResourceTypeFilter option.
- Creating a dedicated delivery template.
NOTE: To perform these operations, you must have the administration role in Adobe Campaign.
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.
You must configure an external account that allows you to connect Adobe Campaign to your AEM instance.
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.
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:
- Go to Administration > Application settings > Options.
- In the list, you can ensure that the AEMResourceTypeFilter option is listed and that the paths are correct.
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:
- Go to Resources > Templates > Delivery templates.
- 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.
- 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.
- 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.
- Click Confirm and then Save to save your modifications.
Email deliveries created from this template will have the AEM content feature enabled.
To configure AEM, you must do the following:
- Configure replication between instances
- Connect AEM to Adobe Campaign
- Configure the externalizer
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.
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:
From the authoring instance, select AEM logo> Tools icon > Deployment > Replication > Agents on author, then click Default Agent.
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.
Before you can use AEM and Adobe Campaign together, you must establish the link between both solutions so that they can communicate.
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.
After you create your email and publish it, you need to re-publish the configuration onto your publish instance.
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.
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.
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.
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:
- Extend the profile
- Extend the 'seed' table
- Build the form in AEM
- Submit the form to test it
Compose a personalized email template in AEM with personalized fields from Adobe Campaign Standard. Use the content to send an email to Users from Adobe Campaign Standard.
Pre-requisite - Create a workflow in Adobe Campaign Standard
Workflows are used in Adobe Campaign Standard to allow automated email communications (known as Campaigns). Workflows can be created under the Marketing Activities tab.
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’.
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 deployment plan - Please refere the Adobe documentation link for different AEM deployment topologies.
Campaign deployment plan - Please refere the Adobe documentation link for different Campaign deployment types.
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:
- Open file $CAMPAIGN_HOME/datakit/nms/fra/js/amcIntegration.js
- Modify line 467 of method “amcGetSeedMetaData”
- Change “label : inclView.@label” into “label : String(inclView.@label)”
- 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:
- The dispatcher or reverse proxy needs to be configured to pass the original protocol as a header.
- The Apache Felix Http Service SSL Filter in the OSGi configuration (http://<host>:<port>/system/console/configMgr) needs to be configured to the respective header settings. See http://felix.apache.org/documentation/subprojects/apache-felix-http-service.html#using-the-ssl-filter
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).