I am new to workflows, but I'm experimenting. I have a workflow that I've built and if it's in State A, user A needs to get an email. There are similar states B, C, and D. Each has its analogous user. All is fine as long as each time the workflow is edited, the state is changed to another. If, however, one of the many other fields is edited, the user A (or B-D) will get emailed again. What I'd like to do is remember who I last sent an email to, so if I'd at the "send email" step and I'm about to send to the same person, I'll just skip it. How, in SharePoint 2010, is the best way to track who I last sent an email to? I wanted to loop and wait for the item to be edited, then store in a workflow variable, but there don't seem to be loops.
I typically handle this with flag columns (could be yes/no or choice). So in your case, I would have 4 flag fields, one for each user.
So at the beginning of State A you'd have a check that if flagA is no, email user A, then set flag A to yes. Repeat that for all the other states. Then when an item is edited within the state, it won't refire the email.