Force re-enrollment on property changes

We have a custom property A that we’d like to be computed based on a few other properties: B, C and D.

So we’ve created a workflow that has B, C and D in enrollment and re-enrollment triggers and implemented an if/then logic to set the correct value for A depending on B, C and D values*.*

When one of the properties B, C or D changes the contact is re-enrolled and A is updated.

In general this works fine, but a problem happens when a few concurrent changes are made.

Ex.: B is changed, so contact meets the re-enrollment criteria and workflow is started. When the workflow is running user updates C, so it must affect the value of A, but this change is ignored because of this limitation: “An object won’t re-enroll in a workflow while it’s already enrolled”. As a result A has a value based on a new value of B and an old value of C.

If I manually re-enroll this contact A is fixed, but how can I do this automatically?

Hello, did you add B, C and D as Enrollment trigger like :

B is known

or

C is known

or

D is known

For having them re-enrolling automatically everytime, you should do like this and of course on the re-enrollment tab, you should tick the box for them.

Hello Bruno, thanks for response.


@Bruno_Teixeira wrote:

Hello, did you add B, C and D as Enrollment trigger like :

B is known

or

C is known

or

D is known


Exactly, so usually a contact is retriggered once B or C or D is changed.

But not if these properties are changed too quickly.

The most trivial example would look like this:

So if I change “Login frequency” to 10 the re-enrollment is triggered.

Then I quickly change “Login frequency” back to 1 while this workflow is in progress.

When the workflow is finished “Is engaged user” will be “Yes” even though “Login frequency” is already set back to 1.

Here are the logs from a real-world example:

As far as I understand this happens because of “An object won’t re-enroll in a workflow while it’s already enrolled”(Add re-enrollment triggers to a workflow). But I don’t know if it’s possible to overcome this limitation. Any suggestions?

PS. We’ve encountered this issue a few times while testing the workflow on test portal. So maybe it’ll work well on prod.

That’s right you have to use a workflow goals to remove the from the active workflow and Another one probably with a delay to then re-add them at the top, having been removed, probably doing this with a custom property for the goal that you can reset so they are not triggering it on reentry.