Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

Multiple Calls For Users Import From SuccessFactor

KhaoulaD
New Contributor III
New Contributor III

Hello rushikeshvartak  ,

Hope you're doing well,

I'm reaching out to you as i saw the response you provided on a post that i can't reply/  Re: Users import not working with Error-Code: LGN0... - Saviynt Forums - 57682

I want to import users from successFactor but the attributes are stored in different entities in successFactor. I'm thinking of using multiple calls in one json instead of doing multiple connectors.

you shared the following JSON: 

{
  "type": "multiCall",
  "call": [
    {
      "name": "call1",
      "connection": "userAuth",
      "url": "https://XXXXX/hr/hr-wfm/api/v1/employees?limit=2",
      "httpMethod": "GET",
      "httpHeaders": {
		"app_key": "<APP_KEY>",
        "Authorization": "${access_token}"
      },
      "colsToPropsMap": {
        "username":"payroll_id~#~char",
		  "systemUserName":"payroll_id~#~char",
		  "firstName":"first_name~#~char",
		  "lastName":"surname~#~char",
		  "customproperty15":"occupancy[0].position.position_id~#~char"
      },
      "userResponsePath": "employees"
    },
    {
      "name": "call2",
      "connection": "userAuth",
      "url": "https://XXXXXX/hr-wfm/api/v1/positions/${userIdentifier}",
      "httpMethod": "GET",
      "httpHeaders": {
		"app_key": "<APP_KEY>",
        "Authorization": "${access_token}"
      },
	  "inputParams": {
          "dependentCall": true
      },
	  "nextApiKeyField": "username",
      "colsToPropsMap": {
        "username": "assigned_to.value~#~char",
        "CUSTOMPROPERTY16": "position_title~#~char"
      },
      "userResponsePath": ""
    }
  ]
}

Can you please clarify both ?:

- APP_Key

- userIdentifier

 

Thank you in advance for you help.

Best Regards,

Khaoula DOUHI

5 REPLIES 5

DixshantValecha
Saviynt Employee
Saviynt Employee

Hi @KhaoulaD,

We are checking on your request and we will keep you posted.

adriencosson
Valued Contributor
Valued Contributor

Hello @KhaoulaD,

${userIdentifier} variable matches with the first attribute of your colsToPropsMap parameter within your first call.

If the second call uses the "username" attribute of your identity to gather other data, then "username" must be placed first.

The "APP_Key" is essentially an optional parameter within your headers, that might be present or not based on your requirement and target application. It helps authenticating whenever this field is required.

Feel free to share which technology you're using so we can help you with additional details.

Regards,
Adrien COSSON

DixshantValecha
Saviynt Employee
Saviynt Employee

Hi @KhaoulaD,

The APP_KEY is a unique identifier that is used to authenticate your application with the SuccessFactors API . You can obtain the APP_KEY by creating an application in the SuccessFactors API Center . Once you have created an application, you will be provided with an APP_KEY that you can use to authenticate your requests to the API .

The userIdentifier is a parameter that is used to identify the user whose data you want to retrieve from SuccessFactors . This parameter is typically used in the URL of the API call, and it is replaced with the actual user ID when the call is made . In the JSON you provided, the userIdentifier parameter is used in the URL of the second call to retrieve position data for each user . The value of userIdentifier should be replaced with the actual user ID when making the API call.

Feel free to share which technology you're using so we can help you with additional details.

Document Link:-

API Reference (saviynt.com)

Hello,

We are using successFactor and the aim is to import identities into saviynt from SuccessFactor.

Each set of attrobutes is stored in a different entity. To be able to import all attributes across all entities, we made multi calls.

We notice that the the first call is done successfully and in the second we want to use the id of the user and put in the second call to retrive the rest of attributes linked to that identity.

We tried the json below and noticed that the user id is being retrived but seems that the identity is not found. Still we can find it using postman with the query below:

https://api012.successfactors.eu/odata/v2/EmpJob?&$filter=userId eq '50005569'

The JSON we used is as following:

{
  "type":"multiCall",
  "call":[
     {
        "name":"call1",
        "connection":"userAuth",
        "url":"https://Domain/odata/v2/User",
        "httpMethod":"GET",
        "httpHeaders":{
           "Authorization":"${access_token}",
           "Accept":"application/json"
        },
        "colsToPropsMap":{
           "customproperty5":"userId~#~char",
           "firstname":"firstName~#~char",
           "lastname":"lastName~#~char",
           "custompropert1":"gender~#~char",
           "customproperty2":"dateOfBirth~#~char",
           "customproperty4":"empId~#~char",
           "username":"username~#~char"
        },
        "userResponsePath":"d.results"
     },
     {
        "name":"call2",
        "connection":"userAuth",
        "httpMethod":"GET",
        "httpHeaders":{
           "Authorization":"${access_token}",
           "Accept":"application/json"
        },
        "inputParams":{
           "dependentCall":true
        },
        "nextApiKeyField":"customproperty5",
        "colsToPropsMap":{
           "customproperty5":"assigned_to.value~#~char",
           "title":"customString24~#~char",
           "customproperty32":"division~#~char"
        },
        "userResponsePath":""
     }
  ],
  "pagination":{
     "nextUrl":{
        "nextUrlPath":"${response?.completeResponseMap?.d?.__next == null ?null : response?.completeResponseMap?.d?.__next}"
     }
  }
}
 
Best Regards,
Khaoula DOUHI

 

DixshantValecha
Saviynt Employee
Saviynt Employee

Hi @KhaoulaD,

Please review the logs and kindly inform us if any errors or additional information are being recorded. This will facilitate further troubleshooting and resolution of the issue. Your prompt attention to this matter is greatly appreciated.