Contacts have a preferred communication method. They also have a range of Do Not Call and Do Not Email opt-in/out processes.

Once a sequence has started, these preferences can and often do change, and change back.

Predefining the next sequence as a phone calls or emails in advance leads to conflicts with these preference and compliance rules after they have already started.

We need a way to dynamically evaluate some complex business rules to determine the next follow-up and create on the result. Or even call out to some sub-sequence that yields a phone call or an email.

Branching logic that requires 5 or 6 if/else condition at each follow-up may work for one or even two follow-up sequences. Repeating those 5 or 6 if /else conditions at each branch quickly becomes unmaintainable. The growth of conditional steps is 6 + (2 * 6) + (4 * 6) + (8 *6) + ........