There are several activities that you can use to tell the workflow to pause, such as
- Create Alert
- Create Incident
- Create Change Request
Throw any of these into your workflow and configure it to "Do not complete this activity until xxx resolved."
When the engine executes this activity, it will just sits there and wait until alert/incident/change request/... is resolved.
You can have another workflow to listen for whatever changes in another system. Once it finds what it is looking for, it resolves the alert, and that will allow the first workflow to continue with the execution.