Requirement is to send an email alert to Lead owner with the list of Leads that satisfied the condition. But the email alert has to be sent only once for a given lead record. I have implemented a schedulable and batch class to implement this requirement. Understood that I can create a boolean or date field on the Lead object and update the flag or date field on the lead record when the email alert is sent. Then in the SOQL filter the Leads where boolean or Date is empty so that lead record which has a value(meaning email sent) can be excluded.
I am wondering is there any other method that this requirement can be achieved. I am trying to think by not updating a field when the email alert is sent so that we can avoid subsequent executions(reevaluation of workflows, validation rule, triggers etc) on the lead record.