Thanks for the clarification. Your idea using an event-based gateway sounds reasonable. As an alternative, you can use a receive task with an attached interrupting timer boundary event. This variant is maybe a little easier to understand. I recommend against using process instance modification for implementing regular-case business logic, as it makes it intransparent to people seeing only the model.