How do I fire an action every time a JBPM Node enters?

The simplest way to fire an action when a node is reached is to code the Node as Service Task.

Each ServiceTask includes On-entry and on-exit actions which are executed upon entry or exit of this node, respectively.

A common use for an On-entry action is to set variables when we enter the node

kcontext.setVariable("myvar","foo");

If you need more complex actions on node entry, it is recommended to code a Custom Task, which is an empty, generic, unit of work. You need to provide a WorkItemHandler implementation for the task and register it with WorkItemManager.

Check the following tutorial to learn mode about Custom Tasks: How to create a custom WorkItem Handler in jBPM