Integration of SuccessFactor's as a webservice connector to pull the custom attributes using Odata APIs

Integration of SuccessFactor’s as a webservice connector to pull the custom attributes using Odata APIs.

steps
http operations for aggregations
Aggregating all users,
GET https://sf.base.url
/odata/v2/User?$select=userId,firstName,status&$filter=status in ‘t’,‘f’,‘T’,‘F’,‘e’,‘d’&$format=JSON

To get single user,
GET https://sf.base.url
/odata/v2/User(‘12345’)?$format=JSON&$filter=status in ‘t’,‘f’,‘T’,‘F’,‘e’,‘d’&$expand=empInfo,countryNav,manager
—?
Aggregation is not pulling accounts in web service connector

http opertaions

can ambassador help on suggestions of odata right api
We are able to pull data in postman but using the same url we are not able to pull the data in sailpoint.
we like to know what need to do to aggregate these users / accounts ?

@osmanmohammed Can you please confirm if you are able to configure the authentication? and your test connection is working fine?

For Authentication you can use Custom Authentication (just put Base URL) save.
Use following in your header

If your test connection is working fine then can you please share the Root Path and Response Mapping please?

FYI - I am actually using parent child HTTP config to get the user details like below which works perfectly fine for me:

###For full account aggregation###

#Get user details (parent endpoint) map the userId (which is personIdExternal)
/odata/v2/User?$select=defaultFullName,status,department&$expand=empInfo,pronounsNav/picklistLabels&$filter=status in 'active'&$format=json

#Get EmpJob details (child endpoint) fetch the response like below
/odata/v2/EmpJob?$select=company,companyNav/name_defaultValue&$filter=userNav/empInfo/personIdExternal eq '$response.userId$'&$expand=departmentNav,locationNav,companyNav,customString2Nav,userNav,userNav/empInfo&$format=json


###For single account aggregation###

#Get user details (parent endpoint) map the userId (which is personIdExternal)
/odata/v2/User('$plan.nativeIdentity$')?$select=defaultFullName,status,department&$expand=empInfo,pronounsNav/picklistLabels&$filter=status in 'active'&$format=json

#Get EmpJob details (child endpoint) fetch the response like below
/odata/v2/EmpJob?$select=company,companyNav/name_defaultValue&$filter=userNav/empInfo/personIdExternal eq '$response.userId$'&$expand=departmentNav,locationNav,companyNav,customString2Nav,userNav,userNav/empInfo&$format=json

Response Information (For Full account aggregation):

Response Mapping:

Response Information (For Single account aggregation):

Response Mapping:

Hope this will help!

Regards,
Shekhar Das

1 Like

Yes, am able to have successfull test connection.
what should be the schema attribute

it says mandatory

/odata/v2/EmpJob?$select=company,companyNav/name_defaultValue&$filter=userNav/empInfo/personIdExternal eq ‘$response.userId$’&$expand=departmentNav,locationNav,companyNav,customString2Nav,userNav,userNav/empInfo&$format=json

it says success but returns 0 accounts

You are just one step away

Please ensure you update Response Information and Response Mapping.

Map your account ID in the response mapping (which is personIdExternal.

You can refer the screenshots that I provided in the first reply.

Also can you confirm are you using parent-child operations? Or a single operation configured for aggregation?

Please refer below documentation for the configuration

i did as it was mentioned.
need to know what should be the saml assertion url and assertion body ? if its oauth 2.0

Is your aggregation working now? If yes please mark it as resolved.

For query related to SAML assertion open another discussion. That will help other people in future.

yes your suggestions helped alot,
just few changes
root was $.d.results and not $.d.results[*]

response mapping was just attribute name instead of $.attributename as shown in the below image

what should be the endpoint in delta aggregation ?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.