A method performed by a service provisioning platform for activating services in a communication system, wherein the service provisioning platform orchestrates activation actions each comprising an execute logic, the method comprising the steps: - deploying or fetching a specification that is organizing the activation of the actions according to their dependencies, to be used for orchestrating execution of the activation of the actions; wherein the specification is built during a design time and the specification includes declarations of explicit static execution order between activation of the actions in order to make them run sequentially; wherein the activation of a service depends on several other activation of the actions to be ready before being allowed to execute; wherein the order of activation of the actions is further based on historical data of previous executions; - receiving an activation request; - matching the activation request with a specific flow of activation of the actions to be executed in in-accordance with the specification; and - executing the execute logic of the matched flow of activation of the actions ordered based on their data dependencies; wherein the activation of the action further comprises an undo logic; and the method further comprising the steps: - executing the undo logic, when the execution of the execute logic of the flow of the activation of the actions has failed and deciding that an action has failed; - propagating action failure information in the order of the flow of the activation of the actions until it has reached all actions of the flow (620a-d, 855); - triggered by the propagated action failure information, for each action of the flow of activation of the actions, starting from the last actions of the flow of the activation of the actions and in opposite order of the execution start order of the execute logic, deciding if it is to undo its execute logic and if so executing the undo logic (630, 860); and - confirming to its predecessor (640, 870) thereby enabling the predecessor to execute its undo logic. - deploying or fetching a specification that is organizing the activation of the actions according to their dependencies, to be used for orchestrating execution of the activation of the actions; wherein the specification is built during a design time and the specification includes declarations of explicit static execution order between activation of the actions in order to make them run sequentially; wherein the activation of a service depends on several other activation of the actions to be ready before being allowed to execute; wherein the order of activation of the actions is further based on historical data of previous executions; wherein the specification is built during a design time and the specification includes declarations of explicit static execution order between activation of the actions in order to make them run sequentially; wherein the activation of a service depends on several other activation of the actions to be ready before being allowed to execute; wherein the order of activation of the actions is further based on historical data of previous executions; - receiving an activation request; - matching the activation request with a specific flow of activation of the actions to be executed in in-accordance with the specification; and - executing the execute logic of the matched flow of activation of the actions ordered based on their data dependencies; wherein the activation of the action further comprises an undo logic; and the method further comprising the steps: - executing the undo logic, when the execution of the execute logic of the flow of the activation of the actions has failed and deciding that an action has failed; - propagating action failure information in the order of the flow of the activation of the actions until it has reached all actions of the flow (620a-d, 855); - triggered by the propagated action failure information, for each action of the flow of activation of the actions, starting from the last actions of the flow of the activation of the actions and in opposite order of the execution start order of the execute logic, deciding if it is to undo its execute logic and if so executing the undo logic (630, 860); and - confirming to its predecessor (640, 870) thereby enabling the predecessor to execute its undo logic.