CX Works

A single portal for curated, field-tested and SAP-verified expertise for your SAP C/4HANA suite. Whether it's a new implementation, adding new features, or getting additional value from an existing deployment, get it here, at CX Works.

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

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


This two part series is a follow-up to the External Campaigns in SAP Marketing Cloud using Spredfast series. This series will showcase a different way of creating a SAP Marketing Cloud campaign, using Spredfast Plans. The approached discussed in this series creates external SAP Marketing Cloud campaigns automatically, based on Spredfast Plans, by using SAP Cloud Platform integration as a middleware. This series will look at the use case between SAP Marketing Cloud and Spredfast, the required configurations in SAP Marketing cloud and Spredfast, and integration flows in SAP Cloud Platform Integration (CPI). Please note, this integration flow (iFlow) is not part of the standard CPI 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 Spredfast and show you the required configurations. The SAP CPI iFlow for replicating campaign success data is discussed in part 2.


Table of Contents

Business Use Case

Spredfast 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. Spredfast’s 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 Spredfast 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 Spredfast campaign success data in SAP Marketing Cloud to understand the effectiveness of external campaigns using Spredfast. 

Use Case

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

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

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

  1. Schedule the iFlow in SAP CPI at a regular interval with a specified duration and initiative. If an initiative is not provided, the initiatives from the user account in Spredfast, will be considered.
  2. All the plans that correspond to the initiatives are read from Spredfast.
    Integration flow will check if the fetched spredfast 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 Spredfast Plan.
  4. A request will be sent to SAP Marketing Cloud to create an external campaign of type Spredfast Campaign in SAP Marketing Cloud,  to assign the Spredfast 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 Spredfast, using SAP CPI.


External campaign success data will be replicated from Spredfast to SAP Marketing Cloud using SAP Cloud Platform Integration. 

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

  1. Schedule the iFlow in SAP CPI on a regular interval with specified duration and initiative. If an initiative is not provided, the initiatives from the user account (in Spredfast) will be considered
  2. The content and audience information will enrich the Spredfast 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 Spredfast. As of now, this is done daily through a background job in Spredfast.
  3. Aggregated performance data of Spredfast's plans will be read by SAP Marketing Cloud from Spredfast 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 Spredfast and SAP Marketing Cloud campaigns will act as a proxy to the Spredfast 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 Spredfast:

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

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 Spredfast campaign, with campaign category code EES, in the future. Once Spredfast 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 Spredfast 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 Spredfast Campaign - Test.



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

Configurations to Integrate with Spredfast

To execute an external campaign using Spredfast, 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 SAP CPI system. Upload the client certificate downloaded from SAP Cloud Platform 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 SAP Cloud Platform 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 SAP Cloud Platform Integration.


Spredfast Configurations

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

Spredfast's API documentation: https://devcenter.spredfast.com/api

To check the APIs and to execute [what?], the following credentials are required:

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

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


  1. Log on to the Spredfast developer account: https://devcenter.spredfast.com/_/login



  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 SAP CPI to authenticate Spredfast's API calls.

Spredfast's 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 Spredfast).


SAP CPI Configuration

Because SAP Cloud Platform integration (CPI) will be used as middleware for external campaign execution in Spredfast using SAP Marketing Cloud, you should follow the steps below in SAP CPI:

  • Logon to your SAP Cloud Platform Cockpit and create a technical user on the SAP Cloud Platform Cockpit
  • Logon to SAP CPI 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 Spredfast plans, and replicate the aggregated campaign success data from Spredfast, 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 Spredfast Plans based on the following parameters:

  • Time duration (campaign start and end date)
  • Spredfast 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 Spredfast, 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 Spredfast initiative configured in the iFlow, it will consider the plans corresponding to all the initiatives in the Spredfast 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 Spredfast (in Spredfast Configuration chapter), has been provided as a value. There could be an alternative approach for generating an oAuth code by calling the Spredfast system with the following information:

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

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 Spredfast API

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

GET method of the Spredfast 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 Spredfast, 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 Spredfast 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:

<?xml version="1.0" encoding="UTF-8"?> 
<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 Spredfast 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 Spredfast API to fetch plans

This call has been made to the Spredfast 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 Spredfast 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 Spredfast 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

Spredfast 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 Spredfast plan will have campaign name as Spredfast plan name and the external campaign ID will be similar to Spredfast plan ID. So, to check whether there is a campaign already in SAP Marketing cloud corresponding to Spredfast 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 Spredfast 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 Spredfast 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:

<?xml version="1.0" encoding="UTF-8"?>
<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:

<?xml version="1.0" encoding="UTF-8"?>
<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 Spredfast 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:

<?xml version="1.0" encoding="UTF-8"?>
<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 Spredfast. Now, you should be familiar with all the steps required to create external campaigns in SAP Marketing Cloud based on Spredfast Plans. The integration flow required to replicate campaign success data to SAP Marketing Cloud from Spredfast, will be discussed in Part 2.