Skip to main content
RapidDev - Software Development Agency
retool-integrationsREST API Resource

How to Integrate Retool with LinkedIn Learning (formerly Lynda.com)

Lynda.com was rebranded as LinkedIn Learning in 2019. To connect Retool to LinkedIn Learning's corporate learning data, create a REST API Resource using the LinkedIn Learning Enterprise API with OAuth 2.0 authentication. Build dashboards to track employee course progress, monitor completion rates across teams, and report on corporate training compliance from a centralized internal panel.

What you'll learn

  • How Lynda.com became LinkedIn Learning and what the current API access model looks like
  • How to obtain LinkedIn Learning Enterprise API credentials and generate an OAuth 2.0 access token
  • How to configure a Retool REST API Resource for the LinkedIn Learning API
  • How to build an employee training compliance dashboard showing course completion by team
  • How to query learner activity and skill development data for HR and L&D reporting
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate14 min read30 minutesOtherLast updated April 2026RapidDev Engineering Team
TL;DR

Lynda.com was rebranded as LinkedIn Learning in 2019. To connect Retool to LinkedIn Learning's corporate learning data, create a REST API Resource using the LinkedIn Learning Enterprise API with OAuth 2.0 authentication. Build dashboards to track employee course progress, monitor completion rates across teams, and report on corporate training compliance from a centralized internal panel.

Quick facts about this guide
FactValue
ToolLinkedIn Learning (formerly Lynda.com)
CategoryOther
MethodREST API Resource
DifficultyIntermediate
Time required30 minutes
Last updatedApril 2026

Build a LinkedIn Learning Corporate Training Dashboard in Retool

Lynda.com was acquired by LinkedIn in 2015 and fully rebranded as LinkedIn Learning in 2019. If your organization has Lynda.com licenses, those are now LinkedIn Learning licenses — the platform, API, and data are unified under the LinkedIn Learning brand. Any Retool integration for Lynda.com content now uses the LinkedIn Learning API.

For enterprise organizations, LinkedIn Learning provides a dedicated API that gives programmatic access to learner activity data, course completion records, skill assessments, and the full course catalog. Learning & Development teams typically need this data in custom dashboards that combine training progress with HR systems — showing completion rates by department, identifying skill gaps, tracking mandatory compliance training, and generating reports for management without relying on LinkedIn Learning's native reporting UI.

Retool is well-suited for building these internal L&D operations dashboards. Connect to the LinkedIn Learning Enterprise API as a REST API Resource, build queries for learner progress and course completion, and combine that data with employee data from your HR system (Workday, BambooHR, ADP) to create fully contextualized training compliance views that LinkedIn Learning's native reports cannot provide.

Integration method

REST API Resource

LinkedIn Learning connects to Retool via a REST API Resource using the LinkedIn Learning Enterprise API. Authentication uses OAuth 2.0 client credentials flow — your organization's Learning API credentials generate an access token that is passed as a Bearer token in the Authorization header. The API provides access to course catalogs, learner activity reports, and completion data for enterprise accounts. Retool proxies all requests server-side, keeping credentials off the browser.

Prerequisites

  • A LinkedIn Learning Enterprise account with API access (available on Enterprise plans — contact LinkedIn Learning sales to enable API access for your organization)
  • LinkedIn Learning API client ID and client secret (provided by your LinkedIn Learning Customer Success Manager or via the LinkedIn Developer Portal)
  • Your organization's LinkedIn Learning account identifier or content provider URN
  • A Retool account with permission to create Resources and Configuration Variables
  • Access to your HR system data for joining employee records with LinkedIn Learning activity

Step-by-step guide

1

Understand the Lynda.com to LinkedIn Learning migration

Lynda.com was officially retired as a standalone platform in 2019. All Lynda.com course content was migrated to LinkedIn Learning, and all Lynda.com enterprise accounts were converted to LinkedIn Learning Enterprise accounts. If your organization previously had a Lynda.com integration or access tokens, those are no longer valid — you must use the LinkedIn Learning API instead. To access the LinkedIn Learning API for enterprise learner data, your organization needs a LinkedIn Learning Enterprise license (also called LinkedIn Learning for Organizations). Individual LinkedIn Premium subscriptions do not include API access. Contact your LinkedIn Learning Customer Success Manager (CSM) or LinkedIn account team to: 1. Confirm your organization has an Enterprise plan with API access enabled 2. Request API credentials (Client ID and Client Secret) for the LinkedIn Learning Content and Reporting API 3. Obtain your organization's account identifier or organizational unit ID LinkedIn Learning uses two separate APIs: the Content API (for accessing course catalogs) and the Reporting API (for learner activity and completion data). Both use the same OAuth 2.0 client credentials for authentication but have different base URLs. Note that access to individual-level learner data through the API requires explicit consent from your employees under GDPR and similar regulations. Consult your legal team before building dashboards that display identifiable employee training data.

Pro tip: LinkedIn Learning's API uses the same LinkedIn URN system as LinkedIn's main API — courses are referenced as urn:li:lyndaCourse:12345 and learners as urn:li:person:ENCODED_ID. Keep this in mind when constructing query filters.

Expected result: You have confirmed your organization's LinkedIn Learning plan includes API access, and you have received API credentials (client ID and client secret) from LinkedIn Learning.

2

Generate an OAuth 2.0 access token for LinkedIn Learning

LinkedIn Learning's Enterprise API uses OAuth 2.0 client credentials flow — you exchange your client ID and secret for an access token without requiring a user login. This is appropriate for server-to-server integrations like Retool where the queries run under the organization's credentials rather than individual user credentials. To generate the access token, make a POST request to the LinkedIn token endpoint: URL: https://www.linkedin.com/oauth/v2/accessToken Method: POST Content-Type: application/x-www-form-urlencoded Body: - grant_type: client_credentials - client_id: YOUR_CLIENT_ID - client_secret: YOUR_CLIENT_SECRET The response includes an access_token and expires_in (usually 3600 seconds — 1 hour). For Retool, you need a long-lived token. LinkedIn Learning provides longer-lived tokens for enterprise API integrations — check with your CSM whether you have a refresh token or a service token with extended validity. For testing: use Postman or curl to generate an initial token, copy it, and store it in Retool Settings → Configuration Variables as LINKEDIN_LEARNING_TOKEN marked as secret. For production: build a Retool Workflow that refreshes the access token automatically before expiry by calling the token endpoint with the refresh_token grant type.

token_refresh_body.txt
1// Token refresh request body (URL-encoded)
2// Post to: https://www.linkedin.com/oauth/v2/accessToken
3// Content-Type: application/x-www-form-urlencoded
4grant_type=refresh_token
5&refresh_token=YOUR_REFRESH_TOKEN
6&client_id=YOUR_CLIENT_ID
7&client_secret=YOUR_CLIENT_SECRET

Pro tip: LinkedIn Learning API tokens for client credentials flow expire in 1 hour. Set up a Retool Workflow that refreshes the token every 50 minutes and stores the new token in a Configuration Variable to avoid query failures.

Expected result: You have a valid LinkedIn Learning OAuth 2.0 access token stored in Retool Configuration Variables, and understand the token refresh workflow.

3

Create the LinkedIn Learning API REST Resource in Retool

In Retool, navigate to the Resources tab and click Add Resource. Select REST API. Name: LinkedIn Learning API Base URL: https://api.linkedin.com (the LinkedIn Learning Reporting API uses the main LinkedIn API domain) Headers: - Key: Authorization | Value: Bearer {{ retoolContext.configVars.LINKEDIN_LEARNING_TOKEN }} - Key: LinkedIn-Version | Value: 202401 (use the current LinkedIn API version date) - Key: Content-Type | Value: application/json - Key: X-Restli-Protocol-Version | Value: 2.0.0 Note: LinkedIn Learning's Reporting API endpoints are under /v2/ paths, while the newer Learning API uses different path prefixes. You may need a second resource for different endpoint groups — create a second REST API resource named 'LinkedIn Learning Reporting API' if the endpoint base paths differ significantly. Click Create Resource. Test with a GET to /v2/learningAssets?q=localeAndType&assetType=COURSE&fields=urn,title&start=0&count=5 — this fetches a sample of LinkedIn Learning courses from the catalog. If it returns course records, the connection is working. Store your LinkedIn Learning organization identifier (usually in URN format) in a Configuration Variable as LINKEDIN_LEARNING_ORG_URN for use in learner activity queries.

Pro tip: Create separate Retool resources for the Content API (course catalog) and Reporting API (learner activity) if their base URLs differ — this makes it easier to manage authentication and versioning separately.

Expected result: The LinkedIn Learning API resource is created and a test GET /v2/learningAssets returns a sample of LinkedIn Learning courses in JSON format.

4

Fetch learner activity and completion data

Create a query named getLearnerActivity. The LinkedIn Learning Reporting API for enterprise accounts provides learner activity through the /v2/learningClassifications endpoint and learner-specific activity through enterprise-specific paths. For organization-wide learner reports: GET /v2/organizationalEntityLearnerActivities with parameters: - q: criteria - organizationalEntityURN: {{ retoolContext.configVars.LINKEDIN_LEARNING_ORG_URN }} - startedAt: {{ new Date(dateRange.start).getTime() }} (Unix milliseconds) - endedAt: {{ new Date(dateRange.end).getTime() }} - fields: engagedLearner,completedAt,percentageCompleted,assetDetails The response includes learner activity records with URN-encoded learner identifiers, course URNs, completion percentages, and completion timestamps. Create a transformer that maps the URN-encoded data to human-readable fields. The learner URN must be decoded or matched against your HR system's employee data to display names rather than URN codes. For the Retool dashboard to show employee names, build a second query that fetches employee data from your HRIS (Workday, BambooHR, or a database table) and join on email or employee ID. This combined view — LinkedIn Learning completion + employee profile — is what makes the Retool dashboard more valuable than LinkedIn Learning's native reports.

transformer_learner_activity.js
1// Transformer for LinkedIn Learning activity data
2const activities = data.elements || [];
3return activities.map(a => {
4 const learner = a.engagedLearner || {};
5 const asset = a.assetDetails || {};
6 const pct = a.percentageCompleted || 0;
7 return {
8 learner_urn: learner.learnerUrn || '',
9 learner_email: learner.email || '',
10 course_urn: asset.assetUrn || '',
11 course_title: asset.title?.value || '(Unknown Course)',
12 completed: pct >= 100,
13 percent_complete: pct,
14 percent_label: `${Math.round(pct)}%`,
15 completed_at: a.completedAt ? new Date(a.completedAt).toLocaleDateString() : '—',
16 last_activity: a.lastActivityAt ? new Date(a.lastActivityAt).toLocaleDateString() : '—'
17 };
18});

Pro tip: LinkedIn Learning activity data is returned with URN-encoded learner identifiers. Map these to employee records by matching learner email addresses from the API response against your HR database using a JavaScript query in Retool.

Expected result: The getLearnerActivity query returns employee course completion data for the selected date range, showing course titles, completion percentages, and activity timestamps.

5

Build the compliance tracking dashboard

With learner activity data available, build a compliance tracking view. Compliance tracking requires knowing which courses are mandatory for which employee groups — this data typically lives in your HR system or a Retool Database table you maintain. Create a Retool Database table (or use an existing database Resource) with columns: employee_id, employee_email, department, required_course_urn, due_date. Populate this with your organization's mandatory training assignments. Create a JavaScript query named getComplianceStatus that joins the LinkedIn Learning activity data with the required training table: - Fetch all required training assignments from your database - Fetch LinkedIn Learning completion records for each required course - For each employee-course pair, compute: status (completed, in_progress, not_started, overdue) - Overdue = not completed AND due_date < today Display the joined data in a Table with color-coded status rows. Add filter dropdowns for department and training category. Add Stat components: Overall Compliance Rate (completed / total assignments), Overdue Count, Completions This Month. For complex multi-system compliance reports combining LinkedIn Learning with your HRIS and a compliance database, RapidDev's team can help architect the data join logic and scheduled report generation.

compliance_join.js
1// Join training requirements with LinkedIn Learning completion data
2const requirements = getTrainingRequirements.data || [];
3const completions = getLearnerActivity.data || [];
4
5// Build a lookup of completions by email+course
6const completionMap = {};
7completions.forEach(c => {
8 const key = `${c.learner_email}|${c.course_urn}`;
9 completionMap[key] = c;
10});
11
12const today = new Date();
13return requirements.map(req => {
14 const key = `${req.employee_email}|${req.required_course_urn}`;
15 const completion = completionMap[key];
16 const dueDate = req.due_date ? new Date(req.due_date) : null;
17 const isCompleted = completion && completion.completed;
18 const isOverdue = !isCompleted && dueDate && dueDate < today;
19 return {
20 employee_email: req.employee_email,
21 department: req.department,
22 course_urn: req.required_course_urn,
23 due_date: req.due_date || '—',
24 percent_complete: completion ? completion.percent_complete : 0,
25 status: isCompleted ? 'Completed' : isOverdue ? 'Overdue' : completion ? 'In Progress' : 'Not Started',
26 completed_at: completion?.completed_at || '—'
27 };
28});

Pro tip: Cache the getLearnerActivity query for at least 30 minutes — compliance data doesn't change in real time, and caching reduces API calls significantly for organizations with hundreds of employees.

Expected result: The compliance dashboard shows per-employee training status for all required courses, with overdue employees highlighted, compliance rates by department, and overall completion statistics.

Common use cases

Build an employee training compliance tracker

Create a Retool dashboard showing training compliance status across the organization: which employees have completed required courses, who is overdue, and which teams have the lowest completion rates. HR managers can filter by department, track mandatory compliance training (e.g., security awareness, harassment prevention), and export completion data for regulatory reporting.

Retool Prompt

Build a Retool training compliance dashboard. Show a Table of employees with required course names, assigned date, completion status, and completion date. Add a filter for department and training category. Include stat components for overall compliance rate, overdue employees, and on-time completions. Add a Bar chart showing completion rate by department.

Copy this prompt to try it in Retool

Build a skill development progress dashboard

Create a Retool L&D dashboard tracking employee skill development over time: courses started vs completed per skill category, learning hours by team, and trending topics. L&D managers can identify which skills employees are proactively developing and where the organization has skill gaps based on course engagement patterns.

Retool Prompt

Build a Retool skill development dashboard showing LinkedIn Learning activity by employee. Display a Table with employee name, courses completed, total learning hours, top skill categories, and last activity date. Add a Chart showing total learning hours per week over the past quarter. Include a filter for job level and team.

Copy this prompt to try it in Retool

Build a corporate learning ROI report panel

Create a Retool executive dashboard showing the ROI of LinkedIn Learning licenses: active users vs total licenses, average learning hours per active user, most-completed courses, and course completion trends correlated with performance data from your HRIS. This gives leadership data to evaluate the learning program's effectiveness and justify license costs.

Retool Prompt

Build a Retool learning ROI dashboard showing LinkedIn Learning license utilization: total licenses, active users in last 30 days, utilization rate, and average hours per user. Show top 10 most-completed courses in a Table. Add a month-by-month Bar chart of learning hours. Include a stat showing cost per completed course based on license cost.

Copy this prompt to try it in Retool

Troubleshooting

401 Unauthorized when calling LinkedIn Learning API

Cause: The OAuth access token has expired (client credentials tokens typically expire in 1 hour) or the client ID and secret have been revoked or rotated.

Solution: Generate a new access token using the client credentials flow (POST to https://www.linkedin.com/oauth/v2/accessToken with grant_type=client_credentials). Update the LINKEDIN_LEARNING_TOKEN Configuration Variable in Retool. Implement a Retool Workflow that automatically refreshes the token every 50 minutes to prevent expiry during business hours.

403 Forbidden on learner activity endpoints

Cause: Your LinkedIn Learning Enterprise plan may not include API access for individual learner activity data, or the API credentials don't have the required permissions for the reporting endpoints.

Solution: Contact your LinkedIn Learning Customer Success Manager to verify your plan includes Reporting API access and that individual-level learner data is enabled for your API credentials. Some reporting endpoints require additional consent or configuration at the enterprise account level. Confirm with your legal team that you have employee consent to access individual training data through the API.

Learner activity response shows URN-encoded identifiers with no readable names or emails

Cause: LinkedIn Learning's API returns learner URNs rather than plaintext names or emails for privacy reasons. The API may not return email addresses depending on your enterprise configuration and regional privacy settings.

Solution: Work with your LinkedIn Learning CSM to enable email address return in the API response for your enterprise account (this is a configuration option). Alternatively, use employee ID matching between LinkedIn Learning's data export (CSV) and your HR system to build the identifier mapping table, then use that table in a Retool JavaScript query to join and display names.

Best practices

  • Store LinkedIn Learning API credentials (client ID, secret, and access token) in Retool Configuration Variables marked as secret — never include credentials directly in query configurations or share them with Retool app users.
  • Implement automatic token refresh using a Retool Workflow that runs every 50 minutes — LinkedIn Learning client credentials tokens expire hourly, and dashboard users shouldn't see authentication failures during work sessions.
  • Cache learner activity queries for at least 30 minutes — compliance data changes infrequently and caching significantly reduces API load for organizations with large employee counts.
  • Join LinkedIn Learning data with your HRIS employee table in a JavaScript query to enrich learning records with department, manager, and job level data — this context is what makes training dashboards actionable.
  • Always obtain legal review before displaying individual employee learning records in Retool — GDPR, CCPA, and other regulations may require employee consent for monitoring individual training behavior.
  • Use the organization-level aggregate endpoints for executive dashboards and the individual-level endpoints only for HR partners who have legitimate need for individual data — this limits data access to appropriate roles.
  • When building compliance tracking, maintain the training requirements table in Retool Database or a connected PostgreSQL database rather than in LinkedIn Learning — course URN-based assignment tracking gives you flexibility that LinkedIn Learning's native assignment features may not.

Alternatives

Frequently asked questions

Is Lynda.com still available, or is it now LinkedIn Learning?

Lynda.com was fully rebranded as LinkedIn Learning in 2019 and the Lynda.com domain now redirects to LinkedIn Learning. All Lynda.com courses, subscriptions, and enterprise accounts were migrated to LinkedIn Learning. If your organization had a Lynda.com enterprise license, those courses and learner data are now accessible through LinkedIn Learning's platform and API.

Does Retool have a native LinkedIn Learning connector?

No, Retool does not have a native LinkedIn Learning connector. You connect via a REST API Resource using LinkedIn Learning's Enterprise API with OAuth 2.0 client credentials. API access is only available on LinkedIn Learning Enterprise plans — contact your LinkedIn Learning account team to enable API access and obtain credentials.

What LinkedIn Learning plan is required for API access?

LinkedIn Learning API access is available on Enterprise plans (LinkedIn Learning for Organizations). Individual LinkedIn Premium subscriptions and small business plans do not include API access. Contact LinkedIn Learning's enterprise sales team or your Customer Success Manager to confirm your plan includes the Reporting API and to request API credentials.

Can I see individual employee learning data through the LinkedIn Learning API?

Yes, the LinkedIn Learning Reporting API provides individual learner activity data including course completion status, percent complete, and timestamps. However, accessing individual employee data requires appropriate enterprise configuration and may be subject to privacy regulations (GDPR, CCPA). Consult your legal team about data processing agreements and employee consent before building dashboards that display identifiable individual training records.

How do I track mandatory training compliance for regulatory requirements?

Build a two-part system in Retool: first, maintain a table of required training assignments (employee, required course, due date) in Retool Database or your HRIS. Second, pull LinkedIn Learning completion data via the API. Use a JavaScript query to join both datasets and compute compliance status (completed, in progress, overdue) for each employee-course combination. Display the results with department-level aggregation for management reporting.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Integrations are where projects stall

We wire Retool integrations like this one every week — auth, webhooks, edge cases included. Fixed-price builds from $13K, delivered in 6–10 weeks.

Talk to an integration engineer

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.