SharePoint 2013 Birthday Reminder Workflow

I haven't seen anyone blog this in 2013 style, so here we go. This workflow will send an email to people every year on the day someone has a birthday.  Here's the step by step of how to create this birthday reminder workflow!

STEP 1:  Create a Birthday Calendar!

STEP 2:  Fire up SharePoint Designer 2013, connect to your site

STEP 3:  Create the workflow

  1. In the navigation, click "Workflows"
  2. In the ribbon, click "List Workflow", select your calender list

  3. For the name, type "Reminder Workflow"
  4. For the type, ensure that "SharePoint 2013 Workflow" is selected:

  5. Click "OK"

STEP 4:  Configure the "Set ExecuteDate" stage

  1. Rename "Stage 1" to "Set ExecuteDate"
  2. Click in the stage, start typing "Set a workflow variable", press ENTER
  3. Click the "workflow variable" link, then select "Create a new variable"
  4. For the name, type "ExecuteDate"
  5. For the value, select "DateTime"
  6. Click "OK"
  7. Click the "value" link, then click the "Fx" button
  8. For the data source, select "Current Item"
  9. For the Field, select "Start Time"
  10. Click "OK"
  11. Click below the set workflow variable action
  12. Start typing "If value equals", press ENTER
  13. Click the first "value" link, then click the "Fx" button
  14. Select "Workflow Variables and Parameters"
  15. Select "Variable: ExecuteDate"
  16. Click "OK"
  17. Click the "equals" link, change the value to "is less than"
  18. Click the second "value" link
  19. Click the "…" button, select "Current Date"
  20. Click "OK"
  21. In the if condition, start typing "Add Time to Date", press ENTER
  22. Click the "0" for the months, set it to "12", press ENTER
  23. Click the "date" link
  24. Click the "value" link
  25. For the data source, select "Current Item"
  26. For the Field, select "Start Time"
  27. Click "OK"
  28. Click the "Variable: date" link, select "Variable: ExecuteDate"
  29. Click below the "Set ExecuteDate" stage, in the ribbon, click "Stage", a new stage should be added
  30. Change the name of the new stage to "Pause For ExecuteDate"
  31. In the "Set ExecuteDate" stage's transition to stage area, start typing "go to stage", press ENTER
  32. Select the "Pause For ExecuteDate" stage
  33. The stage should look like this:

STEP 5:  Configure the "Pause For ExecuteDate" stage

  1. Start typing "If value equals", press ENTER
  2. Click the first "value" link, then click the "Fx" button
  3. Select "Workflow Variables and Parameters"
  4. Select "Variable: ExecuteDate"
  5. Click "OK"
  6. Click the "equals" link, change the value to "is greater than"
  7. Click the second "value" link
  8. Click the "…" button, select "Current Date"
  9. Click "OK"
  10. In the if condition, start typing "Pause until…", press ENTER
  11. Click the "this time" link, select the "Variable: ExecuteDate"
  12. Click below the "Pause For ExecuteDate" stage
  13. In the ribbon, click "Stage"
  14. Rename the new stage to "Send Email"
  15. In the "Pause For ExecuteDate" stage's transition to stage area, start typing "go to stage", press ENTER
  16. Select the "Send Email" stage
  17. The stage should look like this:

STEP 5:  Configure the "Send Email" stage

  1. Start typing "If value equals", press ENTER
  2. Click the first "value" link, then click the "Fx" button
  3. Select "Workflow Variables and Parameters"
  4. Select "Variable: ExecuteDate"
  5. Click "OK"
  6. Click the "equals" link, change the value to "equals (ignoring time)"
  7. Click the second "value" link
  8. Click the "…" button, select "Current Date"
  9. Click "OK"
  10. In the if condition, start typing "Email", press ENTER
  11. Click "these users"
  12. Select a sharepoint or ad group that you want to email
  13. For the subject, click the "Fx" button, select the "Current Item: Title", click "OK"
  14. In the body, type "Happy Birthday!"

  15. Click "OK"
  16. Below the Email action, start typing "Add Time", press ENTER
  17. For the month, type "12"
  18. For the two variables, set them to "Variable: ExecuteDate"
  19. Below the if condition, start typing "If value", press ENTER
  20. Click the first "value" link, then click the "Fx" button
  21. Select "Workflow Variables and Parameters"
  22. Select "Variable: ExecuteDate"
  23. Click "OK"
  24. Click the "equals" link, change the value to "is less than"
  25. Click the second "value" link
  26. Click the "…" button, select "Current Date"
  27. Click "OK"
  28. Below the if condition, start typing "Add Time", press ENTER
  29. For the month, type "12"
  30. For the two variables, set them to "Variable: ExecuteDate"
  31. In the "Send Emails" stage's transition to stage area, start typing "go to stage", press ENTER
  32. Select the "Pause For ExecuteDate" stage
  33. The stage should like this:

STEP 6:  Set the Workflow firing actions

  1. In the navigation breadcrumb, click the "Reminder Workflow" node
  2. On the workflow properties page, in the "Start Options" section, check the "Start workflow when an item is created" checkbox:

  3. Press "Ctrl-S" to save the workflow
  4. In the ribbon, click "Publish"

Create an item, fire the workflow!

Enjoy!
Chris