Hi there,
I'm hoping the good folks of the Marketo community can help me come up with a smarter way of organizing a series of trigger campaigns I've created. The point of the campaigns is to change a number of fields (product line, lead source etc) when a lead fills out a form. The fields will be updated with different data depending on which landing page they were on when they filled out the form.
One campaign updates field values when someone fills out a form on marketo landing page a, b or c; a second campaign changes those values (to something else) if they fill out a form on page x, y or z and so on.
We have one global form, so I'm using the trigger 'Fills Out Form' with the constraint 'Web Page is' to define the relevant landing page.
The annoying thing is that every time I create a new landing page, I need to remember to add it into the relevant campaign. I was hoping that there would be a way of using a naming convention and a constraint such as 'Web Page begins with...' so that as long as I named new landing pages correctly, they would be included in the campaign automatically without having to add them in manually. But I only have the option of 'Web Page is' or 'Web Page is not'.
Can anyone think of a cunning way of achieving this?
Thanks!
James
Hi James,
Not the most elegant solution but set the fills out form and then use the visits page begins with for the website. Set a constraint on both to be within the past x minutes.
Thanks Bill. That's an interesting work around. I'd be a bit nervous that there's a chance (albeit a very small one I'd imagine) that a lead could fall into this campaign incorrectly if they happened to visit two landing pages in quick succession. But it's a better solution than anything I've come up with, so thanks for your input!
Simple. Add a hidden form field that contains the "campaign prefix" of the hosting web page. For example:
MktoForms2.whenReady(function(form){
form.addHiddenFields({acqURLPrefix:document.location.pathname.split('-').slice(1).join('-')})
});
Hi James:
I do something similar using hidden fields that contain preset values.
The setup:
Create a custom string field called 'Request Campaign'.
When embedding your form on webpages a,b,c add the hidden request campaign field and then set it to a hardcoded value such as 'webformNameCamp1'
When embedding your form on webpages x,y,z set the hardcoded value to 'webformNameCamp2'
Create Smart campaigns that run when the field is set or changes to specific values. These campaigns can provide granularity with different actions post form fillout.
If you're able to, use the 'form fillout' trigger for global actions that should occur every time the form is submitted regardless of page. ie. sending emails or notifying a rep if applicable.
(My team also uses this approach to trigger campaigns across workspaces as well)
Nice one Sanford! I never thought to parse the 'Request Campaign' hidden field value from a meaningful URL structure. I might have to convert. 😃
Have you considered using URL parameters? You can add the fields to the form and set abbreviated URL parameters for each. Then you can use the URL builder on the landing page to populate the unique URL with the parameters you want to use for that particular landing page. Whenever someone fills out the form, the URL parameters will populate into the correct fields and can overwrite the previous data. We use this quite frequently because we have master forms for our event registrations.
Another level of complexity is setting first touch and last touch fields. In Admin, you can se the first touch fields to only be written once and they can't be overwritten by form fill outs. That way whatever gets populated in the first touch will stay there, while the last touch fields continue to update to show you the most recent field data.
Hope that helps!
Anna
Using UTM params is indeed another good approach. Different from the idea of a meaningful URL prefix, though.
Thanks everyone for the helpful responses. Some great suggestions - thank you!