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
- In the navigation, click "Workflows"
- In the ribbon, click "List Workflow", select your calender list
- For the name, type "Reminder Workflow"
- For the type, ensure that "SharePoint 2013 Workflow" is selected:
- Click "OK"
STEP 4: Configure the "Set ExecuteDate" stage
- Rename "Stage 1" to "Set ExecuteDate"
- Click in the stage, start typing "Set a workflow variable", press ENTER
- Click the "workflow variable" link, then select "Create a new variable"
- For the name, type "ExecuteDate"
- For the value, select "DateTime"
- Click "OK"
- Click the "value" link, then click the "Fx" button
- For the data source, select "Current Item"
- For the Field, select "Start Time"
- Click "OK"
- Click below the set workflow variable action
- Start typing "If value equals", press ENTER
- Click the first "value" link, then click the "Fx" button
- Select "Workflow Variables and Parameters"
- Select "Variable: ExecuteDate"
- Click "OK"
- Click the "equals" link, change the value to "is less than"
- Click the second "value" link
- Click the "…" button, select "Current Date"
- Click "OK"
- In the if condition, start typing "Add Time to Date", press ENTER
- Click the "0" for the months, set it to "12", press ENTER
- Click the "date" link
- Click the "value" link
- For the data source, select "Current Item"
- For the Field, select "Start Time"
- Click "OK"
- Click the "Variable: date" link, select "Variable: ExecuteDate"
- Click below the "Set ExecuteDate" stage, in the ribbon, click "Stage", a new stage should be added
- Change the name of the new stage to "Pause For ExecuteDate"
- In the "Set ExecuteDate" stage's transition to stage area, start typing "go to stage", press ENTER
- Select the "Pause For ExecuteDate" stage
- The stage should look like this:
STEP 5: Configure the "Pause For ExecuteDate" stage
- Start typing "If value equals", press ENTER
- Click the first "value" link, then click the "Fx" button
- Select "Workflow Variables and Parameters"
- Select "Variable: ExecuteDate"
- Click "OK"
- Click the "equals" link, change the value to "is greater than"
- Click the second "value" link
- Click the "…" button, select "Current Date"
- Click "OK"
- In the if condition, start typing "Pause until…", press ENTER
- Click the "this time" link, select the "Variable: ExecuteDate"
- Click below the "Pause For ExecuteDate" stage
- In the ribbon, click "Stage"
- Rename the new stage to "Send Email"
- In the "Pause For ExecuteDate" stage's transition to stage area, start typing "go to stage", press ENTER
- Select the "Send Email" stage
- The stage should look like this:
STEP 5: Configure the "Send Email" stage
- Start typing "If value equals", press ENTER
- Click the first "value" link, then click the "Fx" button
- Select "Workflow Variables and Parameters"
- Select "Variable: ExecuteDate"
- Click "OK"
- Click the "equals" link, change the value to "equals (ignoring time)"
- Click the second "value" link
- Click the "…" button, select "Current Date"
- Click "OK"
- In the if condition, start typing "Email", press ENTER
- Click "these users"
- Select a sharepoint or ad group that you want to email
- For the subject, click the "Fx" button, select the "Current Item: Title", click "OK"
- In the body, type "Happy Birthday!"
- Click "OK"
- Below the Email action, start typing "Add Time", press ENTER
- For the month, type "12"
- For the two variables, set them to "Variable: ExecuteDate"
- Below the if condition, start typing "If value", press ENTER
- Click the first "value" link, then click the "Fx" button
- Select "Workflow Variables and Parameters"
- Select "Variable: ExecuteDate"
- Click "OK"
- Click the "equals" link, change the value to "is less than"
- Click the second "value" link
- Click the "…" button, select "Current Date"
- Click "OK"
- Below the if condition, start typing "Add Time", press ENTER
- For the month, type "12"
- For the two variables, set them to "Variable: ExecuteDate"
- In the "Send Emails" stage's transition to stage area, start typing "go to stage", press ENTER
- Select the "Pause For ExecuteDate" stage
- The stage should like this:
STEP 6: Set the Workflow firing actions
- In the navigation breadcrumb, click the "Reminder Workflow" node
- On the workflow properties page, in the "Start Options" section, check the "Start workflow when an item is created" checkbox:
- Press "Ctrl-S" to save the workflow
- In the ribbon, click "Publish"
Create an item, fire the workflow!
Enjoy!
Chris