We are implementing optimization of an existing schedule via reschedule APIs:
Call postWorkforcemanagementBusinessunitWeekScheduleReschedule to trigger reschedule run
Follow scheduling run notifications to verify when run is complete
Read result via URLs in getWorkforcemanagementBusinessunitSchedulingRunResult API response
There are a couple of questions regarding the results of the run:
So far we do not see any schedule in results, only errors and warnings: AgentNotLicensed and AgentWithoutCapability. We created a role for the agent with all WFM permissions, however we still see the AgentNotLicensed for the agent. For another agent with the same all permissive role we see AgentWithoutCapability.
What permissions and conditions should be applied to the agent to allow rescheduling run?
According to Start the rescheduling process - Genesys Cloud Resource Center description of the similar process via UI, there is a possibility to either apply or discard the scheduling run result. In SDK we could only find patchWorkforcemanagementBusinessunitSchedulingRun API that allows marking the run as applied.
Is there an option to discard the run results?
You can verify the licensing state and what planning groups an agent is able to handle in the Agents page in the UI. Just go to the Agents page in the Workforce Management portion of the Admin tab, then select the management unit of the agent(s) you're working with. The "Schedulable" column will indicate the license state, and you can tell what planning groups each agent can handle via the Planning Groups column.
Note that agent capabilities are updated periodically on the back-end, so recent changes may not be visible. In case they're out of sync with what you're expecting you can click the "Sync Changes" button on that same page. It shouldn't be necessary to use this button, however, so it would be inadvisable to include this step in any scripted or automated workflows.
There is no function to automatically apply reschedule results to a schedule - you have to go through the edit schedule process and apply the results returned by the reschedule job to the schedule, then save, to actually make any changes to the schedule. As such, if you simply want to discard a reschedule run, you can simply call the PATCH route without modifying the schedule.
I verified that agents in the schedule we are optimising have Schedulable status, however we added a very broad role for these agents to become Schedulable (Master Admin).
Could you please point us to the narrowest role or permission required for an agent to become Schedulable (in addition to belonging to the correct planning group)?
I don't believe any of the agent-specific permissions are included by default on the Master Admin role.
The permission the agent needs is wfm:agentSchedule:utilizeLoadBased (or if you're looking in the UI, Workforce Management > Agent Schedule > Utilize Load Based)
I believe this permission is present by default in the Agent role (though this doesn't take into account any changes you may have made to your default roles in your organization).