about me, the best way is work on workflow, checking every case and send the approval to the correct approver. Also, you can use Provisioning Approval Subprocess.
As @Arun-Kumar suggested, You can use approvalAssignmentRule variable to assign custom approval rule where you can write the logic to define approval based on your applications/groups.