Reporting Past Due TrainingAnswered
Is there some option I'm missing that will allow me to see all Past Due trainings across all campaigns? We have dozens of campaigns running across our platform, and only a few are mandatory and part of our HIPAA compliance program. We would like to be able to see a report/CSV that lists all the PAST DUE trainings across a set of campaigns, vs having to go into each campaign and download the CSV
Has anyone found a way to do this? It seems that this would be a standard report, but I just can't seem to locate it in the system.
I use this report at the link below.
All Campaigns, All Users, Last Year.
Go to the "Not Started" tab. Run the report and download the .CSV. You will need to filter out the users with Past Due = 0. I've submitted a request to schedule this report, send "Only" the past due users (do the filtering for us), and asked if they could list the training course and date due for each past due assignment.
The inability to report past due training across all active campaigns without pulling the status from each individual campaign is a huge miss on the training platform. We have many continuously running campaigns that launch throughout a year and trying to pull past due reports for the executive leadership team is an extremely time consuming process of going into each campaign, exporting the users list, and then merging all of the CSV's together and filtering it.
The existing Report options for just showing counts of missing training programs is not sufficient. The new reporting functionality within the Training area does not appear to be fully functional as the results of who has not completed a course is DRASTICALLY wrong and there is no option for looking at PAST DUE in that area.
We have a need for this as well because we integrate training status with other on prem systems. The API way to do this is quite clunky because you have to get all active campaigns and then loop through them to find users with a past due status. An easier way to get this list via the api would be extremely helpful. Maybe you could add a smart group criteria for past due training that would return all users with a campaign that is past due?
This is available now via the Reports menu. For past due and/or incomplete training I use the "Training Activity Report" (https://training.knowbe4.com/ui/reports/global_training). Under training status it now allows you select between "All Training Statuses" and "Past Due Statuses Only". I select "Past Due Statuses" and within those statuses I select "Not Started" and "In Progress". This provides a list of who has incomplete, past-due training. You can View Report and then Save Report.
Once you have the filtering as you like it, you can Add or Remove Columns to suit your needs. After adding/removing columns, be sure to Save your format. Once your filtering and format are good and after you have saved your report, you can schedule the report to automatically send. I have several copies of the report described above, with each filtered on a specific group; that group's reports are scheduled to be sent to the person in that group who is responsible for the follow-up on past due training (for their group).
The improvements in reporting over past 12 months have helped us greatly with follow-up and completion.
I hope that this helps!
Paul is correct! The Training Activity Report should be a good way to get the kind of information you are looking for.
More information on how to use the Training Activity Report can be found here: https://support.knowbe4.com/hc/en-us/articles/4417261034259
Also, more information on saving/sending/scheduling reports can be found here: https://support.knowbe4.com/hc/en-us/articles/4406329132691
Remember, feature requests like these are what told our team to work on something like this! We always love hearing feedback on what features you want to see so keep giving us suggestions!
Hi Paul and Jacob. While I appreciate the links, that is not actual useful for integration with other systems. We dynamically integrate our KB4 training statuses with our proxy. If anyone is looking to do this with the API, here is what I set up so far:
- First you have to make sure any optional campaigns have no end date. There is a kb4 article on setting up optional campaigns. Follow it.
- Get all campaigns from /v1/training/campaigns
- We use relative duration for all our campaigns so we filter the results for end_date=null and relative_duration!=null and status="in progress". This gives us all open campaigns. Optional campaign is filter out because it has no end date
- Then you need to loop through every campaign's enrollments via the /v1/training/enrollments?campaign_id=<campaign id>&per_page=500 endpoint. You can filter the status="past due" to find past due enrollments. Just be super careful because the API does not show any pagination info. You basically have to count the number of results and if it is = per_page, assume you have more data.
We use smart groups for remedial training per the kb4 recommendation but we found using the group membership API with the proxy did not account for a grace period for our users to take the remedial training. It would have been easier to just have the past due training criteria available for the smart group so we could use that in the api but using the campaigns and enrollments endpoints was what we had to settle on. I did open a feature request about the pagination of the API. The docs are not clear about which endpoints have page limits and the results headers and body give no indication that you need to query additional pages. Never used another API that requires you to use pagination but does not inform you when your results have been paginated. Hoping for a V2 of the API some day.
Please sign in to leave a comment.