mfaust edited this page Jan 29, 2018 · 3 revisions

Status: Active For CoreMedia CMS Tested: 9.1707.3

CoreMedia Labs Logo

Abstract

The CoreMedia Marketing Integration is a Blueprint extension based on the latest CoreMedia release.

The current implementation supports connections for

  • IBM Watson Campaign Automation
  • Salesforce Marketing Cloud
  • Marketo Marketing Automation

The following sections describe how you can add it to workspace, build and configure it.

Installation

  • Clone this project into the extensions folder of your CoreMedia workspace
  • Adapt the groupId and project version of the pom.xml files if required
  • Add entry 'marketing' to file 'workspace-configuration/extensions/extension.properties'
  • Go to folder 'workspace-configuration/extensions/'
  • Download the extensions tool by executing
mvn dependency:copy -Dartifact=com.coremedia.tools.extensions:extensions:LATEST:jar:all -DlocalRepositoryDirectory=extensions-tool -Dtransitive=false -DoutputDirectory=tool -Dmdep.stripVersion=true -Dmdep.stripClassifier=true
  • In the same folder, execute:
java -jar tool/extensions.jar --task synchronize --extension-config-file extension-config.properties --task-input-file extensions.properties
  • Rebuild the workspace
  • Start the Studio and continue with the content and Studio configuration

Marketing System Connection Configuration

Every marketing system integration contains of a connection and services that are attached to the connection. Currently, the only service is the NewsletterService.

The connection settings for the marketing systems is configured via content. Depending on the marketing system, different credentials have to be set in the corresponding struct property of the settings document 'MarketingSettings' in folder '/Settings/Options/Settings'. The example below shows the configuration entries for the marketing systems IBM and Salesforce.

<?xml version="1.0" encoding="UTF-8" ?>
<CMSettings folder="/Settings/Options/Settings" name="MarketingSettings"
            xmlns:cmexport="http://www.coremedia.com/2012/cmexport">
  <locale></locale>
  <master>
  </master>
  <settings>
    <Struct xmlns="http://www.coremedia.com/2008/struct" xmlns:xlink="http://www.w3.org/1999/xlink">
      <StructListProperty Name="marketingConnections">
        <Struct>
          <StringProperty Name="connectionId">ibm1</StringProperty>
          <StringProperty Name="connectionType">ibm</StringProperty>
          <StringProperty Name="contactId"></StringProperty>
          <StringProperty Name="vendorName">IBM Watson Campaign Automation</StringProperty>
          <StringProperty Name="vendorVersion"></StringProperty>
          <StringProperty Name="vendorUrl"></StringProperty>
          <BooleanProperty Name="enabled">true</BooleanProperty>
          <StringProperty Name="url">http://pilot.silverpop.com</StringProperty>
          <StringProperty Name="clientId"></StringProperty>
          <StringProperty Name="clientSecret"></StringProperty>
          <StringProperty Name="refreshToken"></StringProperty>
        </Struct>
        <Struct>
          <StringProperty Name="connectionId">sfmc1</StringProperty>
          <StringProperty Name="connectionType">sfmc</StringProperty>
          <StringProperty Name="vendorName">Salesforce Marketing Cloud</StringProperty>
          <StringProperty Name="vendorVersion"></StringProperty>
          <StringProperty Name="vendorUrl"></StringProperty>
          <BooleanProperty Name="enabled">true</BooleanProperty>
          <StringProperty Name="clientId"></StringProperty>
          <StringProperty Name="clientSecret"></StringProperty>
        </Struct>
      </StructListProperty>
    </Struct>
  </settings>
  <identifier></identifier>
</CMSettings>

Properties:

  • connectionId: The connection identifier used by services.
  • connectionType: The property value must match the bean name suffix of Spring bean class MarketingConnection.
  • vendorName: The name of the marketing system, used for the newsletter integration.
  • vendorVersion: The vendor version, optional.
  • vendorUrl: The vendor version, optional.
  • enabled: Enables or disables the marketing system.

Additional properties are marketing system specific and differ depending on the authentication mechanism used by each vendor. Note that the connectionType value will result in creation of a Spring bean of type MarketingConnection, e.g.

<bean id="marketing:ibm" class="com.coremedia.blueprint.marketing.MarketingConnection">
  <property name="newsletterService" ref="ibmNewsletterService"/>
</bean>

The declaration of this bean can be found in the file component-marketing-ibm.xml. So for every new marketingConnections entry in this settings document, a new instance of the matching MarketingConnection bean is created.

Newsletter Service Configuration (Content)

So far, we have only setup the connection data for a marketing system. Since the actual 'work' is done by service classes which are injected to the MarketingConnection we have to setup the configuration for these services too.

For the NewsletterService, the following settings document must be created in the folder '/Settings/Options/Settings'.

<?xml version="1.0" encoding="UTF-8" ?>
<CMSettings folder="/Settings/Options/Settings" name="NewsletterSettings"
            xmlns:cmexport="http://www.coremedia.com/2012/cmexport">
  <locale></locale>
  <master>
  </master>
  <settings>
    <Struct xmlns="http://www.coremedia.com/2008/struct" xmlns:xlink="http://www.w3.org/1999/xlink">
      <StructListProperty Name="newsletters">
        <Struct>
          <StringProperty Name="newsletterId">ibm</StringProperty>
          <StringProperty Name="newsletterTheme">Newsletter</StringProperty>
          <StringProperty Name="marketingConnectionId">ibm1</StringProperty>
          <StringProperty Name="mailFromName">CoreMedia Marketing Newsletter</StringProperty>
          <StringProperty Name="mailFromAddress">info@coremedia.com</StringProperty>
          <StringProperty Name="mailReplyTo">info@coremedia.com</StringProperty>
          <StringProperty Name="deepLinkTemplate">https://pilot.silverpop.com/ux/#/composer/{0}</StringProperty>
          <StringProperty Name="liveCaeUrl">ENTER YOUR CAE HOST HERE</StringProperty>
          <StringProperty Name="folderPath">/</StringProperty>
        </Struct>
        <Struct>
          <StringProperty Name="newsletterId">sfmc</StringProperty>
          <StringProperty Name="newsletterTheme">Newsletter</StringProperty>
          <StringProperty Name="marketingConnectionId">sfmc1</StringProperty>
          <StringProperty Name="mailFromName">CoreMedia Marketing Newsletter</StringProperty>
          <StringProperty Name="mailFromAddress">info@coremedia.com</StringProperty>
          <StringProperty Name="mailReplyTo">info@coremedia.com</StringProperty>
          <StringProperty Name="deepLinkTemplate"></StringProperty>
          <StringProperty Name="liveCaeUrl">ENTER YOUR CAE HOST HERE</StringProperty>
        </Struct>
      </StructListProperty>
    </Struct>
  </settings>
  <identifier></identifier>
</CMSettings>

Once again, this example shows the example configuration for newsletter services of IBM and Salesforce. The properties are:

  • newsletterId: Used to identify the the newsletter configuration.
  • newsletterTheme: The theme that should be used for the newsletter template generation. Note that only pages that have this setting will show the corresponding newsletter form.
  • marketingConnectionId: This id must match the connectionId configured in the MarketingSettings.
  • deepLinkTemplate: The template is used to open the pushed mail template in the marketing system's UI.
  • liveCaeUrl: The URL of the CAE that will serve the newsletter request and is used to generate the template that is pushed to the marketing system. Usually, no context path is required.

Newsletter Service Configuration (Studio)

The newsletter system integration for the Studio is implemented by adding an additional tab 'Marketing' to the form definition of pages. This tab is added via plugin-rules in the MarketingStudioPlugin.mxml. It contains the MarketingForm component where the NewsletterForm is added, including the newsletter id that should be used.

<newsletter:items>
  <newsletter:NewsletterForm newsletterId="ibm" />
  <newsletter:NewsletterForm newsletterId="sfmc" />
</newsletter:items>

The example shows the NewsletterForm definition for the newsletter systems IBM and Salesforce.

For other 'regular' pages, the marketing tab is still visible, but the Newsletter form shows the hint that the page does not have a matching theme to be pushed as newsletter template.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.