It's one of the most common calls we get in Support - "This lead should have qualified for this campaign, but it didn't. Why?" Here's how we go about answering this question, and you can do it too.
Did the lead actually qualify? Sometimes the leads do qualify for the campaign but don't go through the flow. One quick way to check this is to look at the campaign membership. If the lead qualified, it will become a member of the Smart Campaign, even if it doesn't go through the flow.
Has the lead gone through the flow before? We can check this in the campaign results. If it has, we need to see if the campaign allows the leads to go through the flow more than once. If the campaign is set up to allow leads to run through the flow multiple times, then we need to proceed with troubleshooting. But if it is not, we have our answer - the lead didn't go through the campaign because it had done so previously and couldn't go through again.
Did the trigger have constraints? If it didn't, we move along, but if it did, we need to check and see if the lead met the requirements of the constraints at the time the lead hit the trigger. This is very important. If, for instance, there was a constraint that required a value in a field, and that field was not populated before the trigger went off, then the lead wouldn't qualify. The timestamps in the activity log for the trigger activity and the value change might be the same, but if the value change for the field happened even a fraction of a second after the trigger event, it's still too late. The lead will not qualify. Looking at the lead now, it looks like it qualifies, but at the moment the campaign was triggered, the lead had different information, so check to see when the required values were written to the lead.
Did the Smart List have filters in addition to the trigger? Just like the constraints, we need to confirm the lead satisfied the filter requirements before the trigger fired. This can get complicated if one of your filter requirements is "Member of Smart List" because you are going to have to go into the referenced Smart List and confirm the lead met all those requirements, and if that Smart List also contains a "Member of Smart List" filter, then will have to check that one as well and, well, you will see why we in Support recommend against nesting Smart Lists.
Has the campaign been changed since the lead hit the trigger? We tend to assume that the campaign we are looking at today is the same as it was when the lead hit the trigger, but this is often not the case. Check through the Audit Trail to see if there have been any changes. Maybe a constraint was added, removed, or changed. Maybe the filter logic was changed from AND to OR. Maybe it used to only let leads go through the flow once. If the campaign was changed, you will need to go through the troubleshooting steps above all over again, checking against what the campaign used to have, rather than what it has now. If you have nested Smart Lists, it may be that the campaign didn't change at all, but a filter criteria in a the secondary Smart List did. This is another reason why nested Smart Lists should be avoided if possible.
If you go through these steps and still can't figure it out, open a case in Support and include the results of the troubleshooting above so we can look into it further.