Hello All,
So we've this business use case where we want to update the subscription preferences and other fields of duplicate leads when they submit a Marketo form on a Marketo landing page. However, from what I know is that the Marketo form submission will ONLY update that duplicate lead who've had a latest update on its data. And that Marketo will update the "Unsubscribe" field of all the duplicate leads with same email address.
What we want is:
Lead ID : 1111, Email: abc@gmail.com
Lead ID : 2222, Email: abc@gmail.com
Lead ID : 3333, Email: abc@gmail.com
When Lead ID = 1111 lands on the Marketo landing page with a Marketo form, it should be able to update its preferences against its lead object in the database, and so should Lead ID = 2222, and lead ID = 3333. All these duplicate leads with their distinct lead IDs should be updated individually and not just one latest updated lead (as how Marketo does).
Our business justification here is that these leads are members of one family who use a shared email address and we want to allow them to update their own preferences to a membership subscription against their leads in the database.
While we can send emails to individual duplicate leads through segmentations and adding custom filters in our smart campaigns, but when the lead lands on the marketo landing page, how can we make sure that one particular duplicate lead with the particular Lead ID who gets the email will get updated with its data after the form submit, and other duplicates are not updated?
What should be the right way to solve this problem?
I'm thinking if we can pass the Lead ID in the email link to the landing page and through REST API fetch the lead data with the help of Lead ID in the URL and prefill the form fields and accordingly also submit the form (UPSERT) via REST and update the particular lead with the data submitted. However, I've read this approach is not right as there could be security issues (DoS vulnerability - please correct on this). But we also don't want Marketo to only update one duplicate lead and ALL duplicates in case of unsubscribe update.
Solved! Go to Solution.
Well, for any preference field you have created as a custom field this is exactly how it happens, assuming the person gets to the landing page through a link in a Marketo email, which will ensure that it is the correct record that is updating. The only field that does not and will never behave in that way is the standard field Unsubscribed. That field is indeed managed across all three of your records and any one of the three records getting unsubscribed will mean all three will be. This is because Marketo maintains a master unsubscribe list in the background.
The only way to avoid this happening is not to use the standard field, but that opens up a whole new can of worms and will give you a whole new headache.
I'm thinking if we can pass the Lead ID in the email link to the landing page and through REST API fetch the lead data with the help of Lead ID in the URL and prefill the form fields and accordingly also submit the form (UPSERT) via REST and update the particular lead with the data submitted. However, I've read this approach is not right as there could be security issues (DoS vulnerability - please correct on this).
Yes, this would be a catastrophically bad approach. Foremost because of the DoS vulnerability but also because of the needless complexity and points of failure.
Also, as Katja points out, one theoretical problem you’re trying to solve doesn’t really exist except for the system Unsubscribed field (and Marketing Suspended too, but you’re less likely to include that on a form). Other fields don’t automatically propagate to duplicates.
Well, for any preference field you have created as a custom field this is exactly how it happens, assuming the person gets to the landing page through a link in a Marketo email, which will ensure that it is the correct record that is updating. The only field that does not and will never behave in that way is the standard field Unsubscribed. That field is indeed managed across all three of your records and any one of the three records getting unsubscribed will mean all three will be. This is because Marketo maintains a master unsubscribe list in the background.
The only way to avoid this happening is not to use the standard field, but that opens up a whole new can of worms and will give you a whole new headache.
I'm thinking if we can pass the Lead ID in the email link to the landing page and through REST API fetch the lead data with the help of Lead ID in the URL and prefill the form fields and accordingly also submit the form (UPSERT) via REST and update the particular lead with the data submitted. However, I've read this approach is not right as there could be security issues (DoS vulnerability - please correct on this).
Yes, this would be a catastrophically bad approach. Foremost because of the DoS vulnerability but also because of the needless complexity and points of failure.
Also, as Katja points out, one theoretical problem you’re trying to solve doesn’t really exist except for the system Unsubscribed field (and Marketing Suspended too, but you’re less likely to include that on a form). Other fields don’t automatically propagate to duplicates.
Thank you for your inputs @SanfordWhiteman & @Katja_Keesom
I'll take your words, however, I'd like to know even if we use custom fields for Unsubscribe field, or any other fields in the form, how can we dictate Marketo to update individual records based on the data the record has submitted with form fill. Marketo will only update one duplicate record (most recent update) out of multiple ones. We'd want to have the Lead ID : 1111 update its own record, Lead ID : 2222 updates its own record and Lead ID : 3333 (all having same email address) from Marketo form submission.
Or is that not possible to achieve with Marketo forms, given our challenge?
Marketo will only update one duplicate record (most recent update) out of multiple ones. We'd want to have the Lead ID : 1111 update its own record, Lead ID : 2222 updates its own record and Lead ID : 3333 (all having same email address) from Marketo form submission.
It’s not that simple. The record chosen is not always the most recently updated. That’s only used in the absence of more authoritative data about the current pageview.
The mkt_tok query parameter automatically added to email links is an example of such data.
When the person’s Munchkin session is still anonymous (so the cookie is not authoritative) and the URL has a mkt_tok, the person who clicked the email is considered the person who submitted the form.
This means if you delete the cookie before submit and create a new, random, guaranteed-anonymous cookie, the form fillout will always correspond to the email recipient.
(However, this leaves you with one question: was it appropriate to associate previously anonymous web activities with the email recipient, as happened automatically when they clicked the link? After all, you don’t know whether it was the person who received the email or their family member who generated those earlier hits. But the fuzzy outcome might be fine.)
Couldn't have explained it better. The fuzziness of course gets bigger when you take into account that family members would use partly the same and partly individual devices.