Hello,
We are currently gathering the requirements for the development of a B2B Price Communication Solution (in 2 different countries) in Adobe Campaign Standard.
We already have the process implemented in the B2C Country A dimension, that is simpler. We receive pricing information from a Pricing Cockpit. We had access to a closed list of products with associated Product IDs that needed to be communicated. This is live.
For B2B, Country B, the following business requirement emerged: there is a high dynamism in product creation and communication, and it is not possible to identify a list of products and the corresponding Product IDs.
Thus, we see the need to migrate (within Adobe Campaign Standard) from a solution via Workflow and traditional Templates (similar to what was done in B2C Country A dimension) to an Event solution with Transactional Messages that allows us to implement product listings and insert a dynamic loop inside the Template (functionality not available in traditional Templates).
Another business requirement identified for B2B is: a Client ID (information that comes from the Pricing Cockpit with associated products and prices) can have N contacts/emails (information that will be in the Adobe Campaign Standard) to whom communication should be made (1 to N relationship). However, in Events with Transactional Messages, there is a limitation in this sense (1 to 1 relationship):
We tried to create a Workflow for the orchestration of Events within Adobe Campaign, using an External API activity, in order to replace the Client ID in the payload received from the Pricing Cockpit with the various Emails in the Adobe Campaign database for this Client ID. However, the External API input in the Workflow and the Event Preview API output do not match, neither of them is editable and the matching does not happen.
External API Workflow:
Event Preview API:
Does anyone know how to overcome this?
Thank you!
Solved! Go to Solution.
you should be able to easily loop through the collection using a content block. i would write something like below in the content block.
<table> <% for (var i =0; i < context.rtEvent.ctx.collection.length; i++) { %> <tr> <td> <table> <tbody> <tr> <td > <%= context.rtEvent.ctx.collection[i].valu1 %> </td> </tr> </tbody> </table> </td> </tr> <% } %> </table>
Hi @MarianaSimoes2021 ,
In ACC, I've done similar thing. ACC it allows the use of Javascript code language inside email/sms template. In this case I would loop inside the template to do this implementation.
But in ACS, I'm almost sure it doesn't allow the use of javascript inside the template.
I believe there is an alternative way to get around this problem. But at the moment I have no idea. I hope someone here can help you.
Regards
I'm having the same problem. I can't handle the information after it arrives in the Email Template. I needed some way to handle this data dynamically within the template.
Regards
Few comments:
Hello @ramon_bisswanger , thank you for your comments.
- Transactional Messages do not support a 1:N mapping, i.e. for each recipient you do need to trigger a separate API call: We cannot do this because the pricing cockpit only has Client ID information. On our side, ACS, we have N emails for that Client ID. Our Middleware do not know how many emails we have for that Client ID.
- External API does not support calling ACS owned endpoints, i.e. no direct call possible to send a transactional message (you may add a middleware handling that): The reason why we want to do this in ACS is because we have all the information on our side (Client ID and Emails), the Middleware doesn't (only Client ID)...
- Technically you could use the legacy ACC E-Mail syntax in ACS as well to loop and render the data in a "workflow" E-Mail (though it's not easily available in the editor and support for this may change in the future): Can you tell me more about this? What do you mean with "use the legacy ACC E-Mail syntax in ACS as well to loop and render the data in a "workflow" E-Mail" and "support for this may change in the future"?
Thank you so much!
Views
Replies
Total Likes
you should be able to easily loop through the collection using a content block. i would write something like below in the content block.
<table> <% for (var i =0; i < context.rtEvent.ctx.collection.length; i++) { %> <tr> <td> <table> <tbody> <tr> <td > <%= context.rtEvent.ctx.collection[i].valu1 %> </td> </tr> </tbody> </table> </td> </tr> <% } %> </table>
Were you able to resolve this query with the help of the given solutions or do you still need more help here? Do let us know. In case the given solutions were helpful, then kindly choose the one that helped you the most as the 'Correct Reply'.
Thanks!
Views
Replies
Total Likes
Views
Likes
Replies