In this blog post you find questions and answers around the open channel integration with SAP Marketing Cloud.
I implemented the enhancement (5) Open Channel: Define Template for Outbound Interaction, but the interactions are not written. What could be gone wrong?
Answer: It might be that the ID is wrong, because the ID used for writing the interactions has to be the ID as specified by the ID_ORIGIN.
For example, when your enhancement contains the following line, the framework expects SAP ERP customer ID:
template-id_origin = 'SAP_ERP_CUSTOMER'
You could try to implement the enhancement (4) Open Channel: Enhance Payload for Data Transfer to set the right identifier:
LOOP AT target_group_member_status ASSIGNING FIELD-SYMBOL(<ls_target_group_member_stat>). " Replace the given identifier by ID_ORIGIN specific identifiers CL_CUAN_INTERACT_CNTCT_HELPER=>GET_CONTACT_FACETS( EXPORTING IT_CONTACT_KEYS = value #( ( conv #( <ls_target_group_member_stat>-TG_MEMBER_INTERACTION_CONTACT ) ) ) IMPORTING ET_CONTACT_FACET = data(lt_contact_facet) ). READ TABLE lt_contact_facet ASSIGNING FIELD-SYMBOL(<ls_contact_facet>) WITH KEY id_origin = 'SAP_ERP_CUSTOMER'. IF SY-SUBRC EQ 0. <ls_target_group_member_stat>-communication_id = <ls_contact_facet>-id. ENDIF. ENDLOOP.
The code snippet demonstrates only how to replace the identifiers!
Another solution would be the following coding:
LOOP AT target_group_member_status ASSIGNING FIELD-SYMBOL(<ls_target_group_member_stat>). READ TABLE target_group_member_data ASSIGNING FIELD-SYMBOL(<ls_target_group_member_data>) WITH KEY tg_member_key = <ls_target_group_member_stat>-tg_member_key. IF sy-subrc eq 0. … ELSE. “// No dynamic content found <ls_target_group_member_stat>-interaction_type = <your interaction type>. <ls_target_group_member_stat>-failure_reason = <your reason>. ENDIF.
Interactions are only written when the enhancement (5) Open Channel: Define Template for Outbound Interaction has been implemented.
If you have NOT implemented the ELSE loop, keep the following in mind:
The business logic sets the interaction types and optionally also the reasons.
The process message only contains the node TargetGroupMemberAttributeData It might happen that the figures under, if dynamic content has been found based on an assigned export definition.
If you have implemented the ELSE loop, keep the following in mind:
Interactions are written with the interaction type and reason defined in the coding (ELSE loop) if dynamic content was not found.
In case dynamic content has been found, the business logic sets the interaction types and optionally also the reasons.
The process message only contains the node OutboundId (and subsequent nodes) if dynamic content is found based on an assigned export definition. Only target group members with dynamic content are send.
How to process interactions in the SAP system using the Open Channel integration combined with trigger-based campaigns?
Answer: With this code snippet you can, for example, access any interaction columns in the open channel integration and process them further by forwarding the information to SAP Cloud Platform.
Note that you use any further descriptive information for trigger-based campaigns, such as column INTERACTIONCONTENT, in the enhancement (4) Open Channel: Enhance Payload for Data Transfer.
" Define some new fields to the message APPEND VALUE #( attribute_id = 'TRIGGER_INTERACTION' attribute_name = 'Trigger Interaction' attribute_type = 'Edm.String' ) TO target_group_member_attributes. APPEND VALUE #( attribute_id = 'INTERACTION_CONTENT' attribute_name = 'Interaction Content' attribute_type = 'Edm.String' ) TO target_group_member_attributes. … " Add the content for both fields APPEND VALUE #( tg_member_key = <ls_target_group_member_data>-tg_member_key tg_member_interaction_contact = <ls_target_group_member_data>-tg_member_interaction_contact tg_member_interaction = <ls_target_group_member_data>-tg_member_interaction attribute_id = 'TRIGGER_INTERACTION' attribute_value = <ls_target_group_member_stat>-tg_member_interaction ) TO target_group_member_data. IF <ls_target_group_member_stat>-tg_member_interaction IS NOT INITIAL. SELECT SINGLE interactioncontent FROM i_mkt_interaction INTO @DATA(lv_content_data) WHERE interaction = @<ls_target_group_member_stat>-tg_member_interaction. IF sy-subrc EQ 0. APPEND VALUE #( tg_member_key = <ls_target_group_member_data>-tg_member_key tg_member_interaction_contact = <ls_target_group_member_data>-tg_member_interaction_contact tg_member_interaction = <ls_target_group_member_data>-tg_member_interaction attribute_id = 'INTERACTION_CONTENT' attribute_value = lv_interaction_content ) TO target_group_member_data. ENDIF. ENDIF.
What went wrong, when the figures of the campaign performance don’t match?
Answer: Performance for your open channel campaign don’t match. A reason for this mismatch could be that the interaction types aren’t used in a consistent way.
The Open Channel Interactions tile represents the sum of all outbound and inbound interactions. For example, you have sent out 156 emails and 134 of them are opened. The figures shown are then as follows:
- Delivered Messages: 156
- Opened Messages: 134
- Open Channel Interactions: 290
To get consistent figures for your open channel campaign performance, such as the delivered messages, we recommend using also the interaction types in a consistent way. When you use, for example, the interaction types EMAIL_OUTBOUND and EMAIL_OPENED in your integration, the tiles Delivered Messages and Opened Messages show the correct numbers. This is also valid for tiles with calculated figures, such as Opened Messages in %.
For more information about the calculated figures, see Aggregated Success Data from Interactions.
Which URL shall I use for SAP Cloud Platform integration flow?
Answer: Each SAP Cloud Platform system provides multiple nodes. It is important to select the runtime node and not the tenant management node. The URL is visible in CPI Operations View Manage Integration Content. Then select the integration flow.
For more information, see also Runtime in Detail.
Why do not I see any error messages for my wrongly implemented HEAD and GET requests?
Answer: The open channel functionality sends a http HEAD request followed by an http POST request. It depends on the implementation of the integration flow, whether the HEAD and GET requests are handled properly and doesn’t lead to any error messages while running the iFlow.
Where can I find more information about the Open Channel integration of SAP Marketing Cloud?