There are a couple ways to accomplish this sort of thing (a series of waiting workflows for instance), but I’m going to describe a particularly interesting one that I stumbled upon.
With CRM 2011, everything is possible! As you already know, there is really only one kind of process that you can easily schedule in CRM to occur on a regular basis and that is a Bulk Delete Job. Here, I’m going to leverage that fact and the capability of running a workflow triggered on a record delete. Here is how I did it:
1. Create a new entity called “Run Workflow”
- Ownership = “Organization”
- Uncheck all Options for Entity as this record will just be used to trigger a workflow.
2. Publish the entity and add a record. It doesn’t matter what you enter for the name.
3. Now click Settings -> Processes.
4. Create a new Workflow Process that runs on the “Run Workflow” entity; let’s call it “Run Workflow – Schedule Process”. In the workflow designer, under “Start when:”, uncheck the “Record is created” checkbox and instead check the “Record is deleted” checkbox
5. Next add a Send E-mail step. Click the Set Properties button and fill in the desired information for the email. Click Save and Close when you are done.
6. Next, add a Create Record step. In the Create dropdown select “Run Workflow”. Click the “Set Properties” button and enter a name for your record. Click Save and Close.
7. Your workflow should look like this. Click Activate to publish and activate the workflow. Close it.
8. Now click Settings -> Data Management -> Bulk Record Deletion
9. On the Bulk Record Deletion screen click the “New” button to start the Bulk Delete Wizard.
10. On the Define Search Criteria page of the Bulk Deletion Wizard set the look for dropdown to “Run Workflow”. Once Run Workflow is selected, click Next.
11. On the Select Options page fill in the name field and check the “Run this job after every” check box.
12. In the days dropdown choose the timeframe that you want the workflow to run in.
13. Now set the “Bulk deletion job start time” to the first day you need this job to run. This will also control the day of the week it runs on. Also set the time to the time you want this process to run. Going forward this will be the time for each job run.
14. Click Next.
15. Review the details page and then click Submit.
16. The last step is to add at least one record to the “Run Workflow” entity. If you didn’t add the entity to the menu you can do this by doing an Advanced Find. It doesn’t really matter what you enter for this entities name since it will be deleted and re-added every time the bulk delete runs.
There you have it, every 7 days you should receive an email reminding you to fill out your TPS reports that comes right out of CRM. Obviously this is a pretty simple example, but with a little imagination you should be able to extend this idea and come up with your own scheduled workflows.
Before I end this post I should mention that this process has some limitations:
- To schedule this process to happen every day you will need to create 7 bulk delete jobs.
- Because of some limitations in the workflow engine you may need to add a custom workflow activity and / or a plugin + a custom entity to accomplish certain tasks like looking up records, or running reports, etc.
Despite all of this I find that this maybe an easier (and probably the most reliable) way to schedule recurring workflows.
By Ledgeview Partners – Wisconsin based Microsoft Dynamics CRM Partner serving the Midwest and Heartland regions
4 thoughts on “Using the Bulk Deletion Process to Schedule Recurring Workflows”
@Johnm, CRM workflows pick up infinite loops and will terminate after the 5th or 6th attempt.
I believe I can simplify this further - forget about the entity and the bulk delete job. Create a workflow that sends your email, waits 7 days, calls itself as a child workflow, and then completes.
"To schedule this process to happen every day you will need to create 7 bulk delete jobs." Why ?
Comments are closed.