1. A method of setting states for training scenarios for use during the training of students in use of a telecommunication service provider customer-facing application, comprising: receiving, by an application from a messaging layer in communication with a network, a first plurality of messages from a first instance of use of a student user interface, wherein the messaging layer provides a communication link between the student user interface in communication with the network and a retail management system in communication with the network, and wherein each message of the first plurality of messages from the first instance of use of the student user interface invokes an application programming interface method of a plurality of different application programming interface methods; associating, by the application, each message from the first instance of the student user interface to a first student and to a first training scenario of a plurality of training scenarios, wherein each training scenario of the plurality of training scenarios is defined by a predefined sequence of application programming interface method calls of a provisioning task, a plurality of checkpoints that are activated when a specified sub-sequence of application programming interface method calls associated with the provisioning task are completed in the predefined sequence, and a termination event for the provisioning task, wherein the provisioning task comprises provisioning a telecommunication service, and wherein each checkpoint of the plurality of checkpoints is defined by a predefined plurality of application programming interface method calls that are completed in the predefined sequence; receiving, by the application, a second plurality of messages from a second instance of use of the student user interface, wherein each message of the second plurality of messages invokes one of the plurality of different application programming interface methods; associating, by the application, each message from the second instance of use of the student user interface to a second student and to a second training scenario of the plurality of training scenarios, and wherein the second training scenario is different from the first training scenario; maintaining, by the application, based on the first plurality of messages, a state of the first training scenario, wherein maintaining the state of the first training scenario comprises maintaining a first list of invocations of application programming interface methods and maintaining a first list of checkpoints that have been completed by the first student; maintaining, by the application, based on the second plurality of messages, a state of the second training scenario, wherein maintaining the state of the second training scenario comprises maintaining a second list of invocations of application programming interface methods and maintaining a second list of checkpoints that have been completed by the second student; returning, by the application, based on completion of a checkpoint of the first training scenario, particularized updated information to the first instance of use of the student user interface; and returning, by the application, based on completion of a checkpoint of the second training scenario, particularized updated information to the second instance of use of the student user interface.