A data processing system comprising a processor, a memory, and a storage device, wherein the processor comprises:
- an interface for capturing user interaction events which arise in the system,
- a process engine for automatically monitoring the user interaction events to:
- identify completion of steps, each of the steps comprising a plurality of events of the user interaction events, wherein the plurality of events are linked by a first set of dependency relationships;
- and
- identify completion of processes, each of the processes comprising a plurality of the steps, wherein the plurality of steps are linked by a second set of dependency relationships,
- generate process data from the completed processes for transference to a trigger engine;
- the trigger engine for receiving and processing the process data to:
- determine whether at least one of the completed processes meet one of a plurality of trigger criteria;
- in response to the at least one of the completed processes meeting a trigger criteria, call a software function;
- a database manager for saving the process data generated by the process engine;
- a reporting engine for generating reports according to the saved process data, wherein the process engine processes the user interaction events to simultaneously recognize a plurality of potential steps, wherein each potential step is a step that may result from additional user interaction events that have not yet been identified, and, once a completed step has been identified from the plurality of potential steps, abandons the remaining potential steps of the plurality of potential steps.