I have a list that contains an 'expiration date' field and I created a workfkow to email a user if that date is older than today's date. Right now I have it so you can manually trigger it on a list item or it will trigger the workflow when they create or modify a field. How can I trigger this workflow to send the email when the date hits? Is this possible with an out of the box workflow?
It is possible if you add logic to your Workflow to trigger daily. There is no direct way to achieve this and its a bit complicated.
The best practice is to create a Timer Job which runs every day, and check the Expiry Date and Sends Email.
Another approach is to make use of Tasks. Modify the Workflow to run on Item Create & Item Update. Inside the workflow create a Task for the user which gets due on the Expiry Date. Enable notifications on the Tasks List.
I accomplished it by changing the logic of my workflow. I added a field for "FirstEmailSent" and had the workflow initiate everytime an item is created or changed. When the email gets sent it pauses for one day inbetween and then changes FirstEmailSent to yes and another field that just adds one for everytime to keep it running for the ones that didn't send the email.