How to Send Only One Email When Custom Object Matches Multiple Subscription Fields (Sectors/Locations)

Vaishnavi_04
Level 1

Hi Marketo Community,

We’re looking to optimize a custom object-triggered campaign setup in Marketo and need help solving a specific challenge:

Use Case:

  • We have 7 categories, and for each there are:

    • 1 field for “All” subscription (e.g., All_News)

    • 1 field for Sectors (e.g., News_Sectors)

    • 1 field for Locations (e.g., News_Locations)

  • Users can subscribe to:

    • All News from a category (All_News = News)

    • Specific Sectors (News_Sectors)

    • Specific Locations (News_Locations)

  • Each category has a corresponding custom object (CO) like News_CO.

When content is updated in AEM, we push that data into a custom object that includes:

  • Page Title

  • Page URL

  • Category

  • Associated sectors and locations

  • Date and time content got updated

We have 483 trigger campaigns, one per category-sector or category-location combination.


What We Want to Achieve:

If a user subscribes to multiple matching sectors/locations, they should receive only one email — not duplicates from each campaign.

If All_News = News, they should always receive the email regardless of sector/location.

If the same custom object update matches more than one campaign, the person should receive the email just once, even if all campaigns are triggered simultaneously.

Emails should not be sent with blank content.


Current Limitations Faced:

  • Marketo does not support comparing custom object fields directly with lead database fields in Smart List filters or Flow steps.

  • Using Velocity for suppression hides content but doesn’t stop email delivery.

  • Using Last_News_Content_Name to suppress duplicates fails if two campaigns trigger at the same time.

Ask:

  • Has anyone implemented a similar scenario involving CO-to-lead field matching?

  • What’s the most efficient way to suppress duplicate sends when a single CO update matches multiple subscriptions?

  • Any best practices for handling multi-value fields comparison and All vs. Specific match logic?


1 REPLY 1
SanfordWhiteman
Level 10 - Community Moderator

Hmm. Looks you started off with an architecture that wasn’t a great fit and things got worse from there.

 

483 trigger campaigns with pre-computed permutations is already out of hand, and trying to navigate your way out of the consequences of that decision without reversing that decision is doomed to fail, I’m afraid.

 

Schema-wise, it’s not clear why you have different Custom Objects defined for this. Why is there not just one Subscription Custom Object where the type — like “News” — is a field on each?

 

Anyway, it’s impossible to trigger campaigns in parallel but then try to run only the first of them (which would imply the calls are serialized). It’s counter to the concept of trigger campaigns, really.

 

What we do to centralize updates to a set of Custom Objects is send a Custom Activity containing the latest updates, as a JSON string. We trigger on the CA, not the CO. Then parse the CA’s primary attribute using Velocity, allowing us to send “Welcome to Subscription A, Subscription C, and Subscription E” in one email.

 

 

 


P.S. This is not actually true —

 


Using Velocity for suppression hides content but doesn’t stop email delivery.

— but using Velocity to abort sends is something best avoided, although we do have that approach in prod in a couple of instances.