Workflow is part of Espocrm advanced pack, and it is so dynamic as you have several options to achieve the request of controlling how many times to run the workflow over a record.
One of the easiest ways is to add special field for this purpose, this fşeld can be boolean (if one time) or integer (for one time or more).
There is no need to put this field on the layout manager, it will hold the case of workflow if done or not, and in if integer can hold the number of times the workflow run.
Let's say we are working on the XE entity.
from field manager, add new boolean field (ex: "workflow done") to XE.
go to the workflow, add new condition: worflowDone = true.
add an action from type: "update target entity" to the workflow
in the added action set the workFlowDone field to true.