I have a workflow that sends out an email when an item is added to my list and then 60 days before its due date sends another email saying you have 60 days till the due date. I need this workflow to send an email once a year every year to a certain person to review this document.I am using SP designer 2010
Use Windows Task Scheduler - this allows you to set recurrent tasks. The task can be used to run a powershell script that would, in turn, trigger a custom Sharepoint Designer Workflow.
Use the built-in Information Management Policy Settings - use these links for reference:
link2 (in particular read under the heading Retention).
The IMPS uses its own, sort of built-in, timer job to trigger the reminder emails to be sent out. You can use this to send an email to an individual or a group, emailing a group would ensure that the document is still reviewed in the event that the individual leaves the company/is abducted by aliens.
As you see in the screenshot - the 'event' is triggered from a date field - e.g. if you have a date column set for 1 year from now 19/05/2019, Sharepoint will run through the policy on that day. So you can make an email be sent out on 19/05/2019.
The workflow I trigger in my example is based on the reusable 'Document Disposition' workflow.
The recurrence is a bit like using snooze on an alarm clock.
If you want to test this out first in a test environment, you'll need to manually trigger the timer job - read the end of this post Link1 where it is titled 'Timer Job'; hopefully you are using On-Premises, then you can trigger the timer job yourself, otherwise you'll have to set it up and wait for it to run!
I don't believe that this can be done OOTB, but you could code a timer job for it. Another option that we use in our SP2013 on-premise farm is a vendor tool from Infowise Solutions called 'Smart Action Pro'. One of the things we can do with it is set workflows to run on a certain schedule based on specific conditions.
you can use calculated date column for getting next date on which workflow needs to execute along then in SPD use PAUSE UNTIL DATE to pause the execution for specific time interval
Please let me know if you need any further information.
All the best