Did you know that the K2 workspace allows you to subscribe to events that happen inside the K2 land? Notification event allows you to send an email with context information to relevant recipients. You can hook this up to smart objects and workflow events. There are whole heap of events made available here including a K2license reminder event 🙂 nice.
The good thing about this is that all this configuration is external to the process design itself. If you need notifications, You do not have to change the process to add a mail event.
You smart object create, save, load, delete events are bindable. Also, workflow process, activity and event level events – activity started, escalations, etc are bindable.
Further more you could write your own code that can be fired as the result of these events. Basically, you write a Class with static methods and deploy this DLL on to the k2server (hostserver\bin directory). Register this with the hostserver config file (SourceCode.EventBus.Assemblies.Config) and now you have these static methods available for binding as event syncs.
A user can go to workspace and create a custom event configuration and bind your method to a smart object or workflow event. thats it!
You can edit or delete these notification events via the workspace as well (thanks for the comment asking about this Anand)