I would like to be able to disable all workflows for a specific instance of an entity. Say for example a Lead. We have found a lot of situations where this would be helpful like with migration, manually fixing external system errors etc.
For now the only way I can see is adding a check to every workflow and a field to the entity. My question: is there an easier way to stop the workflows from running?
Not that I'm aware of. When you deactivate the workflow, it becomes deactivated for all instances for that entity. So... if you need to disable it for a specific record then you'll need a condition check basically.
In relation to data migrations, one thing we do, sometimes, is deactivating the workflow temporarily (assuming you can do that) for something like a bulk update for instance where we don't want workflows triggering for that (like, sending emails and spamming people :P ).
That's assuming you can afford deactivating some workflows temporarily, cause if that's a 24x7 service, it won't be possible and your best option is adding check conditions.
Hope this helps