My Requirement is I have to deactivate the list of users who have not logged in to Salesforce in more than 30 days on a weekly basis. In a separate Custom Object 'User Status', it should create a list of users records automatically (that i want to deactivate). Once the record is created, I have to send an email notification to the user and update field 'IsActive' on user object to false. Once the user is deactivated, I have to assign all of its Open Opportunities to his/her manager. I am preferring automation process rather than writing apex code. Can somebody suggest me what would be the best approach that I should follow?
You could do the deactivation and notification via process builder, and use the Doug Ayers process builder scheduler app to schedule this to fire weekly.
If the total number of users and opportunities is low you could handle the whole thing including the reparenting via visual workflow, and schedule as above. You would need to watch the limit of 2000 steps and 10,000 dml.
I think scheduled code would be the most robust, but if you want to avoid code I would use process builder to handle deactivation and use a time delayed Visual workflow to handle the transfer. This would get you the highest limits and also may be necessary to get around the mixed dml operations limit.