Currently, each type of workflow can be automatically added to a request or have a task that automatically updates something based on the type of workflow.
Request Workflows can be automatically added to requests when a request status changes based on the transaction type of this request. Tasks can be used to automatically change the status of the request or approve/decline the request.
Payment Workflows can be automatically added to requests when a payment status changes based on the transaction type of this request. Tasks can be used to automatically change the status of the request, approve/decline the request, set payment as paid, or change the status of the payment.
Requirement Workflows cannot be automatically added (as far as I can tell), instead, you add the workflow and select the existing requirement to connect it to. Tasks can be used to automatically change the status of the request, approve/decline the request, or set requirement as complete.
Etc.
I find myself wanting to mix and match these things. For example, when a grant is approved I want to automatically add the agreement execution workflow. As far as I can tell, the way to make this happen it a Request Workflow since the grant changes status when it is approved. However, when the agreement execution workflow is complete, I do not want to change the status of the grant or approve/decline it. I want to complete the grant agreement requirement. To make that happen, I would have needed to use the Requirement Workflow...except that workflow type cannot be automatically added based on a request status change (or based on anything), I have to add it manually.
For many of my workflows, I have to choose between automatically adding it and tasks that will automatically change something. I cannot have both for what I want to do.
It would be great if there was just a single workflow type with more powerful if/then options. As much as I disliked my last GMS (Apply), it had a really powerful if/then builder that let me automate just about anything I wanted.