We are excited to announce that Topliners is moving to Cloud Customer Connect! The migration will be complete in July, at which time you can access Oracle Marketing discussions, knowledge and events via Cloud Customer Connect. There will be no changes to your login/profile, content you've authored, nor bookmarks in your followed categories. Redirect links will ensure you quickly and easily find your way to product categories you follow. In addition, you will have access to other Oracle CX-related content.

Please note Topliners will be read only beginning July 25, 2 PM PDT to July 27 9 AM PDT.


How to create dynamic table in email based on data uploaded weekly

Farrell Posts: 20 Green Ribbon
edited Apr 29, 2022 6:29AM in Eloqua

We would like to send customers their purchase history in dynamic table using information uploaded to CDO on a weekly basis? Upon upload, the CDO will trigger a service to push the contacts into the same campaign and send out the email to all the records within the CDO.

This will be an evergreen campaign so there should not need to reactivate the campaign weekly and the contacts may or may not repeat, depending if they had made any purchase the previous week.

Understand that Eloqua can only retrieve ONE record per contact via CDO + Field Merge, which is not what we want.

There's also a CDO Content APP (https://support.sureshot.io/hc/en-us/articles/360020570411-CDO-User-Guide) available on the market we can use but I got "502 Bad Gateway" when trying to access Oracle MarketPlace.

Not sure if there any anyway to go around Eloqua system limitation to produce this. Appreciate any enlightenment. Thank you.

Post edited by OIT Integration User on


  • Depending on the complexity of the table you can do the following:

    - Create a table with email, product 1 info, product 2 info,...

    - Create a cdo program and add logic to determine which template you want to send (1 product, 2 products etc based on if fields are empty). Add a listener for new cdo records of your object

    - Build each email template and use cdo field merges (date modified as logic but it wont matter)

    - Create a program BUILDER (old feature) based on cdo records and add a send email step + remove from program for (for each email!). Make sure to allow resending if needed (if this is greyed out contact oracle support to unlock it)

    - In your original program canvas with the logic you add a (add to program builder) step at each place where you want to send the email

    In short all new records are added via the listener to your program canvas. You use logic on each record to determine which template to use (1 product, 2 product etc) and send each record to the respective program builder. In the builder the system sends the mail (linked to that cdo record) and thus uses the correct CDO field merges.

    Now just upload your data and the system does the rest (if 1 contact has 2 records he receives 2 emails with different field merges)

  • Sebastiaan Van Dingenen-iODigital
    Sebastiaan Van Dingenen-iODigital Posts: 99 Red Ribbon
    edited Dec 12, 2021 11:22AM

    Important limitation is that you cannot use dynamic content in this template. Dynamic content will just do a lookup to the contact and say 'has a record in cdo with value x', once it matches it will match for all emails as there is no relation to the specific record.

    The only way to counter this is to make a template for each possible scenario and use logic in your program (product 1 is empty etc) to select a template that matches.

  • If anyone at oracle is reading this it would be great to know if there is anything going on to simllify this.

    There are 2 main issues:

    1. There is no send email step in CDO program canvas

    2. Emails sent via cdo program builder do not work together with dynamic content

    I've run into many scenario's where these features are just lacking. One scenario I have is where a leasing company sends out reminders that contracts are expiring in 6 months, 3 months etc. The flow itself is easy but as they have 15 different brands we need to maintain 15 different emails as we cannot use dynamic content to differentiate the brand. 1 customer can lease from 5 brands so the lookup to the contact is not sufficient.

    When dynamic content is used in a cdo email and a lookup is done to that cdo it should only take into account that record (or at least provide the option to force it).

    The canvas send email step + dynamic content that actually works would open up a large amount of options.

    You could make 1 dynamic content block per cdo field/section and make it blank by default and only show if the value is selected. This way you just add 10-15 blocks underneath eachother to make a nice list based on data.

  • Richard Holder
    Richard Holder Posts: 9 Red Ribbon

    Several of our customers had similar requirements so we created a custom app to solve the problem. If you're interested in a solution to merge multiple CO records into an email, you have a new option: https://4thoughtmarketing.com/products/cloud-apps/embed-co-records-in-email-table/