SOLVED

Differentiate data value change triggered by contact vs. Marketo user/flow

Go to solution
Highlighted

Differentiate data value change triggered by contact vs. Marketo user/flow

Hi, we are refining our double opt-in flow for a specific country (Germany in this case). We have two separate flows: one that should be triggered by the contact actively changing the data (eg, form submit) and another for when the change is initiated on our side (smart campaign, sync, import, etc).  My question is how can we best distinguish these two scenarios, given that data value change trigger has limited constraints.

For purposes of this discussion, let’s assume the double opt-in flows work fine, and it’s just the triggers that matter. In fact, a solution to this problem would have applications beyond double opt-in.

Triggers: Lead Created and Data Value Change (country)

*If you'd like the specific use cases for these triggers, I'm happy to provide, but may be unnecessary.

The lead created trigger is simple to implement since the constraint allows source type. To distinguish a record creation initiated by the contact vs. one by a Marketo user/flow, one trigger listens for lead created via "web form fillout," and the other “not: web form fillout.”

However, data value change does not allow the source type constraint – only source, which is too specific for our fields and workspace setup. Has anyone come across this issue, be it for double opt-in or some other scenario? How have you approached the problem? Is there another filter you would recommend when listening for updates to the country field?

The few workarounds we’ve considered are pretty inelegant and leave room for error (see below). Would welcome any of your thoughts and suggestions. Many thanks!!

Clunky/problematic workarounds
Option 1: data value change w/ “reason” constraint

Marketo-Community-past-reason.jpg

  • Note: Above listens for changes initiated by the contact. We would invert this logic for changes made by a Marketo user/flow-- eg., reason "not starts with: form"; lead created source type "is not: web form fillout"
  • Is the reason constraint reliable? I could only test against the leads in our database – maybe someone from the community has already tested this field over time and had stable results (?)

Option 2: Data value change with filled out form in past 5 minutes

Marketo-Community-past-5-mins.jpg

  • Note: even more clunky / inelegant
  • Same idea as above with inverting logic to capture changes by Marketo user/flow
1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

Yes, my experience is that the source is empty when a smart campaign triggered the change, but not in the case of SFDC nor form fillout. IN case of Smart campaigns, it just does not show.

So source is/is not "web form fillout" should do the job.

-Greg

View solution in original post

10 REPLIES 10
Highlighted
Level 10 - Champion Alumni

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

Marketo does distinguish between a lead initiated action from Form Fill Out vs. Flow action or SFDC sync on the log of the record.

Is there a specific reason you need to make this visible at a field level or another need? I've tried to do this before and it's kind of a pain for the reasons noted above.

Highlighted

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

Thanks, Josh. We are looking to trigger a double-opt in email to the contact only if the person initiated the change (via form). In this instance, they are on the site and interacting with our assets, so it would not be unexpected to receive a double opt-in email. However, if the data change comes from our side, we want to trigger a separate flow to manage double opt-in – we don’t want a database update, sync, or import triggering lots of double-opt in emails when the contact is not on the site (or even awake).

In order to trigger, I believe we need a field and/or a constraint that pulls from the log as it’s writing (like “reason”)--not the full log history itself. There may be a way to engineer it with a batch, but that approach may have problems as well. I’m hoping there’s a simpler solution than what we’re considering.

So far, the two triggers we’re looking at are:

“lead created” ("source type" constraint makes this pretty straightforward)

“data value change” (complicated by not having the “source type” constraint—only “source”).

Thanks again!

Highlighted

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

I would rather use the "source" constraint.

When the field is updated with a form, source = "Web form fillout". When from Salesforce, source="sfdc", but when the value is updated from a smart campaign source is empty.

-Greg

Highlighted

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

Thanks, Gregoire. The "source" of the trigger didn't seem reliable, but maybe I'm just missing it. For some sources, I had trouble confirming the value. For example, the below smart campaign data change did not list a source (but did a reason). Is there somewhere we can see the source value for such changes?

Sill, if we can confirm that "web form fillout" always writes a source for the data value change, then maybe we can just use that for our use-case. Data value change: source is / is not "web form fillout"

Appreciate the help!

pastedImage_0.png

Highlighted

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

Yes, my experience is that the source is empty when a smart campaign triggered the change, but not in the case of SFDC nor form fillout. IN case of Smart campaigns, it just does not show.

So source is/is not "web form fillout" should do the job.

-Greg

View solution in original post

Highlighted

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

Perfect - thanks for confirming the exception (and that web form fillout is not one of them). We should be all good -- appreciate the help!

Highlighted
Level 10 - Champion Alumni

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

To compare to another way of doing this, here's our double-opt-in process:

pastedImage_0.png

01 - Process Opt-In Requests

pastedImage_1.png

pastedImage_2.png

01a - Send Double Opt-In Email

pastedImage_4.png

pastedImage_6.png

01b - Keep Opt-In Value Persistent and 01c - Keep Double Opt-In Value Persistent (this is needed for Marketo forms that are embedded on our website, since you cannot pre-populate embedded forms)

pastedImage_9.png

pastedImage_11.png

02 - Process Double Opt-In Requests

pastedImage_13.png

pastedImage_14.png

Highlighted

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

Hi Dan, thanks for sharing -- some great stuff here!

Given some unique circumstances, we need to trigger a separate flow when data value changes (or record is created) without the lead submitting a form (eg, suspensions, internal routing, pause before double opt-in email, etc).

Greg's note (above) that source is always written for web form fillout will let us listen for source: is not 'web form fillout,' which would capture anyone that doesn't qualify for a flow similar to the one you provided.

Just curious- do you have a separate flow for value changes w/o web form submissions? What triggers do you use?

Highlighted
Level 10 - Champion Alumni

Re: Differentiate data value change triggered by contact vs. Marketo user/flow

No, we only use this form submits where the opt-in checkbox is present.