The SAP standard package “SAP Cloud for Customer Integration with SAP Marketing” (Integration Flow | SAP Cloud for Customer Integration with SAP Marketing | SAP Business Accelerator …) for the integration between SAP Sales Cloud (C4C) and SAP Marketing Cloud (SMC) provides several iFlows for the replication of account/contact and transactional (lead, activity, etc.) data.
With release 2308, the feature “Segmentation Attributes for Account Team Members” (Interaction Contact Attributes | SAP Help Portal) will be available in SMC. To make use of the new segmentation attributes, the Account Team Member entity needs to be filled properly by C4C.
However, in the above mentioned SAP standard package, there is no iFlow for the Account Team Member replication included. Therefore, a custom approach needs to be implemented in SAP Cloud Integration (CI) to fulfil the usage in segmentation and also in the email personalization scenario.
Architecture
To replicate the Account Team Members from C4C to SMC, an iFlow needs to be created in CI. The iFlow needs to pull the data on a frequent base (e.g. scheduling: each hour) from C4C.
The OData Adapter in CI can be used to access the C4C OData Service “CorporateAccountCollection” for replication of the “Account Team Members – Account Relationship“.
Then the mapping (see section “CI Configuration – Mapping”) to the OData service “API_MKT_CORPORATE_ACCOUNT_SRV;v=0003/AccountTeamMembers” needs to be done, to send the data to SMC.
Please notice:
In the above illustration, also the “Account Team Members“, so the Employee master data, is included. The C4C OData service “EmployeeBasicDataCollection” can be used in addition, to load further employee data (needs to be stored in custom fields or customer business objects in SMC).
However, within SMC, the employee master data is already provided in the app “Maintain Employees“. The attributes “First Name”, “Last Name” and “Email Address” are provided in the standard. The replication of further employee data is in most customer scenarios not needed.
Therefore, this blog focuses on the integration of the “Account Team Members Account Relationship” only.
C4C Configuration
Create Communication System for OData communication
A communication system needs to be created, to fetch the Account Team Members from C4C.
ID | e.g. SMC_AEI (Account Employee Integration) |
SAP Business Suite | No |
Host Name | AEI |
System Access Type | Internet |
In the technical information under system instances the following entry needs to be created:
System Instance ID | SMC_AEI |
Preferred Application Protocol | 6 – Http |
Create Communication Arrangement for OData communication
A communication arrangement with communication scenario “OData Services for Business Objects” needs to created.
In the communication arrangement the following OData services have to be assigned:
-
- businessuser
-
- customer
-
- employeeanduser
-
- employeebasicdata
C4C Payload example
When fetching the “CorporateAccountTeamCollection” from C4C, the JSON payload looks like below.
GET: https://<host>/sap/c4c/odata/v1/c4codataapi/CorporateAccountTeamCollection
{
"d": {
"results": [
{
"__metadata": {
"uri": "https://<host>:443/sap/c4c/odata/v1/c4codataapi
/CorporateAccountTeamCollection('00163E04B6021ED2B7C1BAE7533304F2')",
"type": "c4codata.CorporateAccountTeam",
"etag": "W/"datetimeoffset'2015-07-06T08%3A45%3A26.6721490Z'""
},
"ObjectID": "00163E04B6021ED2B7C1BAE7533304F2",
"ParentObjectID": "00163E04B6021ED2B7C1B5AF23E884C7",
"AccountID": "1000001",
"EmployeeUUID": "00163E03-A070-1EE2-88BA-37FB8F5F50A9",
"EmployeeID": "E1000",
"PartyRoleCode": "142",
"PartyRoleCodeText": "Account Owner",
"StartDate": "/Date(-62135769600000)/",
"EndDate": "/Date(253402214400000)/",
"MainIndicator": true,
"SalesOrganisationID": "",
"DistributionChannelCode": "",
"DistributionChannelCodeText": "",
"DivisionCode": "",
"DivisionCodeText": "",
"ETag": "/Date(1436172326672)/"
}
}
]
}
}
CI Configuration
The iFlow is executed periodically to fetch the Account Team Members from C4C.
Then the mapping to the OData service is done and the data needs to be replicated to SMC.
Mapping
In the iFlow, the mapping of the C4C OData service to the SMC service needs to be maintained. Following fields need to be mapped.
All fields of the mapping are mandatory.
C4C OData | SMC OData | Comment |
CorporateAccountOrigin | Default value: “SAP_C4C_BUPA” | |
AccountID | CorporateAccountID | |
EmployeeID | TeamMemberID | |
PartyRoleCode | Role |
Please notice:
-
- The “Employee ID” that is replicated from C4C, needs to have the same value as in the field “Employee ID” in the “Maintain Employees” app in SMC.
If you don’t use the same Employee ID (e.g. usage of automatic generated P-Numbers in SMC / different IDP in both systems / etc.), then you need to perform an additional mapping in the iFlow. This mapping needs to be adopted if you create/change the employee data in one of the systems.
- The “Employee ID” that is replicated from C4C, needs to have the same value as in the field “Employee ID” in the “Maintain Employees” app in SMC.
-
- The “Sales Area Data” that can be maintained in C4C standard on the Account Employee Relationship, are not considered in SMC standard. If you need to have sales area specific relationships, e.g. mapped to the marketing area, then you need to store the data in a custom business object.
SMC Configuration
OData “Account Team Members”
To replicate the “Account Team Members Account Relationships” to SMC, the below mentioned OData service needs to be used. Please have a look at the SAP-Help documentation of the OData service for more information:
Payload Examples for Corporate Accounts | SAP Help Portal
Please notice:
The function import “CorpAcctDeleteAllAccountTeamMembers” needs to be included in the payload for the correspondent account. This ensures that just the actual employee relationships are available in SMC.
The attribute “Sap-Cuan-Request-Timestamp” of “CorpAcctDeleteAllAccountTeamMembers” needs to be set to an earlier timestamp as for “AccountTeamMembers“. Else the sequence of the changesets will be in the wrong order.
--batch
Content-Type: multipart/mixed; boundary=changeset_761e49b6-3146-4a57-8d10-15816fb9c75a
--changeset_761e49b6-3146-4a57-8d10-15816fb9c75a
content-type: application/http
content-transfer-encoding: binary
POST CorpAcctDeleteAllAccountTeamMembers?CorporateAccountID='<CorporateAccountID>'&CorporateAccountOrigin='<CorporateAccountOrigin>' HTTP/1.1
Content-Length: 1035
Accept: application/json
Sap-Cuan-RequestTimestamp: '2017-10-02T12:13:10'
Sap-Cuan-SourceSystemType: EXT
Sap-Cuan-SourceSystemId: HYBRIS
Content-Type: application/json
{
}
--changeset_761e49b6-3146-4a57-8d10-15816fb9c75a
content-type: application/http
content-transfer-encoding: binary
PUT AccountTeamMembers(CorporateAccountID='<CorporateAccountID>', CorporateAccountOrigin='<CorporateAccountOrigin>',TeamMemberID='<TeamMemberID>',Role='<Role>') HTTP/1.1
Content-Length: 1035
Accept: application/json
Sap-Cuan-RequestTimestamp: '2017-10-02T12:13:20'
Sap-Cuan-SourceSystemType: EXT
Sap-Cuan-SourceSystemId: HYBRIS
Content-Type: application/json
{
}
--changeset_761e49b6-3146-4a57-8d10-15816fb9c75a--
--batch--
Team Member Data in Segmentation
With release 2308 the below segmentation attributes will be provided by the standard for the segmentation profiles “All Accounts” and “All Accounts and Contacts”.
The below mentioned attributes are provided by the data load from C4C:
-
- Employee ID of Account Team Member
-
- Role of Account Team Member
All other attributes are determined from the employee data within SMC (app “Maintain Employees“):
-
- Email Address of Account Team Member
-
- First Name of Account Team Member
-
- Last Name of Account Team Member
Team Member Data in Content Personalization
The employee attributes, like email, first name and last name, can be also used in the email content, e.g. to provide a personalized footer.