Skip to main content
Answer

Connect Learning plans data with course data

  • November 11, 2025
  • 6 replies
  • 54 views

Hi! 

I am pulling the following tables through API and wanted to know the common column using which I can connect the learning plan table with the course table:

  1. Learning Enrolled Courses
  2. Learning Plan
  3. Learning Plan Enrollment
  4. Learning platform courses
  5. Learning users

My end goal to create a table in PowerBI showing userwise learning plan status and the status of the courses within each of those learning plans.
 

Best answer by brandonbillings

Maybe I’m missunderstanding, but GET /learningplan/v1/learningplans/{learning_plan_id}/allGcourses returns the courses for a given learning plan in an array. You could then match learning plan IDs to course IDs

{
"data": {
"items": [
{
"id_course": 0,
"uid": "string",
"code": "string",
"title": "string",
"type": "elearning",
"language": {
"code": "string",
"name": "string",
"browser_code": "string"
},
"create_date": "2025-11-19",
"is_published": true,
"prerequisites_count": 0,
"prerequisites_completion": {
"all_courses": true,
"courses_to_be_completed": 0,
"postpone_access": true,
"time": 0,
"time_unit": "day"
},
"is_required": true,
"category": "string",
"sequence": 0,
"prerequisites_id": [
0
]
}
],
"sort": {
"sort_attr": "string",
"sort_dir": "string"
}
},
"version": "string",
"extra_data": {
"mandatory_count": 0
}
}

 

6 replies

dwilburn
Guide III
Forum|alt.badge.img+4
  • Guide III
  • November 12, 2025

You can accomplish this with the Learning Plan report, which once setup you can also call from the API.


  • Author
  • Novice II
  • November 12, 2025

You can accomplish this with the Learning Plan report, which once setup you can also call from the API.

Hi ​@dwilburn is there a documentation on the whole process of achieving this? Any particular apis that we could make a call to? Sorry, not too familiar with this currently


dwilburn
Guide III
Forum|alt.badge.img+4
  • Guide III
  • November 12, 2025

@ayushaggarwal - this is a good series to get up to speed on APIs and Postman, along with the development process.

If you have the report setup, you can call it with this api

Export report as CSV
get    /analytics/v1/reports/{report_id}/export/csv

The analytics section of the API Browser has all the reporting capabilities


  • Author
  • Novice II
  • November 12, 2025

@ayushaggarwal - this is a good series to get up to speed on APIs and Postman, along with the development process.

If you have the report setup, you can call it with this api

Export report as CSV
get    /analytics/v1/reports/{report_id}/export/csv

The analytics section of the API Browser has all the reporting capabilities

Thanks, ​@dwilburn I tried this to get the data in PowerBI and got the error: The field 'id_export' of the record wasn't found. Here’s the expression that I am using:
ExportID = Text.From(ExportJson[data][id_export])

any modifications you would like to suggest?


brandonbillings
Helper II
Forum|alt.badge.img+1

Maybe I’m missunderstanding, but GET /learningplan/v1/learningplans/{learning_plan_id}/allGcourses returns the courses for a given learning plan in an array. You could then match learning plan IDs to course IDs

{
"data": {
"items": [
{
"id_course": 0,
"uid": "string",
"code": "string",
"title": "string",
"type": "elearning",
"language": {
"code": "string",
"name": "string",
"browser_code": "string"
},
"create_date": "2025-11-19",
"is_published": true,
"prerequisites_count": 0,
"prerequisites_completion": {
"all_courses": true,
"courses_to_be_completed": 0,
"postpone_access": true,
"time": 0,
"time_unit": "day"
},
"is_required": true,
"category": "string",
"sequence": 0,
"prerequisites_id": [
0
]
}
],
"sort": {
"sort_attr": "string",
"sort_dir": "string"
}
},
"version": "string",
"extra_data": {
"mandatory_count": 0
}
}

 


  • Author
  • Novice II
  • November 20, 2025

Maybe I’m missunderstanding, but GET /learningplan/v1/learningplans/{learning_plan_id}/allGcourses returns the courses for a given learning plan in an array. You could then match learning plan IDs to course IDs

{
"data": {
"items": [
{
"id_course": 0,
"uid": "string",
"code": "string",
"title": "string",
"type": "elearning",
"language": {
"code": "string",
"name": "string",
"browser_code": "string"
},
"create_date": "2025-11-19",
"is_published": true,
"prerequisites_count": 0,
"prerequisites_completion": {
"all_courses": true,
"courses_to_be_completed": 0,
"postpone_access": true,
"time": 0,
"time_unit": "day"
},
"is_required": true,
"category": "string",
"sequence": 0,
"prerequisites_id": [
0
]
}
],
"sort": {
"sort_attr": "string",
"sort_dir": "string"
}
},
"version": "string",
"extra_data": {
"mandatory_count": 0
}
}

 

Amazing. Thanks ​@brandonbillings - you are fantastic