By the meantime, separating the functionalities among them and using them harmoniously would add more value in terms of flexibility. Below code snippets could be helpful in such an approach.
Call a WF from a Plug-in;
ExecuteWorkflowRequest request = new ExecuteWorkflowRequest() { WorkflowId = new Guid("019813bc-104b-4dc9-93d5-54d93d79908e"), //WF Id EntityId = Id }; ExecuteWorkflowResponse executeWorkflowResponse = (ExecuteWorkflowResponse)service.Execute(request);
Call an Action from a Plug-in;
OrganizationRequest req = new OrganizationRequest("new_profitcalculator"); req["Amount"] = amount; //Parameter req["Target"] = new EntityReference(new_office.EntityLogicalName, Id); OrganizationResponse response = service.Execute(req);