How to Jump Directly from one node to another?

My process model is as follows:

Now, after node A is completed, I want the process instance to jump directly to node C without going through node B. I cannot use the newModifyProcessInstance interface to terminate node A and activate node C because I need to ensure that the final status of node A is COMPLETED. Is there any way to achieve this functionality? Thank you!

Zeebe version: 8.7

You can use process instance modification to activate node C directly without terminating node A, which will preserve node A’s COMPLETED status. I found the following relevant resources:

Does this help? If not, can anyone from the community jump in? :waving_hand:


:light_bulb: Hints: Use the Ask AI feature in Camunda’s documentation to chat with AI and get fast help. Report bugs and features in Camuda’s GitHub issue tracker. Trust the process. :robot:

If only activate node C without terminating node A, then after node A is completed, node B will be activated. I do not want node B to be activated. I hope that after node A is completed, node C can be activated directly, as if node B does not exist in the model. Is there any way to achieve this?

Hello jamesxql,

You have a couple of possible options depending on whether you want to handle this operationally or by adapting the process model.

Solution 1 – Move the token using Operate / APIs

In this scenario the flow will behave like this: Task A completed → Task B terminated → token continues to Task C
Steps:

  1. Wait for Task A to be completed.
  2. Use token move functionality (via Operate or APIs) to move the token directly to Task C.
  3. Terminate Task B.
    This approach allows you to correct or adapt a running instance without modifying the process definition. However, it should be used carefully. Token move operations are mainly intended for operational fixes, and using them frequently in production is generally not recommended because they bypass the normal BPMN flow.

Solution 2 – Update the BPMN model (recommended)

A cleaner and more maintainable solution is to update the BPMN model. The flow becomes: Task A completed → conditional gateway → Task B skipped → Task C
Steps:

  1. Modify your BPMN diagram by adding an exclusive gateway before Task B.
  2. Add a condition on one of the outgoing flows that skips Task B and goes directly to Task C.
  3. Deploy the new version of the process definition.
  4. Use Operate (or the migration APIs) to migrate the running process instances to the new version.
    Once migrated, when Task A completes, the process will evaluate the gateway condition and skip Task B automatically, moving directly to Task C.

Recommendation

I strongly recommend Solution 2. It is cleaner, keeps the logic inside the BPMN model, and works naturally for all future process instances.

Let me know if this approach fits your needs !