Human Capital Management Blogs by Members
Gain valuable knowledge and tips on SAP SuccessFactors HCM suite and human capital management market from member blog posts. Share your insights with a post of your own.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member113361
Participant
14,586
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:

providers[LINKEDINLEARNING].enabled=true
providers[LINKEDINLEARNING].name=LinkedIn Learning
providers[LINKEDINLEARNING].label=label.u.ProviderLinkedInLearning
providers[LINKEDINLEARNING].baseLaunchUrl=https://www.linkedin.com/learning
providers[LINKEDINLEARNING].pricingModel=

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.

 
30 Comments
former_member438089
Discoverer
0 Kudos

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 ?

 

Regards,

Bhavya

former_member113361
Participant
0 Kudos
Hi Bhavya,

Thanks.

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.

 

Regards

Biplab Da
former_member438089
Discoverer
0 Kudos
Hello Biplab,

 

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!

 

Thanks!

Bhavya
FrancoisCloete
Discoverer
0 Kudos
Hello Biplab

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.

 

regards

 

Francois
former_member438089
Discoverer
0 Kudos
Hello Francois,

 

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.

 

 

Regards,

Bhavya
former_member612960
Discoverer

Thanks for sharing this nice information. 

former_member113361
Participant
0 Kudos
Hi Bhavya,

Sorry, i was not checking the comments. I saw this just now. Hope your problem has been resolved. If not let me know.

 

//BR

Biplab
former_member113361
Participant
0 Kudos
Thanks Arun
Roopesh_Kumar
Newcomer
0 Kudos

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.

Regards,

Kanniya D

former_member113361
Participant
0 Kudos
Hi Kanniya,

Thanks.

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

 

Regard

Biplab Das
SteffiM
Explorer
0 Kudos
Hi Biplab,

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?

 

Many thanks,

Steffi

 
former_member113361
Participant
0 Kudos
Hi Stefii,

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"

former_member113361
Participant
0 Kudos
Hi Steffi,

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.
Candice_Potgiet
Newcomer
0 Kudos
Im having the same issue . Please advise
former_member31924
Discoverer
0 Kudos
Hello Everyone,

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!

Vishal
PKetnouvong
Participant
0 Kudos
Hi Biplab,

 

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.

 

Thanks!

 

Phonethip
0 Kudos
Hi Biplap,

 

Good day!

 

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.

 

Best Regards,

Eduardo Salvador
former_member55862
Participant
0 Kudos
Hi! Biplab

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?

Thanks again.

Regards,

AQIB

 
juanluisvelaz
Discoverer
0 Kudos
Hi biplab.nits

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
juanluisvelaz
Discoverer
0 Kudos
Hi Aquib,

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.

best regars

 

 
Niladri_B_Nayak
Active Contributor
Hi Biplab,

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?

 

Regards,

 

 
s0011735096
Participant
0 Kudos
Hi We are also getting API error can @ Biplab advise or guide whats missing

 

Regards.

 
0 Kudos
Thanks BipLab

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)?

Regards

Diana

 

 
0 Kudos
Hi - does LinkedIn Learning already have an OCN connection setup with SuccessFactors? Are we able to leverage the Lynda connection?
former_member90273
Discoverer
0 Kudos
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?
PV1519
Active Participant
0 Kudos
Hi

Please can you advise how the API error was fixed? Facing the same issue.

Thank you
dkcrews
Explorer
0 Kudos

Hi Has anyone worked out a way to load the Imported courses in to a library automatically and also showing category in the library too so they can be available and visible to search for users?  We have created a library called LinkedIn Learning and weekly have to search all courses in OCN that are not imported... import them... then go and add them to the library

There must be a better way of doing this - any suggestions please

Thank you 

syeapAB
Participant
0 Kudos

Hi @dkcrews ,

Did you manage to find a solution to your query?

Or do we need to manually add each open content network course to a desired library?

Thanks

Regards,

Samantha

SulaimanSabir
Discoverer
0 Kudos

@former_member113361 @PV1519 @s0011735096 Hello, did you find out the cause of this error? Thanks

dkcrews
Explorer
0 Kudos

No i havent had anyone come back to me on how to manage the LiL content most efficiently 

so the steps seem to be:

OCN content Import whats not already imported (weekly manual task)

Add to LinkedIn LMS library (in LMS)

Im not sure how you disable courses once they are unpublished in LiL - i.e. LiL no longer host them but you have the course imported and linked to a library. this will cause issues 

the synching and maintenance of the LMS to LiL content is clunky and wont deliver a good user experience so we are still discussing options here! 

Labels in this area