Re: Bounce replacement of emails for leads that have multiple email fields

Prakash_Mohanda
Level 2

Hello

       

We have a framework where a lead has 4 different emails. One primary that is used to communicate with them and 3 other options.

1. Email (used for sending emails)

2. Personal Email

3. Business Email

4. Business Email 2

We are a looking for a good way to make sure that we can do replacement of the primary email if it bounces with one of the other email in the priority order listed above. However once bounced email email needs to be tracked on some kind of bounce list so we dont put it back on for that lead as a primary email. it should cycle through each email only once and if it email bounced then it should go into a list or be flagged somehow that we can check before doing another replacement.

looking for some suggestions on how to flag the emails and build a list or custom table to track these bounced email so we can cross check that list or flag before doing a replace.

13 REPLIES 13
Grégoire_Miche2
Level 10

Hi Parkash,

You would need additional fields to flag which emails have been used/tested and became bounced (so 2 checkbox fields for each email address or better yet, 1 text field in which you would store jason data). Then you can either blindly iterate through your email adresses and complete the checkbox or jason fields. You can also use a webhook to run comparisons, and update the email, but you will always need the additional field to know where you are in the process.

-Greg

Prakash_Mohanda
Level 2

I have thought of flags but the real issue i am having is that .... I need to be able to store a bounced or invalid email in a list somewhere once flagged because these emails get replaced constantly by sales and external sources and every time I cycle through them i need to store them in a list that i can compare to later before i replace something.

For example : If email address is flagged as bounce and i replace the email address with personal email address , i need to keep track of that bad email address i just replaced because that same email might come back again via an external data source into one of these email fields.

Is there a way in Marketo to build a list of emails that is not tied to lead records? as in just a simple list of email addresses that i can compare to before i do replacements? i should be able to add and remove emails as necessary from this list.

Another alternative is if the above list doesn't work is , can i create a custom object that has email 1 , email 2 , email 3 and so on as fields and then populate them in sequence for a lead as and when a bad email is flagged?

Grégoire_Miche2
Level 10

again, I would create a lead field, long text, and each time an address is bounced, add to it a line that says {bounces {“datetime”:”20180925 10:04”,”email address”:”myadrress@domain.com”},{”datetime”:...}}. In other terms, for the leads, a log of bounces in JSON format. Then I would use some web hooks to compare any new email address to this log and return a validation of this new address. I might also use some webhooks to maintizn the JSON itself.

Greg

Grace_Brebner3
Level 10

I would think a set of logic flows like this would potentially work. Thinking on the fly so tokens probably not completely accurate...

To track bounced email addresses:

  • Create a "bounced/invalid email addresses" field.
  • Create a smart campaign to add bounced addresses to that field:
    • Smart list = your bounce criteria
    • Flow: If "bounced/invalid email addresses" not contains {{lead.email address}}, then change data value of "bounced/invalid email addresses" to {{lead.bounced/invalid email addresses}}, {{lead.email address}} - {{system.dateTime}}.

This will allow you to track all the history of bounced email addresses.

Then, to update the email address field to a new email address:

  • Trigger: data value changes, field = "bounced/invalid email addresses" or;
  • if you'd rather do as a batch: data value changed, field "bounced/invalid email addresses", new value is not blank, date of change is X
  • then, flow:
    • change data value
      • if email address is  {{lead.personal email address}}, change to {{lead.business email address}}
      • if email address is  {{lead.business email address}}, change to {{lead.business email address2}}
      • if email address is  {{lead.business email address2}}, do nothing
      • default: change to {{lead.personal email address}}

Notes:

  • You need to be clear on what type of bounces would qualify for the retiring of an email address.
  • you'd need to have clear processes for ensuring marketing suspend/email invalid, etc, are updated if the email address is updated.
  • You'd also need to think about how these processes work if those fields are not always filled - probably need to expand those flows to filter those blanks out.
SanfordWhiteman
Level 10 - Community Moderator

I think some of those steps suggest equality comparisons that aren't really possible, though.

Grace_Brebner3
Level 10

Which part(s) do you think aren't possible? Can you not use lead tokens for the choice qualifications? (I've never actually tried them for this purpose).

Dan_Stevens_
Level 10 - Champion Alumni

Hi Grace - you cannot use tokens in choice evaluations/qualifications.  You can think of "choices" as mini smart list routines within flow steps.  And tokens are not supported in smart lists of a smart campaign.

Dan_Stevens_
Level 10 - Champion Alumni

I like Sandy's explanation better.  Short and sweet!

Grace_Brebner3
Level 10

Good way to think about it though, in that the limitations of tokens in smart lists apply to the choices in a flow . I had simply taken my broader understanding that they do work in the flow steps and assumed it was true for the choices too.

Grégoire_Miche2
Level 10

You would have to use a webhook to run the comparisons and store the resulting email address in the email field.

-Greg

SanfordWhiteman
Level 10 - Community Moderator

Yeah, you can't compare token values to field values.

Grace_Brebner3
Level 10

Good to know (though it's a shame)! Thanks.

Grégoire_Miche2
Level 10

Vote here:

and more globally: