I have a list in SharePoint 2010 that contains Active Directory users in one column and their birthday in a second column. Early in the morning of their birthday I want SharePoint to automatically send an email with predefined text. I have created a workflow with the predefined text and the condition to send an email to the user if the birthday is equal to today, but I can't get it to work. Help!!
You can use the Pause Until workflow action. Basically you fire your workflow when the list item gets created. Then set the workflow to pause until the specified date. Once it continues, have it send the email, change the date to the following year and pause again. Here is one blog post about it: http://www.smellslikesharepoint.com/2012/06/26/sharepoint-2010-workflow-pause-until-date-and-time/
I am not very sure about why workflow failed. However, look on SharePoint Timer Jobs, you can run timer job periodically. Check SharePoint list using SharePoint Object Model and send Email message. Scheduled Job also is an option which you can give a try.