Extensibility of Interaction Contact in SAP S/4HANA Marketing and SAP Hybris Marketing
I am introducing the enhancement possibilities of the Interaction Contact, one of the central object in the SAP S/4HANA Marketing Cloud and SAP Hybris Marketing. All the information provided in the blog are based on the 1608 release.
We have three possibilities to enhance the object Interaction Contact. One is the standard extensibility where you can add additional attributes which have an 1:1 relation to the Interaction Contact itself. Another one is the possibility to use the Marketing Attributes, where you are able to model a 1:n relation to the Interaction Contact. And the third one is to use the Custom Business Objects Root Node, where you are able to model a 1:n relation as well. Note the Custom Business Object (=CBO) is only available in the SAP S/4HANA Marketing Edition.
The table below should give you an overview:
|Standard Extensibility||Marketing Attributes||
Custom Business Objects Root Node
Interaction Contact – attribute value
|1 – 1||1 – n||1 – n|
|Number of attributes||Currently 250||Unlimited||Unlimited|
|Data format of attribute||Own data fields (with own domains)||Only string is available(The Marketing Attributes itself are extensible, but has another meaning)||Own data fields|
|Translation of attribute value||Text join possible, with domains or add. text table (CBO)||Not possible||Translation possible with an additional CBO|
|Visibility of attributes from different sources||Only attribute from source with highest priority stored in the Golden Record.||All attributes are visible||All attributes are visible|
|Addable to segmentation||Yes via configuration Fiori App||Yes already integrated as key – value pair (Marketing Attribute Category – Marketing Attribute)||Yes via App “Manage your solution”|
|Inbound Interfaces||Included into standard inbound interface (OData and CSV)||Yes already integrated as key – value pair (Marketing Attribute Category – Marketing Attribute)||Yes via App “Manage your solution”|
|Export Definition (configurable via „Segmentation Configuration”)||Yes||Yes||Yes|
To use the standard extensibility of the Business Object Interaction Contact, you have to use the application “Custom Fields and Logic” in the Fiori Launchpad. We offer different business contexts for the Interaction Contact Marketing: Company, Marketing: Person and Marketing: Interaction Contact. The business context “Marketing: Company” will be valid for the corporate accounts, “Marketing: Person” for the individual persons and “Marketing: Interaction Contact” for both.
The objects are only visible in the solution if they are enabled in the Fiori App “Custom Fields and Logic” under the tab “UIs and Reports”, see screenshot:
User Interface Integration
Contact Factsheet / Corporate Account Factsheet
- Extension fields and marketing attributes are visible in contact and corporate account factsheet. What kind of extension fields are visible in which factsheet is depending on the business context.
- Extension fields visible with description and value,
- Marketing Attributes visible with description (Marketing Attribute Category) and listed values
- CBO data are not integrated
Contact List / Corporate Account List
- Extension fields automatically available in contact / corporate account list
- Field visibility is personalized per user
- Extension fields addable via configuration Fiori app
- Dedicated attributes in segmentation for the extension fields
- Fields are added to the corresponding group consumer / contact / corporate account
- Marketing attribute category and marketing attribute available in delivered segmentation profiles as generic attributes
- Segmentation is done in a two-step approach è first select on marketing attribute category and second on marketing attribute
- No specific attribute available; for example attribute like Hobby
Custom Business Object (Cloud only)
- CBO attributes addable via app “Manage your solution”, only available for the root node of the custom business object
- Selected attributes visible under new attribute group, one per CBO
- Dedicated attributes per column in CBO
- Complex attribute group e.g. working experience (start date, end date, working experience, company name …..)
Thank you for this interesting blog!
So for the standard extension fields we need to use the "custom fields and logic" app.
But what about the marketing attributes? Where can those be made?
I would say the marketing attributes itself are extensible by nature, because it is a key value pair. You have to define the key and can store the corresponding value.
In addition to that, you have also the possibility to enhance the marketing attribute structure. In the custom fields and logic app, if you try to add a new field you have to select a business context. There you will find Marketing Attributes for Contacts.
Hope this helps.
We are on Hybris Marketing Cloud. I have a scenario where we need to create Marketing Attribute with multiple value for each Contact.
I have created a Marketing Attribute using Custom Field and Logic App. I want to now how to enter the attribute values for the created field. I did not find any option to start creating Attribute values for the field in the App.
Also there is another Marketing Attribute Category App in YMKT cloud. I used this and created a category. I didn't find anywhere mapping between Marketing Attribute created in Custom Fields App and also the marketing attribute category.
Looking for 'how to' related the above two.
Thanks and Regards,
I tried to create a field with context "marketing attributes for persons".
However I don't find it on my contact factsheet, and neither on the Import Data template for Contacts. Also not as an input field for landing pages.
It's not in CUAND_CE_IC_ROOT either, however I do find it in CUAND_CE_IC_MA.
But how do we fill it up with data if it's not appearing in the Import Data templates?
the marketing attributes are not part of the Import Data template for Contacts. No file import available for the Marketing Attributes. To import Marketing Attributes you have to use our provided OData service CUAN_IMPORT_SRV. As I already mentioned in my first reply, the marketing attributes are extensible by nature. You just have to import new key value pairs (e.g. key = Favorite Color - value = Red assigned to contact 4711). Means contact 4711 will have the Favorite Color = Red. You are able to add more colors to this contact. In addition to that you are able to add a new Marketing attribute to the same contact (e.g. key = hobby - value = ice hockey assigned to contact 4711).
If you enhance the Marketing Attributes structure with a new extension field, you enhance the structure for all Marketing Attributes which is in standard the key and value pair.
Can you please explain your use case, what you try to do?
Oooh, now I get it. Thx for the clarification.
I'm not a technical person so I usually go for the Import Data screen to test out things, and not via OData, hence my confusion.
But these marketing attributes are also not available on Landing Pages (whereas Custom Fields are)...
Use case: a sort of survey. I want to ask my customers e.g. "what are your hobbies?" and this can be more than 1 hobby (so Custom fields are not usable as they are 1-1).
So if I want to ask my customers for their hobbies and want to store this via marketing attributes...
I need to build a separate page on a website, and build a script that calls OData service CUAN_IMPORT_SRV to add the marketing attributes & values to the customer data? Sounds like lots of custom work, there's no other more standard possibility for this perhaps?
Thanks for the blog. It is really helpful!
I have a few questions. Do you have any guidance?
1) After adding custom fields, only those in business context "Marketing: Interaction Contact" will be included in the import excel template. Those in "Marketing: Person" or "Marketing: Company" won't.
2) I thought marketing attribute could be extended with business context "Marketing Attributes for Persons", but it seems not work.
3) When adding custom fields in segmentation, after I click save button, a error "The system enforces the prefix '_SAP' or '~SAP'".
Hi Bin Li,
the business context Marketing: Contact and Corporate Account enhanced both objects and should be reflected in the Marketing: Contacts and Marketing: Corporate Account excel template. If you enhance via the business context Marketing: Contact, it should be reflected in the Marketing. Contacts only and the same for the Marketing: Corporate Account.
For your point 2 and 3, I would propose to raise a customer ticket, that the development support can help you with a solution.
Hello, Bing Li!
I have the same problem as your point 3. Have you found a solution?
3) When adding custom fields in segmentation, after I click save button, a error “The system enforces the prefix ‘_SAP’ or ‘~SAP'”.
please see my comment in the previous reply.
This might be helpful here!
Do you need to repeat same action in all systems - development, test and production? I added a new custom field, but there is no transport created with this action.
If you are referring to the custom fields created via Extensibility & Adaptability app then yes you can transport them. you need to do the following.
You can see the video here.https://help.sap.com/doc/1a93686c176845f0832a2a73221dd90b/1610%20001/en-US/frameset.htm?d0d669bdb75a4762910524b30fc6fc32.html
Path: SAP Fiori Application ->Extensibility ->Extensibility Scenario ->Creating Extension Items and Transporting them.
I have some questions related to the translation options of the Standard Extensibility and CBO fields.Could you provide some more info on what the custom CBO for the translation values should look like? How should it be related to the custom field or custom CBO and how do you indicate which column contains the Language, and which columns should then be key? (I heard a CBO can only have one key column?).
for CBOs that are flagged as "Can Be Associated" you indeed have only one key field. For CBOs that are not used in custom fields, you can have multiple keys. Can you explain your use case in more detail? From what I understand of your question, you are rather looking for the custom field type Code List. In this type you can define codes with descriptions, e.g. colors, and you can directly translate them.
I'm looking for a combination of Code List and CBO actually.
I have a requirement where on a Product, I need a custom field, which consists of code/values; but is multiselect.
More specific an example (it's a made up example so maybe not a real business case but it's the first that comes into my mind).
A Product can have multiple "finishings". Product X has Finishings A ànd B. Finishing A in English is called "Coarse" and in Dutch it's called "Grof". Also Finishing B has it's different translations.
So a Custom Field can be used to list the values A, B, C, etc; with their respective translations. BUT a custom field cannot be multiselect. And a CBO can, but I'm struggling with how to maintain code/value and translations for CBO's then.
So does that exist, a multiselect field with also multilanguage as described in my previous comment?
no there is no such multiselect field. What I can recommend to you is the following:
So like this then? (x means key)
Will the custom code list also be maintainable via interface so when new finishings or new languages are added they become part of the code list?
the custom code list does not have an external interface. You will have to maintain new codes in the app itself. But you could also create an own CBO for the code list and generate an OData Service on top or use the CSV upload.
Regarding your joining: There is no ID field in the table CUAND_PROD_ROOT. The table contains the DB_KEY, but I would not suggest to first read the DB_KEY before adding the Finishings. I would recommend the following (The system does not allow me to post a screenshot 🙁 ):
Take the table CUAND_PROD_FACET instead of CUAND_PROD_ROOT. The table CUAND_PROD_ROOT has the fields PRODUCT_ORIGIN and PRODUCT_ID. Take the same fields as key for your CBO Z_CBO_Finishings and do a left out join on both fields.
We have the same problem as point 3. Has anybody found a solution?
3) When adding custom fields in segmentation, after I click save button, a error “The system enforces the prefix ‘_SAP’ or ‘~SAP’”.
Thirupaty Reddy V
Dear Thirupaty Reddy V,
please open a ticket on component CEC-MKT-EXT.
On the Standard Extensibility, it's indicated that:
However after making 29 custom fields on the business context "Marketing:Product", the following message is shown:
Field cannot be created. Business context capacity is exhausted.
Do you know why this is or how we can create more custom fields?
Business contexts are restricted regarding the number of attributes and the number of characters of all attributes. Please see the help documentation regarding this.
You can find the details about this in the backend transaction SCFD_REGISTRY for on Perm system. All the business context are listed and by double clicking on any would launch the detail view of that context where you can see which structure is used and the field limitations based on field values and character length. If you are on Perm you may still extend the business context from backend without using the custom fields app and still manage to create fields and bypass the limitation of context length exhaustion.
I have a requirement to manage in Hybris Marketing (Cloud version 1708) the Sales Areas data coming from CRM for a customer (Sales Org. + Distr. Channel + Division). This values will be dinamically assigned and deleted from a customer and can be multivalues for a customer.
Example: a customer A having:
I am planning to manage this requirement having a CBO that can be multivalues, updated via OData service and available for segmentation.
My question is: is it possible to manage a combination of three values together (Sales Org. + Distr. Channel + Division) in the same CBO?
Thanks a lot for your support
I have created some list fields using the custom fields app and published the field, now i want to delete some of the earlier created list values but not able to do so as the delete option is only possible before publishing, now I have to modify all old values as Do Not use and created new list values but this does not look nice on the UI for user as he has to scroll down a huge list to reach the real values, is there a way to delete the list values, moreover when we transport these fields to test and production system do we have to re-create the values in each system or the values from Development system are transported as well.
We are using yMKT 1709 on perm.
In relation to this blog, my scenario is this for which solution is sought:
Please let know what needs to be done for making these custom fields visible in Contacts/ Profiles screen.
Thanks and Regards,
You need to goto the UIs & Reports tab for the custom field which you want to enable.
Once there, enable the CUAN_COMMON_service and see if the the field is visible on the contact page. This is how it works for on-perm, not sure if its the same service but it should be in the same location where you can enable disable and the field should be visible on contact page.