One thing you could do is save your search as an alert that triggers rapidly, which uses a different recipient email value that is supplied by a lookup table and iterates using another lookup table containing the email addresses that have already received an email. MAIN SEARCH: <yoursearch>
| search
[| inputlookup list_all_emails.csv
| table action
| search NOT
[| inputlookup done_sending_email.csv
| table action
| dedup action]
| head 1]
| outputlookup done_sending_email.csv append=true You can generate the done_sending_email csv with this search: | makeresults
| eval action = "randomfillervaluethatisnotanemail"
| outputlookup done_sending_email.csv And generate the list_all_emails.csv with this search: <yoursearch>
| dedup action
| table action
| outputlookup list_all_emails.csv
Once the 2 lookup tables are generated, run the main search a few times to see if it iterates through the results for the first few users. If it works, then regenerate the done_sending_email.csv lookup and then save the main search it as an alert. In the Alert settings, scroll down to "When Triggered", then set the To: field to be $result.action$, and then set the rest of the "send email" options to your preference. Set the cron schedule to be something rapid like * * * * * or */5 * * * *, then save the alert. You can then wait as your alert sends a different email to a different user on each execution, containing only the results relevant to them. Once the done_sending_email.csv and list_all_emails.csv lookup tables are almost the same size, (done_sending_email.csv will be +1 bigger if it has the filler value) then the emails are all sent out. You can then disable the alert, or you can empty the done_sending_email.csv file if you'd like to send another wave of emails.
... View more