We want to send an email to contacts every day. There will be say 5000 contacts. I can't do this with apex code because there is a limit of 500 emails per 24 hour period. So I will have to do this with a workflow rule, workflow email alert and email template.
Option 1 is to create an apex batch job to update contacts every day and this update would fire the workflow email alert. The workflow would probably need to reset a flag when it fires and the apex job could would set it again and so on.
Option 2 is to use a time dependant workflow. The workflow would create a future update of the contact in 24 hours and send an email alert now. I may need a second workflow to fire when the first workflow does the update. This second workflow would do an update to fire the first workflow again and so on and so on....
With Option 2 there is a limit of 1000 time dependant rules per hour per org so this would take 5 hours to complete.
With Option 1 are there any limts to the number of workflow rules a batch process can fire or casue to fire which I need to be aware of?
Limits I know of:
1000 workflow emails per user per day. We have 30 standard users and 100 community users.
1000 time dependant workflows per hour per org.
500 single email messages from APEX code to contacts per 24 hour period.
1000 mass email messagas form APEX code per 24 hour period.