I have two types of engagement programs set up in Marketo:
1. Generic Campaigns that have been set up with an automatic recurrence of adding new leads based on a 'Course Interest' description when the lead fills out a desired form.
2. Specific Campaigns that have been created especially for leads generated through Facebook Advertising (I manually place the Facebook leads into these campaigns).
Say a lead is obtained through a Facebook ad and I add that lead to a specific engagement program. Once a 'Course Interest' is attached to that lead, I'm finding the lead also gets automatically added to the other generic engagement program, which results in the lead getting sent two emails instead of one.
Is there a way for the lead not to be automatically added to another engagement program if they are already a member of one?
Sure, but building a prioritization engine can be a very complicated challenge, depending on how many programs you're working with. Once you divine the correct priority, you'd just have to adjust the recurring batch and/or triggers that add new members to say Member of Program > Not In > Program X.There's not enough context above to give you a better answer, unfortunately.
Rather than generic campaigns and triggered ones for certain lead sources, I'd recommend you re-evaluate your whole nurture strategy to be more cognizant of the customer buying cycle. For example, if your nurtures were TOFU / MOFU / BOFU-style content, you could trigger an email for these FB ad leads, and then after that email is served, wait and then add them to the correct funnel stage. There's no silver bullet, and getting this right means you're waaaaay down the maturity curve as a marketing automation/Marketo expert. Good luck!
You can do this by adding a choice to your "Add to Engagement Program" flow step (see below). Just add 1 extra choice above the default that says "Member of Engagement Program" = True.
Probably more bulletproof to build a smart list of those in the engagement program you want to suppress (can dictate exhausted status here as well) and then use the same process above but with Member of Smart List = Your smart list, do nothing. If they are not a member of your suppression smart list, the first choice is skipped and they will be added to your engagement program via the default step.
As joe mentioned, you really should be cautious with these types of exclusions as they are easy to forget and aren't easy to scale overtime. Maybe it makes sense to just add a new stream to your existing nurture and just put people into one stream or the other based on their creation source. Then you don't run the risk of them being in 2 streams at once.