I was recently asked if there was a way to Cancel all activities related to an Opportunity if it is lost (without writing any Plugin Code)
The simplest solution I could think of was to make use of the already existing Distributed Workflow plugin available on Codeplex.
So to start off, download an register this plugin using the Plugin Registration Tool.
Once you have done that you need to create a workflow to complete the activities, unfortunately you will have to create on for each of the activity types you are wanting to work with (Tasks, Appointments, Emails etc.)
Below is a sample for cancelling Task activities.
Next you need to identify the relationship field name that determines the tasks related to the opportunity in Question. (more…)