Skip to Content
Technical Articles

Hybris Marketing: How to Get Permissions and Subscriptions into the System. Part 2: CSV Import

Part 1: Forms

Part 2: CSV Import

Part 3: OData Service

Part 4: Extraction from CRM with ABAP program



Preliminary note: This text refers to release 1702 of Hybris Marketing.

Part 2: Performing CSV Imports


First of all, it’s important to know that CSV import is not the method of choice in productive use. One downside of this upload method is, that you cannot handle data tables containing more than 10,000 records. For testing purposes, CSV imports are useful and easy to handle. OData services, on the other hand, can handle large amounts of data. That’s why they are standard in this case. Check the end-user information for more detailled information on CSV Upload. For the import of data using an OData service, check this link, or read the next part of this blog series.


2.1 CSV Import of Contacts (Only Permissions, no Subscriptions)

Under “Import Data”, click the tile also labelled “Import Data”.  Here you can find several structure types for each category listed under “Data Management”.

If you have contact data with marketing permissions, and you want to execute an initial upload from your source system, you can proceed as follow:

Select the radio button “Contacts” and add fields according to your requirements:

Check the documentation about CSV imports for details. You can see the pre-delivered fields when you download the CSV template. The template contains important user instructions as a comment. Note that the fields for contact data have corresponding opt-in fields:

If the value is Y (yes), communication with the contact via the given email address is allowed. Filling in the given template with your data, you can get the Marketing Permission Information into the system. Just save the maintained file on your device and upload it:

This procedure only works for permissions, not for newsletter subscriptions.

Note that uploading contacts does not create an interaction for the permission.

In addition, bear in mind that some fields, especially some ID fields, are non-unique identifiers. For example, an email address is a shareable ID, and therefore can be used by several contacts. You should add additional fields or unique identifiers in this situation.

For large data loads, as mentioned above, the CSV upload will not work. You should use the OData service CUAN_IMPORT_SRV for files containing more than 10,000 records.

Another caveat: Please take into consideration that no timestamp of the permission is written separately. Instead, the timestamp of the import is recorded as timestamp of the permission. This might cause problems from the legal point of view if the most recent permission data is not properly maintained.


2.2 Import Interactions for Marketing Permissions

The upload of marketing permissions via interactions works both with CSV files and an OData service (Part 3 of this series). The procedure is nearly the same as with contacts in the precedent paragraph. Instead of “contacts”, you select the radio button next to “interactions”, and upload the corresponding CSV template.

Note that the  following properties are required to create or remove marketing permissions using interactions (regardless whether you choose the CSV upload or the OData service):


You should use the contact upload instead of the interaction upload when an email address is used by several contacts, because the interaction upload does not allow for shareable IDs. With the contact upload, you can enter multiple attributes to identify the contact more clearly.

As you can see in the table above, the issue with confusing upload time and the time the permission was granted does not occur here, because you explicitly provide a timestamp in the corresponding field.


2.3 CSV Import of Subscriptions (Also Works for Permissions)

As described above, select the appropriate radio button (“Subscriptions”) and download the CSV template. It is necessary that you provide the ID and the ID origin of the given contact in the CSV file. In addition, you have to maintain the mandatory fields of the semantic key, which ensures the uniqueness of an interaction record. Below is a complete list of all mandatory fields:


Further fields are:

Though not mandatory, providing a timestamp is highly recommended to avoid mixing up permission or subscription time with upload time. In contrast to the Contact Upload, the system records an interaction when importing Subscriptions this way.

Note: To import your own permission history from an external source, you should start with the oldest record and continue with the upload chronologically. Proceeding in this fashion is necessary to make sure all changes of subscriptions and permissions are properly written into the SAP Hybris Marketing Cloud system.

For more details, read the section ‘Subscriptions’ of the integration guide ‘Data Management Upload Interfaces’. This section also covers permissions.

Read the next part of this series to get to know more about the upload with the OData service CUAN_IMPORT_SRV.


Part 1: Forms

Part2: CSV Import

Part 3: OData Service

Part 4: Extraction from CRM with ABAP program


You must be Logged on to comment or reply to a post.
  • Hi Florian,


    I don't have the option to select "Subscription" under the section import data. I am currently working in a 1611 yMKT installation (HEC)


    Kind regards

    Anne Kofoed




  • Hi Florian,

    Good blog and I wish I had found it earlier before we had to figure it out ourselves :).

    I have a question as this is something I am debating with one of your colleagues over OSS.

    Your comment on importing Contacts "In addition, bear in mind that some fields, especially some ID fields, are non-unique identifiers. For example, an email address is a shareable ID, and therefore can be used by several contacts. You should add additional fields or unique identifiers in this situation."

    1. If I use a Landing Page - the system uses the First Name, Last Name and Email address in Combination to match if the contact already exists and what it should do.
    2. If there is a match on these 3 system will create an interaction and if there isn't match it will create a new Contact.
    3. In my scenario I want to import contacts and subscriptions from a third party marketing system and I have already uploaded my customer data from CRM.
    4. When I run the import for contacts - what I found is the behaviour is very different when compared with Landing Page.
    5. I include ID origin as Email (shareable), First Name, Last Name and other other attributes in my file before I import and a lot of these records have an exact match in the application based on CRM data.
    6. What we found is - the Import Data Contact application Match Logic for name is Case Sensitive. So if the first name and last name in the file don't match in Upper/Lower/Mix exactly to the existing Contact - the system doesn't do a Merge and creates a New Duplicate contact - although it was a perfect match.

    Can you please clarify why Landing Pages match logic is not case sensitive while File import logic is? For me there should be uniform behaviour in the application.



    • Hi Ankur,

      Thank you very much for your comment.

      In order to answer all your questions, I will have to ask some colleagues.

      I'll get back to you then.

      Kind regards


  • Hi Ankur,

    you can find the answer / explanation in your ticketing system.

    It's a little bit complicated, so I'm not posting this here.

    Kind regards


  • Hi Florian,

    Thanx a lot for your blog!

    wie tried to Import Newsletter subsciptions with the "Data Import App", Type "Interaction".

    Import of Newsletter subscription worked so far , entry in CUAND_CE_MP_ROOT was created, also the IA in CUAND_CE_IA_RT.

    But in Table CUAND_CE_MP_ROOT the field "COMM_CAT_KEY" is not set.

    Input csv data (only extract):

    NEWSLETTER_SUBSCR 201801230900011000019 CUAN_COMMUNICATION_CATEGORY 0000000002

    "0000000002" ist a valid communication category for Optin.

    Any hints?

    Regards, Andreas

    • Hi Andreas,

      Did you make sure to fill all mandatory fields? Does the Communication Category “0000000002” exist in your database?

      If yes: Could you please open a ticket for this issue? This would make it possible to share more detailed information in order to find a solution.

      Thank you and kind regards