1

I want to create a 2013 workflow which sends out a weekly email containing all items submitted within that week. I'm using SharePoint designer to create it.

I'm at a loss as to how to get those items though, any help would be appreciated.

1
  • you can use wait until action. Edit: Sorry i read it wrong. Jul 12, 2017 at 7:03

2 Answers 2

2

In your case, you can start with creating Site Workflow. Keep the workflow property Manually start this workflow checked.

Now in workflow now create following steps:

  1. ToDate - DateTime: Point to current date time.
  2. FromDate - DateTime: Adjust it to -7days from current date time.
  3. ServiceUrl - String: This will point to rest service item end point of list/lib you want to get count and contains filter query containing date time we set above. It looks like this http://spm:5002/sites/test/_api/web/lists/getbytitle('Product')/items?$filter=Created le datetime'[%Variable:ToDate%]' and Created ge datetime'[%Variable:FromDate%]'.
  4. RequestHeader - Dictionary: Use the build dictionary action and set RequestHeader as output variable of this action. Add two items to this dictionary i.e. Name: Accept and Content-Type both having value (String): application/json;odata=verbose.
  5. ResponseContent - Dictionary: Just create the wf variable.
  6. Add Http web service action. Set the request type to GET, use above created ServiceUrl. Now in the property section of this action add Request Header to the above RequestHeader variable and Response Content to ResponseContent variable.
  7. Add another action Get Content from Dictionary and put d/results string to get from ResponseContent and Output it to new variable ItemCreatedInThisWeek.
  8. Add action Count items in dictionary, use ItemCreatedInThisWeek as dictionary and use Count as output variable of this action.
  9. Add send email action and use the count variable as you require.
  10. Now again use add time to date and set the days interval which you want to pause for i.e. 7 days. Output as WaitTillDuration variable.
  11. Add action Pause Until and use WaitTillDuration variable.

Finally in the Transition Stage write a statement Go to: Stage_Name. This will make your workflow to loop again and send count every week.

The rough workflow will look like this

enter image description here

You need to start the workflow manually once only. After sending the first report, it will wait until the next date comes and execute it self one more time. Since I am using logs to trace items, it looks like following after first execution.

enter image description here

1
  • With a little bit of tweaking this worked perfectly, thank you!
    – Jesse Bell
    Jul 14, 2017 at 6:15
1

Create a calculated column which sets the week number based on submitted date. The value in this column will be number like 1, 2, .... 52,53

Create a new list, with one date column[ e.g. Reminder Date]. On item creation set workflow to pause till that date - once the date is reached use SharePoint designer - call http web service step to query the above mentioned list and pull up all the week number for the date mentioned in Reminder Date. Loop through the results and send out the email. Once the email is sent, create new item in same list with current date + 7 days.

This way your workflow will be automatically continued for rest of the weeks to send reminder.

P.S. you can also delete the item created in current list after the reminder email is sent.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.