Automatically take users out of a workflow on property change, or check for properties before each mail send
the workflow feature is missing an option that, in my opinion, is really important.
We manage contact properties using the API, that updates certain properties as a consequence of the user behavior on our platform.
To make a little example: we may have a property named "membershiplevel" that can have the values "basic" and "premium". When a user subscribes to our platform, we call your API to create the contact and to set the "membershiplevel" property to "basic". Then, after the user completes some steps on the platform, we call the API again to change the proprerty to "premium".
Now, what we want to do is to make a workflow that encourages the users to take the necessary actions to increase their level from "basic" to "premium". So, we create a workflow that triggers on the property change of the user, when the value becomes "basic". The workflow has a couple of mails; let's say one of them is sent immediately, one after 3 days and one after 1 week.
Our problem is: let's suppose that the user receives the first mail and immediately completes the required steps. At this point, we call your API to change the "membership_level" to "premium". This should, of course, take the user out of the workflow, and he should not receive the other two mails, since he already did what he had to do.
In the same way, if the user is upgraded to "premium" after the second e-mail, he should not receive the third one.
Are workflows the right way to do this? I supposed yes, because I expected to find either:
- A way to remove the user from the workflow if the trigger condition is no more met (i.e. if the user is added when a property has a certain value, it should as well be removed if it has no more that value), or
- A way to filter for specific conditions before sending every single mail of the workflow (this way, we could check the property before every mail send, and therefore skip the users whose property changed meanwhile).
However, I can find no options to have this behavior, and in my opinion this is really a must-have.