It is often that have you come across when you wanted to delete records from CRM in bulk.
The only option you have to delete multiple records in CRM is by selecting all records available in one page of a view and then hit delete. A view can have at max 250 records displayed. So if you need to delete more than that you have no choice but to navigate through each page and delete the records.
Since we do a lot of conversion projects we need to delete previously imported records before running the conversion. And this was too much of a task...
We started working on developing our own little project that will do the job. CRM has made available the BulkDeleteRequest Message in CRM SDK that allows us to delete more than one entity records at a time.
The BulkDelete Message will create an asynchronous job that can be monitored through the System Jobs Menu option.
You can provide the record selection criteria by specifying the query that needs to be executed to get the records over which the action needs to be performed.
If you want this to a recurring job to be executed say every x days, you can set the RecurrencePatern of the BulkDeleteRequest Message.
Since the bulk delete operation can be run on any entity and it requires a query to be provided, we thought of generalizing this. We developed a small tool that allows the users to specify the parameters for the Bulk Delete Job in user friendly interface. These jobs can be monitored in the system jobs window.
Anyone who would like to get this tool without having to re-invent the wheel can check details at http://www.inogic.com/addons_bulk_delete.htm