Recently we had to answer this question at Toolbox.com. One of our developers using a Jelly listener and Groovy scripting has accomplished an amazing task. By using a Jelly listener for new tickets to a particular project to do a workflow transition to start progress, he then uses a post script function to call a groovy script in script runner to automate all the tasks that need to happen with that ticket and then close the ticket.
He has written an outstanding blog about the process here: http://it.toolbox.com/blogs/devnull/groovy-development-in-jira-47311
The effort put into both doing the work and providing the information about the process is absolutely worth sharing. I hope this helps someone else out with the work they may have ahead of them.