CX Works

CX Works brings the most relevant leading practices to you.
It is a single portal of curated, field-tested and SAP-verified expertise for SAP Customer Experience solutions

Automatically Create SAP Marketing Cloud Campaigns Based on Khoros Campaigns (1/2)

26 min read

A how-to on automatic creation of external campaigns in SAP Marketing Cloud based on Khoros campaigns.


This two part series is a follow-up to the External Campaigns in SAP Marketing Cloud using Khoros series. This series will showcase a different way of creating a SAP Marketing Cloud campaign, using Khoros Plans. The approached discussed in this series creates external SAP Marketing Cloud campaigns automatically, based on Khoros Plans, by using SAP Integration Suite as a middleware. This series will look at the use case between SAP Marketing Cloud and Khoros, the required configurations in SAP Marketing cloud and Khoros, and integration flows of the Cloud Integration capability within in SAP Integration Suite. Please note, this integration flow (iFlow) is not part of the standard integration content and it needs to reflect the customer’s requirement(s).


This first piece will analyze a use case to help you execute an external marketing campaign with SAP Marketing Cloud and Khoros and show you the required configurations. The Cloud Integration iFlow for replicating campaign success data is discussed in part 2.

Table of Contents

Business Use Case

Khoros is a social media management solution that allows users to plan, publish, moderate, respond, and analyze campaign performance across social networks and to collaborate across social and non-social teams using both social accounts and public data. khoros' mission is to connect businesses to the people they care most about as the social connections are deepest when businesses are informed by every customer interaction, regardless of channel. Marketing managers have better visibility on marketing campaigns by having a single holistic view of all the social media campaigns using Khoros along with traditional campaigns using other channels (for example, e-mail, SMS, and others) in SAP Marketing Cloud Marketing Calendar. These can help the overall marketing planning for an organization. Also, these provide aggregated Khoros campaign success data in SAP Marketing Cloud to understand the effectiveness of external campaigns using Khoros. 

Use Case

As per this use case, external campaigns will be created in SAP Marketing Cloud of type "Khoros Campaign" and it will be linked to the Khoros Plans (which is the corresponding object in Khoros for Marketing campaign). Also the campaign success data will be replicated from Khoros to SAP Marketing Cloud.

The integration flow (iFlow) in Cloud Integration will be scheduled at regular intervals. The iFlow will fetch all the Khoros plans, for a specified duration and initiative, to create corresponding external campaigns in SAP marketing Cloud. 

Follow the steps below to assign khoros' Plans to SAP Marketing Cloud external campaigns automatically, with a 1:1 mapping:

  1. Schedule the iFlow in Cloud Integration at a regular interval with a specified duration and initiative. If an initiative is not provided, the initiatives from the user account in Khoros, will be considered.
  2. All the plans that correspond to the initiatives are read from Khoros.
    Integration flow will check if the fetched Khoros plan is inside the specified duration mentioned in the integration flow as external parameter. 
  3. The iFlow will check if there is already an external campaign in SAP Marketing Cloud corresponding to the fetched Khoros Plan.
  4. A request will be sent to SAP Marketing Cloud to create an external campaign of type Khoros Campaign in SAP Marketing Cloud,  to assign the Khoros initiative and plan ID.
  5. The marketing calendar will be updated with the created campaign.

The diagram below illustrates how an external campaign scenario works between SAP Marketing Cloud and Khoros, using SAP Cloud Integration Suite.



External campaign success data will be replicated from Khoros to SAP Marketing Cloud using SAP Integration Suite. 

To replicate the campaign’s success data from Khoros onto SAP Marketing Cloud, follow the steps below:

  1. Schedule the iFlow in Cloud Integration on a regular interval with specified duration and initiative. If an initiative is not provided, the initiatives from the user account (in Khoros) will be considered
  2. The content and audience information will enrich the Khoros plans and messages will be posted onto different social media channels. All key performance indicators (KPIs)  such as likes, and comments, will be posted from different social media channels onto Khoros. As of now, this is done daily through a background job in Khoros.
  3. Aggregated performance data of Khoros' plans will be read by SAP Marketing Cloud from Khoros based on KPIs.

SAP Marketing Cloud Configuration

According to the concept of external campaigns in SAP Marketing Cloud; campaigns created in SAP Marketing Cloud will link to the external campaigns created and executed in Khoros and SAP Marketing Cloud campaigns will act as a proxy to the Khoros campaigns. Moreover, the campaigns created in SAP Marketing Cloud will not have a target group and SAP Marketing Cloud configurations will be divided into two parts for building this end-to-end scenario with Khoros:

  • Configurations for custom campaign category for external campaigns
  • Configurations to integrate with Khoros

Configurations for Custom Campaign Category for External Campaigns

The first requirement for this use case, is to create a custom campaign category in SAP Marketing Cloud.  SAP Marketing Cloud system usually comes with a predefined external campaign category, which you can set up to use it with the external system of your choice. It is possible to use the standard campaign category provided for external campaign, with category ID as EEC, or create an additional campaign category. Please note, the plan is to have a standard campaign category for Khoros campaign, with campaign category code EES, in the future. Once Khoros campaign category is part of standard product, this step will be redundant.

Below is a view of a standard campaign category for externally executed campaigns:



If you need an additional external campaign category for Khoros related campaigns, open a ticket with the component XX-S4C-SRV-CON, then provide the desired ID and name for the new category.

For this use case, a new campaign category called EES  was created titled Khoros Campaign - Test.



Note: In future releases, as a part of the standard SAP Marketing Cloud, if a campaign category is provided for Khoros related external campaigns, this step will not be required.

Configurations to Integrate with Khoros

To execute an external campaign using Khoros, you need to set up a communication user, communication system, and communication arrangement in SAP Marketing Cloud, using communication management application.


A) Create a Communication User

Log on to SAP Marketing Cloud system using an administrator business role and go to SAP Marketing Cloud application - Maintain Communication Users.

Create a communication user by providing the following information:

  1. User Name: Can be freely named
  2. Description: Can be freely named
  3. Password: Kindly enter proposed password or set it on your own

Certificate: It could be another way to authenticate Cloud Integration system. Upload the client certificate downloaded from Cloud Integration system.

B) Create a Communication System

Log on to SAP Marketing Cloud system using an administrator business role and go to SAP Marketing Cloud App - Communication Systems. Because this is an inbound scenario to SAP Marketing Cloud, the communication system will act as a dummy system to set the communication users to the communication arrangements:


Create a communication system and provide the following information:

System ID: Can be freely named, for example, <Name of external system>.

System Name: Can be freely named, for example, <Name of external system>.

Host Name: dummy.

HTTPS Port: Needs to be provided by customer, for example, <443>.

User for inbound communication (user): Enter the communication user created in previous step. You must select the authentication method: user ID and password or SSL Client Certificate or both.

We recommend using the client certificate for this communication, instead of the user ID and password based authentication.

C) Create a Communication Arrangement

Log on to SAP Marketing Cloud as an Administrator user and go to the SAP Marketing Cloud App - Communication Arrangements:

Create a communication arrangement and provide following information:

1. Communication Scenario ID: Choose Marketing - Campaigns Integration (SAP_COM_0204) communication scenario.

2. Communication Arrangement Name (Common Data): Provide any suitable name for the communication arrangement.

3. Communication System ID (Common Data): Communication system created for corresponding CPI system needs to be selected. For example, the communication system CPI_V0546_1 needs to be selected for this case.


4. User name (inbound communication): One of the inbound users maintained in the communication system needs to be selected.

5. Authentication Method (inbound communication): SSL Client Certificate based authentication has been selected. Also, Basic authentication based on User ID and Password could be used.

6. Inbound Services: All the inbound services generated, can be used in Cloud Integration.




Another communication arrangement needs to be created to configure communication scenario related to campaign success data. For this case, we can use the same communication system and communication user created in the previous step.

Create a communication arrangement and provide following information:

1. Communication Scenario ID: Choose Marketing - Customer Attribution Integration (SAP_COM_0304) communication scenario.

 2. Communication Arrangement Name (Common Data): Provide any suitable name for the communication arrangement.

 3. Communication System ID (Common Data): Communication system created for corresponding CPI system needs to be selected. For example, the communication system CPI_V0546_1 needs to be selected for this case.

4. User Name (inbound communication): One of the outbound users maintained in the communication system needs to be selected. 

5. Authentication Method (inbound communication): Basic authentication based on user ID and password has been used. Also, it is possible to use SSL Client Certificate based authentication, which is recommended for the productive scenario.

6. Inbound Services: All inbound services that are generated could be used in Cloud Integration.


Khoros Configurations

Always have a Khoros developer account to check the available Application Programming Interfaces (APIs). Also, we recommend reading the Khoros documentation to better understand the concept of API authentication, data model, and input parameters.

khoros' API documentation:  https://developer.khoros.com

To check the APIs and to execute the authentication, the following credentials are required:

  • clientId - Your personal API key for Khoros.
  • clientSecret - Your personal API secret for Khoros.
  • loginEmail - The e-mail address you use to log in to Khoros.
  • loginPassword - The password you use to log in to Khoros.

Khoros uses oAuth2 for authentication. To get an oAuth token,follow the below steps: 


  1. Log on to the Khoros developer account.



  2. Go to API and open one of the APIs. For example, we will be testing Initiative API. Select Get Access Token.

  3. Select Get Access Token again, after providing the correct credentials.




  4. Select Grant Access to get the oAuth access token, which is generated if the credentials are correct.





    This oauth_access_token can be used in the iFlow within Cloud Integration to authenticate Khoros' API calls.

Khoros' API Details

 The  https://api.spredfast.com/v2/conversations/initiative  API could be used to read initiatives.


The https://api.spredfast.com/v2/conversations/initiative/{initiativeId}/plan API could be used to read campaigns (plans in Khoros).


SAP Business Technology Platform Configuration

Because SAP Integration Suite will be used as middleware for external campaign execution in Khoros using SAP Marketing Cloud, you should follow the steps below in SAP Business Technology Platform (SAP BTP):

  • Logon to your SAP BTP Cockpit and create a technical user on the SAP BTP
  • Logon to Cloud Integration capability within SAP Integration Suite and navigate to Design
  • Create a new Integration Package
  • Create, design, and configure a new iFlow
  • Deploy the iFlow

You need to develop two iFlows to create external campaigns in SAP Marketing Cloud based, on the Khoros plans, and replicate the aggregated campaign success data from Khoros, onto SAP Marketing Cloud. But, this article only covers the first iFlow, to help you create external campaigns in SAP marketing Cloud.

IFlow to create external campaign

This iFlow reads Khoros Plans based on the following parameters:

  • Time duration (campaign start and end date)
  • Khoros initiative

These parameters are maintained as external parameter, so that they can be configured when the iFlow is deployed. Based on the plans read from Khoros, an external campaign will be created in SAP Marketing Cloud using Marketing Campaign API. This iFlow could be scheduled at a regular interval. If there is no Khoros initiative configured in the iFlow, it will consider the plans corresponding to all the initiatives in the Khoros system for a user account.

This section break down the design and configuration of this particular iFlow, more in-depth.

Step 1: Add start timer 

By using the timer, the iFlow begins to execute. Currently, the timer is set up to run once, therefore the iFlow will execute once, every time it is deployed. In productive scenarios, it can be scheduled periodically.

Step 2: Assign external parameter values to the exchange property variables

All of these parameters such as initiative name, initiative ID, campaign start date, and campaign end date are maintained as external parameters. So, this content modifier has been used to assign the values of the external parameters to the exchange property variables. The externalized parameters can be seen in the screenshot below:

Step 3: Set authorization– content modifier

A parameter authorization has been created, at the message header, and the oAuth token, which has been received from the Khoros (in Khoros Configuration chapter), has been provided as a value. There could be an alternative approach for generating an oAuth code by calling the Khoros system with the following information:

clientId - Your personal API key for Khoros.
clientSecret - Your personal API secret for Khoros.
loginEmail - the email address you use to log into Khoros.
loginPassword - the password you use to log into Khoros.

Step 3.1.1: Router to check initiative ID

Because the flow will be based on the initiative ID entered as external parameter, there is a router to check whether Initiative ID has been provided or not. If the initiative ID is provided, the flow will continue to fetch all the corresponding plans, directly to that initiative. If there is no Initiative ID, it will fetch all the initiatives corresponding to that account, then proceed to fetch plans for each initiative.

If there is no initiative ID provided in the previous step, it will follow the steps mentioned below:

Step 3.1.2: Add Http request to Khoros API

This call has been made to the Khoros API to read all the initiatives. In this step, the mentioned Khoros API will be called: https://api.spredfast.com/v2/conversations/initiative

GET method of the Khoros initiative API has been used to fetch all the initiatives. Please note, that pagination could be implemented for a large number of initiatives, so that the initiatives are fetched page wise. But, it will need project work to be incorporated into the iFlow.

Step 3.3: Add root– content modifier

Root has been added to the message body of the JSON response from Khoros, as it is required to convert the JSON message to XML format.

Step 3.4: Add JSON to XML converter

Since the following steps in iFlow expect an XML formatted file, it is required to convert the Khoros JSON response to XML.

If the Initiative ID is provided in the previous step, it will follow the steps below:

Step 3.5: Prepare message body with initiative ID in content modifier

Prepare XML message body with the provided values for the following steps, once the initiative ID and Name have been provided.

 

Find the XML message body which was set up:

<Root> 
<data> 
<sfEntityType>Initiative</sfEntityType> 
<id>${property.InitiativeID}</id> 
<name>${property.InitiativeName}</name> 
</data> 
</Root>

Step 4: General splitter for initiative

Based on the previous steps, either one or multiple initiatives could populate the message body. Split the message body and read the plans for each initiative.

The message body was split at ‘//data’ because the next steps need to be executed for each initiative. Please note, the parallel processing has not been enabled. If there is a huge amount of initiative, it could enable parallel execution. Stop of exception is disabled because it prevents other initiatives from creating marketing campaign processes, if there is an error for an initiative.

Step 5: Add local process call

For each initiative, you need to fetch all the plans and create marketing campaigns based on Khoros plans. Call a separate process to fetch all the plans that correspond to an initiative.

In this section, all the steps in the local process get all plans are explained.

Step 5.1: Get initiative for next call – content modifier

Initiative ID and initiative name will be parsed from the XML message body in this step and it will be stored in the message header variables initiative ID and initiative name.

Step 5.2: Http request to Khoros API to fetch plans

This call has been made to the Khoros API to read all the plans corresponding to the initiative. The API that has been used to read all the plans: https://api.spredfast.com/v2/conversations/initiative/${header.InitiativeID}/plan

GET method has been used to fetch all the plans with Page Size equal to 99. If there is a huge list of plans in an initiative, implement an additional looping process call, to read all the plans page wise.

Step 5.3: Add root content modifier

The root has been added to the message body of the JSON response from Khoros because it is required to convert the JSON message to XML format.

Step 5.4: Add JSON to XML converter

Since the following steps in iFlow expect an XML formatted file, it is required to convert the Khoros JSON response to XML.

Step 5.5: Add general splitter for plans

Based on the previous steps, it could be either one or multiple plans that are populated in the message body. It is required to split the message body for each plan to validate and create campaign in SAP Marketing Cloud.

The message body was split at ‘//data’ because the next steps need to be executed for each plan. Please note, the parallel processing has not been enabled. If there is a huge amount of plan, it could be possible to enable parallel execution. Stop of Exception is not enabled, as it will stop the marketing campaign creation process of other plans, if there is an error for a plan.

The next step is to check if the start and end date of the plan is in between the campaign start and end date, provided at the time of the iFlow configuration.

Step 5.6: Get plan dates– content modifier

This content modifier will assign plan start date and end date to variables.

Step 5.7: Convert date – Groovy script

Khoros provides the date in millisecond since epoch. So, you will have to convert the time to a more common format. Date needs to be converted in yyyy-MM-dd'T'HH:mm:ss format for SAP Marketing Cloud system.

Find the groovy script written inside this method:

import groovy.xml.*
import groovy.json.*
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
    
    
    map = message.getProperties();
    def tz= TimeZone.getTimeZone('UTC');
    
    def value = map.get("PLAN_START_DATE");
    def updatedvalue = (new Date(value.toLong().minus(tz.rawOffset))).format("yyyy-MM-dd'T'HH:mm:ss");
    message.setProperty("PLAN_START_DATE", updatedvalue);
    
    value = map.get("PLAN_END_DATE");
    updatedvalue = (new Date(value.toLong().minus(tz.rawOffset))).format("yyyy-MM-dd'T'HH:mm:ss");
    message.setProperty("PLAN_END_DATE", updatedvalue);
 
    value = map.get("SUCCESS_END_DATE");
    updatedvalue = (((new Date(value.toLong().minus(tz.rawOffset)))).plus(60)).format("yyyy-MM-dd'T'HH:mm:ss");
    message.setProperty("SUCCESS_END_DATE", updatedvalue);
    
    return message;
}


Step 5.8: Check the plan start and end date – router

This router will check if the plan start and end date is within the campaign start and end date. If the plan is inside the campaign duration, in the mentioned iFlow configuration, it will proceed with the next steps. Otherwise, it will proceed with checking the dates for the next plan.

The is the condition expression that has been maintained:

${property.PLAN_START_DATE} >= ${property.CAMPAIGN_START_DATE} and ${property.PLAN_START_DATE} < ${property.CAMPAIGN_END_DATE}

Step 5.9: Check marketing campaign – local process call

If the previous date validation is successful, it will call a sub process called check marketing external campaign to verify if the campaign corresponding to the plan has been created in SAP Marketing cloud system or not.

The required steps for checking marketing campaigns will be mentioned in the following steps:

Step 5.9.1: Set campaign ID – content modifier

The campaigns created in SAP Marketing cloud corresponding to Khoros plan will have campaign name as Khoros plan name and the external campaign ID will be similar to Khoros plan ID. So, to check whether there is a campaign already in SAP Marketing cloud corresponding to Khoros plan, it is required to parse the campaign name and campaign ID. Also, the marketing area was maintained as Global, it could be different on real-time scenario.

Step 5.9.2: Modify campaign ID – Groovy script

In general, the external campaign ID which is parsed in the previous step will have ‘-’ in the value. So, this groovy script is required to remove all ‘-’ from the external campaign ID.

Find the groovy script written in this method:

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {

       //Headers 
       def map = message.getProperties();
       def String value = map.get("EXT_CAMPAIGN_ID").toString();
       String updatedvalue = value.replaceAll("-","");
       
       message.setProperty("EXT_CAMPAIGN_ID", updatedvalue);
       return message;
}

 Step 5.9.3: ODATA call to SAP Marketing Campaign API

In this step, SAP Marketing Cloud API will be called to check if there is already a campaign with the external campaign ID equal to the plan ID from the Khoros plan.

SAP Marketing Cloud API: API_MKT_CAMPAIGN_SRV;v=0002

Method: Get

Resource path: ExternalCampaignReferences

Query options: $filter=ExternalCampaignID eq '${property.EXT_CAMPAIGN_ID}'&$top=100

Step 5.9.4: Add a Router

In this step, the response for the SAP Marketing Cloud API call will be checked. If there is already an external campaign for the Khoros plan, further execution will be stopped and it will follow the same process for the next plan. If there is no external campaign in SAP marketing cloud, the following process will be called to create campaign.

Step 5.9.5: Add post campaign – local process call

If there is no external campaign created in SAP Marketing Cloud, this sub process will be called to create campaign in SAP Marketing Cloud.

The steps relates to the sub-process post-campaign in marketing will be mentioned:


Step 5.9.5.1: campaign create request – content modifier

In this step, the campaign create request will be created with all the mandatory fields that are required to create a campaign in SAP Marketing Cloud.

Find the xml body that was set in this step:

<batchParts>
<batchChangeSet>
<batchChangeSetPart>
<method>POST</method>
<Campaigns>
<Campaign>
<CampaignDescription>${property.EXT_CAMPAIGN_NAME}</CampaignDescription>
<CampaignName>${property.EXT_CAMPAIGN_NAME}</CampaignName>
<CampaignPriority>4</CampaignPriority>
<CampaignCategory>EES</CampaignCategory>
<MarketingArea>${property.MarketingArea}</MarketingArea>
<MediaType>SOCIAL</MediaType>
<CampaignStartDate>${property.PLAN_START_DATE}</CampaignStartDate>
<CampaignEndDate>${property.PLAN_END_DATE}</CampaignEndDate>
<CreationDateTime>${date:now:yyyy-mm-dd'T'hh:mm:ss}</CreationDateTime>
</Campaign>
</Campaigns>
</batchChangeSetPart>
</batchChangeSet>
</batchParts>

Step 5.9.5.2: Add ODATA call to SAP Marketing campaign API

In this step, SAP Marketing Cloud API will be called to create a campaign with the message body that was set in the previous step.

SAP Marketing Cloud API: API_MKT_CAMPAIGN_SRV;v=0002

Method: POST

Resource path: Campaigns

Fields: CampaignName

Enable Batch Processing: Checked

Step 5.9.5.3: Get newly created campaign ID – content modifier

In this step, you have to parse the campaign ID and the campaign UUID of the newly created campaign.

CampaignUUID: /batchPartResponse/batchChangeSetResponse/batchChangeSetPartResponse/body/CampaignUUID

CampaignID: /batchPartResponse/batchChangeSetResponse/batchChangeSetPartResponse/body/CampaignID

Step 5.9.5.4: Add check campaign creation - router

In this step, the router will check whether the campaign was created in previous step or not.

If there is no campaign created at this step, further process will be stopped at this point. If there is a campaign created in the previous step, the next process will be executed.

Step 5.9.5.5: Set external campaign request – content modifier

In this step, you need to maintain the external campaign data in the newly created campaign. So, the message body will be prepared with external campaign data, along with the newly created campaign information.

The prepared message body goes as followed:

<batchParts>
<batchChangeSet>
<batchChangeSetPart>
<method>POST</method>
<Successes>
<Success>
<CampaignID>${property.CampaignID}</CampaignID>
<CampaignCategoryID>EES</CampaignCategoryID>
<ExternalCampaignID>${property.EXT_CAMPAIGN_ID}</ExternalCampaignID>
<ExternalCampaignName>${property.EXT_CAMPAIGN_NAME}</ExternalCampaignName>
<Advertiser>${header.InitiativeID}</Advertiser>
<AdvertiserName>${header.InitiativeName}</AdvertiserName>
</Success>
</Successes>
</batchChangeSetPart>
</batchChangeSet>
</batchParts>

Campaign category ‘EES' has been mentioned in the message body because Khoros campaign category was created with campaign category ID 'EES'. This can be different from a customer implementation.

Step 5.9.5.6: Add ODATA call to maintain external campaign data

In this step, SAP Marketing Cloud API will be called to maintain external campaign data to the newly created campaign, with the message body that was set in the previous step.

SAP Marketing Cloud API: API_MKT_CMPGN_SUCCESS_IMPORT_SRV

Method: POST

Resource path: Successes

Fields: CampaignSuccessUUID

Enable Batch Processing: Checked

Step 5.9.5.7: Change campaign status – local process call

In the previous steps, new external campaign will be created in SAP Marketing Cloud. The status of the newly created campaign will be in preparation. Once the external campaign assignment is successful, you have to change the status of the campaign to released.

So, this local process call will change the status of the newly created campaign to released.

Step 5.9.5.7.1: Add campaign change request – content modifier

In this step, you need to maintain the message body to change the status of the campaign to 2, which corresponds to released.

The prepared message body goes as followed:

<batchParts>
<batchChangeSet>
<batchChangeSetPart>
<method>PUT</method>
<uri>Campaigns(guid'${property.CampaignUUID}')</uri>
<Campaigns>
<Campaign>
<CampaignStartDate>${property.PLAN_START_DATE}</CampaignStartDate>
<CampaignEndDate>${property.PLAN_END_DATE}</CampaignEndDate>
<CampaignName>${property.EXT_CAMPAIGN_NAME}</CampaignName>
<CampaignLifecycleStatus>2</CampaignLifecycleStatus>
<CampaignPriority>4</CampaignPriority>
</Campaign>
</Campaigns>
</batchChangeSetPart>
</batchChangeSet>
</batchParts>

Campaign Lifecycle status is set as 2 in the message body. Please note, that this could change depending on the customer's requirement. If the customer wants to keep the campaign in preparation status for manual change, this step is not required.

Step 5.9.5.7.2: Add ODATA call to maintain external campaign data.

In this step, SAP Marketing Cloud API will be called to maintain external campaign data in the newly created campaign, with the message body that was set in the previous step.

SAP Marketing Cloud API: API_MKT_CAMPAIGN_SRV;v=0002

Method: PUT

Resource path: Campaigns(CampaignUUID)

Fields: CampaignUUID

Enable Batch Processing: Checked


Conclusion

In this article, you learned how to execute an external campaign automatically, in SAP Marketing Cloud using Khoros. Now, you should be familiar with all the steps required to create external campaigns in SAP Marketing Cloud based on Khoros Plans. The integration flow required to replicate campaign success data to SAP Marketing Cloud from Khoros, will be discussed in Part 2.


Overlay