First time poster. I'm hoping you can help.
I'm trying to build a global form that allows me to do a number of things:
Capture Consent DateTime when form is completed (hidden datetime field)
Capture Consent preference (GDPR)
Retain the Consent setting - changing the field to hidden - and then display the field again after GDPR consent has gone stale (12 months)
This all works for the first time through
I get stuck when it comes to the 12 month return.
I look for anyone with Consent over 12 months ago and run this campaign. I can confirm that this clears these values on the people record in Marketo.
When the same person hits the form again, the form will not re-calibrate despite these values being null. The result is that the "consent to process" options no longer appear while clicking the submit button writes another "Consent last updated" date.
I'm game for other methods of accomplishing the same task if anyone has ideas. Otherwise, is there anything obviously wrong about the way I'm going about this? I'd love any feedback.
Solved! Go to Solution.
Your plan is fine: run a scheduled batch SC and set the date to NULL if it's over 12 months ago.
But you're not implementing your plan correctly. You need to make sure the field is not prefilled on form load to {{system.datetime}}, because if you do that, anyone who merely views the form is treated as if they've responded to the consent question -- even before they fill in any other fields, let alone hit Submit, the form adjusts to hide the other field.
What you want to do is set the Consent Last Updated field to {{system.datetime}} in a Change Data Value Flow step (triggering on Filled Out Form). This way it's only given a value when someone actually fills out the form.
It would be better if you would provide the URL of your form.
Clearing the values on the server (as opposed to on the form itself, where you could detect if a value is outdated) like you're doing here is a good idea, since you need to age them out regardless of their level of engagement.
But it looks like your form VRs show the dropdown if the timestamp is not empty, which doesn't sound like what you want. You want to hide the dropdown if their value has not aged out.
I'm not tied to Salesforce - I haven't even gone live yet. I'm testing my own records so far and have it loaded on a dummy landing page: landing page. How would I go about dumping the data from the server? I don't have it maintained outside of Marketo at the moment for my test leads/people.
I switched the logic on the form like you suggested. I get it to work correctly all the way through the first time. It's when I clear the data to = Null that returning to the same form maintains the same view as if I have data stored.
I'm not tied to Salesforce
I didn't say you were.
Just went to the form and it stamped my consentLastUpdated to the current timestamp and hid the GDPR field accordingly. This isn't the way you want to do it. You want to set the value only if the form is successfully submitted, which you can do in a trigger SC.
I understand what you're saying. How do I get the Consent question to reappear on the form after 12 months past the timestamp recorded date?
Your plan is fine: run a scheduled batch SC and set the date to NULL if it's over 12 months ago.
But you're not implementing your plan correctly. You need to make sure the field is not prefilled on form load to {{system.datetime}}, because if you do that, anyone who merely views the form is treated as if they've responded to the consent question -- even before they fill in any other fields, let alone hit Submit, the form adjusts to hide the other field.
What you want to do is set the Consent Last Updated field to {{system.datetime}} in a Change Data Value Flow step (triggering on Filled Out Form). This way it's only given a value when someone actually fills out the form.
That's the piece I was missing. Thank you so much for your help!