Hello Docebians and Docebo friends!
We need to have an automated process to unenroll terminated users from any courses they are enrolled in except for completed ones. Has anyone solved how to do this or is this still a manual effort?
Hello Docebians and Docebo friends!
We need to have an automated process to unenroll terminated users from any courses they are enrolled in except for completed ones. Has anyone solved how to do this or is this still a manual effort?
hmm, you might need to look at using API’s do this kind of work if your volumes are high.
I will be following this post since we have a need to do the same for users that need to be removed from courses when their subscription expires but still need to be able to have access to our free content (can’t just expire the user).
Sure would be nice if there was a rule we could just enable...
I do a process very similar to this with a combination of reports and api. It is for removing users from iLT who did not attend each day so that they can just enroll in another session easily. The report runs to get the users you are looking for, in this case I’d prob make a group of leaving users in their off boarding process, so the report only looks at currently gone users, and pulls their source enrollment status. A filter for only those not competed (could do this externally or by running two reports, one for in progress, one for not started and then merge them) and then it is a matter of manipulating that data into an array in the right format for the batch enrollment endpoint but passed as a delete to remove them. In this way you can do a couple hundred per call instead of one at a time, which helps manage the api hourly limits, but will have to manage the amount you are putting into each call. The reason I start with reports is also to manage api usage, you could do it all with apps, looking up each users enrollments and then filtering and merging to a larger list.
I do a process very similar to this with a combination of reports and api. It is for removing users from iLT who did not attend each day so that they can just enroll in another session easily. The report runs to get the users you are looking for, in this case I’d prob make a group of leaving users in their off boarding process, so the report only looks at currently gone users, and pulls their source enrollment status. A filter for only those not competed (could do this externally or by running two reports, one for in progress, one for not started and then merge them) and then it is a matter of manipulating that data into an array in the right format for the batch enrollment endpoint but passed as a delete to remove them. In this way you can do a couple hundred per call instead of one at a time, which helps manage the api hourly limits, but will have to manage the amount you are putting into each call. The reason I start with reports is also to manage api usage, you could do it all with apps, looking up each users enrollments and then filtering and merging to a larger list.
@Bfarkas Could you please help me more with this process? I’m also looking for a similar way to unenroll the users from the closed sessions/events. I tried with APIs, but I can achieve it for only single users. I’m looking for an API support, where I can unenroll the multiple users from the multiple sessions through APIs. Appreciate your helps.
I do a process very similar to this with a combination of reports and api. It is for removing users from iLT who did not attend each day so that they can just enroll in another session easily. The report runs to get the users you are looking for, in this case I’d prob make a group of leaving users in their off boarding process, so the report only looks at currently gone users, and pulls their source enrollment status. A filter for only those not competed (could do this externally or by running two reports, one for in progress, one for not started and then merge them) and then it is a matter of manipulating that data into an array in the right format for the batch enrollment endpoint but passed as a delete to remove them. In this way you can do a couple hundred per call instead of one at a time, which helps manage the api hourly limits, but will have to manage the amount you are putting into each call. The reason I start with reports is also to manage api usage, you could do it all with apps, looking up each users enrollments and then filtering and merging to a larger list.
@Bfarkas Could you please help me more with this process? I’m also looking for a similar way to unenroll the users from the closed sessions/events. I tried with APIs, but I can achieve it for only single users. I’m looking for an API support, where I can unenroll the multiple users from the multiple sessions through APIs. Appreciate your helps.
Can you provide any insight into what you have done already? Which endpoint are you using, a sample payload? Always easier to start where you are than to assume and recreate from scratch. There are some bulk endpoints that allow you to send arrays of requests, I generally keep them still to one course per endpoint but you don’t necessarily have to, was just easier with my setup.
I just tried this end point.. Un-Enroll user in ILT & it works.
I’m missing something manipulating the data into an array in the right format. Attached screenshot. I tried for a batch unenroll endpoint, it works well as a single user but doesn’t as a multiple users.
Ah, that's a single action endpoint, you want a bulk.
https://nyl.docebosaas.com/api-browser/#!/learn/Enrollment/Enrollment_learn_v1_enrollments
I know those links don’t work well, its in the api-browser under Learn > Enrollment > Un-enroll users in course(s)
Its a DELETe with URL of /learn/v1/enrollments
The body takes the format of:
{
"user_ids": [
0
],
"course_ids": [
0
],
"learningplan_ids": [
0
],
"reset_tracks": true,
"cascade_unenroll_from_courses_in_selected_learning_plan": true,
"delete_issued_certificates": true
}
You don’t need all of the above, but you can see how you can list all the users and remove those users from multiple courses and learning plans in one go.
Ah, that's a single action endpoint, you want a bulk.
https://nyl.docebosaas.com/api-browser/#!/learn/Enrollment/Enrollment_learn_v1_enrollments
I know those links don’t work well, its in the api-browser under Learn > Enrollment > Un-enroll users in course(s)
Its a DELETe with URL of /learn/v1/enrollments
The body takes the format of:
{
"user_ids": [
0
],
"course_ids": [
0
],
"learningplan_ids": [
0
],
"reset_tracks": true,
"cascade_unenroll_from_courses_in_selected_learning_plan": true,
"delete_issued_certificates": true
}
You don’t need all of the above, but you can see how you can list all the users and remove those users from multiple courses and learning plans in one go.
There’s a bunch of methods, really comes down to what you’re doing. It’s available in reports if you want to get bulk amounts and automate it a bit, there’s info for how to get it a few ways in the front end here:
there’s also just the standard get user info api call that you can go through and look them up, you can find this in your api browser as well.
Interesting, I’m glad you asked the question. We have a training path that has a lot of turmoil. I am trying to develop Postman/API scripting skills. It is going very slow at the moment.
Ah, that's a single action endpoint, you want a bulk.
https://nyl.docebosaas.com/api-browser/#!/learn/Enrollment/Enrollment_learn_v1_enrollments
I know those links don’t work well, its in the api-browser under Learn > Enrollment > Un-enroll users in course(s)
Its a DELETe with URL of /learn/v1/enrollments
The body takes the format of:
{
"user_ids": [
0
],
"course_ids": [
0
],
"learningplan_ids": [
0
],
"reset_tracks": true,
"cascade_unenroll_from_courses_in_selected_learning_plan": true,
"delete_issued_certificates": true
}
You don’t need all of the above, but you can see how you can list all the users and remove those users from multiple courses and learning plans in one go.
Hi
Looking forward to meeting you at Inspire shortly. The above unenrolls from the course. Is there anything that can unenroll from Sessions? We have lots of users that were Absent from a session and Present for a different session. While it shouldn’t, this often prevents our learners from showing “Completed” for the course...it shouldn’t...the course is setup to show Completed when any session is attended...but in reality it clearly DOES. We have hit a wall with getting any kind of attention or fix for why this is happening - I consider it a bug...Docebo doesn’t.
That to be said. I’m looking for a way to bulk unenroll from unattended sessions to prevent this discrepancy. Thoughts?
Enter your email address or username and password below to log in to Docebo Community. No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.