A method for managing workflows in a data processing system (104, 120), the data processing system (104, 120) comprising: (i) at least one data store storing: a plurality of data objects (142, 150, 152, 153, 154) and values of their attributes (707, 712, 811-817, 816a-c, 817a-c), the plurality of data objects (142, 150, 152, 153, 154) including a first data object, the first data object having a plurality of attributes (707, 712, 811-817, 816a-c, 817a-c) including a first attribute that can have any one of a plurality of values; and metadata specifying relationships among at least some of the plurality of data objects (142, 150, 152, 153, 154), wherein data objects (142, 150, 152, 153, 154) in the plurality of data objects (142, 150, 152, 153, 154) are organized into one or more hierarchies (150, 717, 718, 815a-c), and wherein the metadata specifies at least one of the one or more hierarchies (150, 717, 718, 815a-c); and (ii) a workflow management system (102, 130) comprising: a workflow execution engine for managing execution of finite state machines (300, 350, 400, 500, 550, 600, 650), FSMs, including a first FSM associated with the first data object and for managing a first workflow for the first data object, the method comprising: when a current workflow state of the first FSM is a first workflow state, using the workflow management system (102, 130) to perform: determining a current value of the first attribute of the first data object by accessing the current value of the first attribute in the at least one data store, wherein the current value of the first attribute indicates a first hierarchy, of the one or more hierarchies (150, 717, 718, 815a-c), to which the first data object belongs; identifying, using the current value of the first attribute and the metadata specifying relationships among at least some of the plurality of data objects (142, 150, 152, 153, 154), a first actor authorized to perform a first workflow task for the first data object, wherein identifying the first actor comprises: identifying the first actor as an actor (115, 139, 156, 158, 176, 382, 392, 704, 708, 713) authorized to perform the first workflow task for a second data object in the plurality of data objects (142, 150, 152, 153, 154), wherein the second data object is related to the first data object according to the first hierarchy; generating a graphical user interface, GUI (380, 390, 510, 800, 810, 820, 825, 830, 835, 837, 840, 845, 850, 855, 860, 865, 870, 910, 920, 930, 940, 1000), through which the first actor (115, 139, 156, 158, 176, 382, 392, 704, 708, 713) can provide the input that the first workflow task is to be performed; and in response to receiving, from the first actor and through the GUI (380, 390, 510, 800, 810, 820, 825, 830, 835, 837, 840, 845, 850, 855, 860, 865, 870, 910, 920, 930, 940, 1000), input specifying that the first workflow task is to be performed: performing the first workflow task for the first data object; and updating the current workflow state of the first FSM to a second workflow state. determining a current value of the first attribute of the first data object by accessing the current value of the first attribute in the at least one data store, wherein the current value of the first attribute indicates a first hierarchy, of the one or more hierarchies (150, 717, 718, 815a-c), to which the first data object belongs; identifying, using the current value of the first attribute and the metadata specifying relationships among at least some of the plurality of data objects (142, 150, 152, 153, 154), a first actor authorized to perform a first workflow task for the first data object, wherein identifying the first actor comprises: identifying the first actor as an actor (115, 139, 156, 158, 176, 382, 392, 704, 708, 713) authorized to perform the first workflow task for a second data object in the plurality of data objects (142, 150, 152, 153, 154), wherein the second data object is related to the first data object according to the first hierarchy; generating a graphical user interface, GUI (380, 390, 510, 800, 810, 820, 825, 830, 835, 837, 840, 845, 850, 855, 860, 865, 870, 910, 920, 930, 940, 1000), through which the first actor (115, 139, 156, 158, 176, 382, 392, 704, 708, 713) can provide the input that the first workflow task is to be performed; and in response to receiving, from the first actor and through the GUI (380, 390, 510, 800, 810, 820, 825, 830, 835, 837, 840, 845, 850, 855, 860, 865, 870, 910, 920, 930, 940, 1000), input specifying that the first workflow task is to be performed: performing the first workflow task for the first data object; and updating the current workflow state of the first FSM to a second workflow state. performing the first workflow task for the first data object; and updating the current workflow state of the first FSM to a second workflow state.