Optimizing Bulk User Skill Assignments for Large-Scale Migrations

I am currently helping a client re-skill over eight hundred agents for a new accessible support line. I am using the /api/v2/users/{userId}/skills endpoint to update the agents, but I am finding it very slow. It takes about two seconds to update a single user, which means my script will take nearly half an hour to finish. Is there a more efficient way to perform bulk skill assignments for many users, or is this the standard performance for the users API?

Greetings. I am a trunk administrator and I manage many regional sites. You are hitting the standard latency for the users API. Every time you update a user’s skills, the platform has to synchronize that change across many backend services (like the routing engine and the analytics database). This is why there is no ‘Bulk’ endpoint for user skills. You should run your script in ‘Parallel’ with a concurrency of about five. This will significantly reduce the total time while still staying well within the rate limits.

Hello everyone! I am an admin for a large enterprise in Japan. To follow up on Yui72, you should also consider using ‘Skill Groups’ if your organization has them enabled. Instead of assigning individual skills to eight hundred agents, you can create a ‘Skill Group’ that contains the necessary skills and then add the agents to that group using the /api/v2/groups/{groupId}/members endpoint. Group membership updates are much faster than individual skill assignments!

I have built several of these provisioning syncs. Sur92 is right about the Skill Groups, they are a total life-saver for large organizations! But if you must use individual skills, please ensure you are only sending the ‘Delta’ (the new skills) and not the entire skill list if you can avoid it. Also, make sure you are handling the 409 Conflict errors in your script, as they can happen if you try to update the same user multiple times in a short window.