Integrating with SAP SuccessFactors
On this page
Integrating with SAP SuccessFactors
Integrating your Software Asset Management application with the SAP SuccessFactors application enables you to track your software subscriptions and to reclaim unused licenses.
Important:
You must request and install the following applications from ServiceNow Store:
-
SaaS License Management
-
SuccessFactors Spoke
-
Software Asset Management integration with SuccessFactors
-
If your installed SAP SuccessFactors spoke version is 3.1.5 or lower, follow these steps:
-
If your installed SAP SuccessFactors spoke version is 4.0.0 or higher, follow these steps:
Important: Minimize security risks and protect information by granting access only to the necessary user or API permissions.
Process Required user role in the SAP SuccessFactors application Authentication scopes Download subscriptions admin None Pull user activity admin None Reclaim subscription admin NoneSet up basic authentication for SAP SuccessFactors
Set up basic authentication to enable access to the SAP SuccessFactors API.
Before you begin
SAP SuccessFactors Role required: admin
Procedure
-
Log in to the SAP SuccessFactors instance using your admin credentials.
-
On the page header of your instance, select Home > Admin Center.
-
Create a group to assign API access permissions to.
Tip: Include only non-admin users in this group, as admin users automatically have access to the SuccessFactors API.
-
In the Tool Search field of the Admin Center, search for and select Manage Permission Groups.
-
On the Permission Group dialog box, enter a name for the permission group in the Group Name field.
-
In the Choose Group Members section, specify the users or user groups that you want to include in this permission group by adding them to a People Pool.
People Pools allow you to specify the sets of users or user groups that you want to include or exclude for a permission group. You can either include all users and user groups in a single People Pool or group them into different People Pools. For example, you can create different People Pools for each department or office location within your organization.
To add users or user groups to a People Pool, select an identification category, such as Username, and then enter each user or user group in the corresponding text box. Each entry must be separated by a comma.
You can apply multiple identification categories to a single People Pool by clicking Add another category. You can also add additional People Pools by clicking Add another People Pool.
-
In the Exclude these people from the group section, specify the users or user groups that you want to exclude from this permission group by adding them to a People Pool.
To add users or user groups to a People Pool, select an identification category, such as Username, and then enter each user or user group in the corresponding text box. Each entry must be separated by a comma.
You can apply multiple identification categories to a single People Pool by clicking Add another category. You can also add additional People Pools by clicking Add another People Pool.
-
Select Done.
-
-
Configure API access permissions for your group.
-
In the Tool Search field of the Admin Center, search for and select Manage Permission Roles.
-
Select Create New.
-
On the Permission Role Detail form, enter a name for the permission role in the Role Name field.
-
Enter a description for the permission role in the Description field.
-
Under Permission settings, select Permission....
-
In the Permission settings dialog box, select Manage Integration Tools from the left navigation pane.
-
Select the Allow Admin to Access OData API through Basic Authentication check box.
-
Select Employee Central API from the left navigation pane.
-
Select the Employee Central HRIS OData API (editable) check box.
-
Select Done.
The dialog box closes and you return to the Permission Role Detail form.
-
Under the Grant this role to... tab, select Add... to search for and select the permission groups that you created in step 4.
Adding this permission group allows the associated users and user groups to access the APIs that are enabled in this permission role.
-
Select Save Changes.
-
Create an SAP SuccessFactors connection
Create a connection between your SAP SuccessFactors OData API and your ServiceNow instance.
Before you begin
ServiceNow Role required: sam_integrator
Procedure
-
From your ServiceNow instance, navigate to Process Automation > Flow Designer.
The Flow Designer launches in a new tab.
-
Select the Connections tab.
-
Select View Details for your SuccessFactors_OData connection.
-
From the list of available connections, search for and select SuccessFactors_OData.
-
Select Configure.
-
In the Configure Connection dialog box, fill in the fields.
Field Description Connection Name Name of the SuccessFactors_OData connection. Connection URL OData API URL of your SAP SuccessFactors instance. User name Username for your SAP SuccessFactors admin account. Enter the same username that you used to log in to your SAP SuccessFactors instance in Set up basic authentication for SAP SuccessFactors. Password Password for your SAP SuccessFactors admin account. Enter the same password that you used to log in to your SAP SuccessFactors instance in Set up basic authentication for SAP SuccessFactors. -
Select Configure Connection.
Register OAuth application in SuccessFactors
Enable client certificate authentication for the outbound communication from SAP Master Data service by generating the keystore.jks and keystore.cer files.
Before you begin
Role required: admin
Procedure
-
Create a JKS certificate by using any one of the following methods:
-
Follow the steps in the Creating Java Keystore(JKS) with Private Key and Certificate Chain topic SAP Help Portal.
-
Install Java JDK 8 and Open SSL and execute the following commands in the Terminal:
-
openssl genrsa -out private.key 2048The
private.keyfile is generated. -
openssl rsa -in private.key -pubout -out public.keyExtract the public key from key pair type.
-
openssl req -new -x509 -key private.key -out publickey.cer -days 365Enter details of the Distinguished Name (DN). The
publickey.cerfile is generated. -
openssl pkcs12 -export -in publickey.cer -inkey private.key -out successfactors.p12 -name "successfactors"You’re prompted for a password. The
successfactors.p12file is generated using the private and public key created in step a and step b. -
keytool -importkeystore -srckeystore successfactors.p12 -srcstoretype pkcs12 -destkeystore successfactors.jksYou’re prompted for the destination and source file password. The
successfactors.jksfile is created using thesuccessfactors.p12file created in step c.
Note: Confirm that you enter the same passwords in steps c and d. For example, if you enter the password as
123456in step c, you must enter123456as password in step d too. -
-
-
Log in to the SuccessFactors account as an admin.
-
Navigate to Admin Centre and select Company Settings.
-
Select Manage OAuth2 Client Applications.
-
Select Register Client Application.
[Omitted image "manage-oauth-client-sf.png"] Alt text: Managing OAuth2 client applications
-
In the X.509 Certificate field, provide the contents of the
publickey.cerfile (public key) without the headers. -
Select Submit.
Result
The API Key is generated and displayed.
What to do next
Copy the API key generated and record the value for later use.
Upload the JKS certificate in your ServiceNow instance
Enable client certificate authentication for the outbound communication by uploading the JKS certificate in your ServiceNow instance.
Before you begin
Role required: admin
Procedure
-
Log in to your ServiceNow instance as an admin.
-
Upload the JKS certificate to your ServiceNow instance.
For instructions to upload the JKS certificate, see Upload a certificate to an instance.[Omitted image "saml-oauth-sf.png"] Alt text: Uploading certificate to an instance
Register SuccessFactors as an OAuth provider
Use the API key generated during the client application configuration to register the application as an OAuth provider.
Before you begin
Change the application scope to SuccessFactors spoke.
Role required: admin
Procedure
-
In your ServiceNow instance, navigate to System OAuth > Application Registry.
-
Select New.
-
In the form, fill in these fields.
<table id=“table_yb3_bwh_dwb”><thead><tr><th>
Field
</th><th>
Description
</th></tr></thead><tbody><tr><td>
Name
</td><td>
Unique name to identify the certificate. For example, SuccessFactors SAML.
</td></tr><tr><td>
Client ID
</td><td>
Value of the API key you had copied after registering the OAuth client application in SuccessFactors.
</td></tr><tr><td>
Client Secret
</td><td>
Note: Client secret isn’t needed to register the application as an OAuth provider. You can provide any value for this field.
</td></tr><tr><td>
Default Grant Type
</td><td>
Default grant type used to establish the token. Select SAML2 Bearer.
</td></tr><tr><td>
Token URL
</td><td>
SuccessFactors OAuth server endpoint URL that includes the Company ID in this format: https://<SuccessFactors_Instance_Name>/oauth/token?company_id=<Company_ID>. For example, https://example.successfactors.eu/oauth/token?company_id=SFCPART123456.
</td></tr></tbody> </table> [Omitted image “app-registry-sf.png”] Alt text: Application Registries form
-
Select Submit.
Create the SAML2 assertion producer record
Create a SAML2 assertion record to generate the SAML2 assertion and exchange the assertion for the access tokens with the provider.
Before you begin
Change the application scope to SuccessFactors spoke.
Role required: admin
Procedure
-
Create a SAML2 assertion producer record in your instance.
-
Navigate to All > System OAuth > SAML2 Assertion Producers.
-
Select New.
-
On the form, fill these values.
Field Description Name Unique name to identify the SAML2 assertion producer record. For example,Successfactor SAML OAuth. Issuer Unique identifier for the assertion issuing entity. Provide the ServiceNow instance URL. Subject NameID User name to log in to the SuccessFactors instance. For example,sfadmin. Audience Intended audience for the assertion. Enter the value,www.successfactors.com. Recipient Intended recipient for the assertion. Enter URL in this format,https://<SuccessFactors-Instance-Name>/oauth/token.[Omitted image "saml-assert-prov.png"] Alt text: SAML2 Assertion Producer
-
Select and hold (or right-click) the form header and select Save.
-
Under the SAML2 Assertion Keystores tab, select New.
-
On the form, fill these values.
Field Description Name Unique name to identify the SAML2 assertion keystore record. For example,successfactors. Signing Key Alias Alias of key entry stored in the Keystore used to sign the assertion. For example,successfactors. Signing Key Password Password of the key entry stored in the keystore used to sign the assertion. Signing Keystore Required X.509 certificate record. Select the X.509 certificate record that you had earlier created. For more information, seeUpload the JKS certificate in your ServiceNow instance.[Omitted image "saml-assert-keystore.png"] Alt text: SAML2 Assertion Keystore.
-
Select Submit.
-
Navigate to All > System OAuth > SAML2 Assertion Producers.
-
Open the SAML2 assertion producer record that you had created.
For example, Successfactor SAML OAuth.
-
Under the SAML2 Assertion Attributes tab, select New.
-
On the form, fill these values.
Field Description Name Name to identify the SAML2 assertion attribute record. Enterapi_key. Type Type of the Value field. Select String. Value API key generated after the OAuth client application is created in SuccessFactors.[Omitted image "saml2-assertion-att.png"] Alt text: SAML2 Assertion Attribute.
-
Select Submit.
-
-
Associate the SAML2 assertion producer with the application registry record.
-
Navigate to System OAuth > Application Registry.
-
Open the application registry record that you had created.
For example, SuccessFactors OAuth Reg. For more information about creating the application registry, see Register SuccessFactors as an OAuth provider.
-
Under the OAuth Entity Profiles tab, open the default OAuth entity profile record.
For example, Successfactor SAML default_profile.
-
For the Assertion Producer field, select the SAML2 assertion producer record you had created.
For example, Successfactor SAML OAuth.[Omitted image "oauth-ent-profile-sf.png"] Alt text: Defining OAuth scoped for this profile
-
Select Update.
-
Create credential record for the OData API
Create a connection record for the OData API in SuccessFactors. The SuccessFactors spoke connection and credential alias uses these connections to perform actions in SuccessFactors.
Before you begin
Role required: admin
Procedure
-
Navigate to All > Connections & Credentials > Credentials.
-
Click New.
The system displays the message What type of Credentials would you like to create?.
-
Select OAuth 2.0 Credentials.
An empty OAuth 2.0 Credentials form is displayed.
-
On the form, fill these values.
<table id=“table_twl_mk2_5kb”><thead><tr><th>
Field
</th><th>
Value required
</th></tr></thead><tbody><tr><td>
Name
</td><td>
Name to uniquely identify the record. For example, enter SAML_SuccessFactors_OData_Cred.
</td></tr><tr><td>
OAuth Entity Profile
</td><td>
OAuth entity profile record that is associated with the OAuth application registry you had created. For example, Successfactor SAML default_profile.For more information about creating the application registry, see Register SuccessFactors as an OAuth provider.
</td></tr><tr><td>
Active
</td><td>
Option to actively use the credential record.
</td></tr><tr><td>
Order
</td><td>
Order to apply this credential. For example, enter 100.
</td></tr></tbody> </table> [Omitted image “saml-sf-odata-cred.png”] Alt text: OAuth 2.0 credentials
-
Click Submit.
Result
The credential record to authorize actions using the OData API is created.
Create connection record for the OData API
Create a connection record for the OData API in SuccessFactors. The SuccessFactors spoke connection and credential alias uses these connections to perform actions in SuccessFactors.
Before you begin
Role required: admin
Procedure
-
Navigate to All > Connections & Credentials > Connection & Credential Aliases.
-
Open for the record for SuccessFactors OData.
For example, SuccessFactors_OData.
-
From the Connections tab, click New.
The system displays an empty HTTP(s) Connection form.
-
On the form, fill these values.
Field Description Name Name to uniquely identify the record. For example,SAML_SuccessFactors_OData_Conn. Credential Credential record you created for the OData API. For example,SAML_SuccessFactors_OData_Cred. Connection URL SuccessFactors service root URL in this format:https://<SuccessFactors_Instance_Name>/odata/v2. For example,https://apisalesdemo2.successfactors.eu/odata/v2. Active Option to actively use the connection record. -
Click Submit.
Result
The connection record for the OData API in SuccessFactors is created.
Create an SAP SuccessFactors integration profile
Create an SAP SuccessFactors integration profile to track software subscriptions and optimize licensing for your SAP SuccessFactors applications.
Before you begin
The Software Asset Management - SaaS License Management plugin (sn_sam_saas_int) must be installed from the ServiceNow Store.
Change the application scope to Global.
ServiceNow Role required: sam_integrator
Important: You must select the Software Asset Management integration with SuccessFactors check box for this integration while installing optional features on the Application Manager page. For more information about choosing the required SaaS applications, see Request SaaS License Management.
About this task
If you’re using Software Asset Workspace, the option to create the SuccessFactors integration profile in Core UI is inactive.
Procedure
-
Navigate to the integration profile.
<table id=“choicetable_o3p_z3k_qtb”><thead><tr><th align=“left” id=“d48647e2331”>
Interface
</th><th align=“left” id=“d48647e2334”>
Action
</th></tr></thead><tbody><tr><td id=“d48647e2340”>
Core UI
</td><td>
-
Navigate to All > Software Asset > SaaS License > Direct Integration Profiles.
-
Select New.
-
Select SuccessFactors Integration Profile.
</td></tr><tr><td id=“d48647e2382”>
Software Asset Workspace
</td><td>
-
Navigate to License operations > User Subscriptions > Direct integration profiles.
-
Select New.
-
Select SuccessFactors from the drop-down list.
-
Select Continue.
</td></tr></tbody> </table>2. On the form, fill in the fields.
<table id=“table_bv2_1gv_1nb”><thead><tr><th>
Field
</th><th>
Value
</th></tr></thead><tbody><tr><td>
Display Name
</td><td>
Name of the integration profile. For example, SuccessFactors Integration.
</td></tr><tr><td>
Status
</td><td>
Status of the integration profile. - If you have not published the integration profile, this field is automatically set to Draft. - If you have already published the integration profile, this field is automatically set to Published.
</td></tr><tr><td>
Profile Type
</td><td>
Type of integration profile. This field is automatically set to SuccessFactors Subscription.
</td></tr></tbody> </table>3. Review the required user roles or API permissions specified in the Vendor configuration field for each process to minimize security risks and optimize SaaS licenses.
**Note:** For more information, see [Minimal user permissions](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-asset-management/saas-license-management/integrate-with-workfront.md) table.
1. In the Download Subscription Subflow section, verify that the **Subflow** field is set to **SuccessFactors Download Subscriptions**.
**Note:** The **Download subscriptions** check box is selected by default and you can't clear it.
2. In the Calculate Activity Subflow section, verify that the **Subflow** field is set to **SuccessFactors Update User Activity**.
**Note:** The **Download Activity** check box is selected by default. If you clear it, the activity scheduled job **SAM - Refresh <displayname> Activity** isn't created.
3. In the Reclaim Subscription Subflow section, verify that the **Subflow** field is set to **SuccessFactors Reclaim Subscription**.
**Note:** The **Reclaim subscriptions** check box is selected by default. If you don't want to reclaim subscriptions, you can clear this check box. If you clear it, the removal candidates are created but the reclaim subscription subflow isn't triggered or the reclamation process isn't initiated.
-
Select Save.
Your ServiceNow instance creates a draft integration profile.
The Connection & Credential field appears and is automatically set to sn_successfactors.SuccessFactors_OData.
-
Generate and add the SAP SuccessFactors user login report to your integration profile.
This report is required for retrieving the last activity date of your SAP SuccessFactors users. You must generate and add the latest version of this report every time you want to update the last activity date of your SAP SuccessFactors users in the Software Subscriptions [samp_sw_subscription] table.
-
Log in to your SAP SuccessFactors instance using the admin credentials.
-
On the page header of your instance, select Home > Admin Center.
-
On the page header of the Admin Center, select Reporting.
-
Select New to create a report.
-
When prompted to select the type of report that you want to create, select Report - Table > Select.
-
Under How would you like your data to be structured?, select Single Domain.
-
Under What data would you like to start with?, select Login Data.
-
Click Select.
The Creating Login Data report page opens.
-
On the General Info tab, fill in the fields.
Field Description Domain Domain from which you’re retrieving data. This field is automatically set to Login Data. Report Name Name of the report. Description Description of the report. Report Priority Priority of the report. Remove Styling Deselect this check box. -
On the People tab, select Refine criteria.
-
In the Define Team dialog box, fill in the fields.
Field Description Team Manager Manager of the team for which you want to create this report. Select Logged In User. Team Reporting Type Type of report that you want to create for the team. Select Other Filters. When you select this report type, you can define report scopes to filter the user groups that you want to include in the report. See step 14 for more details. Include inactive users Option to include all inactive team members in the report. Leave this option unselected. -
Select OK.
The dialog box closes and you return to the People tab.
-
In the Define Report Scope section of the People tab, select the Division, Department, and Location report scopes to define filter criteria for the user groups that you want to include in the report.
By default, all filter criteria for these report scopes are enabled.
-
On the Columns tab, select + Select Columns to specify the data columns that you want to include in the report.
You can sort, group, or rearrange the columns as needed.
-
Select the Last Login and User Sys ID check boxes so that the first column is Last Login and the second column is User Sys ID on the report.
-
On the Configuration tab, specify whether you want your data columns to display data in either the date only or the date and time format.
For each applicable data column, select either Date (date only) or Timestamp (date and time). After you select the format for each data column, select OK.
-
On the Filters tab, select filters to refine the data that is displayed on the report.
-
Select Refine Criteria > Employee Login Detail > Last Login.
A pop-up displays with the Define last login filter.
-
Select the By Rule > Add rule tab.
-
From the drop-down list, select the Greater than option.
-
Enter the date from when you want to generate the report.
You must select a date not older than a couple of weeks to keep the file size within allowed limits.
-
Select Done after you select the filters.
-
Select Generate.
-
In the Download section of the generated report, select Excel to export the report as an Excel file.
Note: The Excel file must not be greater than 5 MB.
-
Return to your SAP SuccessFactors integration profile form.
-
On the Integration Profile form header, select the Manage Attachments icon ([Omitted image "manage-attachments-icon.png"] Alt text: Manage attachments icon.).
-
In the Attachments dialog box, select Choose file to locate and select your user login report.
-
After the report uploads successfully, close the dialog box to return to the integration profile form.
-
-
After the form reloads, select Validate Connection to verify the connection and credential details of this integration.
Validating the connection verifies the Download Subscriptions and Calculate Activity APIs, but not the Reclaim Subscriptions APIs.
-
After the connection is verified, select Publish.
-
In the Publish Confirmation dialog box, select OK.
Note: If you clear the Download Activity check box after the integration profile is published, you must revalidate the connections and then republish the integration profile because the following events occur:
-
The Status field on the integration profile form changes to Draft.
-
The Validate connection button shows up on the form.
-
The current SAM - Refresh <displayname> Activity job gets deleted. By default, the activity job runs every one hour and deletes the file attached to the integration profile as part of the clean-up. If the file isn’t found, the activity job fails to indicate no new attachment. The job failure has no impact on the already updated last activity.
If you plan to attach the file once everyday or once a week, you can update the run time of the SAM - Refresh Success Factors Activity scheduled job accordingly. You can also run this job on demand whenever you attach a file.
You must attach a file every time for the job to run because SAP SuccessFactors doesn’t have an API for activity data pull.
-
What to do next
After the integration connects, your ServiceNow instance automatically creates software models, reclamation rules, and software subscriptions that are refreshed daily.
After creating an integration profile, view information about the profile in the Software Asset Workspace by navigating to License operations > User subscription > Direct integration profiles. You can select an integration profile to view the following related lists. If all of the following related lists aren’t visible for an integration profile in the default view, you can select the custom integration view from the Details tab:
-
Software Models
-
Unrecognized Subscription Identifiers
-
Scheduled Jobs
-
Scheduled Job Results
-
Software Subscriptions
-
Subscription Identifier Exclusion Rule
-
Subscription User Exclusion Rule
After creating an integration profile, you can define subscription exclusion rules to keep certain subscriptions from license cost calculations. For more information, see Subscription exclusions for SaaS and SSO applications.
If you want to set up multiple integration profiles with unique connections, create child aliases to manage different configurations and settings for each integration profile. For more information, see Create a child alias to set up multiple integration profiles.
Important: Child aliases and alias overrides aren’t supported for the SuccessFactors Update User Activity subflow because this subflow doesn’t use REST steps directly where aliases are required.
Review all automatically generated reclamation rules to reclaim user subscriptions. For more information, see Review a software reclamation rule.
Create software entitlements for the automatically generated software models to track used software against owned software.
-
For more information on creating software entitlements in the Software Asset Management Core UI, see Create entitlements in Software Asset Management Core UI.
-
For more information on creating software entitlements in the Software Asset Workspace, see Create entitlements in workspace.
-
For more information on creating software entitlements using the Software Asset Management Playbook, see Create entitlements using the guided walk-through.
Reconciliation also runs on your subscriptions as a scheduled job or on-demand. You can view your reconciliation results in the License Workbench (Software Asset Management classic application) or the License usage view (Software Asset Workspace). Use these results to determine your license compliance position and to remediate any non-compliance.
-
For more information on running reconciliation in the Software Asset Management classic application, see Run software reconciliation in Software Asset Management classic.
-
For more information on running reconciliation in the Software Asset Workspace, see Run software reconciliation in the workspace.
Keep exploring.
Find another answer, or bring this documentation into your own tools.