Technical Articles
Integrated Employee XM and Intelligent SAP Solutions: Technical Description
Introduction
How can we integrate Employee Experience Management into Intelligent SAP Solutions including SAP SuccessFactors, Qualtrics and SAP Analytics Cloud? Curious? Then check out this blog post to grab an idea how it is technically done. We will explore the different components of our scenario and how they work in conjunction.
Architecture Overview
Our scenario includes the following SAP solutions: SAP Analytics Cloud, SAP Conversational AI, SAP SuccessFactors, Qualtrics, SAP Cloud Platform (Cloud Foundry environment). Additionally, we will develop a custom Mobile App (either iOS or Android) and a Node.JS middleware. The following sub sections will explain the components and how they work together in more detail.
Architectural Overview (source: own graphics)
SAP Analytics Cloud
In SAP Analytics Cloud we use a story to visualize Operational Data received from SAP SuccessFactors. Additionally, we use an embeddable UI to enable interactivity through action buttons. For this reason, we have to set up the following prerequisites:
- Firstly, we have to create an HTTP GET endpoint in our middleware. This endpoint has the sole purpose to provide an HTML document that is rendered within the SAP Analytics Cloud dashboard.
- Secondly, we need to add a Web Page to our SAP Analytics Cloud dashboard. For the Web Page Address we choose the endpoint of our middleware. This allows us to add Action Buttons to our SAP Analytics Cloud dashboard, which triggers lambdas in our middleware.
SAP Analytics Cloud Dashboard Website (source: own graphics)
Middleware
The middleware glues all components together and is deployed as a standalone Node.JS application in Cloud Foundry on SAP Cloud Platform. It serves the following purposes:
Firstly, it acts as an intermediator between the mobile chatbot application and SAP Conversational AI. All requests sent from the end user are routed via the middleware to SAP Converational AI, which parses and interprets the chat communication flow and keeps track of the communication state.
Secondly, it retrieves the flow of the survey from Qualtrics and injects it into the communication flow between end user and SAP Conversational AI. In this way we revolutionize the way how to fill out a survey. Instead of plain survey questions, we integrate them using a chatbot to make it more interactive. After the all responses have been given by the user, the middleware sends this collected X data to Qualtrics and closes the session.
Thirdly, the middleware is also capable of fetching O data from SAP SuccessFactors. Via a communication arrangement and a dedicated communication user, the middleware can fetch the onboarding dates of new employees and then triggers a push notification after the employee has finished their first 30 days in the company. Due to security and maintenance purposes, this connectivity is given by SAP Cloud Platform destination service.
Fourthly, the provides the UI action buttons for the SAP Analytics Cloud action buttons. It provides a static web page which is embedded into SAP Analytics Cloud:
middleware Action Buttons (source: own graphics)
For this reason it is important to set up the X-Frame options and the Content Security Policy in our middleware:
const allowCrossDomain = (req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', '*');
res.header('X-Frame-Options','allow-from https://<SAP ANALYTICS CLOUD HOST>/');
res.header('Content-Security-Policy','frame-ancestors https://<SAP ANALYTICS CLOUD HOST>/');
// intercept OPTIONS method
if ('OPTIONS' == req.method) {
res.status(200).send(200);
}
else {
next();
}
};
SAP SuccessFactors
SAP SuccessFactors is the data provider for O data, for which we need a technical user that is allowed to access the API of SAP SuccessFactors. Additionally, it provides O data used for the SAP Analytics Cloud dashboard. After setting up a technical user, we can retrieve employee data using the following API call:
SAP SuccessFactors API call (source: own graphics)
In the response we can parse the hireDate by which our middleware can calculate the number of days the employee has already been engaged in our company.
"hireDate": "2018-10-15",
Qualtrics
We use Qualtrics for collecting X data. For this reason, we have to create a new survey and add those questions that we want to ask our employees in our quarterly surveys. To let our middleware connect to this survey, we require both the survey id as well as the X-API-TOKEN so that the it can communicate via REST endpoints.
Qualtrics Survey (source: own graphics)
Mobile App
The People Pulse mobile app is the single touchpoint for employees. Via push notifications triggered in our middleware, the employee is notified that they can share their opinion with the company. For this reason, the mobile app solely communicates to our middleware and constantly receives from and updates the communication flow to our middleware. The communication flow looks like this:
Communication flow (source: own graphics)
Conclusion
In this quick blog post we learnt how to set up the technical components for our approach to integrate Employee XM and Intelligent SAP Solutions. Note that this is not a full technical documentation but rather a quick overview about the different components and how they work together. Furthermore, this blog post is just out of our personal experience and learning of the topic. It does not represent any official statements for SAP’s product directions or functionalities.
Very useful blog with all the technical components. Can we use CPI Neo environment instead.
Hello Krishna, thank you very much for your feedback!
Yes, instead of the SAP Cloud Platform Cloud Foundry environment you can either use SAP Cloud Platform Integration (CPI) or the SAP Cloud Platform Neo stack. However, this implies a change of the Node.JS middleware.