Scheduling workflows to run daily at specified time

Is there a method, or clever workaround to trigger a worflow to execute every day at a set time?

I need to unjoin all queue members daily at 9 PM and rejoin all queue members again at 5 AM the following day, every day. This is for email queues. We would like to not process emails overnight as we never reply to emails, but we call the customers back. Shifts blend and overlap, so it is not as simple as scheduling agents around this as they take calls and email as well. So mid shift we would stop delivering emails to the agents whom work afternoons and beyond 9pm.

The only idea I have is to create dummy outbound campaigns, then setup a trigger that fires when they run, as I can schedule them, but if they have an empty list, then maybe that won't work. I could do an outbound email campaign and use it to send notifications of the schedule starting or stopping.

Is there a simpler way?

In email flows can you not look at time/schedules and set the emails to wait till next day?

You could also look at GC CLI tool. It is pretty powerful and you could schedule jobs to run e.g. in Powershell on windows, to execute the CLI commands to change the queue membership.

Is that a function, to set it to show up in the queue the next day? Yes, I know how to evaluate a schedule, but then what? If closed, what do I do with that email? Is there an action I am unfamiliar with? We thought of a holding queue, but then I have to bring it out of queue and reroute it somehow.

Yes, I have an integration tool I can use to schedule these actions, but was trying to see if I can keep it all within Genesys. The other thought is I can use the wait function to pass it a calculated amount of time the run it back through the schedule check. The problem is that the flow would keep executing for hours and would likely timeout. Not sure how many concurrent flow executions and how long they can run all at once.

My understanding is if you don't add any tasks to the inactive path it just sits on the email until it can deliver it.
You can configure it to do something like tell them it's after hours and you'll get to it later but you don't have to.
If you look at the example here;

All the Closed messages still loop around into delivering eventually.

Thank you! Overthinking it as always. I had no idea it would do this. I am in voice call mode in my head. It wasn't logical to think it would do this.

I tested it out and it blasts straight through the closed branch and delivers it anyways. I set Participant Data to track which path it took.

If I put a disconnect under the closed branch the email just disappears and never re-evaluates later at all.

The only think I can think of doing is setting a "wait" to wait an hour, then set that all up under a loop that keeps going for at least 12 or 24 hours to ensure it will eventually route into the queue upon "Open".

That is disappointing, have you tried applying a Wait instead when it goes through the Closed branch? You could probably calculate the next "open" time or just specify tomorrow is the next open time if all the reps will be logged off the queue overnight. I don't think you'd have to loop hourly.

Btw, if you or someone else looking at this does end going back towards the scheduled approach rather than actually add/remove them from the queue I think the recommended approach would be to

PATCH /api/v2/users/{userId}/queues and set the joined property on/off to deactivate them, so you could do a quick query for everyone assigned the queue, loop through, deactivate them, and then repeat the process to activate them again the next day without having to manually track lists of users.

The whole scheduled add/remove thing isn't great at scale though because 1000 reps would take ~15 minutes to process with the standard rate limiting, hence trying to look for a routing based solution.

It took a lot more programming than I expected, however I was able to implement the wait strategy successfully. I am still considering using that API to deactivate users from the queue upon queue closure. The management team does not want to clear the queue by the end of the day as they place outbound calls for each email that requires follow-up, and they don't want to do that beyond our closing hours 9PM per time zone. So yes, thank you for the suggestion, that is exactly what I am considering. What I don't know is if there is a way to schedule the API call process via Genesys, or if I have to rely on my external IPaaS system. I haven't explored workflows yet, nor triggers much, but I was wondering if there was a way to setup a trigger based on a timer or schedule so I can execute a workflow to loop through all of those users.

It might not have reached that level of maturity yet. All the triggers I am aware of are tied explicitly to conversation (or workitem) events.
It might be doable from a work flow but haven't dug into them enough to say for sure.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.