When is it better to use an Action or a Workflow?

I’ve had this question cross my mind a few times and I just realized the other day that some of my Workflows may have been able to be processed directly with Actions from a button.

I understand that Workflows are server side only processing which help remove resource usage on the client/device side.

And while Actions are probably mostly device side, I have read that some Actions run on the server side also (I presume when activated from a Workflow or are communication related?)

It is clear most of the time which to use. And we always need to be conscience of user experience.

However, there is a gray area sometimes as to when to use one over the other? Do I create a group of Actions to perform the updates? Or do I set a value and allow a Workflow to run and update?

In cases where one or the other CAN solve the problem, What is a good rule of thumb to use when determining if an Action or a Workflow should be used?