Where the Filter step is very much looking at individual Recommendations in a Filter to decide if they go through or not, with the Branch Selector you typically look more on the context only. The branch selector works like a gate, the gate is open or closed so either all recommendations in a branch are allowed through or none of them.
You can input multiple branches into a single Branch Selector. The Branch Selector then allows you setup an expression per branch to determine if the gate is opened or not.
The branch selector doesn’t really look at individual branches. For example, if you have two branches, each with two recommendations. Then connecting the two branches to the branch selector means that after the branch selector you are left with either 0, 2 or 4 recommendations.
Looking back at the example we did for the Filter step, we can replicate this using the Branch Selector by loading the two Recommendations separately and then use the Branch Selector to check on the Case status.
We first load the first recommendation:
And we create a second Load step for the second recommendation:
We connect the two Load steps to a Branch Selector:
And specify the conditions for the two branch gates on the Branch Selector:
The outcome is exactly the same as with the Filter example, but in the Filter example you need to make changes to the Recommendation object and needed to fill in extra data on the Recommendation. In this example that knowledge is build into the Strategy. Especially with a lot of different type of recommendations and multiple strategies the Filter option might clutter the Recommendation object with a lot of extra custom fields. On the other side if you only have strategy the Filter solution is more clean, especially if Recommendations change over time.