SAP Hybris Marketing – Target group based email campaigns – chapter 2
- Segmentation and Target Group
- Email content and usage of personalization attributes
- Campaign definition
- Campaign execution
2. Email content and usage of personalization attributes
In the email editor you can use personalization attributes of different sources. In this document we will cover only 2 of them:
- Personalization attributes of interaction contact
- Personalization attributes of a segmentation object
You can either use attributes of only one source or of both. The usage of the personalization attributes influences the performance of the campaign execution.
Personalization attributes of interaction contact
These personalization attributes are always available in the email editor. The editor offers all attributes of the interaction contact root table.
Email content using only personalization attributes of interaction contact can be used in all campaigns.
Campaign CPG1 uses target group TG1 which was created by segmentation model SM1. Segmentation model SM1 uses segmentation object SO1.
Campaign CPG2 uses target group TG2 which was created by segmentation model SM2. Segmentation model SM2 uses segmentation object SO2.
Email content EM1 uses only personalization attributes of interaction contact, hence it can be used in action Send Email in campaign CPG1 and CPG2 although the two campaigns have different target groups (with different segmentation models and segmentation objects).
Dependencies on keys and business objects of target group members:
- Target group has only interaction contacts as members: personalized email shows personalization values of interaction contact.
- Target group has interaction contact plus related object (e.g. product) as members (multi-key target group): personalized email can show personalization values of interaction contact only. Personalization values of related object cannot be shown in email.
- Target group has interactions as members: personalized email can show personalization values of interaction contact only. Personalization values of interaction cannot be shown in email.
Impact on performance of campaign execution:
If you use only these personalization attributes the campaign execution can do a fast retrieve of the values from one database table.
Personalization attributes of a particular segmentation object
These personalization attributes can be made available by assignment of a segmentation profile in the field “Personalization” in the settings tab in the email editor. In the segmentation configuration you must define for every attribute of the segmentation object if it is offered in the email editor or in segmentation model or in both.
Email content which uses at least one personalization attribute of a segmentation object can be used only in such campaigns where the target group has the same segmentation object.
Dependencies on keys and business objects of target group members:
- Target group has only interaction contacts as members:
Depending on the used segmentation object and its attributes the personalized email can show personalization values of interaction contact plus other related data.
- Target group has interaction contact plus related object, e.g. product as members:
If the personalized email shall show values of the contact and the related product (e.g. name of contact plus ID and description of product) you must use a segmentation object which provides attributes of both objects.
- Target group has interactions as members:
If the personalized email shall show attributes of the interaction (e.g. type of interaction and its creation date) you must use a segmentation object which provides attributes of the interaction. If the segmentation object provides also attributes of the interaction contact the personalized email can show also values of the contact.
Retrieval of personalization values and impact on performance of campaign execution
If you use personalization attributes of a segmentation object the campaign execution must retrieve the values of these attributes by usage of the segmentation engine. The segmentation engine generates a select statement. The execution of this select statement can have a long runtime depending on the used segmentation data sources and filters of the segmentation model, for example the usage of scores in the segmentation model is a more complex and expensive filter operation.
The following example explains how this retrieval works and what can be done in order to improve the performance of this retrieval:
The campaign execution uses an API of the segmentation engine which takes into account all filters of the segmentation model the target group belongs to. The following example explains why the filters are used by the segmentation API.
You have the following contacts in your system:
|C1||Contact 1||DE||Walldorf||Female||Swimming, Dance, Tennis|
|C3||Contact 3||DE||Walldorf||Male||Tennis, Basketball|
|C4||Contact 4||DE||Walldorf||Female||Swimming, Tennis, Golf|
You have defined a segmentation model SM1 which uses segmentation profile SP1. The segmentation model has the following segments using the filters like
- Country = DE
- City = Walldorf
- Gender = Female
- Sport = Tennis
On segment 4 you have created a target group TG1, it contains as members the contacts C1, C2 and C4.
You have defined an email content EM1 which uses segmentation profile SP1 for personalization. In the email content you use the following personalization attributes coming from the segmentation profile:
- Full Name
You have defined a campaign CPG1 which uses target group TG1 and action “Send Email” with email content EM1.
During the execution of the campaign the values of the personalization attributes for the email are retrieved by an API of the segmentation engine. Because the target group TG1 has a relation to segmentation model SM1 the API builds a select statement where the filters 1 – 4 are taken into account: the where condition of the select statement consists of COUNTRY = ‘DE’ and CITY = ’Walldorf’ and GENDER = ‘Female’ and SPORT = ‘Tennis’.
As a result the personalized emails look like:
- email for contact C1: “Dear Contact1, Your sport is Tennis…”
- email for contact C2: “Dear Contact2, Your sport is Tennis…”
- email for contact C4: “Dear Contact4, Your sport is Tennis…”
Influence the retrieval
The retrieval of personalization values by applying the filters of the segmentation model can have a high runtime, depending on the number of filters, their types (= used operations) and the underlaying data source. You can influence this retrieval and hence reduce the runtime for this retrieval. In this case the filters will not be applied. You have to decide if this is acceptable for your campaign scenario.
If the filters of the segmentation model are not applied the select statement does not contain in its where condition the filter condition of the segmentation model. As a result the personalization attribute Sport will be filled with all values valid for the corresponding contact, separated by comma, because it is a multi-value attribute. This leads to the following personalized emails:
- email for contact C1: “Dear Contact1, Your sport is Swimming, Dance, Tennis ….”
- email for contact C2: “Dear Contact2, Your sport is Tennis….”
- email for contact C4: “Dear Contact4, Your sport is Swimming, Tennis, Golf ….”
Please be careful if and how you influence the retrieval of values for the personalization attributes. It depends on your campaign email content and your business requirements if the change of the standard logic and the skipping of the filters of the segmentation model would result in personalized emails/text messages that fulfill your needs.
You can influence the retrieval by the following options:
Usage of BAdI “Dynamic Content Retrieval for Campaign Execution” (CUAN_CPG_EXEC_DYN_CNTNT_MTH)
If you implement the BAdI you can control – depending on the used personalization attributes – how the values of personalization attributes shall be retrieved if the assigned target group is related to a segmentation model.
- If the BAdI is not implemented or returns value SPACE in parameter IGNORE_SEGMTN_RULE the standard logic is used for retrieval of personalization values (as described in example above).
- If the BAdI is implemented and returns value X in parameter IGNORE_SEGMTN_RULE the retrieval of personalization values is changed and the filters of the segmentation model are not used.
The BAdI allows to control for every email content used in the campaign how the retrieval shall be done. Please check the example coding of the BAdI for more details.
Target group configuration
In the app “Target Group Configuration” the section “General Settings” offers 2 options which control when the segmentation rules are applied during retrieval of personalization values. The configuration can be done separately for dynamic and for static target groups.
Please be aware that these are global settings. They are valid for all campaigns and all email contents. More details can be found in “Application Help: Business Features -> Segmentation -> Configuring Target Groups”.
Multi language email content
The email editor allows for one email content the definition of different subject lines and contents for different languages.
The campaign execution must determine for every recipient of the email the language in order to build the personalized email in the right language. For this the campaign execution reads the language of every contact from the root table of the interaction contact.
If the contact has not maintained a language in the root table it will receive the email in the default language defined for the used email content.
If the contact has maintained a language in the root table which is NOT defined as supported language for the used email content it will receive the email in the default language defined for the used email content.
Conditions in email content
Email content with conditions needs more processing time for the creation of the personalized email than email content without conditions.
Previous chapter Segmentation and Target Group
Next chapter Campaign definition