well, there's also a totally different way you could do this which would be to write your own ExportMarshaller for Activiti Designer (if you're using that to model the process) which actually outputs the listeners straight into the BPMN automatically. That way, you don't have to do it by modelling it by hand. If you need fixed stuff for each and every process, this should be quite straightforward, otherwise you might have to implement some logic to do customized stuff for each process, which you can do if the information you need is in the process somehow.