Posting this as a heads up and warning to other users out there. We create general forms that we use across many landing pages, for many reasons I won't go into here. For example, we created an event registration form that we use across multiple events of the same type.
Then, we created a registration trigger campaign, where if someone fills out that form, on the specific event's page, it would do things like send the lead owner a notification, and send the lead a confirmation email.
However, we noticed, for one of our events, that the campaign wasn't triggering when leads filled out the form on that page. I submitted this bug up to Marketo Support, and the response I got is below, asking me to find a work-around. This is clearly a bug, not something that should be worked-around... and I'm sure there are other users out there who are (possibly unknowingly) experiencing this issue. FYI, and if someone from Marketo reads this... please escalate this issue and let the right people know about it so we can get it fixed.
When a trigger has multiple aspects to it, the order activities are logged in affect if a lead is qualified for a campaign. If multiple activities happen near each other, sometimes they reach our servers out of order, and cause a mismatch. The way to prevent this from occurring is described below.
This lead is logged as filling the form out in activity id XXX. The web page visit (the second constraint of your form fill out trigger for this campaign) is not logged until after the trigger (acitvity id XXX). Logic tells me they were on the page before they filled out the form, but the time stamps did not hit our servers in that order, and this is called a race condition.
Triggers only react to the conditions at the time of the trigger, and since the web visit was not reported until after, it did not qualify for your trigger due to the web page constraint.
One proof of this is any of your leads that did qualify for this campaign are like Lead A, whose web page visit was recorded at activity id XXX and the form fill out after that at activity id XXX.
So there are two possible solutions to resolve this so it does not occur in the future:
1)Remove the webpage constraint entirely. This is the easiest resolution, if which webpage it is on does not matter, just remove the constraint and the problem is resolved.
2)That may not be a viable issue for you (same form on multiple pages, needs to know which page it came from). If that is true, the best way around this is to still remove the constraint from the trigger, but to add it to the campaign flow. Add two flows if you are doing this, the first is a wait step of 2 minutes, to give enough time for any race conditions involved. This would be the top of your flows. The next would be "Remove From Flows" and have it be based off the "Visited WebPage" option with the specific page added.