I have a list where people enter in items they are trying to sell (classifieds) on a form. They are supposed to set an expiration date for their items for one month, however some do not. I want to set up a workflow or something to move any items that are more than a month old to an "Expired Items" view which I have created, based on a column that I have set up called "Sold?" It defaults with "Not sold yet," but when their item has sold, they let me know, I change it to "Sold" and it moves to a "Sold" view. I would like a workflow to automatically change the entry in this column for the specific item to "Expired," which would move it to the "Expired Items" list. I'm not finding the appropriate condition in Designer when I'm building this workflow. Educated suggestions on how to do this would be appreciated. Thanks!
I would make the expired date required so users stop skipping it. If that's not an option, I would check to see if the expires date is empty and if it is, set it to 30 days from the created date. To check whether a date is empty, I check if it is less than 1/1/1900, since there isn't an option for null. I'd use "Add Time to Date" to set a variable to today + 30 days, then the expired date to equal that variable. Then you can use "Pause until date" and pause until the expiration date, or "Pause for duration" and pause for 30 days. Then you can set status to Expired.
If, for some reason, you're using a separate list for expired items instead of a different view, you'd use "Create List Item" and then "Delete Item" to remove it from the first list.
CAVEAT: This workflow will be paused for 30 days, which means that every time the workflow timer job runs (every 5 minutes by default), it will check every single one of the running workflows to see if they're done pausing. If there are a lot of items in your list, this creates a lot of overhead. If you have a lot of items, I would stick with requiring the expired field and creating an expired view based on that date rather than on status.