Integrate LinkedIn Learning courses with SuccessFactors Learning (LMS)- Part 2
This blog is continuation of my previous blog Integrate LinkedIn Learning courses with SuccessFactors Learning (LMS)- Part 1, here i’ve explained the OCN configuration steps required in both SF Learning and LinkedIn Learning system so that both the system can talk to each other with ultimate goal being LinkedIn would be able to dynamically push all learning contents to SF Learning without any manual intervention.
As per linkedIn document, the LinkedIn Learning library contains over 12K+ courses , with 20-30 courses added per week. At that rate, it would take LMS admins a considerable amount of time to repeatedly upload new content from LinkedIn Learning manually.
LinkedIn Learning connects to SF Learning via SF’s inbuilt OCN APIs, so LMS admins do not have to manually upload new content packages at regular intervals. After initial setup, LinkedIn Learning uses OCN APIs to dynamically refresh the content library on an automated basis. This ensures new LinkedIn Learning content is available to learners within 24 hours of release. All content titles and descriptions are aggregated and indexed to accommodate keyword searches and support efficient discoverability.
What is Open Content Network(OCN):
Open Content Network (OCN) is a group of Massive Online Open Course (MOOC) partners who can provide content to SAP SuccessFactors Learning. SAP SuccessFactors Learning created Open Content Network (OCN) to partner with Massive Online OpenCourse (MOOC) providers [ in this case LinkedIn is the provider] so that employees can easily access their content from within SF LMS system. Employees can still take a MOOC with LinkedIn Learning system, outside the Learning Management System (LMS), but when we bring the courses into the SF LMS, the advantage is we can make it available for assignment, add it to catalogs, bundle it into a curriculum or program, or make it a part of company’s social learning through recommendations. Some of the other well know MOOC provider are Coursera, Lynda.com ,Open Sesame, OpenHPI, Udacity, Harvard Manage mentor etc.
SuccessFactors API Configuration
In order for LinkedIn Learning to push new content and learner progress into SuccessFactors LMS,a system user must be provisioned and API access must be granted. SSO must be configured as mentioned in the part one (i.e Integrate LinkedIn Learning courses with SuccessFactors Learning (LMS) ) of the blog, If content syncing is enabled before completing the SSO configuration, course launches will fail.
Step 1) Create OCN Admin role in LMS:
1. Log in to the SAP SuccessFactors Learning administration environment for your tenant and go to System Admin > Security > Role Management .
2. Select Add New .
3. In the Role ID field, type OCN_ADMIN. ( you can give any other name)
4. Provide an optional description.
5. Set the Domain to your preference ( if you are unsure about domain name, check in System Admin > Security > Domain)
6. Set Role Type to Admin.
7. Select Add.
8. In the learning administration sidebar, select Workflows.
9. In the Add a Workflow to the Role section, select add one or more from list.
10. Expand the Learning Management section and select all thirteen workflows below:
1. Add Item
2. Edit Item
3. Edit item Catalogs
4. Edit Item Commerce
5. Edit Item Cost/Price
6. Edit Item Custom Columns
7. Edit Item State
8. View Item
9. View Item Catalogs
10. View Item Commerce
11. View Item Cost/Price
12. View Item Custom Columns
13. Open Content Network Import
11. Scroll to the bottom of the page and select Add.
Step 2) Create System User
1. Log in to the SAP SuccessFactors Learning administration environment for your tenant and go to System Admin > Application Admin > Admin Management.
2. Select Add New .
3. In the Admin ID field, type LILADMIN ( you can give any other name)
4. Set a password.
5. Save the admin user.
6. In the learning administration sidebar, select Assigned Roles.
7. In the Role ID field, select type OCN_ADMIN (the one we created in last step) and select add.
Step 3) Obtaining SuccessFactors Tenant API Keys
1. Log in to the SAP SuccessFactors administration for your tenant and go to System
Admin > Configuration .
2. Select OAuth Token Server .
3. Save the Client ID value to copy into your LinkedIn Learning settings (this will be used in the “Configure LinkedIn Learning OCN Settings” section below).
4. Select Generate a new Client Secret. The secret key is only displayed once. Do NOT copy the hashed secret value. The client secret should not contain dollar signs or any special characters.
Important : The tenant secret key is only displayed once. You should save the Client Secret so you can use it for future OCN integrations. If you regenerate the Client Secret in the future, previously created API keys will expire and your integration with LinkedIn Learning will need to be reconfigured with the new Client Secret.
Step 4) OCN Property File Configuration
1. In the SuccessFactors Learning Administration navigation menu, select Admin Tools .
2. In left menu, select Configuration . Then select System Configuration .
3. Find the Open Content Network option in the configuration file and select Edit (pencil and paper icon).
4. Scroll to the bottom of the configuration file.
5. Copy / Paste the values below into the configuration file:
6. If LinkedIn Learning is your first OCN integration, you will need to fill in the three additional parameters.To find the possible values, follow the click paths below:
● defaultValues.itemType[default]: References > Learning > Item Types > Do a blank search > choose the necessary item type and add it to the value parameter in the OCN property file.( e.g CRSE)
● defaultValues.itemCompletionStatus[default]: References > Learning > Item Completions > Do a blank search > choose the necessary item completion and add it to the value parameter in the
OCN property file.(e.g CRSE-COMP)
● defaultValues.domainID[default]: System Admin > Security > Domains > Do a blank search >
choose the default domain where the item would be created and add it to the parameter in the
OCN property file.
7. Click on “Apply Changes”.
Step 5) Create LinkedIn Learning Label
1. Go to SAP SuccessFactors Learning administration and then go to References > Geography > Labels .
2. Select Add New .
3. In Label Type type LABEL .
4. Select Next .
5. In Label ID, type ProviderLinkedInLearning
6. In Description, type LinkedIn Learning Label .
7. In Use By dropdown select Both .
8. Select Assign to All Locales .
9. Select Add .
10. Select Locales .
11. For each Active Locale ID, type LinkedIn Learning .
12. Click Apply Changes .
13. To verify the label, within learning administration visit Learning > Content Network and confirm the list of content providers includes “LinkedIn Learning (LINKEDINLEARNING)”. If you see “null
(LINKEDINLEARNING)” confirm the label ID created in this section matches the
providers[LINKEDINLEARNING].label value provided in your OCN property file.
Step 6) Configure LinkedIn Learning OCN Settings:
1. In the LinkedIn Learning admin navigation menu, select Settings then Integrations.
2. In the side menu, select Reporting APIs .
3. In the SuccessFactors Integration, select drop-down arrow .
4. In the user type drop down, there are 3 options:
1. ID – SAML SSO IdP configured unique user ID (UUID) value for your account. You should select
this value if you are using SuccessFactors as your SAML IdP.
2. Username – SAML SSO custom attribute used solely for communication with external systems.
You should select this value if you are using a third party SAML IdP that is configured to send the
SuccessFactors UUID value as “username” in the SAML SSO payload.
3. Email – A user’s work email address value. Select this value if you are using email as
your UUID in both LinkedIn Learning and SuccessFactors.( I’ve used the 1st Option i.e ID).
5. In the OCN Server field enter your SuccessFactors host name.
6. In the OAuth Client ID and OAuth Secret field enter the values copied in Step 3 (make sure to enter correct value)
7. In the Admin User ID field enter the value LILADMIN.
8. To begin the content import, select Enable & Sync Content.
Initial content import might take several hours to complete. After the initial import completes, linkedIn claims, the delta content imports will take place on a daily basis in a fraction of the time.
Once content sync is in progress, one can see the content sync status update with number if items synced( as shown in the figure above). As understandable the initial content update takes sever hours ( it took a day in my case) and after that delta courses are updated on real time basis.
Step 7: Validate if the LinkedIn Learning content imported in SF Learning
go to Learning->Content Network ( Select content provider as “linkedIn Learning”) and hit Search
all the imported can be viewed with provider ID as “LINKEDINLEARNING” ( also it shows how many total courses are there)
LMS admin should be able to assign courses to different groups based on requirement. However for users to access any of the linkedIn courses, he/she should have a linkedIn learning account subscription. In my next blog i would explain how to create linkedIn account for bulk users manually or via an automated interface ( activate and deactivate users). Thanks everyone, i hope this article helps.
Great post Biplab! It explains clearly all the steps part of the integration.
1 Quick Question in this regard. The LMS admin created does not require Record Learning permission workflow as we are passing the completion status as well ?
No, atleast i didnt have to assign any specific permission. Also i dont think the user ( LILADMIN in my case) has anything to do with syncing the completion status from LMS to LinkedIn. LMS admin user is used by LinkedIn to authenticate and sync the courses with LMS ( See step 6). Hope it make sense.
Currently we are integrating SF LMS with LiL. In the Reporting API setting, I am giving all the token details and Client ID etc, But it is displaying a error " Content import failed check your API setting". However the integration status remains to be enabled.Am I missing anything here.
Appreciate your inputs on the above!
Sorry, i was not checking the comments. I saw this just now. Hope your problem has been resolved. If not let me know.
Im having the same issue . Please advise
If a learner were to complete a LinkedIn course at home on his or her own PC using LinkedIn directly and not going via LMS, would the results still be pushed back to LMS?
Appreciate your write up and looking forward to the next part of the blog.
Yes, it can still be pushed back to LMS. For this we need to enable the API settings in the LiL admin settings where the LMS API keys will be configured and this integration enables the data flowing back and forth from LMS and LiL with respect to completion status and content sync.
But the catch here is LinkedIn User ID and LMS ID should be the same otherwise the connection is not established.
Thanks for sharing this nice information.
Thanks a lot for the wonderful document Biplab…
i have followed those steps to achieve LMS – Linkedin Integration.
After the configuration, linkedin courses are getting imported, users can be assigned to the linkedin course and the assigned users can bale to launch the course successfully.
After the completion of the course the status is not getting updated back to SF LMS. Please share your views on the root cause of the issue.
SuccessFactors captures course completion data for LinkedIn Learning courses launched from within SuccessFactors, i'm not sure if someone directly access a course from LiL, the status would be synced to SF LMS.
Ideally end users are given access to SF LMS, where they will be assigned linkedin learning courses, or courses from other OCNs, so may be it is wise to instruct employees to do the training's from LMS instead of directly from LiL.
Hope this information helps
we have an error message "Content import failed check your API Setting" and I don't know why.
Currently we've imported over 7.000 Courses, but I'm not sure where we have an issue. The Import Status is "not imported". Did we miss one step?
in LL Admin, Integration->LMS Reporting APIs, is the successFactors Integration enabled? there you can see the content sync process.
Exactly where you are getting this error?
Alternatively you can select the courses and manually import from "Content Network"
Looks like this is a limitation, the Open Content Network only allows LinkedIn to push the course metadata to SAP's Content Network, not create the learning items. We will have to import the courses and add them to catalogs, which can be done in bulk.
While enabling the Content Sync in LL Admin, Integration->LMS Reporting APIs, I am getting the following error - "Content import failed. Confirm your Successfactors API settings and try again". Can anyone help on how to remove this error and enable the course Sync from LinkedIn Learning side.
Many thanks in advance!
Our integration is working.
When we import the LIL course into our LMS, can we have additional fields populated for imported course?
For examples below, we want these fields in the course mapped when we import.
Catalog = LinkedIn Learning
Delivery Method = Computer-Based Training (CBT)
Length = should be taken from LIL, if possible. This is in minutes.
I followed all the steps for our Test Instance. Now that we are deploying in Production, we initially started with Part 2 blog since we will not be using SSO.
While enabling the Content Sync in LL Admin, Integration->LMS Reporting APIs, I am getting the following error – “Content import failed. Confirm your Successfactors API settings and try again”. I just notice that this will encounter if the sso is currently disabled. We enabled the SSO now and still encountered the error.
I will greatly appreciate your help guys. Please.
Great Article indeed and a big help.
As per step-7 above we are able to see the content list but course title and description is missing.
Is this an issue from SAP SF end or linkedin learning side?
Do you know if any settings needs to be done in SF or do we have to contact SAP to any configuration in provisioning?
in other providers like as OPENSESAME, the ttittle and description are in English, so in other language were not possible to see it. i think that here is the same.
i did all the step and i dont see the list course from step7. Do you know if is neccesary do sometinh in linkendin to config what course i want to export to lms?
thanks so much.
Hi Biplab Das
i did all and in the step 7 i am not able to see the course.
is it neccesary do something in linkending to see the item in succesfactor?thanks
Appreciate for the blog.
How do we manage courses that are already inactive in Linkedin, yet still active in SF? Is there any way we can autosync this with SF? Meaning when courses become inactive in Linkedin, it becomes inactive in LMS as well?
Hi We are also getting API error can @ Biplab advise or guide whats missing
Please can you advise how the API error was fixed? Facing the same issue.
Does this blog on "deep" integration also enable access from SuccessFactors (SF) to CUSTOM courses created in LinkedIn Learning ( LiL) ? We have developed some of our own LiL course content and I was told that we would need to use AICC to interface to these courses.
Was that correct info? If so do you have a blog that describes how to set up AICC properly?
Also about how much time should we expect it would take for one expert on SF and one expert on LiL to do the initial set-up for each project:
- Deep integration
- AICC integration (custom courses)?
Hi - does LinkedIn Learning already have an OCN connection setup with SuccessFactors? Are we able to leverage the Lynda connection?
Hello Biplab ,
Thanks a lot for the wonderful document ...
i have a question, how i can block the retired lessons from LinkedIn to update the status of my lesson on SF, is that feasible?