So, I'll try and keep this simple. We only want a lead to be in one engagement cycle at any given time to avoid them receiving too much content.
When a salesperson adds a lead to an engagement program, I want that lead to be removed from any other engagement program that they are in.
I've read on the forum that removing them with the flow step "Change program status > Not in program" will delete any historial reporting data from that particular campaign, which we'd like to avoid. Therefore I assume "pausing" the lead is our best bet.
When I tried this, though, even if a lead was not a member of another campaign the flow would add them to the campaign, simply so it could pause them in it. While this isn't a huge problem, as they wouldn't receive any content in that campaign, it does seem very messy.
Have you tried adding conditions yet? If you click on the "+" in the top right of the flow step you could say something like "if member of engagement program is TRUE, then pause" & "if not true, do nothing"?