Best Answer

Using API to get enrollment data


Userlevel 5

Hello, Community!

I’m attempting to use Docebo’s APIs to pull information from Docebo to use elsewhere. I need to pull a list of all enrollments for a given time period (say enrollments created or updated in the last 14 days). In the API browser, I see how I can pull enrollments for a particular course, but not how to pull all enrollments, regardless of course. 

Has anyone been able to accomplish this using an API who would be willing to offer some advice?

Many thanks!

icon

Best answer by John 3 November 2022, 18:41

View original

13 replies

Userlevel 5
Badge +2

Hey @JenWadsworth!

I believe the endpoint you may be looking for is this one:

  • GET /course/v1/courses/enrollments

There are a host of filter parameters that you can work with above (some not shown in screen shot), including user id, course id, date from, date to, and so on. Hope it is helpful and will listen out for your feedback! 😊

Userlevel 5

Thanks, @John! So, the parameters listed aren’t required, I take it? Maybe I was thinking they were. In any case, thanks for the direction!

Userlevel 5
Badge +2

That’s it @JenWadsworth, they are optional fields. I called without any formatted params and results were returned, although many many results. So the params will let you narrow in on the data.

Userlevel 7
Badge +3

Nice timing on this, tagging for a new series i am working on, “API browser Quick Grabs”

Userlevel 5
Badge +2

Certainly, will be on the lookout and can’t wait to read more about “Quick Grabs” from API-Browser, @Bfarkas!

Always good to hear from you and so appreciative of your contributions!  😁

Userlevel 5

@John  Related Question: Is there a version of that API call for ILT enrollments? I’m struggling to get similar enrollment information for sessions. I’ve maybe found a round-about way to get it, but that can’t possibly the the only way. See my diagram below.

 

Userlevel 5

@Bfarkas I read through your series so far after posting the original message. It was enlightening, and I’m looking forward to more. I even requested access to Postman! I’m new to APIs, so your series will be a great resource. Thanks for putting it together!

Userlevel 7
Badge +3

@John  Related Question: Is there a version of that API call for ILT enrollments? I’m struggling to get similar enrollment information for sessions. I’ve maybe found a round-about way to get it, but that can’t possibly the the only way. See my diagram below.

 

Yeah, unfortunately I am not aware of a simple way to do this since you need to first know which courses they are in and then check the course for users who are enrolled in sessions (same call as above), but it becomes a bit of hit or miss to find the others. I often use a mix of reporting and API’s for things like this to keep it simpler and avoid limitations. What is the scenario you are trying to do here?

Userlevel 7
Badge +3

@Bfarkas I read through your series so far after posting the original message. It was enlightening, and I’m looking forward to more. I even requested access to Postman! I’m new to APIs, so your series will be a great resource. Thanks for putting it together!

Nice! There are more on the way in that series for sure, and I think you will really like the new ‘Quick Grabs’ series I am working on as well.

Userlevel 5

@Bfarkas Here’s the scenario around my request:

My company has a contract with Metrics That Matter (MTM) -- a competitor to Docebo’s Learning Impact product, I believe. That contract was in place before we onboarded Docebo. I’m working with IT to create an api integration that ships completion records to MTM so MTM can send out learner surveys.

MTM structures their data as Courses/Classes/Enrollments. So for ILT/VILT, I need to know what session users are enrolled in more than what course they are enrolled in.

Hope that makes some sense!

Userlevel 7
Badge +3

@Bfarkas Here’s the scenario around my request:

My company has a contract with Metrics That Matter (MTM) -- a competitor to Docebo’s Learning Impact product, I believe. That contract was in place before we onboarded Docebo. I’m working with IT to create an api integration that ships completion records to MTM so MTM can send out learner surveys.

MTM structures their data as Courses/Classes/Enrollments. So for ILT/VILT, I need to know what session users are enrolled in more than what course they are enrolled in.

Hope that makes some sense!

Ah makes total sense so a couple thoughts:

  1. how close to real time does this need to happen? If a couple times a day, you might be better doing a report and using the automation app to FTP it to them, or just email it to them using the scheduler. They should be able to ingest it and then do what they need (or your IT group should be able to do similar.
  2. This seems more about completions correct? Can you use webhooks instead, and as users complete their courses they are sent directly to MTM?
Userlevel 5

 Ah makes total sense so a couple thoughts:

  1. how close to real time does this need to happen? If a couple times a day, you might be better doing a report and using the automation app to FTP it to them, or just email it to them using the scheduler. They should be able to ingest it and then do what they need (or your IT group should be able to do similar.
  2. This seems more about completions correct? Can you use webhooks instead, and as users complete their courses they are sent directly to MTM?

All good questions! We used to SFTP the data to MTM nightly, but we’re hoping to use API to make it more real-time -- so as soon as the course completion is recorded, they get the survey. That was the hope, anyway… I have wondered if it having the data real-time is worth the effort of working with the APIs!

Webhooks might work for the surveys. We’d still need to get the courses and classes created in MTM somehow. I haven’t done much with webhooks, honestly. I’ll have to read up on them.

Thanks!

Userlevel 7
Badge +3

 Ah makes total sense so a couple thoughts:

  1. how close to real time does this need to happen? If a couple times a day, you might be better doing a report and using the automation app to FTP it to them, or just email it to them using the scheduler. They should be able to ingest it and then do what they need (or your IT group should be able to do similar.
  2. This seems more about completions correct? Can you use webhooks instead, and as users complete their courses they are sent directly to MTM?

All good questions! We used to SFTP the data to MTM nightly, but we’re hoping to use API to make it more real-time -- so as soon as the course completion is recorded, they get the survey. That was the hope, anyway… I have wondered if it having the data real-time is worth the effort of working with the APIs!

Webhooks might work for the surveys. We’d still need to get the courses and classes created in MTM somehow. I haven’t done much with webhooks, honestly. I’ll have to read up on them.

Thanks!

Couple more thoughts :)

Could you simply increase the cadence of the report to be say every 2-4 hours instead of once a day, would that be a fine balance or close enough (for ILT’s especially, is there a cadence to them whereby having a report follow a certian pattern lets it be run pretty close to the end of the session anyways).

Could you use the webhook to deliver the survey and then the nightly report to handle the enrollments as is? If you’re curious (shameless self-promo plug) one of the articles in my current API series looks at webhooks: 

 

Reply