Wait steps can be powerful in the flow of a smart campaign - allowing you to create really customized timing in your interactions with your customers, either by wait steps of duration, date or date token.
But it's important to realize that when you have longer wait steps, this could have an impact on which leads are truly moving through your smart campaign. The ones you qualified to enter the smart campaign may not qualify any more, because their data has changed during the wait time.
Smart campaigns qualify leads at the time they are triggered or are run (batch). The smart campaign doesn't automatically re-qualify leads after a wait step.
A recent example I worked on: You are running a campaign to send a series of SMS messages to a targeted segment of your audience. One of the requirements of that targeted list is that they are opted in to SMS messages. They will then receive weekly SMS messages about a particular topic you've targeted them for. You build the smart campaign flow to send an SMS message, wait 7 days, then send the next SMS message, then wait 7 days and so on.
Here is the potential problem: within the 7 days of any of those wait steps, your lead could have opted out of SMS messages. In this campaign, however, she qualified at the time she was put into the initial flow - the smart campaign does not re-qualify people to make sure she still meets the criteria of being opted in.
(Now, of course, we were working with a reputable SMS messaging service that would prevent a message from going to our lead who has opted out even if we tried to send it. Nonetheless, you can certainly imagine other scenarios where smart campaign qualification criteria being maintained throughout a long flow would be important and certainly I would want to prevent SMS messages from even trying to be sent to someone opted out, regardless of whether the service would stop it.)
But as with nearly all things Marketo, you've got options!
Build in a "Remove from Flow" step. If your smart list criteria is fairly straightforward - particularly if only one or two changes would change the lead's qualification - you can simply ask Marketo to check and make sure the lead still meets a particular criterion, and if not, remove them from the campaign flow. The default choice = do nothing. Then everyone else who is still opted in passes through but those who have since opted out are taken out. You could even add in an additional Remove from Flow step to also filter out any other criteria change that might be critical (such as their targeted product interest changing).
Use Batches for Time Insensitive Campaigns. In another recent use case, we had a client for whom it was very important that certain criteria be met about the lead and this criteria could change for individual leads fairly often. They'd built a smart campaign as the initial form fill out (plus several qualifying filters) triggering a flow that involved several actions over a period of a couple of days. Only a few of the initial steps were time sensitive (needing to happen almost instantaneously after the trigger). But all of the steps were critical in terms of only being applied to the leads who really met the criteria. In this case, what made sense was to limit the triggered campaign to those truly time-sensitive actions and then take the remaining steps and turn them into daily scheduled batch campaign(s), so that the significant qualifying criteria could be run before each less-time-sensitive action.
Shout out to Kristen Carmean, who said to me yesterday, "You know, someone really ought to write a blog post about this"!