Awesome context and advice from @Jaycee_Lewis. You can also configure your workflow goals using the Refine filter condition options:
For example, if your goal is a form submission, you can refine the goal criteria so that the form submission must be "less than 1 day ago" or something like that. Otherwise, HubSpot will immediately graduate contacts from the workflow if they technically meet the goal criteria that you have set.
Hi, @ebp👋 To confirm, this is the expected and designed behaviour for Goals in Workflows. As you noted, this is enforced via the API as well. There is not a workaround for Contact who met a Goal to allow for re-enrolment into the same workflow.
I think the issue is in the terminology Hubspot uses.
In fact, the term Unenroll is not what it seems to be.
For me, if I unenroll a contact, it should do the opposite of enroll.
But here, the enrolled contact has a "state" of unenroll but is still in the workflow, that's why it can't be enroll again.
I'm working on a workaround outside Hubspot with a schedule workflow.
I have a schedule workflow which I enroll contacts only one time. It will do the job every day. I have a branch in it which check if an action should be execute. If so, I call an API which redistribute contacts in others classics worflows with manual re-enrollment.