There was an interesting story today which came out of the It Aint a Problem experiment.
Basically, a question came in with an example of a business process flow which looked more or less like the one below:
There is a branch in that BPF – basically, if there is an existing account, then the BPF is supposed to skip account creation, and, instead, there is a stage where a contact will be created/updated. So the question here was why, when navigating to the final stage, we can’t choose the account and we have to create it instead? Even thought that contact has “Company Name” field populated with the correct account already:
Actually, I did not get it, at first, what the problem was and it took me a little while to even understand what we were trying to do. Then I was confused – indeed, why is it not showing up? Especially since, when using the other branch (where the account is already there), we can go smoothly from one stage to the other:
Then go back to the account – no selections are required
Turned out it’s the story of relationships – it’s all about who is the parent, and who is the child.
Those two branches are working off the different relationships which may not be obvious when looking at the BPF definition.
The “normal” branch is using the following relationships/lookups:
- From leads to accounts: Origination Lead
- From Accounts to Contacts: Company Name
- From Contact to Accounts: None (to use the account that’s already linked to the process)
So, in this scenario, Account is the “parent” and Contact is the “Child”.
In the alternative branch, however, the contact is linked to the process first, and, then, there is a “switch” to the account. That switch is supposed to happen over a certain relationship/lookup, but, in that case, since the Contact is already linked to the process, it’s the Account that is the “Child”. So the relationships are different this time:
- From leads to contacts: Origination Lead
- From Contact to Accounts: Primary Contact
Here is how it looks like in the BPF definition:
So, once there are a couple of account that have this particular contact set as a primary contact, it all starts to work as expected:
And what is the takeaway? When we have a business process flow with different branches(actually, this may probably happen with just one branch, too), the same entity can be added to different stages. So we might intuitively expect to see the same selections whenever we are switching from a different stage to one of the stages for that entity. However, the business process flow might be using different relationships in those cases so the selections may end up being quite different.