1. 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.