Ideally we go for automation when we need to perform larger number of Regression Testing. Regression testing is type of testing in which we need to execute so many test cases many times to make sure that application is not encountered with any new defect. Performing this task manually is very time consuming & hassle for the tester. Hence we go for automation.
Apart from this automation is used for functional testing of stable environment.
Let me know if anything is unclear to you or need more explanation.
Based on the below criteria's we may go for Automation.
1.When ever the product/project has more no of releases which requires regression testing then automation is useful.
2.Sometimes it is also useful for sanity/smoke testing when there is a frequent release of build to production.
WHen ever you go for automation below oints should be considered.
1.One Round of Manual Testing should be mandatory done.
2.Build should be stable.
3.Approval from the management team.