CRM and CX Blogs by SAP
Stay up-to-date on the latest developments and product news about intelligent customer experience and CRM technologies through blog posts from SAP experts.
Showing results for 
Search instead for 
Did you mean: 


Experience Management (XM) powered by Qualtrics XM Platform provides an extensive set of methods and tools to improve the customer experience along their journey.

One of the touchpoints we explored closely with one of our customers was the extension of campaign execution in SAP Marketing Cloud. As you know, SAP Marketing Cloud provides various campaign execution information like number of views, bounce rate, clicked links (so called O-data = operational data). But an important part is missing here: how the content of marketing campaigns resonates with end customers (X-data). Having these insights provides benefits for both parties: customers get relevant content, business get to know their customers, their reactions and preferences better.

In this blog post, I will describe a technical setup of integration between SAP Marketing Cloud and Qualtrics XM Platform and how we leverage it to gather customer feedback to the marketing content and make use of it in follow-up processes.

Process Overview

1905 SAP Marketing Cloud release comes with built-in Qualtrics survey integration, describing both the process and the technical setup.

It allows to start marketing campaigns where Qualtrics survey is integrated into the e-mail’s content (as a link), and then to gather all the survey responses back to Marketing Cloud and assign them to respondents. These survey answers can be used in Segmentation Models to form target groups (e.g. in a multi-step automated campaign to react to respondents' answers in the survey). The picture below gives a nice overview of the process:

Image Source (Survey Integration document)

In our case, the process will be slightly different: we do not use campaign to solely deliver a survey to a customer, but we integrate survey as an additional feature to ask for feedback around the main newsletter content. Therefore, we are not building a new process from scratch (e-mail campaigns are already being executed in Marketing), but we extend that process with feedback functionality.

Another extension we planned, additionally to a standard follow-up action (step 7 in the process above), was to provide visualisation of experience data in the campaign itself. The idea behind it is to bring X and O together: we have already extensive O-data in the campaign, and we want to display X-data (feedback from customers) right on the same spot. You will see later in this guide how we did this visualisation.

Technical Setup – Standard Integration

The foundation of the technical setup is the standard integration between SAP Marketing Cloud and Qualtrics. The main sources here are:

The following systems are involved in the process:

    • Qualtrics XM Platform

    • SAP Cloud Platform Integration (CPI)

    • SAP Marketing Cloud

    • SAP Cloud Platform API Management

Let's go through them one by one and do the setup.


In our case, we want a generic feedback to newsletter content, that's why it will be the same survey for all the campaigns we want to enrich. In case you have a campaign-specific survey, you need to create a new survey every time.

The survey is based on 2 simple questions:

    • How satisfied is the customer with the content (smileys or star rating)

    • Free text feedback

The mandatory config here is to insert the field sap-outbound-id to the survey’s embedded data. Also, we decided to save Campaign ID (utm_campaign) coming from tracking info.

Important recommendation: mark this survey as anonymous in Qualtrics. You have all the customer data in Marketing Cloud already and will use sap-outbound-id to map the response back.

Sample survey flow in Qualtrics:

Source: screenshot from Qualtrics CoreXM

SAP Marketing Cloud

We need to enable Marketing Cloud to receive inbound messages with survey responses. This requires a classical setup with communication system, communication user, communication arrangement and root certificates. All as described here.

It is also important to enable survey attributes in Segmentation Models. Refer to the second part of this guide to see how to do it.

SAP Cloud Platform Integration (CPI)

That's where most of the work is done. I will describe the high-level setup here, details to be found in corresponding docs.

First thing we need is authentication data for Qualtrics and Marketing, as we will call these systems at some point in time. For Marketing Cloud, it is our communication user, for Qualtrics it is the API token.

Then, download the iFlows from API Business Hub ( and import them into your new CPI package. You will need these three:

  • Third-party Survey Data Integration with SAP Marketing Cloud

    • Create Survey Data inSAP Marketing Cloud

  • Qualtrics Survey Data Integration with SAP Marketing Cloud

    • Create Survey Subscription in Qualtrics

    • Mapping Qualtrics Survey Data for SAP Marketing Cloud

In the package, you have to do quite intensive configuration, including Marketing Cloud and Qualtrics links, communication users etc. This help guide gives all the necessary details.

As a part of the setup, you will also need SAP Cloud Platform API Management, which sits between Qualtrics subscriptions and CPI iFlow (not going into further details here, you can check it in the help document).

In the end, the most important thing to understand is how these iFlows work together. The one called "Create Survey Subscription in Qualtrics" is designed to be executed once (when you deploy it), to register a webhook in Qualtrics. This webhook is called any time a survey in Qualtrics gets published. More on Qualtrics webhooks here (they are also known as Subscriptions). To see or delete webhooks you need to go via Qualtrics API by using e.g. Postman, there is no UI to maintain them.

Then, the other 2 iFlows play together to do the job. One of them - Create Survey Data in SAP Marketing Cloud - is generic for Marketing Cloud, without any Qualtrics specifics (also referred as Survey iFlow). The other one - Mapping Qualtrics Survey Data for SAP Marketing Cloud - is responsible to map Qualtrics data structures and do the Qualtrics calls (Qualtrics iFlow).

Image Source

This picture above shows how the integration process flows: when an event is triggered, Qualtrics checks subscriptions and calls the Publication URL, which is CPI Survey iFlow (call going through API Management). In CPI, Survey iFlow uses Qualtrics iFlow for Qualtrics callbacks to fetch the required data, then maps the data to Marketing format and calls Marketing API.

This process flow covers 2 situations (events):

  1. When a new survey is published (activateSurvey), we transfer Survey Metadata to Marketing Cloud (list of questions, selection options etc.). Also, when the survey is published, CPI registers the second subscription - for survey responses.

  2. When a survey response is provided (completedResponse.{SurveyID}), we transfer this response to Marketing Cloud as an interaction.

Technical Setup - Extension to save feedback on campaign level

So far, we've set up standard integration which brings survey responses into SAP Marketing Cloud as interactions, and we can use them in Segmentation. We want to go one step further here, and display customer feedback directly in the campaign. As you remember from our process, we use surveys as an additional feature, to understand if customers like the content of the newsletter. That's why we thought it would be valuable to display these experience data directly in the campaign, to see X & O mixed together.

We decided to introduce the following features to achieve it:

  1. Embed Qualtrics Dashboard into Marketing Cloud as a UI extension (mashup)

  2. Save the average customer rating in campaign success data

This is how our architecture looked in the end:

Source: own graphic

Embed Qualtrics Dashboard into SAP Marketing Cloud

We kept it simple here. In Qualtrics, we prepared a dashboard with all the required reports, and assigned its direct link as Extension in SAP Marketing Cloud. This displays the dashboard as a new tab on the campaign page.

Source: screenshot from SAP Marketing Cloud

Things to consider:

  • this will work smoothly only if you have SSO in Qualtrics, and the Marketing user must also have a Qualtrics user

  • you cannot parameterise the dashboard when calling it as a mashup. So, in our case it shows the data for all campaigns and you need to filter it manually.

Save average rating in Campaign Success data

We decided to measure feedback with 1-5 star rating, but it could also be any different metric. As said before, we wanted to have it saved directly on the campaign level.

Setup done in SAP Marketing Cloud:

  • Create new fields "Number of Responses" and "Rating" in Custom Fields and Logic app, business context Marketing Campaign and Marketing Campaign Performance Actual Measure

  • Activate Communication Arrangements SAP_COM_0304 and SAP_COM_0204. The complete list of communication arrangements for our scenario:

Source: screenshot from SAP Marketing Cloud

The setup in CPI turned out to be rather extensive. I will provide a high-level overview:

  • Survey iFlow has an "enhancement spot", which, in the end of processing, can call a so-called "ExtensibilityFlow" (if you set a parameter Batch_Payload_Extensibility to 1). So, I created a new iFlow and made sure its address is entered into ExtensibilityFlow.

  • In this Extensibility iFlow I do nothing but save the messages in Data Store in CPI.

  • Then, I built another "Campaign Success" iFlows, which starts periodically once a day, reads all the messages from the Data Store, calculates the new rating and responses and updates the campaign in Marketing Cloud.

This is how the CPI package looks in the end:

Source: screenshot from SAP Cloud Platform Integration

The complication of the process is related to Marketing Cloud API for success data - API_MKT_CMPGN_SUCCESS_IMPORT_SRV. It does not allow read operation and can do an update from one channel only once a day. To put it in other words, it is designed for periodic updates from some external channel, but not for real time updates. This makes us temporary store the data in CPI and push it periodically.

Process Walkthrough

Now, when the setup is finished, let's go through the end-to-end process.

First, create and publish Survey in Qualtrics (as was already explained above).

Next, in SAP Marketing Cloud, define campaign content - e-mail template. There we include the survey link.

Source: screenshot from SAP Marketing Cloud

Then, define a target group and start campaign using the new e-mail template. As a result of that, our customers receive a newsletter with survey link included. Yes, we use a generic Survey link, but when Marketing sends out e-mails it populates sap-outbound-id with a unique identifier for every receiver. Having sap-outbound-id in survey's embedded data will automatically save it in every response context.

When a customer clicks on survey link, a new browser window opens up, giving the customer a short survey to fill in. After it is done, the response flows back into Marketing, and we can instantly do further customer segmentation and plan follow-up actions.

Also, our campaign success data gets updated periodically and is visible along with campaign execution data. After some time the campaign's performance data will look like this:

Source: screenshot from SAP Marketing Cloud

And for additional insights, marketing users can switch to the Qualtrics dashboard directly from Marketing Cloud:

Source: screenshot from SAP Marketing Cloud


The scenario I described in this blog post showcases how you can enrich existing business process with experience data to gain important insights into customers’ perception of the marketing content.

From a technical standpoint, the implementation is based on standard Qualtrics – SAP Marketing Cloud integration, which, in addition, allows you to create extensions such as update of Campaign Success data.

If you are looking for more information, I encourage you to research it further using the links I provided or get back to me with your comments.