Yep, I always used a 2-State Workflow (1st adds a button, 2nd sends an email and sets the checkbox), Custom Check Box to avoid the WF from initiating more than once. I then used a Mass Update to initiate the WF and a second Mass update to “push” the button on all necessary records.